/* ==========================================================
   小手机 style.css -- iOS 风格 · 粉黑 ins 默认外观
   ========================================================== */
:root {
    --theme-color: var(--theme-color);
    --theme-dark: #1a1a1e;
    --bg-color: #f7f4f5;
    --card-bg: #ffffff;
    --border-color: #ececf0;
    --text-sub: #9a9aa2;
    --danger: #ff4d6d;
    --success: #34c759;

    --avatar-size: 42px;
    --avatar-radius: 50%;
    --icon-radius: 18px;
    --bubble-radius: 18px;
    --chat-font: 15px;
    --my-bubble: var(--theme-color);
    --my-bubble-text: #ffffff;
    --ai-bubble: var(--card-bg);
    --ai-bubble-text: var(--theme-dark);
    --chat-bg: var(--bg-color);
    --wallpaper: linear-gradient(165deg, #1a1a1e 0%, #2a1e24 42%, #7a3a4e 100%);
    --accent2: #3a3a40; --accent-soft: #9a9aa2; --on-accent: #ffffff; --accent-text: var(--theme-color);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
    background: #0e0e10;
    display: flex; align-items: center; justify-content: center;
    min-height: 100vh; color: var(--theme-dark);
}
.hidden { display: none !important; }

/* ========== 手机壳 ========== */
.phone {
    position: relative; width: 375px; height: 720px; max-height: 96vh;
    background: var(--bg-color);
    border-radius: 52px; border: 5px solid #0a0a0a;
    box-shadow: 0 0 0 2px #2a2a2e, 0 30px 90px rgba(0,0,0,.6), inset 0 0 0 1px rgba(255,255,255,.05);
    overflow: hidden;
}
.phone::before {
    content: ""; position: absolute; top: 8px; left: 50%; width: 118px; height: 30px;
    margin-left: -59px; background: #000; border-radius: 20px; z-index: 400; pointer-events: none;
}
.phone::after {
    content: ""; position: absolute; bottom: 6px; left: 50%; width: 130px; height: 5px;
    margin-left: -65px; background: var(--theme-dark); opacity: .22; border-radius: 3px;
    z-index: 400; pointer-events: none;
}
@media (max-width: 440px) {
    body { background: var(--bg-color); }
    .phone { width: 100vw; height: 100vh; max-height: none; border: none; border-radius: 0; box-shadow: none; }
    .phone::before { display: none; }
}

/* ========== 状态栏 ========== */
.status-bar {
    position: absolute; top: 0; left: 0; right: 0; height: 48px;
    padding: 14px 32px 0; display: flex; justify-content: space-between;
    font-size: 15px; font-weight: 600; z-index: 350; pointer-events: none;
    color: var(--theme-dark);
}
.phone:has(#desktop:not(.hidden)) .status-bar,
.phone:has(#lockScreen:not(.hidden)) .status-bar { color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.3); }

/* ========== 锁屏 ========== */
.lock-screen {
    position: absolute; inset: 0; background: var(--wallpaper);
    background-size: cover; background-position: center;
    z-index: 300; display: flex; flex-direction: column; align-items: center;
    padding-top: 80px; color: #fff; cursor: pointer;
    transition: transform .45s cubic-bezier(.3,.8,.3,1), opacity .45s;
}
.lock-screen.hidden { display: flex !important; transform: translateY(-105%); opacity: 0; pointer-events: none; }
.lock-top { text-align: center; }
.lock-date { font-size: 16px; font-weight: 500; opacity: .9; letter-spacing: 1px; margin-bottom: 4px; }
.lock-time { font-size: 78px; font-weight: 200; letter-spacing: -2px; text-shadow: 0 2px 16px rgba(0,0,0,.3); }
.lock-hint { margin-top: auto; margin-bottom: 36px; font-size: 13px; opacity: .72; }

/* 锁屏小组件 */
.lock-widgets { display: flex; flex-direction: column; gap: 8px; width: 88%; margin-top: 24px; }
.lock-widget {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    background: rgba(255,255,255,.14); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border-radius: 18px; font-size: 13px; border: 1px solid rgba(255,255,255,.12);
    transition: transform .15s;
}
.lock-widget:active { transform: scale(.97); }
.lw-icon { width: 36px; height: 36px; border-radius: 11px; background: color-mix(in srgb, var(--theme-color) 42%, transparent); display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0; }
.lw-info { flex: 1; min-width: 0; }
.lw-title { font-weight: 600; font-size: 13px; }
.lw-sub { font-size: 11px; opacity: .8; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.lock-notification {
    position: absolute; left: 14px; right: 14px; top: auto; bottom: 90px;
    display: flex; gap: 10px; align-items: center; padding: 12px 14px;
    background: rgba(255,255,255,.72); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
    border-radius: 20px; color: #222; font-size: 13px; box-shadow: 0 6px 24px rgba(0,0,0,.12);
}
.notify-icon { width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(135deg, var(--theme-color), var(--accent2)); flex-shrink: 0; }
.notify-text { overflow: hidden; }

/* ========== 桌面 ========== */
.desktop {
    position: absolute; inset: 0; background: var(--wallpaper);
    background-size: cover; background-position: center;
    padding: 68px 20px 0; display: flex; flex-direction: column;
}
.desktop-grid {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px 12px;
    align-content: start; flex: 1; padding-bottom: 20px;
}
.app-icon { display: flex; flex-direction: column; align-items: center; cursor: pointer; gap: 7px; transition: transform .15s; }
.app-icon:active { transform: scale(.88); }
.icon-bg {
    width: 60px; height: 60px; border-radius: var(--icon-radius);
    display: flex; align-items: center; justify-content: center;
    font-size: 13px; white-space: nowrap; overflow: hidden; color: #fff; font-weight: 600;
    box-shadow: 0 6px 18px rgba(0,0,0,.28); letter-spacing: -.5px;
    transition: box-shadow .2s, transform .2s;
}
/* 柔和的粉黑系配色，不再生硬 */
.wechat-icon { background: linear-gradient(145deg, var(--accent-soft), var(--accent2)); }
.takeout-icon { background: linear-gradient(145deg, var(--accent-soft), var(--accent-soft)); color: #7a3a4e; }
.shop-icon { background: linear-gradient(145deg, var(--accent-soft), var(--accent2)); }
.mcp-icon { background: linear-gradient(145deg, #4a3540, #2a1e24); }
.intimate-icon { background: linear-gradient(145deg, var(--theme-color), var(--accent2)); }
.games-icon { background: linear-gradient(145deg, var(--accent-soft), var(--accent2)); }
.toolkit-icon { background: linear-gradient(145deg, #5a4650, #3a2a32); }
.theme-icon { background: linear-gradient(145deg, var(--accent-soft), var(--accent-soft)); color: #7a3a4e; }
.settings-icon { background: linear-gradient(145deg, #3a3a40, #1f1f24); }
.app-icon span { font-size: 11px; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); font-weight: 500; }

/* Dock */
.dock {
    display: flex; justify-content: center; gap: 14px; padding: 12px 16px 26px;
    background: rgba(255,255,255,.1); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border-radius: 32px; margin: 0 4px 6px; border: 1px solid rgba(255,255,255,.08);
}
.dock-icon { cursor: pointer; transition: transform .12s; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.dock-icon:active { transform: scale(.88); }
.dock-icon .icon-bg { width: 52px; height: 52px; font-size: 12px; }
.dock-icon span { font-size: 9px; color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); }

/* ========== App通用 ========== */
.app-screen {
    position: absolute; inset: 0; background: var(--bg-color);
    display: flex; flex-direction: column; padding-top: 48px; z-index: 10;
    animation: appIn .22s ease-out;
}
@keyframes appIn { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

.app-header {
    flex-shrink: 0; min-height: 46px; padding: 0 14px;
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    background: color-mix(in srgb, var(--card-bg) 82%, transparent);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-bottom: .5px solid var(--border-color);
    font-size: 17px; font-weight: 600;
}
.app-header > span { flex: 1; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-header button, .hdr-btn {
    border: none; background: none; cursor: pointer; font-size: 15px; font-weight: 400;
    color:var(--accent-text); padding: 6px 4px; min-width: 28px;
}
.hdr-btn.primary { font-weight: 600; }

.themed-header { border-bottom: none; }
.takeout-header { background: linear-gradient(135deg, var(--accent-soft), var(--accent2)); }
.takeout-header button, .takeout-header span { color: var(--on-accent) !important; }
.shop-header { background: linear-gradient(135deg, var(--accent-soft), var(--accent2)); }
.shop-header button, .shop-header span { color: var(--on-accent) !important; }

.scroll-area { flex: 1; overflow-y: auto; }
.scroll-area::-webkit-scrollbar, .chat-box::-webkit-scrollbar { width: 0; }
.padded { padding: 14px 16px 30px; }
.wechat-body { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.wechat-tab-pane { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.wechat-tab-pane .scroll-area { flex: 1; padding: 0 16px 16px; }
.wechat-tab-pane > .scroll-area:first-child { padding-top: 0; }

.section-title { font-size: 13px; color: var(--text-sub); margin: 18px 4px 8px; letter-spacing: .2px; }
.hint-line { font-size: 13px; color: var(--text-sub); line-height: 1.6; margin: 2px 4px 8px; }

/* ========== 表单 / 按钮 ========== */
.input-text, .input-textarea {
    width: 100%; padding: 12px 14px; margin-bottom: 10px;
    border: .5px solid var(--border-color); border-radius: 12px;
    background: var(--card-bg); color: var(--theme-dark);
    font-size: 15px; font-family: inherit; outline: none;
    transition: box-shadow .2s, border-color .2s;
}
.input-textarea { min-height: 84px; resize: vertical; }
.input-text:focus, .input-textarea:focus { border-color: var(--theme-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme-color) 25%, transparent); }

.search-input {
    width: 100%; padding: 10px 16px; border-radius: 14px; border: none;
    font-size: 14px; background: rgba(255,255,255,.9); color: #333; outline: none;
}

button { font-family: inherit; }
.btn-primary, .btn-secondary, .btn-danger {
    display: block; width: 100%; padding: 13px; margin: 10px 0;
    border: none; border-radius: 14px; font-size: 16px; font-weight: 600; cursor: pointer;
    transition: transform .12s, filter .15s;
}
.btn-primary { background: linear-gradient(135deg, var(--theme-color), var(--accent2)); color: var(--on-accent); box-shadow: 0 6px 16px color-mix(in srgb, var(--theme-color) 36%, transparent); }
.btn-secondary { background: var(--card-bg); color: var(--theme-dark); border: .5px solid var(--border-color); }
.btn-danger { background: var(--card-bg); color: var(--danger); }
.btn-primary:active, .btn-secondary:active, .btn-danger:active { transform: scale(.97); filter: brightness(.97); }
.btn-small {
    display: inline-block; padding: 8px 16px; margin: 4px 6px 4px 0;
    border: none; border-radius: 999px; font-size: 13px; cursor: pointer;
    background: color-mix(in srgb, var(--theme-color) 30%, var(--card-bg)); color: var(--theme-dark);
    transition: transform .12s;
}
.btn-small:active { transform: scale(.95); }
.btn-link { border: none; background: none; color:var(--accent-text); font-size: 13px; cursor: pointer; padding: 6px 0; display: block; width: 100%; text-align: center; }
.status-text { font-size: 13px; color: var(--success); min-height: 18px; margin: 4px 4px; }
.content-text {
    margin-top: 14px; padding: 14px; background: var(--card-bg); border-radius: 16px;
    line-height: 1.7; font-size: 14px; white-space: pre-wrap; min-height: 20px;
}
.content-text:empty { display: none; }

/* ========== 列表 / Cell ========== */
.cell-group { background: var(--card-bg); border-radius: 16px; overflow: hidden; margin-bottom: 14px; }
.cell-item, .privacy-item {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 16px; background: var(--card-bg);
    border-bottom: .5px solid var(--border-color); font-size: 15px; cursor: default;
}
.cell-item:last-child, .privacy-item:last-child { border-bottom: none; }
.cell-item[onclick], .privacy-item[onclick] { cursor: pointer; }
.cell-item[onclick]:active { background: color-mix(in srgb, var(--theme-color) 12%, var(--card-bg)); }
.cell-value, .cell-arrow { color: var(--text-sub); font-size: 14px; }
.danger-cell span { color: var(--danger); }
.num-input { width: 60px; padding: 6px; border: .5px solid var(--border-color); border-radius: 8px; text-align: center; background: var(--card-bg); color: var(--theme-dark); }
.form-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; font-size: 15px; }
.form-row select { padding: 6px 12px; border-radius: 10px; border: .5px solid var(--border-color); background: var(--card-bg); color: var(--theme-dark); }

/* iOS Switch */
.ios-switch {
    -webkit-appearance: none; appearance: none;
    width: 51px !important; height: 31px !important; flex-shrink: 0;
    border-radius: 16px; background: #d8d8dd; position: relative; cursor: pointer;
    transition: background .25s; border: none; margin: 0;
}
.ios-switch::after {
    content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px;
    border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.25); transition: transform .25s;
}
.ios-switch:checked { background: var(--theme-color); }
.ios-switch:checked::after { transform: translateX(20px); }
.privacy-item input[type="checkbox"] { -webkit-appearance: none; appearance: none; width: 51px !important; height: 31px !important; flex-shrink: 0; border-radius: 16px; background: #d8d8dd; position: relative; cursor: pointer; transition: background .25s; border: none; margin: 0; }
.privacy-item input[type="checkbox"]::after { content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.25); transition: transform .25s; }
.privacy-item input[type="checkbox"]:checked { background: var(--theme-color); }
.privacy-item input[type="checkbox"]:checked::after { transform: translateX(20px); }
.privacy-item input[type="number"] { background: var(--card-bg); color: var(--theme-dark); }
.privacy-list { background: var(--card-bg); border-radius: 16px; overflow: hidden; }

/* ========== 头像 ========== */
.avatar-small, .avatar, .avatar-preview, .avatar-large {
    flex-shrink: 0; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    background: color-mix(in srgb, var(--theme-color) 28%, var(--card-bg));
    line-height: 1.1; text-align: center; white-space: nowrap;
}
.avatar-small { width: var(--avatar-size); height: var(--avatar-size); border-radius: var(--avatar-radius); font-size: 10px; }
.avatar { width: 58px; height: 58px; border-radius: var(--avatar-radius); font-size: 11px; }
.avatar-preview { width: 70px; height: 70px; border-radius: var(--avatar-radius); font-size: 11px; }
.avatar-large { width: 100px; height: 100px; border-radius: var(--avatar-radius); font-size: 14px; margin: 20px auto 10px; }
.avatar-small img, .avatar img, .avatar-preview img, .avatar-large img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar-upload-row { display: flex; align-items: center; gap: 12px; margin: 8px 0 14px; flex-wrap: wrap; }
.avatar-upload-row input[type="file"] { display: none; }

/* 群头像 */
.group-avatar { background: #dcdce2; padding: 2px; display: grid; gap: 1.5px; align-content: center; }
.group-avatar.n1 { grid-template-columns: 1fr; }
.group-avatar.n2, .group-avatar.n3, .group-avatar.n4 { grid-template-columns: 1fr 1fr; }
.ga-cell { overflow: hidden; border-radius: 3px; font-size: 9px; display: flex; align-items: center; justify-content: center; color: #fff; background: var(--theme-color); min-height: 0; }
.ga-cell img { width: 100%; height: 100%; object-fit: cover; }

/* ========== 微信 ========== */
.wechat-profile { display: flex; align-items: center; gap: 14px; padding: 16px 18px; background: var(--card-bg); border-radius: 18px; margin: 12px 0; }
.wechat-profile .name { font-size: 18px; font-weight: 600; }
.wechat-profile .signature { font-size: 13px; color: var(--text-sub); margin-top: 3px; }

#chatList, #contactsList { background: var(--card-bg); border-radius: 16px; overflow: hidden; }
#chatList:empty, #contactsList:empty { background: none; }
.chat-list-item, .contact-row {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border-bottom: .5px solid var(--border-color); cursor: pointer; background: var(--card-bg);
    transition: background .15s;
}
.chat-list-item:last-child, .contact-row:last-child { border-bottom: none; }
.chat-list-item:active, .contact-row:active { background: color-mix(in srgb, var(--theme-color) 14%, var(--card-bg)); }
.chat-list-item.pinned { background: color-mix(in srgb, var(--theme-color) 9%, var(--card-bg)); }
.chat-list-info { flex: 1; min-width: 0; }
.chat-list-top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.chat-list-name { font-size: 16px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-list-time { font-size: 11px; color: var(--text-sub); flex-shrink: 0; }
.chat-list-msg { font-size: 13px; color: var(--text-sub); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.contact-row > span { font-size: 16px; }
.delete-contact-btn { border: none; background: color-mix(in srgb, var(--danger) 12%, var(--card-bg)); color: var(--danger); padding: 6px 14px; border-radius: 999px; font-size: 13px; cursor: pointer; }
.list-title { font-size: 12px; color: var(--text-sub); padding: 10px 14px 4px; background: var(--bg-color); }

/* ========== 底部Tab ========== */
.tab-bar {
    flex-shrink: 0; display: flex; padding: 6px 0 24px;
    background: color-mix(in srgb, var(--card-bg) 90%, transparent);
    backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
    border-top: .5px solid var(--border-color);
}
.tab { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center; font-size: 10px; color: var(--text-sub); cursor: pointer; padding: 4px 0; transition: color .15s; }
.tab-icon { font-size: 10px; display: block; }
.tab.active { color:var(--accent-text); font-weight: 600; }
html[data-theme=pinkblack] .tab.active{color:color-mix(in srgb,var(--theme-color) 58%,#2a0f1a)}

/* ========== 聊天室 ========== */
.chat-box {
    flex: 1; overflow-y: auto; padding: 14px 12px;
    background: var(--chat-bg); display: flex; flex-direction: column; gap: 14px;
}
.message { display: flex; gap: 9px; align-items: flex-start; max-width: 100%; animation: msgIn .2s ease-out; }
@keyframes msgIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.user-message { flex-direction: row-reverse; }
.bubble-wrapper { display: flex; flex-direction: column; max-width: 72%; min-width: 0; }
.user-message .bubble-wrapper { align-items: flex-end; }
.sender-name { font-size: 11px; color: var(--text-sub); margin: 0 4px 3px; }
.bubble {
    padding: 10px 14px; font-size: var(--chat-font); line-height: 1.5; word-break: break-word;
    border-radius: var(--bubble-radius); box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.ai-message .bubble { background: var(--ai-bubble); color: var(--ai-bubble-text); border-top-left-radius: 5px; }
.user-message .bubble { background: var(--my-bubble); color: var(--my-bubble-text); border-top-right-radius: 5px; }
.bubble img { display: block; max-width: 100%; border-radius: 8px; }
.bubble-time { display: flex; gap: 6px; font-size: 10px; color: var(--text-sub); margin: 3px 4px 0; }
.read-status { color: var(--success); }
.sys-msg { align-self: center; font-size: 12px; color: var(--text-sub); background: rgba(120,120,128,.12); padding: 3px 12px; border-radius: 999px; max-width: 86%; text-align: center; }
.group-notice { flex-shrink: 0; padding: 8px 14px; font-size: 12px; color: #8a6d00; background: #fff6d6; border-bottom: .5px solid #f0e2a8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 聊天里的特殊气泡：转账 / 红包 / 位置 / 语音 */
.msg-card { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 14px; min-width: 180px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.msg-card .mc-ic { font-size: 11px; width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: rgba(255,255,255,.3); }
.msg-card .mc-body { flex: 1; min-width: 0; }
.msg-card .mc-t1 { font-size: 15px; font-weight: 600; }
.msg-card .mc-t2 { font-size: 11px; opacity: .8; margin-top: 2px; }
.card-transfer { background: linear-gradient(135deg, #ffb27a, #ff9052); color: #fff; }
.card-redpacket { background: linear-gradient(135deg, #ff6b6b, #ee5253); color: #fff; }
.card-location { background: var(--card-bg); color: var(--theme-dark); }
.card-location .mc-ic { background: color-mix(in srgb, var(--theme-color) 25%, var(--card-bg)); }
.card-voice { background: var(--my-bubble); color: var(--my-bubble-text); cursor: pointer; min-width: 90px; }
.ai-message .card-voice { background: var(--ai-bubble); color: var(--ai-bubble-text); }
.voice-wave { display: inline-flex; align-items: center; gap: 2px; }
.voice-wave i { width: 3px; background: currentColor; border-radius: 2px; opacity: .7; }
.voice-wave i:nth-child(1){height:8px;} .voice-wave i:nth-child(2){height:14px;} .voice-wave i:nth-child(3){height:10px;} .voice-wave i:nth-child(4){height:6px;}

.input-area {
    flex-shrink: 0; display: flex; gap: 8px; align-items: center;
    padding: 8px 12px; background: color-mix(in srgb, var(--card-bg) 90%, transparent);
    border-top: .5px solid var(--border-color);
}
.input-area input[type="text"] {
    flex: 1; padding: 10px 14px; border-radius: 20px; border: .5px solid var(--border-color);
    background: var(--bg-color); color: var(--theme-dark); font-size: 15px; outline: none;
}
.input-area input[type="text"]:focus { border-color: var(--theme-color); }
.input-area #sendBtn {
    border: none; background: linear-gradient(135deg, var(--theme-color), var(--accent2)); color: #fff; font-weight: 600;
    padding: 9px 18px; border-radius: 20px; cursor: pointer; font-size: 14px;
    box-shadow: 0 2px 8px color-mix(in srgb, var(--theme-color) 40%, transparent);
    transition: transform .12s;
}
.input-area #sendBtn:active { transform: scale(.95); }
.attach-btn { width: 34px; height: 34px; border-radius: 50%; border: 1.5px solid var(--text-sub); background: none; color: var(--text-sub); font-size: 20px; line-height: 1; cursor: pointer; }
.attach-panel {
    flex-shrink: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px 6px;
    padding: 16px 12px 24px; background: var(--bg-color); border-top: .5px solid var(--border-color);
}
.attach-item { display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; color: var(--text-sub); cursor: pointer; }
.attach-icon { width: 52px; height: 52px; border-radius: 16px; background: var(--card-bg); display: flex; align-items: center; justify-content: center; font-size: 11px; color: var(--theme-dark); box-shadow: 0 1px 4px rgba(0,0,0,.08); }

/* ========== 朋友圈 ========== */
.moments-compose { background: var(--card-bg); border-radius: 18px; padding: 12px; margin-bottom: 12px; }
.mc-row { display: flex; gap: 10px; align-items: flex-start; }
.mc-row textarea { flex: 1; border: none; outline: none; resize: none; font-size: 14px; background: transparent; color: var(--theme-dark); font-family: inherit; min-height: 50px; }
.mc-toolbar { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.mc-tool-btn { border: none; background: color-mix(in srgb, var(--theme-color) 18%, var(--card-bg)); color: var(--theme-dark); padding: 6px 12px; border-radius: 999px; font-size: 12px; cursor: pointer; }
.mc-post-btn { border: none; background: linear-gradient(135deg, var(--theme-color), var(--accent2)); color: #fff; padding: 6px 16px; border-radius: 999px; font-size: 13px; font-weight: 600; cursor: pointer; margin-left: auto; }
.img-name { font-size: 12px; color: var(--text-sub); }
.moments-char-post { text-align: center; margin-bottom: 16px; }
.btn-char-post { border: none; background: color-mix(in srgb, var(--theme-color) 16%, var(--card-bg)); color: var(--theme-dark); padding: 10px 20px; border-radius: 14px; font-size: 14px; cursor: pointer; width: 100%; margin-bottom: 8px; }
.moments-char-post .mc-row { background: var(--card-bg); border-radius: 14px; padding: 12px; margin-top: 8px; flex-direction: column; }
.moments-char-post textarea { width: 100%; min-height: 50px; }

.moment-item { background: var(--card-bg); border-radius: 18px; padding: 14px; margin-bottom: 12px; }
.moment-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.moment-author { font-weight: 600; font-size: 15px; flex: 1; }
.moment-time { font-size: 11px; color: var(--text-sub); }
.moment-content { font-size: 15px; line-height: 1.6; }
.moment-content img { max-width: 100%; border-radius: 10px; margin-top: 8px; }
.moment-actions { display: flex; gap: 16px; margin-top: 10px; padding-top: 8px; border-top: .5px solid var(--border-color); }
.moment-act-btn { border: none; background: none; color: var(--text-sub); font-size: 13px; cursor: pointer; padding: 4px 0; display: flex; align-items: center; gap: 4px; transition: color .15s; }
.moment-act-btn.liked { color: var(--danger); }
.moment-act-btn:active { transform: scale(.95); }
.moment-likes { font-size: 12px; color: var(--text-sub); padding: 6px 0 2px; }
.moment-comments { margin-top: 6px; }
.moment-comment { font-size: 13px; padding: 4px 0; color: var(--theme-dark); line-height: 1.5; }
.moment-comment b { color:var(--accent-text); }
.moment-comment-input { display: flex; gap: 6px; margin-top: 8px; }
.moment-comment-input input { flex: 1; padding: 6px 10px; border: .5px solid var(--border-color); border-radius: 10px; font-size: 13px; background: var(--bg-color); color: var(--theme-dark); outline: none; }
.moment-comment-input button { border: none; background: var(--theme-color); color: #fff; padding: 6px 12px; border-radius: 10px; font-size: 12px; cursor: pointer; }

/* ========== 角色选择条 ========== */
.char-picker-bar {
    flex-shrink: 0; display: flex; align-items: center; gap: 8px;
    padding: 8px 12px; margin-bottom: 12px; border-radius: 14px;
    background: color-mix(in srgb, var(--theme-color) 14%, var(--card-bg));
    font-size: 13px; color: var(--theme-dark);
}
.char-picker-bar select, .char-picker-select { flex: 1; padding: 6px 10px; border-radius: 10px; border: .5px solid var(--border-color); background: var(--card-bg); color: var(--theme-dark); font-size: 13px; }

/* ========== 群聊选人 ========== */
.pick-list { background: var(--card-bg); border-radius: 16px; overflow: hidden; }
.pick-row { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: .5px solid var(--border-color); cursor: pointer; }
.pick-row:last-child { border-bottom: none; }
.pick-row input { display: none; }
.pick-dot { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid #c7c7cc; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: transparent; font-size: 13px; transition: all .15s; }
.pick-row input:checked ~ .pick-dot { background: var(--theme-color); border-color: var(--theme-color); color: #fff; }
.pick-name { flex: 1; font-size: 16px; }
.member-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px 6px; background: var(--card-bg); border-radius: 16px; padding: 16px 10px; margin-bottom: 14px; }
.member-item { display: flex; flex-direction: column; align-items: center; gap: 5px; font-size: 11px; position: relative; min-width: 0; }
.member-item .avatar-small { width: 48px; height: 48px; }
.member-item .m-name { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-sub); }
.member-tool { width: 48px; height: 48px; border-radius: 12px; border: 1.5px dashed #c7c7cc; display: flex; align-items: center; justify-content: center; font-size: 24px; color: #aaa; cursor: pointer; }
.member-del { position: absolute; top: -6px; right: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--danger); color: #fff; font-size: 12px; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 2; }
.owner-tag { font-size: 9px; background: var(--theme-color); color: #fff; padding: 0 5px; border-radius: 6px; }

/* ========== 主题页 ========== */
.theme-palette { display: flex; gap: 14px; margin-bottom: 12px; flex-wrap: wrap; }
.theme-dot { width: 44px; height: 44px; border-radius: 50%; background: var(--dot); cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); transition: transform .15s, box-shadow .15s; }
.theme-dot:active { transform: scale(.9); }
.theme-dot:hover { box-shadow: 0 4px 16px rgba(0,0,0,.25); }
.custom-color-row { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 14px; }
.custom-color-row input[type="color"] { width: 44px; height: 34px; border: none; background: none; padding: 0; cursor: pointer; }
.wallpaper-options { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 10px; }
.wp-swatch { height: 70px; border-radius: 16px; cursor: pointer; border: 3px solid transparent; box-shadow: 0 2px 8px rgba(0,0,0,.1); background-size: cover; background-position: center; transition: border-color .15s; }
.wp-swatch.active { border-color: var(--theme-color); }
.preview-chat { background: var(--chat-bg); border-radius: 16px; padding: 12px; display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.preview-chat .message { animation: none; }

.ui-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 16px; border-bottom: .5px solid var(--border-color); background: var(--card-bg); font-size: 15px; }
.ui-row:last-child { border-bottom: none; }
.ui-row input[type="color"] { width: 44px; height: 30px; border: none; background: none; padding: 0; cursor: pointer; }
.ui-row input[type="range"] { flex: 1; max-width: 160px; accent-color: var(--theme-color); }
.ui-row select { padding: 6px 10px; border-radius: 8px; border: .5px solid var(--border-color); background: var(--card-bg); color: var(--theme-dark); }
.ui-val { width: 38px; text-align: right; color: var(--text-sub); font-size: 13px; }

/* ========== 外卖 ========== */
.takeout-search, .shop-search { padding: 10px 14px; }
.takeout-header ~ .scroll-area .takeout-search { background: linear-gradient(135deg, var(--accent-soft), var(--accent2)); padding-bottom: 14px; }
.shop-header ~ .scroll-area .shop-search { background: linear-gradient(135deg, var(--accent-soft), var(--accent2)); padding-bottom: 14px; }
.takeout-cats { display: flex; gap: 4px; padding: 14px 10px; background: var(--card-bg); border-radius: 0 0 18px 18px; margin-bottom: 10px; }
.takeout-cat { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11px; cursor: pointer; color: var(--theme-dark); }
.tc-dot { width: 38px; height: 38px; border-radius: 12px; background: var(--tc); }
.menu-sidebar { width: 80px; background: var(--bg-color); overflow-y: auto; }
.menu-category-item { padding: 14px 8px; font-size: 13px; text-align: center; cursor: pointer; color: var(--text-sub); border-left: 3px solid transparent; }
.menu-category-item.active { background: var(--card-bg); color: var(--theme-dark); font-weight: 600; border-left-color: var(--theme-color); }
.merchant-card { display: flex; gap: 12px; padding: 14px; margin-bottom: 10px; background: var(--card-bg); border-radius: 18px; cursor: pointer; transition: transform .12s; }
.merchant-card:active { transform: scale(.98); }
.merchant-img { width: 70px; height: 70px; border-radius: 14px; background: color-mix(in srgb, var(--theme-color) 18%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0; }
.merchant-info { flex: 1; min-width: 0; }
.merchant-name { font-size: 16px; font-weight: 600; }
.merchant-desc { font-size: 12px; color: var(--text-sub); margin: 4px 0; }
.merchant-price { font-size: 14px; color: var(--accent2); font-weight: 700; }
.menu-item-card { display: flex; gap: 10px; margin-bottom: 12px; background: var(--card-bg); border-radius: 14px; padding: 10px; }
.menu-item-img { width: 66px; height: 66px; border-radius: 12px; background: color-mix(in srgb, var(--theme-color) 14%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 10px; flex-shrink: 0; }
.menu-item-info { flex: 1; display: flex; flex-direction: column; justify-content: space-between; }
.menu-item-name { font-size: 15px; font-weight: 600; }
.menu-item-sales { font-size: 12px; color: var(--text-sub); margin-top: 3px; }
.menu-item-bottom { display: flex; justify-content: space-between; align-items: center; }
.menu-item-price { color: var(--accent2); font-weight: 700; }
.menu-item-btn { border: none; background: var(--theme-color); border-radius: 999px; padding: 6px 14px; font-size: 12px; cursor: pointer; color: #fff; font-weight: 600; }
.order-status-box { background: var(--card-bg); border-radius: 16px; padding: 18px; line-height: 1.7; font-size: 14px; }

/* ========== 淘宝 ========== */
.taobao-tabs { display: flex; background: var(--card-bg); border-bottom: .5px solid var(--border-color); }
.taobao-tab { flex: 1; text-align: center; padding: 12px; font-size: 14px; color: var(--text-sub); cursor: pointer; transition: all .15s; }
.taobao-tab.active { color:var(--accent-text); font-weight: 700; border-bottom: 2.5px solid var(--theme-color); }
.product-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 10px; }
.product-card { background: var(--card-bg); border-radius: 18px; overflow: hidden; cursor: pointer; transition: transform .12s; }
.product-card:active { transform: scale(.97); }
.product-img { height: 110px; background: color-mix(in srgb, var(--theme-color) 10%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 11px; }
.product-info { padding: 8px 10px 10px; }
.product-title { font-size: 13px; line-height: 1.4; height: 36px; overflow: hidden; }
.product-price-row { display: flex; align-items: baseline; gap: 2px; margin: 6px 0 4px; }
.product-price-symbol { color: var(--accent2); font-size: 12px; }
.product-price { color: var(--accent2); font-size: 18px; font-weight: 700; }
.product-sales { margin-left: auto; font-size: 11px; color: var(--text-sub); }
.product-tag { font-size: 10px; color:var(--accent-text); border: .5px solid var(--theme-color); border-radius: 4px; padding: 0 4px; }
.product-detail-img { height: 200px; border-radius: 16px; background: color-mix(in srgb, var(--theme-color) 14%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 14px; }
.product-detail-title { font-size: 17px; font-weight: 600; margin: 14px 0 6px; }
.product-detail-price { color: var(--accent2); font-size: 24px; font-weight: 700; }
.product-detail-desc { margin-top: 10px; font-size: 14px; line-height: 1.7; }
.product-detail-btn { width: 100%; padding: 14px; border: none; border-radius: 14px; background: linear-gradient(135deg, var(--theme-color), var(--accent2)); color: #fff; font-size: 16px; font-weight: 600; margin-top: 16px; cursor: pointer; box-shadow: 0 4px 14px color-mix(in srgb, var(--theme-color) 40%, transparent); }

/* ========== 偷看手机 ========== */
.peek-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.peek-btn { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 10px; background: var(--card-bg); border-radius: 16px; border: none; cursor: pointer; font-size: 13px; color: var(--theme-dark); transition: transform .12s; }
.peek-btn:active { transform: scale(.95); }
.peek-icon { font-size: 11px; width: 42px; height: 42px; border-radius: 12px; background: color-mix(in srgb, var(--theme-color) 22%, var(--card-bg)); display: flex; align-items: center; justify-content: center; }

/* ========== 亲密空间 ========== */
.intimate-panel { background: var(--card-bg); border-radius: 22px; padding: 20px; margin-bottom: 16px; text-align: center; }
.intimate-avatar-area { margin-bottom: 14px; }
.intimate-avatar { width: 80px; height: 80px; border-radius: 50%; margin: 0 auto 10px; background: color-mix(in srgb, var(--theme-color) 28%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 12px; box-shadow: 0 4px 20px color-mix(in srgb, var(--theme-color) 30%, transparent); transition: transform .3s, box-shadow .3s; overflow: hidden; }
.intimate-avatar img { width: 100%; height: 100%; object-fit: cover; }
.intimate-avatar.pulse { animation: pulse .6s ease; }
@keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.1); } }
.intimate-name { font-size: 18px; font-weight: 600; }
.intimate-level { font-size: 12px; color: var(--text-sub); margin-top: 4px; }
.intimate-bar-wrap { display: flex; align-items: center; gap: 8px; }
.intimate-bar { flex: 1; height: 6px; background: rgba(120,120,128,.14); border-radius: 4px; overflow: hidden; }
.intimate-bar-fill { height: 100%; width: 0; border-radius: 4px; background: linear-gradient(90deg, var(--theme-color), var(--accent2)); transition: width .5s ease; }
.intimate-pts { font-size: 11px; color: var(--text-sub); white-space: nowrap; }
.intimate-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.intimate-btn { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 4px; background: var(--card-bg); border-radius: 16px; border: none; cursor: pointer; transition: transform .12s, box-shadow .15s; }
.intimate-btn:active { transform: scale(.92); box-shadow: 0 2px 12px color-mix(in srgb, var(--theme-color) 30%, transparent); }
.ib-icon { width: 44px; height: 40px; border-radius: 14px; background: color-mix(in srgb, var(--theme-color) 20%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 9px; }
.ib-label { font-size: 11px; color: var(--theme-dark); }
.intimate-reply { background: var(--card-bg); border-radius: 16px; padding: 16px; min-height: 60px; font-size: 15px; line-height: 1.7; white-space: normal; margin-top: 12px; }
.intimate-reply:empty { display: none; }
.intimate-reply .ir-action { color: var(--text-sub); font-size: 13px; margin-bottom: 6px; }
.intimate-reply .ir-text { font-size: 15px; }

/* ========== 心动小游戏 ========== */
.game-grid { display: flex; flex-direction: column; gap: 12px; margin-bottom: 10px; }
.game-card { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 18px; background: var(--card-bg); border: none; border-radius: 20px; cursor: pointer; text-align: left; transition: transform .12s, box-shadow .15s; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.game-card:active { transform: scale(.97); }
.game-ic { font-size: 20px; margin-bottom: 4px; }
.game-name { font-size: 16px; font-weight: 700; color: var(--theme-dark); }
.game-desc { font-size: 12px; color: var(--text-sub); }
.game-qa { background: var(--card-bg); border-radius: 18px; padding: 16px; margin-top: 4px; }
.game-q { font-size: 16px; font-weight: 600; line-height: 1.6; margin-bottom: 12px; }
.game-opts { display: flex; flex-direction: column; gap: 8px; }
.game-opt { padding: 12px 14px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--bg-color); font-size: 14px; cursor: pointer; transition: all .15s; }
.game-opt:active { transform: scale(.98); }
.game-opt.picked { background: color-mix(in srgb, var(--theme-color) 20%, var(--card-bg)); border-color: var(--theme-color); }
.game-result { margin-top: 12px; padding: 14px; border-radius: 14px; background: color-mix(in srgb, var(--theme-color) 12%, var(--card-bg)); font-size: 14px; line-height: 1.7; }

/* ========== 生活工具箱 ========== */
.toolkit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.toolkit-btn { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 4px; background: var(--card-bg); border-radius: 16px; border: none; cursor: pointer; font-size: 12px; color: var(--theme-dark); transition: transform .12s; }
.toolkit-btn:active { transform: scale(.94); }
.toolkit-btn span:first-child { font-size: 10px; width: 38px; height: 36px; border-radius: 12px; background: color-mix(in srgb, var(--theme-color) 18%, var(--card-bg)); display: flex; align-items: center; justify-content: center; }

/* ========== MCP ========== */
.mcp-ticker { flex-shrink: 0; overflow: hidden; white-space: nowrap; margin: 0 14px; padding: 8px 0; border-radius: 14px; background: color-mix(in srgb, var(--theme-color) 16%, var(--card-bg)); font-size: 13px; color: var(--theme-dark); text-align: center; }
.mcp-ticker-inner { display: block; padding-left: 0; }
#mcpTickerText { display: inline-block; }
#mcpTickerText.scroll { padding-left: 100%; animation: tickerMove 16s linear infinite; }
@keyframes tickerMove { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.mcp-card { background: var(--card-bg); border-radius: 18px; padding: 14px; margin-bottom: 12px; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.mcp-who { display: flex; align-items: center; gap: 12px; }
.mcp-who-info { flex: 1; min-width: 0; }
.mcp-name { font-size: 17px; font-weight: 600; }
.mcp-slot { font-size: 12px; color: var(--text-sub); margin-top: 2px; }
.mcp-mood-label { font-size: 12px; color: var(--text-sub); }
.mood-bar { height: 6px; background: rgba(120,120,128,.14); border-radius: 4px; overflow: hidden; margin-top: 12px; }
.mood-fill { height: 100%; width: 0; border-radius: 4px; transition: width .6s ease, background .6s; }
.mcp-hint { display: none; margin-top: 10px; font-size: 12px; color: #b07a00; background: #fff6d6; padding: 8px 10px; border-radius: 10px; line-height: 1.5; }
.mood-pill { font-size: 10px; padding: 1px 7px; border-radius: 999px; background: color-mix(in srgb, var(--theme-color) 32%, var(--card-bg)); color: var(--theme-dark); white-space: nowrap; }
.st-act { color: var(--text-sub); font-size: 13px; margin-bottom: 6px; }
.st-say { font-size: 15px; line-height: 1.7; }

.feed-item, .diary-card, .cart-item, .note-item, .miss-bubble { background: var(--card-bg); border-radius: 16px; padding: 12px 14px; margin-bottom: 10px; }
.feed-text { font-size: 14px; line-height: 1.6; }
.feed-meta { font-size: 11px; color: var(--text-sub); margin-top: 4px; }
.diary-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.diary-text { font-size: 14px; line-height: 1.8; }
.diary-whisper { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--border-color); font-size: 13px; color: #c2185b; }
.cart-item { display: flex; gap: 10px; align-items: center; }
.cart-item.done { opacity: .6; }
.cart-main { flex: 1; min-width: 0; }
.cart-title { font-size: 15px; font-weight: 600; }
.cart-reason { font-size: 12px; color: var(--text-sub); margin-top: 4px; line-height: 1.5; }
.cart-side { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.cart-price { color: var(--accent2); font-weight: 700; }
.note-item { display: flex; gap: 10px; align-items: flex-start; }
.note-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--theme-color); margin-top: 7px; flex-shrink: 0; }
.note-main { flex: 1; min-width: 0; }
.note-fact { font-size: 15px; }
.note-remark { font-size: 12px; color: #c2185b; margin-top: 3px; }
.note-add { display: flex; gap: 8px; align-items: flex-start; }
.note-add .input-text { margin-bottom: 8px; flex: 1; }
.miss-wait { text-align: center; padding: 20px; color: var(--text-sub); }
.miss-text { font-size: 15px; line-height: 1.8; }
.empty-tip { font-size: 13px; color: var(--text-sub); text-align: center; line-height: 1.7; padding: 18px 10px; }
.tag { display: inline-block; font-size: 11px; padding: 1px 8px; border-radius: 999px; background: color-mix(in srgb, var(--theme-color) 28%, var(--card-bg)); color: var(--theme-dark); }
.mini-x { border: none; background: none; color: var(--text-sub); font-size: 18px; cursor: pointer; padding: 0 4px; line-height: 1; }
.red-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 2px var(--card-bg); vertical-align: top; margin-left: 3px; }
#mcpDesktopDot { position: absolute; top: -3px; right: -3px; width: 14px; height: 14px; box-shadow: 0 0 0 2px #fff; margin: 0; }

/* 分段控件 */
.seg { display: flex; background: rgba(120,120,128,.1); border-radius: 12px; padding: 2px; margin: 4px 0 14px; }
.seg button { flex: 1; border: none; background: none; padding: 7px 4px; font-size: 13px; border-radius: 10px; color: var(--theme-dark); cursor: pointer; transition: all .2s; position: relative; }
.seg button.on { background: var(--card-bg); box-shadow: 0 1px 4px rgba(0,0,0,.12); font-weight: 600; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 1px solid var(--border-color); background: var(--card-bg); color: var(--theme-dark); border-radius: 999px; padding: 7px 14px; font-size: 13px; cursor: pointer; transition: all .15s; }
.chip.on { background: var(--theme-color); border-color: var(--theme-color); color: #fff; font-weight: 600; }
.chip:active { transform: scale(.94); }

.wb-input { flex: 1; min-width: 0; text-align: right; border: none; outline: none; background: transparent; color: var(--theme-dark); font-size: 15px; }
.entry-add { background: var(--card-bg); border-radius: 16px; padding: 12px; margin-top: 8px; }
.entry-add .input-text, .entry-add .input-textarea { background: var(--bg-color); }

/* 手机顶部通知横幅 */
.phone-banner { position: absolute; top: 44px; left: 10px; right: 10px; z-index: 380; display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 20px; background: color-mix(in srgb, var(--card-bg) 82%, transparent); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); box-shadow: 0 8px 28px rgba(0,0,0,.2); transform: translateY(-160%); transition: transform .4s cubic-bezier(.3,.9,.3,1); pointer-events: none; }
.phone-banner.show { transform: none; }
.pb-text { min-width: 0; font-size: 13px; line-height: 1.4; }
.pb-text b { display: block; font-size: 13px; }
.pb-text span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; color: var(--theme-dark); }

/* 我的页面 */
.me-card { display: flex; align-items: center; gap: 14px; background: var(--card-bg); border-radius: 18px; padding: 18px; margin-bottom: 16px; }
.me-avatar { width: 64px; height: 64px; border-radius: var(--avatar-radius); background: color-mix(in srgb, var(--theme-color) 28%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-size: 12px; overflow: hidden; flex-shrink: 0; }
.me-avatar img { width: 100%; height: 100%; object-fit: cover; }
.me-info { flex: 1; min-width: 0; }
.me-name { font-size: 18px; font-weight: 600; }
.me-sig { font-size: 13px; color: var(--text-sub); margin-top: 4px; }
.me-section { background: var(--card-bg); border-radius: 18px; padding: 16px; margin-bottom: 14px; }

/* ========== 全屏来电 / 通话 ========== */
.call-screen { position: absolute; inset: 0; z-index: 500; display: flex; flex-direction: column; align-items: center; color: #fff; overflow: hidden; animation: appIn .25s ease-out; }
.call-bg { position: absolute; inset: 0; background: linear-gradient(165deg, #2a1e24 0%, #1a1a1e 55%, #5a2a3e 100%); z-index: -1; }
.call-top { margin-top: 90px; text-align: center; }
.call-avatar { width: 110px; height: 110px; border-radius: 50%; margin: 0 auto 20px; background: rgba(255,255,255,.14); display: flex; align-items: center; justify-content: center; font-size: 16px; overflow: hidden; box-shadow: 0 8px 30px rgba(0,0,0,.3); animation: callPulse 2s ease-in-out infinite; }
.call-avatar img { width: 100%; height: 100%; object-fit: cover; }
@keyframes callPulse { 0%,100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--theme-color) 40%, transparent); } 50% { box-shadow: 0 0 0 18px color-mix(in srgb, var(--theme-color) 0%, transparent); } }
.call-name { font-size: 28px; font-weight: 600; letter-spacing: 1px; }
.call-status { font-size: 15px; opacity: .8; margin-top: 10px; }
.call-caption { flex: 1; display: flex; align-items: center; justify-content: center; padding: 20px 40px; text-align: center; font-size: 16px; line-height: 1.8; opacity: .95; white-space: pre-wrap; }
.call-actions { display: flex; justify-content: space-around; width: 100%; padding: 0 40px 70px; }
.call-actions.incoming { justify-content: space-between; }
.call-act { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.call-act-label { font-size: 13px; opacity: .85; }
.call-btn { width: 66px; height: 66px; border-radius: 50%; border: none; cursor: pointer; font-size: 14px; color: #fff; display: flex; align-items: center; justify-content: center; transition: transform .15s; }
.call-btn:active { transform: scale(.9); }
.call-btn.accept { background: #34c759; animation: shake 1.2s ease-in-out infinite; }
.call-btn.decline, .call-btn.hangup { background: #ff4d6d; }
.call-btn.mini { width: 56px; height: 56px; background: rgba(255,255,255,.18); }
@keyframes shake { 0%,100%{transform:rotate(0);} 25%{transform:rotate(-12deg);} 75%{transform:rotate(12deg);} }

/* ========== 全屏亲密互动 ========== */
.intimate-full { position: absolute; inset: 0; z-index: 480; display: flex; flex-direction: column; color: #fff; overflow: hidden; animation: appIn .25s ease-out; }
.if-bg { position: absolute; inset: 0; background: linear-gradient(165deg, #3a2430 0%, #1f1a1e 50%, #7a3a52 100%); z-index: -1; }
.if-header { display: flex; align-items: center; justify-content: space-between; padding: 50px 16px 8px; font-size: 17px; font-weight: 600; }
.if-header .if-close { background: none; border: none; color: #fff; font-size: 15px; cursor: pointer; }
.if-heart { font-size: 13px; opacity: .9; }
.if-stage { flex: 1 1 auto; min-height: 0; display: flex; align-items: center; justify-content: center; position: relative; }
.if-avatar { width: min(150px, 22vh); height: min(150px, 22vh); flex-shrink: 0; border-radius: 50%; background: rgba(255,255,255,.12); display: flex; align-items: center; justify-content: center; font-size: 18px; overflow: hidden; box-shadow: 0 8px 40px color-mix(in srgb, var(--theme-color) 35%, transparent); transition: transform .3s; }
.if-avatar img { width: 100%; height: 100%; object-fit: cover; }
.if-avatar.pulse { animation: pulse .6s ease; }
.if-hearts { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.if-hearts .fly-heart { position: absolute; bottom: 40%; font-size: 22px; color:var(--accent-text); animation: flyUp 1.4s ease-out forwards; }
@keyframes flyUp { 0% { opacity: 0; transform: translateY(0) scale(.5); } 20% { opacity: 1; } 100% { opacity: 0; transform: translateY(-160px) scale(1.3); } }
.if-reply { margin: 0 20px 14px; padding: 14px 16px; background: rgba(255,255,255,.14); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius: 18px; font-size: 15px; line-height: 1.7; min-height: 56px; max-height: 40vh; overflow-y: auto; flex-shrink: 0; white-space: normal; }
.if-reply::-webkit-scrollbar { width: 0; }
.if-reply .ir-action { font-size: 12.5px; opacity: .68; margin-bottom: 6px; line-height: 1.5; }
.if-reply .ir-text { font-size: 15px; line-height: 1.7; margin-bottom: 4px; }
.if-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 0 16px 40px; }
.if-act-btn { padding: 12px 4px; background: rgba(255,255,255,.14); border: none; border-radius: 16px; color: #fff; font-size: 11px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 5px; transition: transform .12s, background .15s; }
.if-act-btn:active { transform: scale(.92); background: color-mix(in srgb, var(--theme-color) 40%, transparent); }
.if-act-ic { font-size: 10px; }

/* ========== 弹层 (转账/红包) ========== */
.modal-mask { position: absolute; inset: 0; z-index: 490; background: rgba(0,0,0,.4); display: flex; align-items: flex-end; animation: appIn .2s ease-out; }
.modal-sheet { width: 100%; background: var(--card-bg); border-radius: 24px 24px 0 0; padding: 24px 20px 36px; animation: sheetUp .3s cubic-bezier(.3,.9,.3,1); }
@keyframes sheetUp { from { transform: translateY(100%); } to { transform: none; } }
.money-head { font-size: 17px; font-weight: 600; text-align: center; margin-bottom: 20px; }
.redpacket-head { color: #fff; }
.redpacket-sheet { background: linear-gradient(160deg, #ff6b6b, #ee5253); }
.redpacket-sheet .input-text { background: rgba(255,255,255,.9); }
.money-amount-row { display: flex; align-items: center; justify-content: center; gap: 8px; margin-bottom: 18px; }
.money-symbol { font-size: 30px; font-weight: 600; }
.money-symbol.gold { color: #ffe08a; }
.redpacket-sheet .money-symbol { color: #fff; }
.money-input { font-size: 36px; font-weight: 600; border: none; outline: none; background: transparent; width: 180px; text-align: center; color: var(--theme-dark); }
.redpacket-sheet .money-input { color: #fff; }
.redpacket-sheet .money-input::placeholder { color: rgba(255,255,255,.6); }
.btn-redpacket { display: block; width: 180px; margin: 0 auto; padding: 14px; border: none; border-radius: 14px; background: #ffd94a; color: #a8302a; font-size: 16px; font-weight: 700; cursor: pointer; }
.redpacket-sheet .btn-link { color: rgba(255,255,255,.85); }

/* ========== 世界书列表 ========== */
.world-card { display: flex; align-items: center; gap: 12px; padding: 14px; margin-bottom: 10px; background: var(--card-bg); border-radius: 16px; cursor: pointer; transition: transform .12s; }
.world-card:active { transform: scale(.98); }
.wc-ic { width: 44px; height: 44px; border-radius: 14px; background: color-mix(in srgb, var(--theme-color) 24%, var(--card-bg)); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px; flex-shrink: 0; }
.wc-main { flex: 1; min-width: 0; }
.wc-name { font-size: 16px; font-weight: 600; }
.wc-sub { font-size: 12px; color: var(--text-sub); margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ========== 消息操作 / 语音文字 ========== */
.msg-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.msg-actions button { margin: 0; padding: 12px; font-size: 15px; }
.msg-preview { font-size: 13px; color: var(--text-sub); text-align: center; margin-bottom: 14px; max-height: 3.4em; overflow: hidden; line-height: 1.7; }
.voice-text { font-size: 13px; color: var(--text-sub); background: rgba(120,120,128,.12); padding: 6px 10px; border-radius: 10px; margin-top: 4px; max-width: 100%; word-break: break-word; }
.bubble { cursor: pointer; }

.worldbook-icon { background: linear-gradient(145deg, #ffc9a8, #ff8a8a); color: #7a3a2e; }
.ui-row select { max-width: 58%; }

/* 统一弹窗 */
.ui-dlg-mask{position:absolute;inset:0;z-index:900;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;animation:appIn .15s ease-out}
.ui-dlg-mask.hidden{display:none}
.ui-dlg{width:76%;max-width:300px;background:var(--card-bg,#fff);border-radius:20px;overflow:hidden;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.ui-dlg-msg{padding:24px 18px 18px;font-size:15px;line-height:1.55;color:var(--text-main,#222);white-space:pre-wrap;word-break:break-word}
.ui-dlg-btns{display:flex;border-top:.5px solid rgba(128,128,128,.25)}
.ui-dlg-btns button{flex:1;padding:14px 0;background:none;border:none;font-size:16px;color:var(--text-main,#222);cursor:pointer}
.ui-dlg-btns button+button{border-left:.5px solid rgba(128,128,128,.25)}
.ui-dlg-btns button.ok{color:var(--accent,var(--accent2));font-weight:600}
.ui-dlg-btns button.danger{color:#ff3b30}
.ui-toast{position:absolute;left:50%;top:14%;transform:translate(-50%,-10px);z-index:950;max-width:78%;background:rgba(30,30,32,.88);color:#fff;font-size:14px;line-height:1.5;padding:10px 16px;border-radius:14px;opacity:0;pointer-events:none;transition:.25s;text-align:center;white-space:pre-wrap;word-break:break-word}
.ui-toast.show{opacity:1;transform:translate(-50%,0)}

.li-tag{font-size:10px;padding:1px 6px;border-radius:8px;background:rgba(128,128,128,.18);color:var(--text-sub);margin-left:4px;vertical-align:middle;font-weight:400}
.li-tag.danger{background:rgba(255,77,109,.15);color:var(--danger)}
.search-hit{padding:11px 4px;border-bottom:.5px solid var(--border-color);cursor:pointer}
.search-hit:active{background:color-mix(in srgb,var(--theme-color) 12%,var(--card-bg))}
.sh-top{display:flex;justify-content:space-between;font-size:12px;color:var(--text-sub);margin-bottom:3px}
.sh-txt{font-size:14px;line-height:1.5;word-break:break-all}
.sh-txt mark{background:color-mix(in srgb,var(--theme-color) 35%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.flash-hit{animation:flashHit 1.6s ease-out}
@keyframes flashHit{0%,40%{filter:drop-shadow(0 0 8px var(--theme-color))}100%{filter:none}}
.takeout-cat.active span{color:var(--accent-text);font-weight:700}
.takeout-cat{cursor:pointer}

/* TA的生活 · 陪伴 */
#mcpSeg{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}#mcpSeg::-webkit-scrollbar{display:none}
#mcpSeg button{flex:0 0 auto;padding:7px 12px;white-space:nowrap}
.plan-line{margin-top:10px;position:relative}
.plan-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;margin-bottom:6px;background:var(--card-bg);font-size:14px}
.plan-item.now{background:color-mix(in srgb,var(--theme-color) 16%,var(--card-bg));font-weight:600}
.plan-t{color:var(--text-sub);font-variant-numeric:tabular-nums;width:44px}.plan-e{flex:1}
.plan-now{font-style:normal;font-size:11px;background:var(--theme-color);color:var(--on-accent);padding:1px 8px;border-radius:9px}
.care-row{display:flex;gap:8px;margin:10px 0}.care-cell{flex:1;background:var(--card-bg);border-radius:14px;padding:12px 4px;text-align:center}
.care-cell b{display:block;font-size:22px;color:var(--accent-text)}.care-cell span{font-size:11px;color:var(--text-sub)}
.care-btns{display:flex;gap:8px}.care-btns button{flex:1}.care-btns button:disabled{opacity:.5}
.care-reply{margin-top:10px;background:var(--card-bg);border-radius:14px;padding:12px 14px;font-size:14px;line-height:1.6}
.care-who{display:block;font-size:12px;color:var(--text-sub);margin-bottom:2px}
.focus-box{background:var(--card-bg);border-radius:16px;padding:16px;text-align:center}
.focus-time{font-size:44px;font-weight:300;font-variant-numeric:tabular-nums;margin-bottom:8px}
.focus-box .btn-primary,.focus-box .btn-secondary{margin-top:10px;width:100%}.focus-say{margin-top:10px;font-size:14px;min-height:20px;color:var(--text-sub)}
.day-add{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.day-yearly{font-size:13px;color:var(--text-sub)}
.day-card,.vow-item{display:flex;align-items:center;gap:10px;background:var(--card-bg);border-radius:14px;padding:12px 14px;margin-bottom:8px;position:relative}
.day-card.today{background:color-mix(in srgb,var(--theme-color) 18%,var(--card-bg))}
.day-main,.vow-main{flex:1;min-width:0}.day-name,.vow-text{font-size:15px;font-weight:600}.vow-text{font-weight:500}
.day-date,.vow-by{font-size:12px;color:var(--text-sub);margin-top:2px}.day-cnt{font-size:13px;color:var(--accent-text);font-weight:600;text-align:right}
.day-del{border:none;background:none;color:var(--text-sub);font-size:18px;cursor:pointer;padding:0 4px}
.vow-item.done .vow-text{text-decoration:line-through;opacity:.55}
.mail-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:13px;color:var(--text-sub)}
.mail-card{position:relative;background:var(--card-bg);border-radius:14px;padding:14px;margin-top:10px;border-left:4px solid var(--theme-color)}
.mail-card.from-me{border-left-color:#9aa0b4}.mail-card.sealed{opacity:.75}
.mail-head{display:flex;justify-content:space-between;font-size:12px;color:var(--text-sub);margin-bottom:6px}.mail-head b{color:var(--theme-dark)}
.mail-body{font-size:14px;line-height:1.75}.mail-tag{font-size:11px;color:var(--accent-text);margin-top:6px}
.mail-card .day-del{position:absolute;right:8px;bottom:6px}

/* 小窝 */
.nest-icon{background:linear-gradient(145deg,#ffe3a8,#ffb48a);font-size:30px}
.nest-type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 14px}
.nest-type{background:var(--card-bg);border-radius:16px;padding:14px 4px;text-align:center;border:2px solid transparent;cursor:pointer}
.nest-type span{display:block;font-size:34px}.nest-type i{font-style:normal;font-size:12px;color:var(--text-sub)}
.nest-type.on{border-color:var(--theme-color);background:color-mix(in srgb,var(--theme-color) 12%,var(--card-bg))}
.nest-scene{position:relative;height:250px;border-radius:22px;overflow:hidden;background:linear-gradient(180deg,#ffe9f1 0%,#fff6e8 70%);margin-top:6px;user-select:none}
.nest-scene.plant{background:linear-gradient(180deg,#d9f0ff 0%,#f1fbe6 70%)}
.nest-scene.sad{filter:saturate(.55) brightness(.96)}
.nest-top{position:absolute;top:10px;left:12px;right:12px;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#6b5560;z-index:3}
.nest-exp{flex:1;height:7px;border-radius:5px;background:rgba(0,0,0,.1);overflow:hidden}.nest-exp div{height:100%;width:0;background:linear-gradient(90deg,var(--accent-soft),var(--accent2));transition:width .4s}
.nest-ground{position:absolute;left:0;right:0;bottom:0;height:62px;background:linear-gradient(180deg,#f3d9b6,#e8c595)}
.nest-scene.plant .nest-ground{background:linear-gradient(180deg,#9ad27a,#7bbb5c)}
.nest-creature{position:absolute;left:50%;bottom:44px;margin-left:-.55em;line-height:1;cursor:pointer;transition:transform .4s,font-size .4s;z-index:2;filter:drop-shadow(0 6px 4px rgba(0,0,0,.15));animation:nestIdle 3s ease-in-out infinite}
.nest-creature.bounce{animation:nestBounce .5s}
@keyframes nestIdle{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes nestBounce{0%{transform:scale(1)}30%{transform:scale(1.2,.85)}60%{transform:scale(.92,1.15) translateY(-14px)}100%{transform:scale(1)}}
.nest-bubble{position:absolute;left:50%;top:44px;transform:translateX(-50%) scale(.8);opacity:0;background:#fff;color:#444;font-size:13px;padding:7px 12px;border-radius:14px;max-width:70%;text-align:center;transition:.25s;z-index:4;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.nest-bubble.show{opacity:1;transform:translateX(-50%) scale(1)}
.nest-fx{position:absolute;bottom:90px;font-size:20px;z-index:5;pointer-events:none;animation:nestFloat 1.5s ease-out forwards}
@keyframes nestFloat{0%{opacity:0;transform:translate(0,0) scale(.6)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-120px) scale(1.2)}}
#nestBall{position:absolute;font-size:30px;z-index:6;cursor:pointer;transition:left .25s,top .25s;animation:nestIdle .8s infinite}
.nest-title{text-align:center;font-size:18px;font-weight:700;margin:12px 0 4px}.nest-title i{font-style:normal;font-size:12px;font-weight:400;color:var(--text-sub)}
.nest-stats{background:var(--card-bg);border-radius:16px;padding:10px 14px;margin:8px 0}
.nest-stat{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px}.nest-stat span{width:74px}.nest-stat .mood-bar{flex:1;margin:0}.nest-stat b{width:26px;text-align:right;font-weight:500;color:var(--text-sub)}
.nest-acts{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.nest-acts button{background:var(--card-bg);border:none;border-radius:14px;padding:10px 0;font-size:12px;color:var(--theme-dark);cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.nest-acts button span{display:block;font-size:22px;margin-bottom:2px}.nest-acts button:active{transform:scale(.94)}.nest-acts button:disabled{opacity:.5}
.nest-log-i{font-size:13px;line-height:1.5;padding:7px 10px;margin-bottom:6px;border-radius:10px;background:var(--card-bg);position:relative}
.nest-log-i span{font-size:11px;color:#fff;background:#9aa0b4;padding:1px 7px;border-radius:8px;margin-right:6px}.nest-log-i.ta span{background:var(--theme-color)}
.nest-log-i em{display:block;font-size:11px;color:var(--text-sub);font-style:normal;margin-top:2px}

/* 主屏幕组件 & 自定义图标 */
.desktop-grid{overflow-y:auto;scrollbar-width:none;grid-auto-rows:min-content}.desktop-grid::-webkit-scrollbar{display:none}
.icon-bg.custom-img,.he-prev.custom-img{background-size:cover;background-position:center;background-repeat:no-repeat}
.hw{border-radius:22px;padding:14px;color:#fff;background:rgba(30,24,28,.38);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 6px 20px rgba(0,0,0,.18);overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:128px;box-sizing:border-box}
.hw.wide{grid-column:span 4}.hw.half{grid-column:span 2}
.hw-clock{min-height:104px;background:linear-gradient(135deg,color-mix(in srgb, var(--theme-color) 55%, transparent),rgba(40,30,36,.45))}
.hw-time{font-size:44px;font-weight:200;line-height:1;letter-spacing:1px;font-variant-numeric:tabular-nums}
.hw-date{font-size:13px;margin-top:6px;opacity:.9}.hw-sub{font-size:12px;opacity:.85;line-height:1.4}
.hw-big{font-size:38px;font-weight:300;line-height:1.1;margin:4px 0}.hw-big small{font-size:14px}
.hw-row{display:flex;align-items:center;gap:8px}.hw-row b{font-size:15px}
.hw-row2{display:flex;justify-content:space-between;align-items:baseline;margin-top:4px}.hw-row2 span{font-size:12px;opacity:.85}
.hw-petemo{font-size:46px;text-align:center;line-height:1.1}
.hw-two{display:flex;gap:6px;margin-top:6px}.hw-two div{flex:1;text-align:center;background:rgba(255,255,255,.14);border-radius:12px;padding:8px 0}.hw-two b{display:block;font-size:24px;font-weight:400}.hw-two span{font-size:11px;opacity:.85}
.hw-notetxt{font-size:14px;line-height:1.55;word-break:break-all;opacity:.95}
.hw-photo-on{background-size:cover;background-position:center;padding:0;min-height:150px}
.he-row{display:flex;align-items:center;gap:10px;background:var(--card-bg);border-radius:14px;padding:8px 10px;margin-bottom:7px}
.he-prev{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff;flex-shrink:0;overflow:hidden;white-space:nowrap}
.he-prev.he-w{background:rgba(120,120,128,.35);font-size:18px}
.he-name{flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.he-ctl{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:66%}
.he-ctl button,.he-add button{border:none;background:rgba(120,120,128,.14);border-radius:9px;padding:5px 9px;font-size:12px;color:var(--theme-dark);cursor:pointer}
.he-ctl button.on{background:var(--theme-color);color:var(--on-accent)}
.he-add{display:flex;flex-wrap:wrap;gap:6px}

/* ========== 聊天：iMessage 风格 + 液态玻璃 ========== */
.time-sep{align-self:center;font-size:11px;color:var(--text-sub);margin:8px 0 2px;letter-spacing:.2px}
#chatRoomApp:not(.chat-ios) .time-sep{display:none}
.read-status{font-size:10px;color:var(--text-sub);opacity:.85}
.read-status[data-r="0"]{color:var(--accent-text);opacity:1}
.li-badge{position:absolute;right:14px;bottom:12px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ff3b30;color:#fff;font-size:11px;line-height:18px;text-align:center;box-sizing:border-box}
.li-badge.mute{min-width:9px;width:9px;height:9px;padding:0;background:#b6b6bd;bottom:16px}
.chat-list-item{position:relative}
.cb-swatches{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.cb-sw{width:46px;height:62px;border-radius:12px;border:2px solid transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-sub);background:rgba(120,120,128,.14);box-sizing:border-box}
.cb-sw.on{border-color:var(--theme-color)}
.cb-dim{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-sub)}.cb-dim input{flex:1}

#chatRoomApp.chat-ios .chat-box{gap:2px;padding:14px 12px 18px}
#chatRoomApp.chat-ios .message{gap:7px;align-items:flex-end}
#chatRoomApp.chat-ios .message.grp-last{margin-bottom:8px}
#chatRoomApp.chat-ios .bubble-wrapper{max-width:76%}
#chatRoomApp.chat-ios .bubble-time{margin:2px 6px 0}
#chatRoomApp.chat-ios .bubble{position:relative;padding:9px 15px;border-radius:21px;border:1px solid rgba(255,255,255,.5);
    backdrop-filter:blur(16px) saturate(1.7);-webkit-backdrop-filter:blur(16px) saturate(1.7);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -10px 18px rgba(255,255,255,.1),0 8px 22px rgba(0,0,0,.13)}
#chatRoomApp.chat-ios .bubble::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 90% at 8% 0%,rgba(255,255,255,.55),transparent 55%);opacity:.65}
#chatRoomApp.chat-ios .ai-message .bubble{background:linear-gradient(135deg,color-mix(in srgb,var(--ai-bubble) 78%,transparent),color-mix(in srgb,var(--ai-bubble) 36%,transparent));color:var(--ai-bubble-text);border-top-left-radius:21px}
#chatRoomApp.chat-ios .user-message .bubble{background:linear-gradient(135deg,color-mix(in srgb,var(--my-bubble) 86%,transparent),color-mix(in srgb,var(--my-bubble) 50%,transparent));color:var(--my-bubble-text);border-top-right-radius:21px}
#chatRoomApp.chat-ios .ai-message.grp-last .bubble{border-bottom-left-radius:6px}
#chatRoomApp.chat-ios .user-message.grp-last .bubble{border-bottom-right-radius:6px}
#chatRoomApp.chat-ios .app-header{background:rgba(255,255,255,.3);backdrop-filter:blur(22px) saturate(1.8);-webkit-backdrop-filter:blur(22px) saturate(1.8);border-bottom:1px solid rgba(255,255,255,.35)}
#chatRoomApp.chat-ios .app-header>button{background:rgba(255,255,255,.45);border:1px solid rgba(255,255,255,.6);border-radius:999px;padding:6px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 3px 10px rgba(0,0,0,.08)}
#chatRoomApp.chat-ios .input-area{background:transparent;border-top:none;padding:8px 10px 14px;gap:8px}
#chatRoomApp.chat-ios .input-area input[type="text"]{background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.65);border-radius:22px;padding:11px 17px;
    backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 6px 18px rgba(0,0,0,.1)}
#chatRoomApp.chat-ios .attach-btn{width:40px;height:40px;background:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.65);color:var(--theme-dark);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 6px 18px rgba(0,0,0,.1)}
#chatRoomApp.chat-ios .input-area #sendBtn{background:linear-gradient(135deg,color-mix(in srgb,var(--my-bubble) 88%,transparent),color-mix(in srgb,var(--my-bubble) 55%,transparent));border:1px solid rgba(255,255,255,.55);height:40px;padding:0 18px;border-radius:22px;
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 6px 16px color-mix(in srgb,var(--my-bubble) 35%,transparent)}
#chatRoomApp.has-bg .time-sep{color:rgba(255,255,255,.85);text-shadow:0 1px 3px rgba(0,0,0,.4)}
#chatRoomApp.has-bg .read-status{color:rgba(255,255,255,.88);text-shadow:0 1px 3px rgba(0,0,0,.35)}
#chatRoomApp.has-bg .read-status[data-r="0"]{color:#fff}

/* 聊天：每条都带头像和时间 */
#chatRoomApp.chat-ios .message .avatar-small{width:32px;height:32px;font-size:10px;flex-shrink:0}
#chatRoomApp.chat-ios .bubble-time{gap:6px}
#chatRoomApp.chat-ios .user-message .bubble-time{justify-content:flex-end}
#chatRoomApp.chat-ios .message{align-items:flex-start}
#chatRoomApp.has-bg .bt-time{color:rgba(255,255,255,.88);text-shadow:0 1px 3px rgba(0,0,0,.35)}

/* ========== 主屏：iOS 液态玻璃 ========== */
#desktop.ic-glass .icon-bg:not(.custom-img){background:linear-gradient(145deg,rgba(255,255,255,.34),rgba(255,255,255,.08));color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(20px) saturate(1.7);-webkit-backdrop-filter:blur(20px) saturate(1.7);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.85),inset 0 -9px 16px rgba(255,255,255,.08),0 8px 22px rgba(0,0,0,.18)}
#desktop.ic-glass .icon-bg.custom-img{border:1px solid rgba(255,255,255,.5);box-shadow:inset 0 1px 1px rgba(255,255,255,.7),0 8px 22px rgba(0,0,0,.2)}
#desktop.ic-glass .app-icon span,#desktop.ic-glass .dock-icon span{text-shadow:0 1px 4px rgba(0,0,0,.55)}
#desktop.w-glass .hw{background:linear-gradient(145deg,rgba(255,255,255,.28),rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.42);
  backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.8),inset 0 -12px 22px rgba(255,255,255,.06),0 10px 30px rgba(0,0,0,.2)}
#desktop.w-glass .hw-clock{background:linear-gradient(145deg,rgba(255,255,255,.3),rgba(255,255,255,.1))}
#desktop.w-glass .hw-two div{background:rgba(255,255,255,.18)}
#desktop.ic-glass .dock{background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px 1px rgba(255,255,255,.7),0 10px 30px rgba(0,0,0,.2)}
.hw-cal{padding:12px 14px;min-height:0}
.cal-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.cal-head b{font-size:34px;font-weight:300;line-height:1}.cal-head span{font-size:13px;opacity:.9}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0;text-align:center;font-size:12px}
.cal-grid i{font-style:normal;opacity:.55;font-size:11px}
.cal-grid span{position:relative;height:22px;line-height:22px}
.cal-grid span.today{background:#fff;color:#222;border-radius:50%;width:22px;margin:0 auto;font-weight:600}
.cal-grid span.dot::after{content:'';position:absolute;left:50%;bottom:-1px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--theme-color)}
.cal-grid span.off{opacity:.3}
.he-style{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px}
.he-style .seg{margin:0;flex:1;max-width:210px}

.vis-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-sub);margin:6px 0 4px}.vis-row .seg{margin:0;flex:1}.vis-row .seg button{font-size:12px;padding:6px 2px}
.vis-chars{flex-wrap:wrap;gap:6px;margin:6px 0}
.moment-vis{font-size:11px;color:var(--text-sub);margin:2px 0 4px}
.privacy-item{display:flex;align-items:center;padding:8px 0}

.stk-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.stk-head b{font-size:16px}.stk-head .btn-small{margin-left:6px}
.stk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;overflow-y:auto;padding:4px 2px 10px}
.stk{position:relative;background:rgba(120,120,128,.1);border-radius:14px;padding:8px 4px 4px;text-align:center;cursor:pointer;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.stk:active{transform:scale(.95)}.stk img{width:56px;height:56px;object-fit:contain}.stk-face{font-size:13px;line-height:1.3;min-height:44px;display:flex;align-items:center;word-break:break-all}
.stk i{font-style:normal;font-size:11px;color:var(--text-sub);margin-top:3px}
.stk-x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#ff4d6d;color:#fff;font-size:14px;line-height:20px}
.bubble.sticker-img,#chatRoomApp.chat-ios .bubble.sticker-img{background:none!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;padding:0!important}
.bubble.sticker-img::before{display:none!important}.bubble.sticker-img img{width:120px;max-width:100%;border-radius:0}
.bubble.sticker-face{font-size:20px;line-height:1.3;padding:10px 14px}

/* 查岗 */
.pk-phone{display:flex;flex-direction:column;gap:10px;margin-top:8px}.pk-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pk-card{background:var(--card-bg);border-radius:20px;padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.pk-ring{width:100%;max-width:130px;display:block;margin:0 auto;color:var(--theme-dark)}.pk-na{text-align:center;font-size:14px;padding:18px 0;color:var(--text-sub)}.pk-na small{font-size:11px}
.pk-cap{font-size:12px;color:var(--text-sub);margin-bottom:4px}.pk-val{font-size:24px;font-weight:600}.pk-val small{font-size:12px;font-weight:400;color:var(--text-sub)}.pk-sub{font-size:12px;color:var(--text-sub);margin-top:2px;word-break:break-all}
.pk-bars{display:flex;align-items:flex-end;gap:3px;height:70px;margin:10px 0 4px}.pk-bars i{flex:1;background:rgba(120,120,128,.18);border-radius:3px;min-height:3px}.pk-bars i.on{background:linear-gradient(180deg,var(--theme-color),color-mix(in srgb,var(--theme-color) 50%,#fff))}.pk-bars i.now{outline:1.5px solid var(--theme-color);outline-offset:1px}
.pk-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--text-sub)}.pk-chip{display:inline-block;margin-top:8px;font-size:12px;background:rgba(120,120,128,.14);border-radius:12px;padding:3px 10px}
.pk-wxrow{display:flex;align-items:center;gap:12px}.pk-wxi{font-size:42px}.pk-cityrow{display:flex;gap:8px;margin-top:10px}.pk-cityrow input{flex:1;margin:0}
.pk-perm{background:var(--card-bg);border-radius:16px;padding:4px 14px}.pk-permrow{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:.5px solid var(--border-color);font-size:14px}.pk-permrow:last-child{border:none}.pk-permrow.master{font-weight:600}
.pk-seg{margin:0;max-width:190px}.pk-seg button{padding:5px 8px;font-size:12px}
.pk-log{background:var(--card-bg);border-radius:16px;padding:12px 14px;margin-bottom:10px}.pk-loghead{display:flex;align-items:center;gap:8px;font-size:13px}.pk-loghead em{margin-left:auto;font-style:normal;font-size:11px;color:var(--text-sub)}
.pk-saw{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 4px}.pk-saw span{font-size:11px;background:rgba(120,120,128,.14);border-radius:10px;padding:2px 8px}.pk-act{font-size:12px;color:var(--text-sub);font-style:italic}.pk-say{font-size:14px;line-height:1.55;margin-top:4px}
.pk-consent{text-align:center;padding:24px 8px}.pk-big{font-size:54px}.pk-consent h3{margin:8px 0}.pk-consent p{font-size:13px;line-height:1.7;color:var(--text-sub);text-align:left}.pk-note{background:rgba(120,120,128,.1);border-radius:12px;padding:10px 12px}
.peek-banner{position:absolute;left:12px;right:12px;top:-140px;z-index:960;display:flex;gap:10px;padding:12px 14px;border-radius:22px;color:#fff;background:linear-gradient(145deg,rgba(40,34,38,.7),rgba(40,34,38,.5));backdrop-filter:blur(24px) saturate(1.7);-webkit-backdrop-filter:blur(24px) saturate(1.7);border:1px solid rgba(255,255,255,.3);box-shadow:inset 0 1px 1px rgba(255,255,255,.5),0 12px 34px rgba(0,0,0,.35);transition:top .45s cubic-bezier(.3,1.2,.4,1);cursor:pointer}
.peek-banner.show{top:46px}.peek-banner .pb-ic{font-size:26px;animation:pbScan 1.2s ease-in-out infinite}.peek-banner b{font-size:13px;display:block}.peek-banner i{font-size:11px;opacity:.8;font-style:normal;display:block}.peek-banner p{margin:4px 0 0;font-size:13px;line-height:1.45}
@keyframes pbScan{0%,100%{transform:translateX(-3px) rotate(-8deg)}50%{transform:translateX(3px) rotate(8deg)}}

/* ===== 一起听 / 一起看 ===== */
.tg-card{background:var(--card-bg);border-radius:20px;padding:12px;margin-bottom:10px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.tg-player{padding:0;overflow:hidden}
.tg-stage{position:relative;background:#16161a;min-height:150px;display:flex;flex-direction:column;justify-content:flex-end}
.tg-stage video{width:100%;display:block;max-height:240px;background:#000}
.tg-stage:not(.is-video) video{height:44px;background:transparent}
.tg-art{display:none;padding:26px 16px 12px;text-align:center;color:#fff}
.tg-stage:not(.is-video) .tg-art{display:block}
.tg-art-title{font-size:16px;font-weight:600;margin-top:12px;word-break:break-all}
.tg-eq{display:flex;gap:5px;justify-content:center;align-items:flex-end;height:38px}
.tg-eq i{width:6px;height:10px;border-radius:3px;background:var(--theme-color);transition:height .2s}
.tg-stage.playing .tg-eq i{animation:tgEq 0.9s ease-in-out infinite}
.tg-eq i:nth-child(2){animation-delay:.15s}.tg-eq i:nth-child(3){animation-delay:.3s}.tg-eq i:nth-child(4){animation-delay:.45s}.tg-eq i:nth-child(5){animation-delay:.6s}
@keyframes tgEq{0%,100%{height:8px}50%{height:36px}}
.tg-live{min-height:0;padding:0 14px;font-size:14px;text-align:center;color:var(--theme-dark);transition:all .2s}
.tg-live.on{padding:10px 14px;background:color-mix(in srgb, var(--theme-color) 12%, transparent)}
.tg-row{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.tg-row .input-text{flex:1;min-width:0;margin:0}
.tg-file{position:relative;overflow:hidden;cursor:pointer;display:inline-block}
.tg-file input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.tg-who{font-size:12px;color:var(--text-sub);margin:6px 0 10px}
.tg-freqrow{margin:0;font-size:13px}.tg-freqrow select{max-width:60%}
.tg-chat{max-height:240px;min-height:90px;overflow-y:auto;padding:4px 2px 8px;display:flex;flex-direction:column;gap:8px}
.tg-msg{max-width:84%;font-size:14px;line-height:1.5}
.tg-msg p{padding:8px 12px;border-radius:16px;word-break:break-word}
.tg-msg .tg-who{display:block;font-size:11px;margin:0 6px 2px;color:var(--text-sub)}
.tg-msg.ta{align-self:flex-start}.tg-msg.ta p{background:var(--bg-color)}
.tg-msg.me{align-self:flex-end;text-align:right}.tg-msg.me p{background:var(--theme-color);color:var(--on-accent);text-align:left}
.tg-sys{align-self:center;font-size:11px;color:var(--text-sub);background:rgba(120,120,128,.1);padding:3px 10px;border-radius:10px}
.tg-empty{color:var(--text-sub);font-size:13px;text-align:center;padding:24px 0}
.tg-ask{width:100%}

/* ========== 软糯桌面 ========== */
#desktop.sweet{--ink:#5b3a4a;--ink2:#9a7886;--berry:#d9577e}
#desktop.sweet.wp-default{background:linear-gradient(165deg,#fbeaf0 0%,#eadff3 52%,#d9ebe9 100%)}
#desktop.sweet::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:.9;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cpath d='M30 18l2.2 5.8L38 26l-5.8 2.2L30 34l-2.2-5.8L22 26l5.8-2.2z' fill='%23fff' fill-opacity='.85'/%3E%3Cpath d='M112 92l1.6 4.2 4.4 1.6-4.4 1.6-1.6 4.2-1.6-4.2-4.4-1.6 4.4-1.6z' fill='%23fff' fill-opacity='.75'/%3E%3Ccircle cx='86' cy='28' r='2.4' fill='%23f4b6c8' fill-opacity='.55'/%3E%3Ccircle cx='24' cy='104' r='2' fill='%23c9b6ec' fill-opacity='.6'/%3E%3Ccircle cx='128' cy='34' r='1.6' fill='%23fff' fill-opacity='.9'/%3E%3Ccircle cx='62' cy='132' r='1.8' fill='%23bfe0da' fill-opacity='.8'/%3E%3C/svg%3E");background-size:150px 150px}
#desktop.sweet>*{position:relative;z-index:1}
.phone:has(#desktop.sweet:not(.hidden)) .status-bar{color:#5b3a4a;text-shadow:none}
#desktop.sweet .desktop-grid{gap:18px 6px;padding:2px 2px 16px}
#desktop.sweet .hw.wide{margin-bottom:2px}

/* 图标 */
#desktop.ic-sweet .icon-bg:not(.custom-img){width:58px;height:58px;border-radius:calc(var(--icon-radius) + 4px);border:1.5px solid rgba(255,255,255,.92);color:#fff;text-shadow:0 1px 2px rgba(150,80,110,.35);
  background:linear-gradient(150deg,var(--c1,#ffc1d1),var(--c2,#ff8fb1));backdrop-filter:none;-webkit-backdrop-filter:none;
  box-shadow:inset 0 2px 2px rgba(255,255,255,.7),0 9px 16px -6px var(--c2,#ff8fb1)}
#desktop.ic-sweet .icon-bg svg{width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgba(150,80,110,.25))}
#desktop.ic-sweet .wechat-icon{--c1:#ffc4d3;--c2:#ff8fb1}#desktop.ic-sweet .takeout-icon{--c1:#ffdcae;--c2:#ffb46b}
#desktop.ic-sweet .shop-icon{--c1:#ffc0d6;--c2:#f58bb2}#desktop.ic-sweet .mcp-icon{--c1:#d9c9f6;--c2:#a98ae0}
#desktop.ic-sweet .nest-icon{--c1:#ffeaa8;--c2:#ffc66b;color:#8a5a2e;text-shadow:none;font-size:11px}
#desktop.ic-sweet .intimate-icon{--c1:#ffb3c8;--c2:#ff7fa3}#desktop.ic-sweet .games-icon{--c1:#c3e4f8;--c2:#82bfe8}
#desktop.ic-sweet .toolkit-icon{--c1:#c6ecd9;--c2:#86cfa9}#desktop.ic-sweet .worldbook-icon{--c1:#e8d3f7;--c2:#c79ae8}
#desktop.ic-sweet .theme-icon{--c1:#ffd6ea;--c2:#ff9ccb}#desktop.ic-sweet .settings-icon{--c1:#dcd9e6;--c2:#a9a4bd}
#desktop.ic-sweet .app-icon span,#desktop.ic-sweet .dock-icon span{color:var(--ink);text-shadow:none;font-weight:500;letter-spacing:.2px}
#desktop.ic-sweet .dock{background:rgba(255,255,255,.55);border:1.5px solid rgba(255,255,255,.9);box-shadow:0 12px 28px -8px rgba(170,110,140,.35);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
#desktop.ic-sweet .dock-icon span{display:none}
#desktop.ic-sweet .dock{padding:12px 16px 14px;gap:16px}

/* 组件 */
#desktop.w-sweet .hw{color:var(--ink);background:rgba(255,255,255,.58);border:1.5px solid rgba(255,255,255,.92);border-radius:26px;
  backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 14px 28px -12px rgba(170,110,140,.38)}
#desktop.w-sweet .hw-sub,#desktop.w-sweet .hw-date{color:var(--ink2);opacity:1}
#desktop.w-sweet .hw-two div{background:rgba(255,190,210,.28)}
#desktop.w-sweet .hw-clock{background:rgba(255,255,255,.58)}
#desktop.w-sweet .cal-grid span.today{background:var(--berry);color:#fff}
#desktop.w-sweet .cal-grid span.dot::after{background:var(--berry)}
#desktop.w-sweet .mood-bar{background:rgba(217,87,126,.15)}
#desktop.w-sweet .mood-fill{background:linear-gradient(90deg,#ffa7c0,var(--berry))}

/* 我们 */
.hw-us{position:relative;overflow:visible!important;align-items:center;text-align:center;min-height:178px;padding:22px 16px 16px;gap:2px}
.us-tape{position:absolute;top:-7px;left:26px;width:70px;height:20px;transform:rotate(-7deg);border-radius:3px;
  background:repeating-linear-gradient(45deg,rgba(255,176,198,.8) 0 6px,rgba(255,255,255,.78) 6px 12px);box-shadow:0 2px 4px rgba(170,110,140,.28)}
.us-row{display:flex;align-items:flex-end;justify-content:center;gap:0;width:100%}
.us-av{width:62px;height:62px;border-radius:50%;overflow:hidden;border:3px solid #fff;background:#ffe6ee;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--ink);box-shadow:0 8px 16px -6px rgba(170,110,140,.5);flex-shrink:0}
.us-string{width:120px;height:44px;margin:0 -2px 14px;overflow:visible}
.us-arc{stroke:#e49bb4}.us-heart{fill:#ff7fa3;stroke:#fff;stroke-width:1.5;transform-origin:60px 18px;animation:usBeat 2.6s ease-in-out infinite}
@keyframes usBeat{0%,100%{transform:scale(1)}8%{transform:scale(1.18)}16%{transform:scale(1)}24%{transform:scale(1.1)}32%{transform:scale(1)}}
.us-days{display:flex;align-items:baseline;gap:6px;margin-top:2px}
.us-days b{font:italic 400 44px/1 Georgia,"Songti SC","Noto Serif SC",serif;color:var(--berry);letter-spacing:-1px}
.us-days small{font-size:12px;color:var(--ink2)}
.us-days.us-set small{font-size:13px;padding:6px 0}
.us-line{font-size:12px;color:var(--ink2);margin-top:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 天气 */
#desktop .hw-weather,#desktop .hw-music{min-height:142px;align-items:flex-start;gap:0}
.wx-svg{width:46px;height:46px;margin:2px 0 0}
#desktop.w-sweet .hw-weather .hw-big{font-size:36px;font-weight:300;margin:0}
/* 一起听 */
.hw-music{align-items:flex-start}
.mu-disc{width:62px;height:62px;border-radius:50%;position:relative;margin-bottom:10px;
  background:repeating-radial-gradient(circle at center,#5b3a4a 0 1.5px,#6d4a5b 1.5px 3px);box-shadow:0 8px 14px -6px rgba(91,58,74,.6)}
.mu-disc i{position:absolute;inset:21px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#fff 0 2px,#ff9cb8 2.5px)}
.mu-disc.spin{animation:muSpin 5s linear infinite}
@keyframes muSpin{to{transform:rotate(360deg)}}
.mu-t{font-size:14px;font-weight:600;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.mu-s{font-size:12px;color:var(--ink2);margin-top:2px}

@media (prefers-reduced-motion:reduce){.us-heart,.mu-disc.spin{animation:none}}

/* ========== 小窝 · 软糯 ========== */
.nest-art{display:block;width:100%;height:auto;overflow:visible}
.nest-art .m-s{display:none}
.nest-scene.sad .nest-art .m-h{display:none}.nest-scene.sad .nest-art .m-s{display:inline}
.nest-art .eye{transform-box:fill-box;transform-origin:center;animation:nestBlink 5s infinite}
@keyframes nestBlink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.nest-creature{width:116px;margin-left:-58px;font-size:0;bottom:46px;filter:drop-shadow(0 8px 5px rgba(170,110,100,.18))}
.nest-scene{height:262px;background:
  radial-gradient(ellipse 54px 20px at 18% 26%,rgba(255,255,255,.95) 60%,transparent 62%),
  radial-gradient(ellipse 38px 14px at 25% 22%,rgba(255,255,255,.95) 60%,transparent 62%),
  radial-gradient(ellipse 62px 22px at 82% 38%,rgba(255,255,255,.9) 60%,transparent 62%),
  radial-gradient(circle at 70% 18%,rgba(255,255,255,.9) 0 2px,transparent 3px),radial-gradient(circle at 40% 12%,rgba(255,255,255,.9) 0 1.6px,transparent 2.6px),
  linear-gradient(180deg,#ffe4ee 0%,#fdeefa 45%,#fff6ea 100%);box-shadow:0 14px 26px -14px rgba(190,120,150,.5)}
.nest-scene.plant{background:
  radial-gradient(ellipse 54px 20px at 20% 24%,rgba(255,255,255,.95) 60%,transparent 62%),radial-gradient(ellipse 62px 22px at 80% 34%,rgba(255,255,255,.9) 60%,transparent 62%),
  linear-gradient(180deg,#d8efff 0%,#eaf8f1 55%,#f4fbe9 100%)}
.nest-ground{height:70px;border-radius:50% 50% 0 0/26px 26px 0 0;background:linear-gradient(180deg,#ffd9bd,#f6c4a2);box-shadow:inset 0 5px 0 rgba(255,255,255,.45)}
.nest-scene.plant .nest-ground{background:linear-gradient(180deg,#b7e39a,#93d07a)}
.nest-ground::after{content:'';position:absolute;left:0;right:0;top:14px;height:30px;opacity:.55;
  background:radial-gradient(circle at 14% 50%,#fff 0 3px,transparent 4px),radial-gradient(circle at 78% 30%,#fff 0 2.4px,transparent 3.4px),radial-gradient(circle at 92% 70%,#ffb3c6 0 3px,transparent 4px),radial-gradient(circle at 36% 74%,#ffe08a 0 2.6px,transparent 3.6px)}
.nest-top{color:#7a5266}.nest-exp{background:rgba(255,255,255,.7)}
.nest-bubble{border-radius:18px;font-weight:500;color:#6b4757;box-shadow:0 6px 14px -4px rgba(190,120,150,.45)}
.nest-bubble::after{content:'';position:absolute;left:50%;bottom:-5px;margin-left:-5px;width:10px;height:10px;background:#fff;transform:rotate(45deg);border-radius:0 0 3px 0}
.nest-title{color:var(--theme-dark)}
.nest-stats{border-radius:22px;box-shadow:0 10px 22px -14px rgba(190,120,150,.5)}
.nest-stat .mood-bar{height:9px;background:rgba(255,160,190,.18)}
.nest-acts{gap:9px}
.nest-acts button{border-radius:20px;padding:11px 0 9px;font-weight:500;color:#6b4757;background:linear-gradient(180deg,#fff,#fff4f8);border:1.5px solid #ffe0ea;box-shadow:0 8px 14px -10px rgba(190,120,150,.7)}
.nest-acts button:nth-child(2){background:linear-gradient(180deg,#fff,#f3f9ff);border-color:#dcebfb}.nest-acts button:nth-child(3){background:linear-gradient(180deg,#fff,#f1fbf5);border-color:#d6f0e1}
.nest-acts button:nth-child(4){background:linear-gradient(180deg,#fff,#f7f2ff);border-color:#e6dcfb}.nest-acts button:nth-child(5){background:linear-gradient(180deg,#fff,#fff8e8);border-color:#fbe9bd}
.nest-type{border-radius:22px;border:2px solid transparent;background:#fff;box-shadow:0 8px 16px -12px rgba(190,120,150,.6)}
.nest-type span{width:64px;margin:0 auto 4px}
.nest-log-i{border-radius:16px}
.hw-petemo{width:64px;height:64px;margin:0 auto;font-size:0}
@media (prefers-reduced-motion:reduce){.nest-art .eye{animation:none}}


/* ========== 黑白 · 液态玻璃（默认） ========== */
#desktop:not(.sweet){--ink:#fff;--ink2:rgba(255,255,255,.78);--berry:#fff}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop:not(.sweet){--ink:#26262a;--ink2:#6c6c75;--berry:#26262a}
#desktop.ic-glass .icon-bg svg{width:28px;height:28px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:none}
#desktop.ic-glass .app-icon span,#desktop.ic-glass .dock-icon span{color:var(--ink)}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .app-icon span,html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .dock-icon span{text-shadow:none;font-weight:500}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .icon-bg:not(.custom-img){background:linear-gradient(145deg,rgba(255,255,255,.7),rgba(255,255,255,.26));color:var(--ink);text-shadow:none;border:1px solid rgba(255,255,255,.9);box-shadow:inset 0 1px 1px #fff,0 10px 22px rgba(70,70,90,.14)}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .dock{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(255,255,255,.34));border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 1px #fff,0 12px 30px rgba(70,70,90,.16)}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.w-glass .hw{color:var(--ink);background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(255,255,255,.34));border-color:rgba(255,255,255,.9);box-shadow:inset 0 1px 1px #fff,0 14px 32px rgba(70,70,90,.15)}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.w-glass .hw-sub,html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.w-glass .hw-date{color:var(--ink2);opacity:1}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.w-glass .hw-two div{background:rgba(255,255,255,.55)}
html[data-theme~=mono] #desktop.w-glass .cal-grid span.today{background:var(--ink);color:var(--bg-color)}
html[data-theme~=mono] #desktop.w-glass .cal-grid span.dot::after{background:var(--ink)}
html[data-theme~=mono] #desktop .us-tape{background:repeating-linear-gradient(45deg,rgba(90,90,100,.5) 0 6px,rgba(255,255,255,.8) 6px 12px)}
html[data-theme~=mono] #desktop:not(.sweet) .us-heart{fill:var(--ink);stroke:#fff}
html[data-theme~=mono] #desktop:not(.sweet) .us-arc{stroke:var(--ink2)}
html[data-theme~=mono] #desktop:not(.sweet) .mu-disc i{background:radial-gradient(circle,#fff 0 2px,#bdbdc6 2.5px)}
html[data-theme~=mono] #desktop:not(.sweet) .mood-fill{background:var(--ink)}
html[data-theme~=mono]:not([data-theme~=monodark]) .phone:has(#desktop:not(.hidden)) .status-bar,
html[data-theme~=mono]:not([data-theme~=monodark]) .phone:has(#lockScreen:not(.hidden)) .status-bar{color:#26262a;text-shadow:none}
html[data-theme~=mono]:not([data-theme~=monodark]) .lock-screen{color:#26262a}
html[data-theme~=mono]:not([data-theme~=monodark]) .lock-time{text-shadow:none}
html[data-theme~=mono]:not([data-theme~=monodark]) .lock-widget{background:rgba(255,255,255,.55);border-color:rgba(255,255,255,.9)}
html[data-theme~=mono] .lw-icon{background:rgba(120,120,135,.2)}
#desktop:not(.sweet) .mu-t{color:var(--ink)}#desktop:not(.sweet) .mu-s{color:var(--ink2)}

/* 微信列表：像真正的微信一样，通栏、细分隔线 */
.wechat-tab-pane .scroll-area{padding:0 0 16px}
#chatList,#contactsList{border-radius:0;margin:0}
.chat-list-item,.contact-row{padding:12px 16px;border-bottom:none}
.chat-list-item::after,.contact-row::after{content:'';position:absolute;left:70px;right:0;bottom:0;border-bottom:.5px solid var(--border-color)}
.contact-row{position:relative}
.chat-list-item:last-child::after,.contact-row:last-child::after{display:none}
/* 黑白主题里的细节 */
html[data-theme~=mono] #desktop:not(.sweet) .us-av{background:#ececf0}
html[data-theme~=mono] #desktop:not(.sweet) .mu-disc{background:repeating-radial-gradient(circle at center,#2a2a2e 0 1.5px,#3a3a40 1.5px 3px);box-shadow:0 8px 14px -6px rgba(30,30,40,.5)}


/* ========== 液态玻璃（厚玻璃：亮边 + 暗边 + 高光） ========== */
#desktop.ic-glass .icon-bg:not(.custom-img){position:relative;width:62px;height:62px;border-radius:calc(var(--icon-radius) + 6px);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4);
  background:linear-gradient(150deg,rgba(255,255,255,.3) 0%,rgba(255,255,255,.07) 48%,rgba(255,255,255,.14) 100%);
  border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(14px) saturate(1.5) brightness(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.5) brightness(1.1);
  box-shadow:inset 2px 2px 3px rgba(255,255,255,.55),inset -2px -3px 6px rgba(0,0,0,.38),inset 0 0 14px rgba(255,255,255,.1),0 10px 24px rgba(0,0,0,.38)}
#desktop.ic-glass .icon-bg:not(.custom-img)::after{content:'';position:absolute;left:8%;right:8%;top:3%;height:42%;border-radius:50% 50% 60% 60%/70% 70% 40% 40%;background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,0));pointer-events:none}
#desktop.ic-glass .icon-bg svg{position:relative;z-index:1;stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
#desktop.ic-glass .app-icon span,#desktop.ic-glass .dock-icon span{text-shadow:0 1px 4px rgba(0,0,0,.7)}
#desktop.ic-glass .dock{border-radius:36px;background:linear-gradient(160deg,rgba(255,255,255,.24),rgba(255,255,255,.05) 55%,rgba(255,255,255,.12));
  border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  box-shadow:inset 2px 2px 4px rgba(255,255,255,.45),inset -2px -3px 8px rgba(0,0,0,.35),0 14px 30px rgba(0,0,0,.4)}
#desktop.ic-glass .dock-icon .icon-bg{width:58px;height:58px}
#desktop.w-glass .hw{border-radius:30px;background:linear-gradient(155deg,rgba(255,255,255,.26),rgba(255,255,255,.05) 52%,rgba(255,255,255,.12));border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(16px) saturate(1.5) brightness(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.5) brightness(1.08);
  box-shadow:inset 2px 2px 4px rgba(255,255,255,.5),inset -2px -4px 8px rgba(0,0,0,.36),inset 0 0 18px rgba(255,255,255,.08),0 16px 34px rgba(0,0,0,.4)}
#desktop.w-glass .hw-clock,#desktop.w-glass .hw-two div{background:rgba(255,255,255,.12)}
#desktop.ic-glass .desktop-grid,#desktop.w-glass .desktop-grid{gap:20px 8px}
/* 浅色黑白主题保持自己的亮玻璃 */
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .icon-bg:not(.custom-img)::after{background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,0))}
html[data-theme~=mono]:not([data-theme~=monodark]) #desktop.ic-glass .icon-bg svg{stroke:var(--ink);filter:none}

/* ========== 舞台浮层 / 小游戏 / 生活互动 ========== */
.stg{position:absolute;inset:0;z-index:450;display:flex;flex-direction:column;background:var(--bg-color);color:var(--theme-dark);animation:appIn .22s ease-out}
.stg.hidden{display:none}
.stg-bar{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 44px) 16px 10px;font-size:16px}
.stg-bar button{background:none;border:none;color:var(--theme-dark);font-size:15px;cursor:pointer;padding:4px 0}
.stg-bar span{width:44px}
.stg-body{flex:1;overflow-y:auto;padding:6px 18px 40px}
.stg-h{text-align:center;font-weight:600;font-size:17px;margin:10px 0 14px}
.stg-sub{margin:22px 0 8px;font-size:13px;color:var(--text-sub)}
.stg-empty{padding:22px;text-align:center;color:var(--text-sub);font-size:13px;line-height:1.7}
.stg-btns{display:flex;gap:10px;justify-content:center;margin:14px 0}
.stg-btns button,.stg-body .td-pick button,.tq-o button{border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:11px 20px;border-radius:999px;font-size:14px;cursor:pointer;transition:transform .12s}
.stg-btns button:not(.ghost){background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.stg-btns button:active,.td-pick button:active,.tq-o button:active{transform:scale(.95)}
.stg-btns button:disabled{opacity:.55}
.stg-tip{text-align:center;font-size:12px;color:var(--text-sub);margin:6px 0}
.stg-date{font-size:11px;color:var(--text-sub);margin:12px 0 4px}
.stg-row{display:flex;gap:10px;background:var(--card-bg);border-radius:16px;padding:12px;margin-bottom:6px;font-size:13px;line-height:1.55}
.stg-row>i{font-style:normal;flex:none;min-width:38px;height:22px;line-height:22px;text-align:center;border-radius:11px;background:var(--accent-soft);font-size:11px;padding:0 6px}
.stg-row i.y{background:#bfe8c7;color:#165b2a}.stg-row i.n{background:#f5c2c2;color:#7a1f1f}
.stg-row p{margin:2px 0 0;color:var(--text-sub);word-break:break-all}.stg-row em{display:block;margin-top:3px;font-style:normal;opacity:.85}
.stg-load{display:flex;gap:10px;align-items:center;justify-content:center;padding:26px;color:var(--text-sub);font-size:13px}
.spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-color);border-top-color:var(--theme-color);animation:stgsp .8s linear infinite}@keyframes stgsp{to{transform:rotate(360deg)}}
.stg textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);border-radius:14px;padding:12px;font-size:14px;resize:none;font-family:inherit}
.td-react{display:flex;gap:10px;align-items:flex-start;margin:12px 0}
.bub-av{flex:none;width:32px;height:32px;border-radius:50%;background:var(--theme-color);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-size:14px}
.bub{background:var(--card-bg);border-radius:4px 16px 16px 16px;padding:10px 13px;font-size:14px;line-height:1.6;animation:appIn .3s}
/* hub */
.gm-hub{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:4px 0 14px}
.gm-stat{background:var(--card-bg);border-radius:16px;padding:10px 4px;text-align:center}.gm-stat b{display:block;font-size:17px}.gm-stat span{font-size:10px;color:var(--text-sub)}
/* 真心话 */
.td-deck{perspective:900px;display:flex;justify-content:center;margin:10px 0 18px}
.td-card{width:230px;height:290px;border-radius:24px;background:var(--card-bg);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;text-align:center;padding:22px;font-size:17px;line-height:1.7;box-shadow:0 12px 30px rgba(0,0,0,.18);transition:transform .38s}
.td-card.back{background:linear-gradient(145deg,var(--theme-color),var(--accent2,var(--theme-color)));color:var(--on-accent);font-size:22px;font-weight:600}
.td-card.flip{transform:rotateY(90deg)}.td-card.pop{animation:tdpop .45s}@keyframes tdpop{0%{transform:scale(.88) rotateY(-80deg)}100%{transform:none}}
.td-card small{opacity:.7;font-size:12px;letter-spacing:2px}
.td-pick{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
/* 默契 */
.tq-prog{display:flex;gap:6px;margin:6px 0 16px}.tq-prog i{flex:1;height:5px;border-radius:3px;background:var(--border-color)}.tq-prog i.done{background:var(--theme-color)}.tq-prog i.cur{background:var(--accent2,var(--theme-color));opacity:.7}
.tq-q{font-size:18px;font-weight:600;line-height:1.6;margin-bottom:16px}
.tq-o{display:grid;gap:8px}.tq-o button{text-align:left;border-radius:16px;padding:13px 16px}
.tq-o button.ta{background:#bfe8c7;color:#165b2a;border-color:transparent}.tq-o button.miss{background:#f5c2c2;color:#7a1f1f;border-color:transparent;animation:tqsh .35s}@keyframes tqsh{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.tq-badge{margin-top:12px;font-weight:600}.tq-badge.y{color:#2e9e57}.tq-badge.n{color:#d06060}
.tq-end{text-align:center;margin:8px 0 16px}.tq-end h3{margin:10px 0 2px;font-size:22px}.tq-end p{margin:0;color:var(--text-sub);font-size:13px}
.tq-ring{--p:0;width:130px;height:130px;margin:6px auto;border-radius:50%;background:conic-gradient(var(--theme-color) calc(var(--p)*1%),var(--border-color) 0);display:flex;align-items:center;justify-content:center;position:relative}
.tq-ring::before{content:'';position:absolute;inset:11px;border-radius:50%;background:var(--bg-color)}.tq-ring b{position:relative;font-size:26px}
/* 生活 */
.ck-hero{font-size:54px;text-align:center;margin-top:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 14px}.chips button{border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer}.chips button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.ck-strip{display:flex;gap:8px;justify-content:center;margin:18px 0 4px}.ck-strip i{width:34px;height:34px;border-radius:50%;background:var(--card-bg);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:11px;color:var(--text-sub)}.ck-strip i.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}.ck-strip i.now{outline:2px solid var(--accent2,var(--theme-color));outline-offset:2px}
.wheel-wrap{position:relative;width:240px;height:240px;margin:8px auto}
.wheel{position:relative;width:100%;height:100%;border-radius:50%;border:5px solid var(--card-bg);box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform 3.2s cubic-bezier(.15,.7,.12,1)}
.wheel span{position:absolute;left:50%;top:50%;width:0;height:0;display:flex;align-items:center;justify-content:center}.wheel span em{font-style:normal;font-size:28px;display:block}
.wheel-ptr{position:absolute;left:50%;top:-8px;margin-left:-10px;border:10px solid transparent;border-top:18px solid var(--theme-color);z-index:3;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3))}
.wh-res{text-align:center;font-size:22px;font-weight:600;margin:6px 0}
.wx-card{display:flex;gap:16px;align-items:center;background:var(--card-bg);border-radius:24px;padding:20px;margin-top:6px}.wx-big{font-size:56px}.wx-card b{font-size:40px;display:block;line-height:1}.wx-card span{display:block;font-size:14px;margin-top:4px}.wx-card small{font-size:12px;color:var(--text-sub)}
.wx-tags{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.wx-tags span{background:var(--accent-soft);border-radius:999px;padding:6px 12px;font-size:12px}
.pol-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pol{background:#fafafa;color:#333;border-radius:6px;padding:8px 8px 10px;box-shadow:0 6px 16px rgba(0,0,0,.25);transform:rotate(-1.5deg)}.pol:nth-child(even){transform:rotate(1.8deg)}
.pol-img{aspect-ratio:1;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.pol-img span{font-size:48px}.pol-img small{font-size:11px;color:#555}
.pol-cap{font-size:12px;margin-top:8px;line-height:1.45;font-family:"Kaiti SC",KaiTi,serif}.pol-d{font-size:9px;color:#999;margin-top:4px;text-align:right}
.pol-new{width:62%;margin:12px auto;animation:polin .7s cubic-bezier(.2,1.2,.4,1)}@keyframes polin{from{transform:translateY(-60px) rotate(-8deg);opacity:0}}
.paper{background:#fbf6e6;color:#4a4030;border-radius:8px;padding:16px 16px 14px;margin-bottom:10px;line-height:1.9;font-size:14px;font-family:"Kaiti SC",KaiTi,serif;background-image:repeating-linear-gradient(transparent 0 26px,rgba(120,100,60,.16) 26px 27px);box-shadow:0 4px 14px rgba(0,0,0,.2)}.paper-d{font-size:11px;color:#9a8a6a;margin-bottom:4px}
.life-hist{margin-top:10px}


/* ========== 深色主题可读性修复 ========== */
:root{--text-main:var(--theme-dark);--accent:var(--theme-color)}
button{color:inherit}
.ui-dlg{color:var(--theme-dark)}

html[data-theme~=mono] .takeout-header,html[data-theme~=mono] .shop-header,html[data-theme~=mono] .takeout-header~.scroll-area .takeout-search,html[data-theme~=mono] .shop-header~.scroll-area .shop-search{background:var(--card-bg)}
html[data-theme~=mono] .takeout-header button,html[data-theme~=mono] .takeout-header span,html[data-theme~=mono] .shop-header button,html[data-theme~=mono] .shop-header span{color:var(--theme-dark)!important}
html[data-theme~=monodark] #chatRoomApp.chat-ios .app-header,html[data-theme=dark] #chatRoomApp.chat-ios .app-header{background:rgba(24,24,28,.55);border-bottom-color:rgba(255,255,255,.08)}
html[data-theme~=monodark] #chatRoomApp.chat-ios .app-header>button,html[data-theme=dark] #chatRoomApp.chat-ios .app-header>button{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16);color:var(--theme-dark);box-shadow:none}
html[data-theme~=monodark] #chatRoomApp.chat-ios .input-area input[type="text"],html[data-theme=dark] #chatRoomApp.chat-ios .input-area input[type="text"]{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:var(--theme-dark)}
html[data-theme~=monodark] #chatRoomApp.chat-ios .attach-btn,html[data-theme=dark] #chatRoomApp.chat-ios .attach-btn{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.16)}

/* 粉黑/彩色浅色主题：强调色文字加深，保证看得清 */
html[data-theme=pinkblack] .app-header button,html[data-theme=pinkblack] .hdr-btn,html[data-theme=pinkblack] .ui-dlg-btns button.ok,html[data-theme=pinkblack] .taobao-tab.active,html[data-theme=pinkblack] .product-tag,html[data-theme=pinkblack] .tab-item.active,html[data-theme=pinkblack] .tab-item.active span{color:color-mix(in srgb,var(--theme-color) 58%,#2a0f1a)}

/* ========== 奶油日系（低饱和 · 毛玻璃 · 手账拼贴） ========== */
:root{--hand:inherit}
#desktop.cream{--ink:#4d4650;--ink2:#7e7783;--berry:#d98aa0}
html[data-theme=cream] .phone:has(#desktop:not(.hidden)) .status-bar,html[data-theme=cream] .phone:has(#lockScreen:not(.hidden)) .status-bar{color:#4d4650;text-shadow:none}
html[data-theme=cream] .lock-screen{color:#4d4650}html[data-theme=cream] .lock-time{text-shadow:none}
html[data-theme=cream] .lock-widget{background:rgba(255,252,248,.55);border-color:rgba(255,255,255,.9);backdrop-filter:blur(16px)}
/* 图标：软糯毛玻璃方块 */
#desktop.ic-cream .icon-bg:not(.custom-img){width:58px;height:58px;border-radius:22px;color:var(--ink);text-shadow:none;
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,255,255,.42));border:1px solid rgba(255,255,255,.95);
  backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:0 8px 20px rgba(170,140,150,.18),inset 0 1px 0 #fff}
#desktop.ic-cream .app-icon:nth-child(4n+1) .icon-bg:not(.custom-img){background:linear-gradient(145deg,rgba(255,236,240,.9),rgba(255,255,255,.4))}
#desktop.ic-cream .app-icon:nth-child(4n+2) .icon-bg:not(.custom-img){background:linear-gradient(145deg,rgba(228,238,246,.95),rgba(255,255,255,.4))}
#desktop.ic-cream .app-icon:nth-child(4n+3) .icon-bg:not(.custom-img){background:linear-gradient(145deg,rgba(255,246,226,.95),rgba(255,255,255,.4))}
#desktop.ic-cream .icon-bg svg{width:26px;height:26px;fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#desktop.ic-cream .app-icon span,#desktop.ic-cream .dock-icon span{color:var(--ink);text-shadow:none;font-family:var(--hand);font-size:11px;letter-spacing:.3px}
#desktop.ic-cream .dock{background:rgba(255,252,248,.5);border:1px solid rgba(255,255,255,.9);border-radius:32px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 30px rgba(170,140,150,.2),inset 0 1px 0 #fff}
#desktop.ic-cream .dock-icon .icon-bg:not(.custom-img){width:54px;height:54px}
/* 组件：便签 / 拍立得 / 贴纸 */
#desktop.w-cream .hw{color:var(--ink);border-radius:26px;background:rgba(255,252,248,.58);border:1px solid rgba(255,255,255,.92);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 10px 26px rgba(170,140,150,.2),inset 0 1px 0 #fff}
#desktop.w-cream .hw-sub,#desktop.w-cream .hw-date{color:var(--ink2);opacity:1}
#desktop.w-cream .hw-two div{background:rgba(255,255,255,.7)}
#desktop.w-cream .hw-us{background:#fffdf9;border-radius:12px;border:1px solid #f1e8de;transform:rotate(-1.4deg);padding:14px 14px 18px;box-shadow:0 12px 24px rgba(160,130,140,.24)}
#desktop.w-cream .us-row{background:linear-gradient(135deg,#f7e3e8,#e1e9f1);border-radius:8px;padding:8px 6px 4px;margin-bottom:6px}
#desktop.w-cream .us-days b{font-family:var(--hand);font-style:normal;color:#d98aa0}
#desktop.w-cream .us-tape{background:repeating-linear-gradient(45deg,rgba(240,182,195,.7) 0 6px,rgba(255,255,255,.8) 6px 12px)}
#desktop.w-cream .us-line{font-family:var(--hand);color:var(--ink2)}
#desktop.w-cream .hw-weather{border-radius:6px 6px 22px 6px;transform:rotate(1.2deg);background:repeating-linear-gradient(transparent 0 23px,rgba(190,170,140,.18) 23px 24px),linear-gradient(#fff9e8,#fff3d9);border-color:#f3e6c8;position:relative}
#desktop.w-cream .hw-weather::after{content:'';position:absolute;right:0;bottom:0;width:22px;height:22px;background:linear-gradient(135deg,rgba(255,255,255,0) 50%,#f1e0bd 50%);border-top-left-radius:8px}
#desktop.w-cream .hw-music{border:5px solid #fff;border-radius:30px;background:linear-gradient(145deg,#dde7f0,#eef3f7);transform:rotate(-1deg);box-shadow:0 10px 22px rgba(130,150,170,.25)}
#desktop.w-cream .mu-disc{background:repeating-radial-gradient(circle at center,#8fa6ba 0 1.5px,#a3b7c8 1.5px 3px);box-shadow:0 8px 14px -6px rgba(110,130,150,.5)}
#desktop.w-cream .mu-disc i{background:radial-gradient(circle,#fff 0 2px,#f0b6c3 2.5px)}
#desktop.w-cream .mu-t{color:var(--ink)}
#desktop.w-cream .hw-note,#desktop.w-cream .hw-notetxt{font-family:var(--hand)}
#desktop.w-cream .hw-clock,#desktop.w-cream .hw-cal{background:rgba(255,252,248,.62)}
#desktop.w-cream .hw-time{font-family:var(--hand);font-weight:400}
#desktop.w-cream .cal-grid span.today{background:#f0b6c3;color:#4d4650}
#desktop.w-cream .mood-fill{background:linear-gradient(90deg,#f0b6c3,#a9bfd0)}
#desktop.w-cream .hw-big{font-family:var(--hand);font-weight:400}
/* 手写点缀 */
.cr-hello{font-family:var(--hand);font-size:13px;color:#7e7783;text-align:center;margin:-6px 0 12px;letter-spacing:.5px}
.cr-doodle{position:absolute;width:20px;height:20px;fill:none;stroke:#e29bb0;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;opacity:.9}
/* 轻柔点击反馈 */
#desktop.cream .app-icon,#desktop.cream .dock-icon,#desktop.cream .hw{transition:transform .22s ease,opacity .22s ease}
#desktop.cream .app-icon:active,#desktop.cream .dock-icon:active{transform:scale(.95);opacity:.82}
#desktop.cream .hw:active{opacity:.88}
html[data-theme=cream] button:active{opacity:.82}
/* 其它页面：奶油质感 */
html[data-theme=cream] .app-header{background:rgba(255,252,248,.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(235,226,217,.8)}
html[data-theme=cream] .section-title,html[data-theme=cream] .hint-line{font-family:var(--hand);letter-spacing:.3px}
html[data-theme=cream] .cell,html[data-theme=cream] .game-card,html[data-theme=cream] .gm-stat,html[data-theme=cream] .stg-row{border-radius:20px;box-shadow:0 4px 14px rgba(170,140,150,.1)}
html[data-theme=cream] .stg-btns button:not(.ghost){color:#4d4650}
html[data-theme=cream] .tab-bar{background:rgba(255,252,248,.75);backdrop-filter:blur(16px)}
html[data-theme=cream] #chatRoomApp .bubble{border-radius:24px 24px 24px 8px}
html[data-theme=cream] #chatRoomApp .user-message .bubble{border-radius:24px 24px 8px 24px}
html[data-theme=cream] #chatRoomApp.chat-ios .bubble{border-radius:24px;border:1px solid rgba(255,255,255,.9);box-shadow:0 4px 12px rgba(170,140,150,.15)}
html[data-theme=cream] #chatRoomApp.chat-ios .ai-message.grp-last .bubble{border-bottom-left-radius:9px}
html[data-theme=cream] #chatRoomApp.chat-ios .user-message.grp-last .bubble{border-bottom-right-radius:9px}
html[data-theme=cream] #chatRoomApp.chat-ios .ai-message .bubble{background:linear-gradient(135deg,#fffdfb,#f6ecee);color:#4d4650}
html[data-theme=cream] #chatRoomApp.chat-ios .user-message .bubble{background:linear-gradient(135deg,#f7d3dc,#e6c6d0);color:#4d4650}
html[data-theme=cream] #chatRoomApp.chat-ios .app-header{background:rgba(255,252,248,.6)}
html[data-theme=cream] #chatRoomApp.chat-ios .app-header>button{color:#4d4650}

/* ========== 桌面：更紧凑的组件 + 小/中/大 ========== */
#desktop .desktop-grid{gap:14px 8px}
#desktop .hw{min-height:96px;padding:12px}
#desktop .hw-us{min-height:122px;padding:14px 14px 10px}
#desktop .us-av{width:46px;height:46px;border-width:2px}
#desktop .us-string{width:96px;height:36px;margin:0 -2px 10px}
#desktop .us-days b{font-size:32px}#desktop .us-days{margin-top:0}
#desktop .us-line{margin-top:3px}
#desktop .hw-weather,#desktop .hw-music{min-height:106px;padding:12px}
#desktop .wx-svg{width:32px;height:32px;margin:0}
#desktop .hw-big{font-size:28px;margin:2px 0}
#desktop .mu-disc{width:42px;height:42px;margin-bottom:6px}#desktop .mu-disc i{inset:14px}
#desktop .hw.s{grid-column:span 2;min-height:78px;padding:8px 11px}
#desktop .hw.s .hw-big{font-size:22px;margin:0}
#desktop .hw.s .wx-svg,#desktop .hw.s .hw-pet,#desktop .hw.s .hw-petemo{display:none}
#desktop .hw.s .mu-disc{width:30px;height:30px}#desktop .hw.s .mu-disc i{inset:10px}#desktop .hw.s .mu-s{display:none}
#desktop .hw-us.s{grid-column:span 4;min-height:80px;padding:8px 12px}
#desktop .hw-us.s .us-av{width:32px;height:32px}#desktop .hw-us.s .us-string{width:64px;height:24px;margin-bottom:4px}
#desktop .hw-us.s .us-days b{font-size:22px}#desktop .hw-us.s .us-line{display:none}
#desktop .hw-us.s .us-row{padding:4px}
#desktop .hw.s .hw-time{font-size:30px}#desktop .hw.s .hw-sub:nth-child(n+3){display:none}
#desktop .hw.wide{min-height:112px}
#desktop .hw-us.wide{min-height:150px}
#desktop .hw-cal .cal-grid{font-size:11px}
/* 编辑模式 */
.hm-bar{position:absolute;top:38px;left:14px;right:14px;z-index:60;display:flex;gap:8px;align-items:center;padding:7px 8px 7px 14px;border-radius:999px;background:rgba(36,34,40,.78);color:#fff;font-size:12px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.hm-bar.hidden{display:none}.hm-bar span{flex:1}
.hm-bar button{border:none;border-radius:999px;padding:6px 13px;font-size:12px;background:rgba(255,255,255,.2);color:#fff;cursor:pointer}
.hm-bar #hmDone{background:#fff;color:#333}
#desktop.editing .desktop-grid{padding-top:30px}
#desktop.editing [data-app],#desktop.editing [data-w]{touch-action:none;user-select:none;-webkit-user-select:none;position:relative}
#desktop.editing .app-icon,#desktop.editing .dock-icon{animation:hmwig .32s ease-in-out infinite alternate;cursor:grab}
@keyframes hmwig{from{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}
#desktop.editing .hw{outline:1.5px dashed rgba(120,110,130,.55);outline-offset:2px;cursor:grab;animation:none}
#desktop.editing .hm-drag{animation:none!important;z-index:40;transition:none;filter:drop-shadow(0 12px 18px rgba(0,0,0,.3));cursor:grabbing}
#desktop.editing .hm-over{outline:2px solid rgba(255,180,200,.95);outline-offset:3px;border-radius:20px}
#desktop.editing .dock.hm-over{outline:2px solid rgba(255,180,200,.95)}
.hm-x{position:absolute;top:-5px;left:-5px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(50,46,56,.88);color:#fff;font-size:12px;line-height:22px;padding:0;z-index:5;cursor:pointer}
.hw .hm-x{top:6px;left:6px}
.hm-sz{position:absolute;right:8px;bottom:8px;border:none;border-radius:999px;padding:3px 10px;font-size:11px;background:rgba(50,46,56,.85);color:#fff;z-index:5;cursor:pointer}
#desktop.editing .hw>*:not(.hm-x):not(.hm-sz){pointer-events:none}
#desktop .hw-us.s{flex-direction:row;gap:10px;align-items:center;justify-content:center;min-height:84px;overflow:hidden}
#desktop .hw-us.s .us-row{width:auto;margin:0;padding:6px 8px}
#desktop .hw-us.s .us-days{margin:0}
#desktop .hw-us.s .us-tape,#desktop .hw-us.s .cr-doodle{display:none}

/* ========== 语音设置 ========== */
.tts-card{background:var(--card-bg);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px}
.tts-card label{font-size:12px;color:var(--text-sub);margin-top:6px}
.tts-grp{display:flex;flex-direction:column;gap:6px}
.tts-btns{display:flex;gap:10px;margin-top:8px}.tts-btns .btn-small{flex:1}
.li{vertical-align:-3px;flex:none}
.chips button{display:inline-flex;align-items:center;gap:5px}
.wh-res{display:flex;align-items:center;justify-content:center;gap:8px}
.wx-big{color:var(--theme-dark);display:flex}.ck-hero{display:flex;justify-content:center;color:var(--theme-dark)}
.pol-img span{display:flex;color:#6d6672}
.game-ic{display:flex;color:var(--theme-dark);margin-bottom:6px}
.wheel span em{display:flex;color:#5a5360}
.wx-tags span{display:inline-flex;align-items:center;gap:5px}
.li{vertical-align:-3px;flex:none}
.chips button{display:inline-flex;align-items:center;gap:5px}
.wh-res{display:flex;align-items:center;justify-content:center;gap:8px}
.wx-big{color:var(--theme-dark);display:flex}.ck-hero{display:flex;justify-content:center;color:var(--theme-dark)}
.pol-img span{display:flex;color:#6d6672}
.game-ic{display:flex;color:var(--theme-dark);margin-bottom:6px}
.wheel span em{display:flex;color:#5a5360}
.wx-tags span{display:inline-flex;align-items:center;gap:5px}
.stg-row>i{background:var(--border-color);color:var(--theme-dark);max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stg-row>i.y{background:#bfe8c7;color:#165b2a}.stg-row>i.n{background:#f5c2c2;color:#7a1f1f}

/* 奶油主题：强调色文字加深，保证看清 */
html[data-theme=cream] .app-header button,html[data-theme=cream] .hdr-btn,html[data-theme=cream] .ui-dlg-btns button.ok,html[data-theme=cream] .taobao-tab.active,html[data-theme=cream] .product-tag,html[data-theme=cream] .tab.active,html[data-theme=cream] .merchant-price,html[data-theme=cream] .product-price,html[data-theme=cream] .product-price-symbol{color:color-mix(in srgb,var(--theme-color) 40%,#3a2a32)}
html[data-theme=cream] .takeout-header,html[data-theme=cream] .shop-header,html[data-theme=cream] .takeout-header~.scroll-area .takeout-search,html[data-theme=cream] .shop-header~.scroll-area .shop-search{background:var(--card-bg)}
html[data-theme=cream] .takeout-header button,html[data-theme=cream] .takeout-header span,html[data-theme=cream] .shop-header button,html[data-theme=cream] .shop-header span{color:var(--theme-dark)!important}

/* 奶油主题：强调色文字加深，保证看清 */
html[data-theme=cream] .app-header button,html[data-theme=cream] .hdr-btn,html[data-theme=cream] .ui-dlg-btns button.ok,html[data-theme=cream] .taobao-tab.active,html[data-theme=cream] .product-tag,html[data-theme=cream] .tab.active,html[data-theme=cream] .merchant-price,html[data-theme=cream] .product-price,html[data-theme=cream] .product-price-symbol{color:color-mix(in srgb,var(--theme-color) 40%,#3a2a32)}
html[data-theme=cream] .takeout-header,html[data-theme=cream] .shop-header,html[data-theme=cream] .takeout-header~.scroll-area .takeout-search,html[data-theme=cream] .shop-header~.scroll-area .shop-search{background:var(--card-bg)}
html[data-theme=cream] .takeout-header button,html[data-theme=cream] .takeout-header span,html[data-theme=cream] .shop-header button,html[data-theme=cream] .shop-header span{color:var(--theme-dark)!important}

/* ========== 多页主屏 / 状态栏图标 ========== */
.hm-dots{display:flex;justify-content:center;align-items:center;gap:8px;height:22px;margin:0 0 4px}
.hm-dot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.3;cursor:pointer;transition:all .2s;display:block;color:#fff}
.hm-dot.on{opacity:.9;transform:scale(1.25)}
html[data-theme~=mono]:not([data-theme~=monodark]) .hm-dot,html[data-theme=cream] .hm-dot{color:#4d4650}
.hm-addpg{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.7);color:#4d4650;font-size:13px;line-height:20px;text-align:center;cursor:pointer;font-weight:400}
#desktop.editing .hm-dot{width:11px;height:11px}
#desktop.editing .hm-dot.hm-over{outline:2px solid rgba(255,180,200,.95);outline-offset:3px}
#desktopGrid{will-change:transform}
.status-icons{display:flex;align-items:center;gap:6px;font-size:12px}
.sb-ic{display:block}
.sb-bat{position:relative;width:24px;height:12px;border:1.5px solid currentColor;border-radius:4px;display:inline-block;opacity:.95}
.sb-bat::after{content:'';position:absolute;right:-4px;top:3px;width:2px;height:4px;border-radius:0 2px 2px 0;background:currentColor}
.sb-bat i{position:absolute;left:1px;top:1px;bottom:1px;border-radius:2px;background:currentColor;display:block}
.sb-pct{font-size:11px;font-weight:600;margin-left:-2px}
.status-bar{padding:14px 26px 0 30px}

/* ========== 经期记录 ========== */
.period-icon{background:linear-gradient(145deg,#f3a6b8,#e0728f)}
#desktop.ic-sweet .period-icon{--c1:#ffd3dc;--c2:#ff9eb4}
.pd-hero{display:flex;gap:16px;align-items:center;background:var(--card-bg);border-radius:24px;padding:16px;margin:4px 0 6px}
.pd-ring{--p:0;flex:none;width:96px;height:96px;border-radius:50%;background:conic-gradient(#f0a3b5 calc(var(--p)*1%),var(--border-color) 0);display:flex;align-items:center;justify-content:center;position:relative}
.pd-ring::before{content:'';position:absolute;inset:8px;border-radius:50%;background:var(--card-bg)}
.pd-ring>div{position:relative;text-align:center}.pd-ring small{display:block;font-size:11px;color:var(--text-sub)}.pd-ring b{font-size:19px}
.pd-next{font-size:15px}.pd-next b{font-size:22px;color:#e0728f}
.pd-info small{color:var(--text-sub);font-size:11px}.pd-tip{margin:6px 0 0;font-size:12px;line-height:1.5}
.pd-cal{background:var(--card-bg);border-radius:22px;padding:12px;margin-top:6px}
.pd-calhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.pd-calhead button{border:none;background:none;font-size:20px;padding:2px 12px;cursor:pointer}
.pd-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.pd-grid i{font-style:normal;font-size:11px;color:var(--text-sub);padding:3px 0}
.pd-grid span{height:36px;line-height:36px;border-radius:50%;font-size:13px;cursor:pointer;position:relative}
.pd-grid span.pd{background:#f0a3b5;color:#3a1f28}
.pd-grid span.pp{border:1.5px dashed #f0a3b5}
.pd-grid span.fw{background:rgba(140,175,205,.28)}
.pd-grid span.ov{background:rgba(140,175,205,.55);box-shadow:inset 0 0 0 1.5px #7fa3c4}
.pd-grid span.today{outline:2px solid var(--theme-dark);outline-offset:-2px}
.pd-grid span.has::after{content:'';position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--theme-dark);opacity:.6}
.pd-legend{display:flex;gap:12px;justify-content:center;margin-top:8px;font-size:11px;color:var(--text-sub)}
.pd-legend span::before{content:'';display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:-1px}
.pd-legend .a::before{background:#f0a3b5}.pd-legend .b::before{border:1.5px dashed #f0a3b5}.pd-legend .c::before{background:rgba(140,175,205,.4)}.pd-legend .e::before{background:#7fa3c4}
.pd-care{margin:14px 0}

/* ========== 奶油日系 v1.6：去掉便签/手写，改为简约卡片 ========== */
.cr-hello,.cr-doodle{display:none!important}
#desktop.w-cream .hw,#desktop.w-cream .hw-us,#desktop.w-cream .hw-weather,#desktop.w-cream .hw-music{transform:none;border-radius:24px;border:1px solid rgba(255,255,255,.85);
  background:rgba(255,253,250,.62);backdrop-filter:blur(18px) saturate(1.05);-webkit-backdrop-filter:blur(18px) saturate(1.05);box-shadow:0 6px 18px rgba(160,135,145,.14);padding:14px}
#desktop.w-cream .hw-weather::after,#desktop.w-cream .us-tape{display:none}
#desktop.w-cream .hw-weather{background:linear-gradient(160deg,rgba(255,255,255,.7),rgba(222,233,243,.65))}
#desktop.w-cream .hw-music{background:linear-gradient(160deg,rgba(255,255,255,.7),rgba(248,226,232,.65))}
#desktop.w-cream .us-row{background:none;padding:0;margin-bottom:8px}
#desktop.w-cream .us-av{border:2px solid #fff;box-shadow:0 2px 8px rgba(160,135,145,.2)}
#desktop.w-cream .us-days,#desktop.w-cream .us-days b,#desktop.w-cream .us-line,#desktop.w-cream .hw-big,#desktop.w-cream .hw-time,#desktop.w-cream .hw-note,#desktop.w-cream .hw-notetxt,#desktop.w-cream .mu-t,#desktop.w-cream .hw-title{font-family:inherit;color:var(--ink)}
#desktop.w-cream .us-days b{color:#d98aa0;font-weight:600}
#desktop.w-cream .us-line,#desktop.w-cream .hw-sub,#desktop.w-cream .mu-s{color:var(--ink2)}
#desktop.ic-cream .app-icon span,#desktop.ic-cream .dock-icon span{font-family:inherit;letter-spacing:0}
html[data-theme=cream] .section-title,html[data-theme=cream] .hint-line{font-family:inherit}
#desktop.w-cream .hw-big,#desktop.w-cream .hw-time{font-weight:500}

/* 主题与美化页：整体风格卡片 */
.sty-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}
.sty-card{border-radius:18px;padding:10px;background:var(--card-bg);border:1.5px solid var(--border-color);cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:transform .2s,opacity .2s}
.sty-card:active{transform:scale(.97);opacity:.85}
.sty-card.on{border-color:var(--theme-color);box-shadow:0 0 0 2px var(--accent-soft)}
.sty-sw{height:44px;border-radius:12px;border:1px solid rgba(0,0,0,.06)}
.sty-card b{font-size:13px;color:var(--theme-dark);font-weight:600}
.sty-card small{font-size:11px;color:var(--text-sub);margin-top:-6px;line-height:1.4}
.theme-dot[data-n]{position:relative;margin-bottom:16px}
.theme-dot[data-n]::after{content:attr(data-n);position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:10px;color:var(--text-sub);white-space:nowrap;margin-top:2px}

/* ========== 回忆：时间胶囊 / 回忆册 / TA 替你点 ========== */
.memo-icon{background:linear-gradient(145deg,#f6c9a8,#e79a8c)}
#desktop.ic-sweet .memo-icon{--c1:#ffe0cc;--c2:#ffb199}
.mm-tabs{display:flex;gap:8px;padding:10px 16px 0}
.mm-tabs button{flex:1;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:9px 0;border-radius:999px;font-size:13px;transition:opacity .2s}
.mm-tabs button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.mm-hero{text-align:center;padding:12px 6px 2px}.mm-hero b{font-size:18px}.mm-hero p{margin:6px 0 0;font-size:12px;line-height:1.7;color:var(--text-sub)}
.mm-cap{display:flex;align-items:center;gap:12px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:20px;padding:13px 14px;margin-bottom:10px;cursor:pointer;transition:transform .2s,opacity .2s}
.mm-cap:active{transform:scale(.98);opacity:.85}
.mm-seal{flex:none;width:44px;height:44px;border-radius:15px;background:var(--accent-soft);color:var(--theme-dark);display:flex;align-items:center;justify-content:center}
.mm-capi{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.mm-capi b{font-size:14px;font-weight:600}.mm-capi small{font-size:11px;color:var(--text-sub)}
.mm-cap>i{flex:none;font-style:normal;font-size:11px;padding:4px 10px;border-radius:999px;background:var(--accent-soft)}
.mm-cap.due{border-color:var(--theme-color);box-shadow:0 0 0 3px var(--accent-soft);animation:mmGlow 2.4s ease-in-out infinite}.mm-cap.due>i{background:var(--theme-color);color:var(--on-accent)}
.mm-cap.opened{opacity:.72}
@keyframes mmGlow{50%{box-shadow:0 0 0 7px transparent}}
.mm-pick{display:flex;align-items:center;gap:10px;margin-top:10px}.mm-pick button{border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:9px 14px;border-radius:999px;font-size:13px}
#cpPrev img{height:48px;border-radius:10px}
.mm-days{display:flex;flex-wrap:wrap;gap:8px}.mm-days button{border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:8px 14px;border-radius:999px;font-size:13px}.mm-days button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
#cpText{width:100%;box-sizing:border-box;margin-top:10px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);border-radius:16px;padding:12px;font-size:14px;line-height:1.7;resize:none;font-family:inherit}
.mm-locked{text-align:center;padding:30px 10px}.mm-locked h3{margin:14px 0 6px}.mm-locked p{font-size:13px;line-height:1.8;color:var(--text-sub)}
.mm-bigseal{width:86px;height:86px;margin:0 auto;border-radius:30px;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;color:var(--theme-dark)}
.mm-env{padding:6px 0}.mm-env.fresh .mm-letter{animation:mmOpen .9s cubic-bezier(.2,.8,.2,1)}
@keyframes mmOpen{from{opacity:0;transform:translateY(40px) scale(.94)}to{opacity:1;transform:none}}
.mm-letter{background:#fffdf8;color:#4d4650;border-radius:18px;padding:20px 18px;box-shadow:0 10px 30px rgba(120,100,110,.18);border:1px solid rgba(0,0,0,.04)}
.mm-letter small{display:block;font-size:11px;color:#9a929e;margin-bottom:12px}.mm-letter p{margin:0;font-size:14.5px;line-height:2;word-break:break-all}
.mm-limg{width:100%;border-radius:12px;margin-top:14px}.mm-sign{text-align:right;margin-top:16px;font-size:12px;color:#9a929e}
.mm-total{display:flex;gap:8px;margin-bottom:12px}.mm-total div{flex:1;background:var(--card-bg);border-radius:18px;padding:12px 6px;text-align:center}.mm-total b{display:block;font-size:20px}.mm-total span{font-size:11px;color:var(--text-sub)}
.mm-mhead{display:flex;align-items:center;justify-content:space-between;margin:6px 0 10px}.mm-mhead button{width:34px;height:34px;border-radius:50%;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);font-size:18px}
.mm-page{background:var(--card-bg);border-radius:22px;padding:14px}
.mm-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.mm-chips span{font-size:11px;padding:5px 10px;border-radius:999px;background:var(--accent-soft);display:inline-flex;align-items:center;gap:4px}
.mm-ev{display:flex;gap:10px;padding:9px 0;border-top:1px dashed var(--border-color);font-size:13px;line-height:1.6}.mm-ev:first-child{border-top:none}
.mm-ev>i{flex:none;width:38px;font-style:normal;font-size:11px;color:var(--text-sub);padding-top:2px}.mm-ev p{margin:2px 0 0;color:var(--text-sub);word-break:break-all}
.mm-note{margin-top:12px;background:linear-gradient(160deg,var(--card-bg),var(--accent-soft));border-radius:22px;padding:14px 16px}
.mm-nh{display:flex;justify-content:space-between;align-items:center}.mm-nh button{border:none;background:transparent;color:var(--text-sub);font-size:12px}
.mm-note p{font-size:14px;line-height:1.95;margin:8px 0 0;word-break:break-all}.mm-nempty{color:var(--text-sub)}
.tk-ta{margin:12px 14px 0;background:var(--card-bg);border:1px solid var(--border-color);border-radius:20px;padding:12px 14px}
.tk-ta-main{display:flex;align-items:center;justify-content:space-between;gap:10px}.tk-ta-main b{display:block;font-size:14px}.tk-ta-main small{font-size:11px;color:var(--text-sub)}
.tk-ta-main button{flex:none;border:none;background:var(--theme-color);color:var(--on-accent);padding:9px 16px;border-radius:999px;font-size:13px}
.tk-h{display:flex;justify-content:space-between;font-size:12px;padding:8px 2px 0;color:var(--text-sub);cursor:pointer}.tk-h i{font-style:normal}
.tk-card{background:var(--card-bg);border-radius:22px;padding:18px;text-align:center;margin-bottom:6px}.tk-card small{font-size:12px;color:var(--text-sub)}.tk-card h3{margin:8px 0 4px;font-size:21px}.tk-card p{margin:0;color:var(--text-sub);font-size:13px}.tk-card.slim{padding:12px}.tk-card.slim h3{font-size:17px}
.tk-note{margin:14px 6px 0;background:#fffdf6;color:#4d4650;border-radius:14px;padding:12px 14px;font-size:13.5px;line-height:1.8;text-align:left;box-shadow:0 4px 14px rgba(120,100,100,.14)}.tk-note em{display:block;text-align:right;font-style:normal;font-size:11px;color:#9a929e;margin-top:4px}
.tk-track{margin:14px 6px}.tk-st{display:flex;gap:12px;position:relative;padding-bottom:14px;opacity:.45}.tk-st>i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--border-color);margin-top:4px;position:relative;z-index:1}
.tk-st:not(:last-child)::after{content:'';position:absolute;left:5px;top:16px;bottom:0;width:2px;background:var(--border-color)}
.tk-st.done,.tk-st.now{opacity:1}.tk-st.done>i,.tk-st.now>i{background:var(--theme-color)}.tk-st.now>i{box-shadow:0 0 0 5px var(--accent-soft)}
.tk-st b{font-size:13.5px;font-weight:600}.tk-st small{display:block;font-size:11px;color:var(--text-sub)}
.tk-real{margin-top:8px}.tk-a{border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:11px 18px;border-radius:999px;font-size:14px;text-decoration:none}

/* ========== 广场（论坛） ========== */
.forum-icon{background:linear-gradient(145deg,#b9d3ea,#8fb0d6)}
#desktop.ic-sweet .forum-icon{--c1:#d6e6f5;--c2:#a9c6e6}
.fm-grid{columns:2;column-gap:10px}
.fm-card{break-inside:avoid;background:var(--card-bg);border-radius:18px;overflow:hidden;margin-bottom:10px;cursor:pointer;transition:transform .2s,opacity .2s;box-shadow:0 3px 12px rgba(140,120,130,.1)}
.fm-card:active{transform:scale(.97);opacity:.88}
.fm-cover{min-height:112px;padding:14px;display:flex;align-items:flex-end;font-size:14px;font-weight:600;line-height:1.5;color:#4d4650;word-break:break-all}
.fm-cover.img{min-height:150px;background-size:cover;background-position:center}
.fm-ct{padding:8px 10px 2px;font-size:13px;line-height:1.5;color:var(--theme-dark);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fm-cf{display:flex;align-items:center;gap:6px;padding:6px 10px 10px;font-size:11px;color:var(--text-sub)}
.fm-cn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-lk{display:inline-flex;align-items:center;gap:2px}
.fm-av{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:#4d4650;font-size:11px;overflow:hidden;flex:none}
.fm-av img{width:100%;height:100%;object-fit:cover}
.fm-prof{display:flex;gap:12px;align-items:center;background:var(--card-bg);border-radius:22px;padding:14px}
.fm-prof>div{flex:1;min-width:0}.fm-prof b{font-size:16px}.fm-prof small{display:block;color:var(--text-sub);font-size:11px}.fm-prof p{margin:4px 0 0;font-size:12px;color:var(--text-sub)}
.fm-prof button{border:1px solid var(--border-color);background:transparent;color:var(--theme-dark);padding:7px 14px;border-radius:999px;font-size:12px}
.fm-acct{display:flex;gap:10px;align-items:center;background:var(--card-bg);border-radius:18px;padding:11px 12px;margin-bottom:8px;cursor:pointer}
.fm-acct>div{flex:1;min-width:0}.fm-acct b{font-size:14px}.fm-acct small{display:block;font-size:11px;color:var(--text-sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fm-acct i{font-style:normal;font-size:11px;padding:4px 10px;border-radius:999px;background:var(--accent-soft)}
.fm-set{margin:14px 0 4px;background:var(--card-bg);border-radius:18px;padding:12px 14px}.fm-set label{display:flex;justify-content:space-between;align-items:center;font-size:14px}.fm-set p{margin:6px 0 0}
.fm-dh{display:flex;align-items:center;gap:10px;margin-bottom:12px}.fm-dh>div{flex:1}.fm-dh b{font-size:14px}.fm-dh small{display:block;font-size:11px;color:var(--text-sub)}
.fm-fol{border:1px solid var(--theme-color);background:transparent;color:var(--theme-dark);padding:6px 14px;border-radius:999px;font-size:12px}.fm-fol.on{opacity:.6}
.fm-tag{font-style:normal;font-size:10px;padding:2px 7px;border-radius:999px;background:var(--theme-color);color:var(--on-accent);margin-left:4px}.fm-tag.me{background:var(--accent-soft);color:var(--theme-dark)}
.fm-dimg{width:100%;border-radius:16px}.fm-dcover{min-height:160px;border-radius:18px;padding:20px;display:flex;align-items:flex-end;font-size:19px;font-weight:600;line-height:1.5;color:#4d4650;word-break:break-all}
.fm-dt{margin:14px 0 4px;font-size:17px}.fm-dx{margin:8px 0;font-size:14.5px;line-height:1.9;word-break:break-all}
.fm-tags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.fm-tags span{font-size:12px;color:var(--text-sub)}.fm-time{display:block;color:var(--text-sub);font-size:11px}
.fm-act{display:flex;gap:8px;margin-top:12px}.fm-act button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);padding:9px 14px;border-radius:999px;font-size:13px}.fm-act button.on{background:var(--accent-soft);border-color:var(--theme-color)}
.fm-cm{padding:9px 0;border-top:1px dashed var(--border-color)}.fm-cm:first-of-type{border-top:none}.fm-cmn{font-size:12px;color:var(--text-sub)}.fm-cm p{margin:3px 0 0;font-size:14px;line-height:1.7;word-break:break-all}
.fm-cin{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:0;background:var(--bg-color);padding:8px 0}.fm-cin input{flex:1}.fm-cin button{border:none;background:var(--theme-color);color:var(--on-accent);padding:0 18px;border-radius:999px;font-size:13px}

/* ========== 世界书词条设置 + 线下模式 ========== */
.we-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0}
.we-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-sub)}
.we-grid .input-text{margin:0}
.wb-ops{display:flex;align-items:center;gap:4px;flex:none}
.wb-ops .wb-edit{font-size:12px;color:var(--theme-dark);border:1px solid var(--border-color);border-radius:999px;padding:3px 9px}
.wb-sw{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--text-sub)}
.note-item.wb-off{opacity:.55}
.wb-test{display:flex;align-items:center;gap:8px;font-size:12px;padding:7px 0;border-top:1px dashed var(--border-color)}
.wb-test b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wb-test .y{color:#2f8f4e}.wb-test .n{color:var(--text-sub)}
#wbTestBox .btn-small,#wbEntryForm .btn-small{margin-top:6px}
.off-btn{border:1px solid var(--border-color);border-radius:999px;padding:3px 10px;margin-right:4px}
.off-btn.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
/* 线下：长段叙述气泡 */
#chatRoomApp.offline-mode .chat-box{background-image:linear-gradient(180deg,rgba(255,244,236,.28),transparent)}
#chatRoomApp.offline-mode .message .bubble-wrapper{max-width:88%}
#chatRoomApp.offline-mode .message .bubble{line-height:1.85;letter-spacing:.2px;border-radius:18px!important}
#chatRoomApp.offline-mode .ai-message .bubble{font-size:14.5px}

/* ===== 查手机：选择 / 方式 ===== */
.ui-choose-btns{display:flex;flex-direction:column;border-top:.5px solid rgba(128,128,128,.25)}
.ui-choose-btns button{padding:14px 0;background:none;border:none;font-size:16px;color:var(--text-main,#222);cursor:pointer}
.ui-choose-btns button+button{border-top:.5px solid rgba(128,128,128,.25)}
.ui-choose-btns button.ok{color:var(--accent-text);font-weight:600}
.pk-mode{display:flex;gap:6px;background:var(--accent-soft);border-radius:12px;padding:4px;margin:6px 0}
.pk-mode button{flex:1;border:none;background:none;padding:9px 0;border-radius:9px;font-size:13.5px;color:var(--text-sub);cursor:pointer}
.pk-mode button.on{background:var(--card-bg);color:var(--accent-text);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.pk-know .td-react{margin-top:8px}

/* ===== 地图 ===== */
.map-icon{background:linear-gradient(145deg,#bfdcc9,#8fc0a5)}
#desktop.ic-sweet .map-icon{--c1:#d4ecdc;--c2:#a6d2b6}
#mapApp{display:flex;flex-direction:column}
#mapApp.hidden{display:none}
.mp-mapbox{position:relative;height:38%;min-height:200px;flex:none;background:var(--accent-soft)}
#mpMap{position:absolute;inset:0;z-index:1}
.mp-fail{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-size:13px;color:var(--text-sub);background:var(--accent-soft)}
.mp-fail.hidden{display:none}
.mp-tabs{flex:none;margin:8px 12px 0}
#mpBody{flex:1;min-height:0;overflow-y:auto}
.mp-pinw{background:none;border:none}
.mp-search{display:flex;gap:8px;margin-bottom:8px}
.mp-search .input-text{flex:1;margin:0}
.mp-search button{border:none;border-radius:12px;padding:0 16px;background:var(--theme-color);color:var(--on-accent);font-size:14px;cursor:pointer}
.mp-res,.mp-card{display:flex;align-items:center;gap:10px;background:var(--card-bg);border:.5px solid var(--border-color);border-radius:14px;padding:11px 13px;margin-bottom:8px;cursor:pointer}
.mp-res{flex-direction:column;align-items:flex-start;gap:2px}
.mp-res b,.mp-card b{font-size:14px;color:var(--text-main,#222)}
.mp-res small,.mp-card small{display:block;font-size:12px;color:var(--text-sub);margin-top:2px}
.mp-card>i{width:10px;height:10px;border-radius:50%;flex:none}
.mp-card>div{min-width:0}
.mp-badge{display:inline-block;color:#fff;font-size:12px;padding:2px 9px;border-radius:10px;margin-right:6px}
.mp-detail{margin-bottom:8px}
.mp-note{font-size:13px;color:var(--text-sub);margin:6px 0}
.mp-re,.mp-intro{font-size:13.5px;line-height:1.7;color:var(--text-main,#222)}
.mp-plan{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:16px;padding:14px;margin-top:10px}
.mp-plan h3{margin:0 0 6px;font-size:16px}
.mp-stop{display:flex;gap:10px;padding:9px 0;border-top:.5px solid var(--border-color);font-size:13.5px;cursor:pointer}
.mp-stop>i{flex:none;width:22px;height:22px;border-radius:50%;background:#e58aa3;color:#fff;font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center}
.mp-stop.miss>i{background:#b8b8b8}
.mp-stop small{display:block;color:var(--text-sub);font-size:12px}

/* ===== 情侣空间：更多互动 ===== */
.cp-more{margin:14px 14px 4px}
.cp-mh{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:15px}
.cp-hn{display:inline-flex;align-items:center;gap:3px;color:var(--accent-text);font-size:13px}
.cp-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cp-card{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:16px;padding:14px 6px 12px;text-align:center;cursor:pointer;transition:transform .15s}
.cp-card:active{transform:scale(.96)}
.cp-card b{display:block;font-size:13.5px;margin-top:6px}
.cp-card small{display:block;font-size:11px;color:var(--text-sub);margin-top:3px}
.cp-ci{color:var(--accent-text);display:flex;justify-content:center}
.cp-room-wrap{padding:2px}
.cp-room{position:relative;border-radius:18px;overflow:hidden;border:.5px solid var(--border-color)}
.cp-room-svg{display:block;width:100%;height:auto}
.cp-ta{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;transition:left .8s ease,top .8s ease;cursor:pointer}
.cp-ta .cp-av{width:34px;height:34px;border-radius:50%;overflow:hidden;border:2px solid #fff;background:var(--accent-soft);display:flex;align-items:center;justify-content:center;font-size:14px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.cp-av img{width:100%;height:100%;object-fit:cover}
.cp-ta .cp-av{position:relative}
.cp-body{display:block;width:20px;height:16px;border-radius:9px 9px 4px 4px;background:var(--theme-color);margin-top:-4px;opacity:.85}
.cp-ta.me .cp-body{background:#e58aa3}
.cp-ta em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);margin-bottom:6px;background:#fff;color:#333;font-style:normal;font-size:12px;padding:5px 9px;border-radius:10px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.cp-ta em:empty{display:none}
.cp-ta.boop{animation:cpBoop .5s ease}
@keyframes cpBoop{0%{transform:translate(-50%,-50%)}30%{transform:translate(-50%,-72%) scale(1.1)}60%{transform:translate(-50%,-46%) scale(.95)}100%{transform:translate(-50%,-50%)}}
.cp-status{text-align:center;font-size:13px;color:var(--text-sub);margin:10px 0 6px}
.cp-acts{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:6px}
.cp-acts button{border:.5px solid var(--border-color);background:var(--card-bg);border-radius:16px;padding:7px 14px;font-size:13px;color:var(--text-main,#222);cursor:pointer}
.cp-acts button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.cp-slot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:.5px solid var(--border-color)}
.cp-slot>b{font-size:13.5px;flex:none;width:44px}
.cp-slot>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cp-slot button{border:.5px solid var(--border-color);background:var(--card-bg);border-radius:12px;padding:6px 10px;font-size:12px;color:var(--text-main,#222);cursor:pointer;display:inline-flex;align-items:center;gap:3px}
.cp-slot button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.cp-slot button.lock{opacity:.65}

/* 心跳共振 */
.bt-stage{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:18px 4px 8px}
.bt-side{display:flex;flex-direction:column;align-items:center;gap:6px;width:70px}
.bt-side .cp-av{width:46px;height:46px;border-radius:50%;overflow:hidden;background:var(--accent-soft);display:flex;align-items:center;justify-content:center}
.bt-side b{font-size:13px;color:var(--text-sub);font-weight:500}
.bt-core{position:relative;width:130px;height:130px;flex:none;touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer}
.bt-ring{position:absolute;inset:0;width:100%;height:100%}
.bt-heart{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#e58aa3;transition:transform .12s}
.bt-core.burst .bt-heart{animation:btBurst .9s ease}
@keyframes btBurst{0%{transform:scale(1)}30%{transform:scale(1.5)}60%{transform:scale(.95)}100%{transform:scale(1)}}
.bt-tip{text-align:center;font-size:14px;color:var(--text-sub);margin:6px 0 10px}
.bt-gain{text-align:center;color:var(--accent-text);font-size:13px;margin:8px 0}

/* 每日小默契 */
.dy-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text-sub);margin-bottom:10px}
.dy-top b{color:var(--accent-text)}
.dy-card{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:16px;padding:13px;margin-bottom:10px}
.dy-card.ok{opacity:.85}
.dy-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.dy-h b{font-size:14px}
.dy-h i{font-style:normal;font-size:12px;color:var(--text-sub)}
.dy-card.ok .dy-h i{color:var(--accent-text)}
.dy-res{font-size:13.5px;line-height:1.7;margin:4px 0}
.dy-q{font-size:14px;font-weight:600;margin:6px 0}

/* 聊天页顶栏：防止右侧按钮溢出屏幕（「•••」点不到） */
#chatRoomApp .app-header{gap:4px;padding-left:10px;padding-right:10px;overflow:hidden}
#chatRoomApp .app-header>span:nth-child(2){flex:1 1 auto;min-width:0;justify-content:flex-start;margin-left:2px}
#chatRoomApp .app-header>span:nth-child(2)>*{flex:none}
#chatRoomApp #chatTitle{display:block;flex:0 1 auto;min-width:0;max-width:84px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#chatRoomApp .app-header>span:last-child{display:flex;flex:none;align-items:center;gap:2px}
#chatRoomApp .app-header>span:last-child .hdr-btn{padding:5px 7px;font-size:12.5px;white-space:nowrap;flex:none}
#chatRoomApp .app-header>span:last-child .off-btn{margin-right:0;padding:3px 9px}
#chatRoomApp .app-header>span:last-child .hdr-btn:last-child{font-size:16px;padding:5px 9px;min-width:34px}
#chatRoomApp.chat-ios .app-header>button{padding:6px 11px;flex:none}
/* 名字显示完整：窄屏时心情标签缩成小圆点，把空间让给名字 */
#chatRoomApp #chatTitle{max-width:none}
@media (max-width:430px){
  #chatRoomApp #chatMoodPill{font-size:0;width:8px;height:8px;min-width:0;padding:0;border-radius:50%;flex:none;margin-left:-2px}
  #chatRoomApp .app-header>span:last-child .hdr-btn{padding:5px 5px;font-size:12px}
  #chatRoomApp .app-header>span:last-child .hdr-btn:last-child{padding:5px 7px;min-width:30px}
  #chatRoomApp .app-header>span:nth-child(2){gap:5px!important}
  #chatRoomApp.chat-ios .app-header>button:first-child{padding:5px 8px;font-size:13px}
  #chatRoomApp #chatTitle{font-size:15px}
}
/* 地图互动玩法 */
.mp-pinw svg{animation:mpDrop .45s cubic-bezier(.3,1.6,.5,1) both;transform-origin:50% 100%}
@keyframes mpDrop{from{transform:translateY(-16px) scale(.6);opacity:0}to{transform:none;opacity:1}}
.mp-ics{display:flex;flex-wrap:wrap;gap:6px}
.mp-ics button{width:34px;height:34px;border-radius:10px;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);display:flex;align-items:center;justify-content:center;padding:0}
.mp-ics button.on{background:var(--theme-color);color:var(--on-accent);border-color:transparent}
.mp-walk{image-rendering:pixelated;display:block;animation:mpBob .5s steps(2) infinite}
@keyframes mpBob{from{transform:translateY(0)}to{transform:translateY(-3px)}}
.mp-walkfb{font-size:24px;color:#e58aa3;text-align:center}
.mp-burst{overflow:visible}
.mp-burst i{position:absolute;left:0;top:0;font-style:normal;color:#e58aa3;font-size:15px;opacity:0;animation:mpFloat 1.3s ease-out var(--dl) both}
@keyframes mpFloat{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-70px) scale(1.3)}}
.mp-say .leaflet-popup-content-wrapper{border-radius:12px;background:#fff;color:#4a3a34;font-size:12.5px;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.mp-say .leaflet-popup-content{margin:8px 12px;line-height:1.5}
.mp-stop.cur{background:var(--accent-soft);border-radius:10px;margin:0 -6px;padding-left:6px;padding-right:6px}
.mp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mp-stats div{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:14px;padding:10px 0;text-align:center}
.mp-stats b{display:block;font-size:20px;color:var(--accent-text)}
.mp-stats small{font-size:12px;color:var(--text-sub)}
.mp-badges{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.mp-badges div{display:grid;grid-template-columns:34px 1fr;column-gap:8px;align-items:center;background:var(--card-bg);border:.5px solid var(--border-color);border-radius:14px;padding:9px 10px;opacity:.5;filter:grayscale(1)}
.mp-badges div.got{opacity:1;filter:none;border-color:var(--theme-color)}
.mp-badges i{grid-row:span 2;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-style:normal;font-size:17px;display:flex;align-items:center;justify-content:center}
.mp-badges b{font-size:13px}
.mp-badges small{font-size:11px;color:var(--text-sub);line-height:1.35}
.mp-dice{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:16px;padding:14px;text-align:center}
.mp-dshow{font-size:20px;font-weight:700;min-height:56px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:var(--accent-soft);color:var(--theme-dark);padding:0 10px;word-break:break-all}
.mp-dshow.done{animation:mpPop .4s cubic-bezier(.3,1.6,.5,1)}
@keyframes mpPop{from{transform:scale(.8)}to{transform:scale(1)}}
.mp-dsay{font-size:13px;color:var(--text-sub);margin:8px 0 2px;line-height:1.6}
.mp-pcs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.mp-pcs button{flex:none;border:1px solid var(--border-color);background:var(--card-bg);color:var(--theme-dark);border-radius:999px;padding:7px 13px;font-size:13px}
/* 互查手机 */
#swapApp{display:flex;flex-direction:column}#swapApp.hidden{display:none}
.swap-icon{background:linear-gradient(145deg,#cfe3ff,#9bb8f0)}
#swBody{flex:1;overflow-y:auto;padding:10px 14px 28px}
.sw-phone{border-radius:26px;padding:14px 12px 16px;background:linear-gradient(160deg,color-mix(in srgb,var(--theme-color) 35%,var(--card-bg)),color-mix(in srgb,var(--theme-color) 12%,var(--card-bg)));color:var(--theme-dark);border:1px solid var(--border-color);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.sw-st{display:flex;justify-content:space-between;font-size:12px;color:var(--theme-dark);padding:0 6px}
.sw-hello{text-align:center;font-size:12px;color:var(--text-sub);margin:10px 0 12px}
.sw-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 6px}
.sw-app{display:flex;flex-direction:column;align-items:center;gap:6px;border:none;background:none;color:var(--theme-dark);font-size:11.5px;cursor:pointer;padding:0}
.sw-app i{position:relative;width:52px;height:52px;border-radius:16px;background:var(--card-bg);box-shadow:0 3px 8px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;color:var(--accent-text);transition:transform .15s}
.sw-app:active i,.sw-app.tap i{transform:scale(.88);box-shadow:0 0 0 3px var(--theme-color)}
.sw-app.lock{opacity:.5}.sw-app u{position:absolute;right:-4px;top:-4px;background:#999;color:#fff;font-size:10px;text-decoration:none;border-radius:8px;padding:1px 5px}
.sw-act{display:flex;gap:8px;margin:14px 0 4px}.sw-act .btn-primary{flex:1;margin:0}.sw-act .btn-secondary{margin:0;width:auto;padding:0 16px}
.sw-log{background:var(--card-bg);border:.5px solid var(--border-color);border-radius:14px;padding:10px 12px;margin-bottom:8px}.sw-log small{color:var(--text-sub);font-size:11.5px;display:block}.sw-log b{font-size:13px}.sw-log p{margin:4px 0 0;font-size:13px;color:var(--text-sub)}
.sw-entry{display:flex;gap:8px;margin-bottom:12px}.sw-entry button{margin:0!important;flex:1}
.sw-pg{background:var(--card-bg);border-radius:18px;border:.5px solid var(--border-color);padding:12px 14px;min-height:240px}
.sw-ph{display:flex;justify-content:space-between;align-items:center;margin:4px 0 10px;font-size:15px}
.sw-note{padding:10px 0;border-top:.5px solid var(--border-color);cursor:pointer}.sw-note:first-of-type{border-top:none}.sw-note b{font-size:14px}.sw-note small{float:right;color:var(--text-sub);font-size:11.5px}.sw-note p{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--text-sub);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.sw-note.open p{-webkit-line-clamp:unset}
.sw-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.sw-ph-t{position:relative;aspect-ratio:1;border:none;border-radius:12px;background:linear-gradient(145deg,hsl(var(--h) 70% 85%),hsl(calc(var(--h) + 40) 70% 75%));color:#4a3a34;padding:8px;font-size:11.5px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer}
.sw-ph-t span{line-height:1.35;font-weight:600}.sw-ph-t i{font-style:normal;font-size:10px;opacity:.7}
.sw-bigph{aspect-ratio:4/3;border-radius:16px;background:linear-gradient(145deg,hsl(var(--h) 70% 86%),hsl(calc(var(--h) + 40) 70% 74%));display:flex;align-items:center;justify-content:center;padding:18px;text-align:center;font-size:15px;line-height:1.6;color:#4a3a34;margin-bottom:10px}
.sw-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:.5px solid var(--border-color);cursor:pointer}.sw-row:first-of-type{border-top:none}
.sw-row>i{flex:none;width:40px;height:40px;border-radius:12px;background:hsl(var(--h) 65% 82%);display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:700;color:#4a3a34}
.sw-row>div{flex:1;min-width:0}.sw-row b{font-size:14px}.sw-row p{margin:2px 0 0;font-size:12.5px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sw-row small{color:var(--text-sub);font-size:11px}
.sw-chat{display:flex;flex-direction:column;gap:8px}.sw-b{max-width:78%;padding:8px 12px;border-radius:14px 14px 14px 4px;background:var(--accent-soft);font-size:13.5px;line-height:1.5;align-self:flex-start;word-break:break-all}.sw-b.self{align-self:flex-end;background:var(--theme-color);color:var(--on-accent);border-radius:14px 14px 4px 14px}
.sw-line{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:.5px solid var(--border-color);font-size:13.5px}.sw-line:first-of-type{border-top:none}.sw-line>span{flex:none;width:24px;text-align:center;color:var(--accent-text);display:flex;justify-content:center}.sw-line b{flex:1;font-weight:500}.sw-line small{color:var(--text-sub);font-size:11.5px}.sw-line.miss b{color:#d95b6c}
.sw-order{display:grid;grid-template-columns:1fr auto;padding:10px 0;border-top:.5px solid var(--border-color)}.sw-order b{font-size:14px}.sw-order small{grid-column:1;color:var(--text-sub);font-size:12px}.sw-order em{grid-row:1/3;grid-column:2;font-style:normal;color:var(--accent-text);font-weight:700;align-self:center}
.sw-now{display:flex;flex-direction:column;align-items:center;gap:10px;margin:6px 0 14px}.sw-now b{font-size:15px;text-align:center}
.sw-disc{width:92px;height:92px;border-radius:50%;background:radial-gradient(circle,var(--card-bg) 0 14%,transparent 15%),conic-gradient(var(--theme-color),#fff,var(--theme-color),#333,var(--theme-color));animation:swSpin 6s linear infinite}
@keyframes swSpin{to{transform:rotate(360deg)}}
.sw-ring{width:130px;height:130px;border-radius:50%;margin:8px auto 14px;background:conic-gradient(var(--theme-color) calc(var(--p)*1%),var(--accent-soft) 0);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.sw-ring::before{content:"";position:absolute;inset:11px;border-radius:50%;background:var(--card-bg)}.sw-ring b,.sw-ring small{position:relative}.sw-ring b{font-size:24px}.sw-ring small{color:var(--text-sub)}
.sw-kv{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sw-kv div{background:var(--accent-soft);border-radius:12px;padding:10px;text-align:center}.sw-kv b{display:block;font-size:17px;color:var(--theme-dark)}.sw-kv small{font-size:11.5px;color:var(--text-sub)}
.sw-bars{display:flex;align-items:flex-end;gap:3px;height:110px;margin:8px 0 2px}.sw-bars i{flex:1;background:var(--theme-color);border-radius:3px 3px 0 0;opacity:.85}
.sw-axis{display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-sub);margin-bottom:12px}
.sw-say{margin-top:12px;min-height:8px}
.sw-day{font-size:12px;color:var(--text-sub);margin:12px 2px 4px}
.sw-del{margin-top:14px;border:1px dashed var(--border-color);border-radius:14px;padding:10px 12px;background:var(--card-bg);cursor:pointer}
.sw-delh small{display:block;font-size:11.5px;color:var(--text-sub);margin-top:2px}
.sw-delb{display:none;margin-top:8px}.sw-del.open .sw-delb{display:block}.sw-del.open .sw-delh small{display:none}
.sw-ub{display:flex;align-items:center;gap:10px;padding:7px 2px}.sw-ub>div{width:92px;flex:none}.sw-ub b{display:block;font-size:13px}.sw-ub small{font-size:11px;color:var(--text-sub)}
.sw-ub i{flex:1;height:8px;border-radius:99px;background:var(--accent-soft);overflow:hidden}.sw-ub u{display:block;height:100%;background:var(--theme-color);border-radius:99px}
.sw-kv.k3{grid-template-columns:repeat(3,1fr)}
.bk-row{display:flex;gap:10px;margin:6px 0}.bk-row button{flex:1;width:auto}
.bk-snap{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:.5px solid var(--border-color);border-radius:12px;background:var(--card-bg);margin-bottom:6px;font-size:12.5px}
.bk-snap button{border:1px solid var(--theme-color);background:none;color:var(--accent-text);border-radius:99px;padding:3px 12px;font-size:12px}

/* 角色卡导入：分项列表 */
#cardImportList{margin-bottom:6px}
.ci-item{background:var(--card-bg);border:1px solid var(--border-color);border-radius:14px;padding:8px;margin-bottom:8px}
.ci-top{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.ci-top .ci-t{flex:1;font-weight:600;margin:0}
.ci-ops{display:flex;gap:4px;flex:none}
.ci-ops button{border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-sub);border-radius:8px;width:30px;height:30px;font-size:14px;cursor:pointer}
.ci-ops button[data-op=del]{color:#d9534f}
.ci-ops button:active{transform:scale(.92)}
.ci-v{margin:0;min-height:64px}
.ci-group{color:var(--theme-dark);font-weight:700;margin-top:14px}

/* 新增桌面图标：日程提醒 / 倒数日 / iCost / 同人文 */
.agenda-icon{background:linear-gradient(145deg,#ffb4a2,#ff7f6b)}
#desktop.ic-sweet .agenda-icon{--c1:#ffd3c8;--c2:#ff9d8a}
.countdown-icon{background:linear-gradient(145deg,#b8a9f0,#8a7be0)}
#desktop.ic-sweet .countdown-icon{--c1:#ddd3fa;--c2:#a99bec}
.icost-icon{background:linear-gradient(145deg,#8fd3b0,#4fb383)}
#desktop.ic-sweet .icost-icon{--c1:#c9efd9;--c2:#82cfa6}
.fanfic-icon{background:linear-gradient(145deg,#f7c4dd,#e58fb9)}
#desktop.ic-sweet .fanfic-icon{--c1:#fddcec;--c2:#f4a6c9}

/* 桌面：文件夹 / 滑动翻页 */
#desktop:not(.editing){touch-action:pan-y}
.fo-bg{padding:6px!important;box-sizing:border-box}
.fo-g{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:auto;align-content:center;align-items:center;gap:3px;width:100%;height:100%;overflow:hidden}
.fo-mini{aspect-ratio:1/1;width:100%;display:flex;align-items:center;justify-content:center;border-radius:calc((var(--icon-radius) + 6px) * .3);background-size:cover;background-position:center;min-width:0;min-height:0;overflow:hidden}
/* 文件夹里的小图标 = 桌面图标缩小版：同样的圆角比例、同样的玻璃底、同样的图案，不再是白色小方块 */
.fo-mini.fo-plain{background:linear-gradient(150deg,rgba(255,255,255,.42),rgba(255,255,255,.12));box-shadow:inset 0 0 0 .5px rgba(255,255,255,.45)}
#desktop .fo-mini svg{width:72%!important;height:72%!important;stroke-width:2!important;filter:none!important}
#desktop.editing .hm-merge{outline:3px dashed rgba(255,255,255,.95);outline-offset:4px;border-radius:22px;transform:scale(1.1);transition:transform .12s}
.hm-folder{position:absolute;inset:0;z-index:80;background:rgba(30,24,34,.42);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:xaIn .18s ease}
.hm-folder.hidden{display:none}
.hf-card{width:84%;max-width:330px;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.55);border-radius:28px;padding:16px 14px 14px;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 18px 40px rgba(0,0,0,.25);animation:xaUp .22s ease}
.hf-name{display:block;width:70%;margin:0 auto 14px;text-align:center;background:transparent;border:none;border-bottom:1px dashed rgba(255,255,255,.6);color:#fff;font-size:18px;font-weight:600;outline:none;padding:4px;text-shadow:0 1px 3px rgba(0,0,0,.25)}
.hf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 6px;min-height:80px}
.hf-app{position:relative;display:flex;justify-content:center}
.hf-app .app-icon{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.hf-out{position:absolute;left:8px;top:-4px;width:22px;height:22px;border-radius:50%;border:none;background:#e0556b;color:#fff;font-size:16px;line-height:20px;padding:0;cursor:pointer;z-index:2}
.hf-btns{display:flex;gap:8px;margin-top:16px}
.hf-btns button{flex:1;border:none;border-radius:999px;padding:9px 0;font-size:13px;background:rgba(255,255,255,.35);color:#fff;cursor:pointer}
.hf-btns button.pri{background:#fff;color:#444;font-weight:600}
.hf-tip{margin:10px 0 0;text-align:center;font-size:11px;color:rgba(255,255,255,.85)}

html,body{overscroll-behavior-x:none}
.fo-mini svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}

.album-icon{background:linear-gradient(145deg,#9fd8f2,#5fa8e0)}
#desktop.ic-sweet .album-icon{--c1:#cfeaf8;--c2:#86bfe9}
