/* 极简紧凑心声框：无多余留白、横向自适应宽度、紧贴文字 */
    .fragment-inner-voice {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      color: #1e293b !important;
      padding: 6px 10px !important;
      margin: 4px 0 !important;
      border-radius: 6px !important;
      font-size: 0.84rem !important;
      line-height: 1.45 !important;
      width: 100% !important;
      box-sizing: border-box !important;
      white-space: pre-line !important; /* 关键：自动合并多余空行，绝不留大片空白 */
      box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
    }

    /* 极简紧凑状态栏框：紧贴文字、无虚高、全宽展示 */
    .fragment-status-block {
      background: #ffffff !important;
      border: 1px solid #e2e8f0 !important;
      color: #1e293b !important;
      padding: 6px 10px !important;
      margin: 4px 0 !important;
      border-radius: 6px !important;
      font-size: 0.82rem !important;
      line-height: 1.45 !important;
      width: 100% !important;
      box-sizing: border-box !important;
      white-space: pre-line !important; /* 关键：自动压缩空行 */
      box-shadow: 0 1px 2px rgba(0,0,0,0.04) !important;
    }

    .fragment-status-title, .fragment-voice-title {
      font-weight: 700 !important;
      font-size: 0.84rem !important;
      color: #0f172a !important;
      margin: 0 0 4px 0 !important;
      padding-bottom: 2px !important;
      border-bottom: 1px solid #f1f5f9 !important;
      display: block !important;
    }
/* 极简白底黑字状态栏框：无图标、紧凑、清晰 */
    .fragment-status-block {
      background: #ffffff !important;
      border: 1px solid #d1d5db !important;
      color: #111827 !important;
      padding: 6px 10px !important;
      margin: 6px 0 !important;
      border-radius: 4px !important;
      font-size: 0.82rem !important;
      line-height: 1.5 !important;
      width: fit-content !important;
      max-width: 95% !important;
      white-space: pre-wrap !important;
      box-shadow: 0 1px 2px rgba(0,0,0,0.05) !important;
    }
    .fragment-status-title {
      font-weight: 700 !important;
      color: #111827 !important;
      margin-bottom: 2px !important;
      border-bottom: 1px dashed #e5e7eb !important;
      padding-bottom: 2px !important;
    }
:root[data-theme="peach-cream"] {
  --bg-app: #fcf9f9; --bg-sidebar: #ffffff; --bg-card: #ffffff; --bg-hover: #fff3f5; --bg-input: #f8f1f3;
  --primary: #e27d95; --primary-hover: #d46a83; --primary-soft: rgba(226, 125, 149, 0.12);
  --border: rgba(180, 140, 150, 0.15); --text-title: #36292d; --text-body: #6e5c63; --text-muted: #a8949b;
  --accent-purple: #c084fc; --transfer-bg: #fff8f9; --transfer-border: #f3c2cf; --transfer-text: #b84a68;
}
:root[data-theme="sakura-mist"] {
  --bg-app: #fffafc; --bg-sidebar: #ffffff; --bg-card: #ffffff; --bg-hover: #fff0f6; --bg-input: #fbf0f4;
  --primary: #f08cb4; --primary-hover: #e0749f; --primary-soft: rgba(240, 140, 180, 0.12);
  --border: rgba(230, 160, 190, 0.15); --text-title: #382530; --text-body: #735766; --text-muted: #af92a1;
  --accent-purple: #d8b4fe; --transfer-bg: #fff5f8; --transfer-border: #f8c9dc; --transfer-text: #c2527f;
}
:root[data-theme="mint-matcha"] {
  --bg-app: #f7faf8; --bg-sidebar: #ffffff; --bg-card: #ffffff; --bg-hover: #eff7f2; --bg-input: #edf5f0;
  --primary: #63a886; --primary-hover: #509472; --primary-soft: rgba(99, 168, 134, 0.13);
  --border: rgba(120, 170, 145, 0.15); --text-title: #22332a; --text-body: #556b60; --text-muted: #8ea397;
  --accent-purple: #86efac; --transfer-bg: #f4faf6; --transfer-border: #bce0cc; --transfer-text: #3c7a5a;
}
:root[data-theme="pale-lavender"] {
  --bg-app: #faf8fd; --bg-sidebar: #ffffff; --bg-card: #ffffff; --bg-hover: #f3effa; --bg-input: #f2eef8;
  --primary: #a17fe0; --primary-hover: #8f69d4; --primary-soft: rgba(161, 127, 224, 0.13);
  --border: rgba(170, 150, 210, 0.15); --text-title: #2f253b; --text-body: #665779; --text-muted: #9e8fae;
  --accent-purple: #c084fc; --transfer-bg: #f8f5fc; --transfer-border: #dcd0f3; --transfer-text: #6b4aa8;
}
:root[data-theme="dark-rose"] {
  --bg-app: #121015; --bg-sidebar: #19151e; --bg-card: #221c29; --bg-hover: #2c2435; --bg-input: #1b1622;
  --primary: #e58b9e; --primary-hover: #f39cb0; --primary-soft: rgba(229, 139, 158, 0.15);
  --border: rgba(255, 255, 255, 0.08); --text-title: #f7eef3; --text-body: #c6b7c9; --text-muted: #796c7e;
  --accent-purple: #c084fc; --transfer-bg: #271e2c; --transfer-border: #4d3345; --transfer-text: #f095ac;
}

* { margin: 0; padding: 0; box-sizing: border-box; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif; -webkit-tap-highlight-color: transparent; }
body { background: var(--bg-app); color: var(--text-body); height: 100dvh; overflow: hidden; font-size: 14.5px; transition: background 0.25s, color 0.25s; }
#app { height: 100%; width: 100vw; display: flex; position: relative; }

#toastBox { position: fixed; top: 20px; left: 50%; transform: translateX(-50%); z-index: 99999; display: flex; flex-direction: column; gap: 6px; pointer-events: none; }
.toast-item { background: var(--text-title); color: var(--bg-app); padding: 8px 16px; border-radius: 20px; font-size: 0.84rem; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15); animation: toastAni 2.2s forwards; }
@keyframes toastAni { 0% { opacity: 0; transform: translateY(-8px); } 15% { opacity: 1; transform: translateY(0); } 80% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-8px); } }

.sidebar { position: fixed; top: 0; bottom: 0; left: 0; width: 285px; max-width: 82vw; background: var(--bg-sidebar); border-right: 1px solid var(--border); display: flex; flex-direction: column; z-index: 60; transform: translateX(-100%); transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 6px 0 25px rgba(0, 0, 0, 0.08); }
.sidebar.open { transform: translateX(0); }
.sidebar-mask { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.35); backdrop-filter: blur(2px); z-index: 50; opacity: 0; pointer-events: none; transition: opacity 0.25s; }
.sidebar-mask.show { opacity: 1; pointer-events: auto; }
.sidebar-header { height: 54px; padding: 0 16px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
.btn-sidebar-close { background: transparent; border: none; color: var(--text-muted); font-size: 1.2rem; cursor: pointer; }
.brand-title { font-weight: 700; color: var(--text-title); display: flex; align-items: center; gap: 8px; }
.sidebar-scroll { flex: 1; overflow-y: auto; padding: 12px 10px; display: flex; flex-direction: column; gap: 14px; }
.nav-label { font-size: 0.72rem; font-weight: 600; color: var(--text-muted); padding: 4px 8px; text-transform: uppercase; letter-spacing: 0.5px; display: flex; justify-content: space-between; align-items: center; }
.nav-list { display: flex; flex-direction: column; gap: 3px; }
.nav-btn { padding: 9px 12px; border-radius: 12px; display: flex; align-items: center; justify-content: space-between; color: var(--text-body); cursor: pointer; font-size: 0.9rem; transition: all 0.15s; }
.nav-btn:hover { background: var(--bg-hover); color: var(--text-title); }
.nav-btn.active { background: var(--primary-soft); color: var(--primary); font-weight: 600; }
.nav-btn-content { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.nav-btn-content span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.btn-more-dots { background: transparent; border: none; color: var(--text-muted); padding: 2px 6px; font-size: 0.95rem; cursor: pointer; border-radius: 4px; }
.btn-more-dots:hover { color: var(--text-title); background: rgba(0, 0, 0, 0.05); }
.sidebar-footer { padding: 12px 14px; border-top: 1px solid var(--border); flex-shrink: 0; }

.main-viewport { flex: 1; width: 100%; height: 100%; display: flex; flex-direction: column; background: var(--bg-app); overflow: hidden; position: relative; }
.app-topbar { height: 52px; padding: 0 12px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; background: var(--bg-sidebar); flex-shrink: 0; gap: 8px; }
.topbar-left { display: flex; align-items: center; gap: 8px; min-width: 0; flex: 1; }
.topbar-title { font-size: 0.92rem; font-weight: 700; color: var(--text-title); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.topbar-right { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.btn-icon { background: var(--bg-card); border: 1px solid var(--border); color: var(--text-title); border-radius: 8px; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1.1rem; flex-shrink: 0; }
.hero-phone-btn { background: linear-gradient(135deg, var(--primary), #b265ff); color: #fff; border: none; border-radius: 18px; padding: 5px 12px; font-weight: 600; font-size: 0.8rem; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; box-shadow: 0 2px 10px var(--primary-soft); }

.story-model-selector-wrap { display: flex; align-items: center; background: var(--bg-input); border: 1px solid var(--border); border-radius: 14px; padding: 2px 8px; gap: 4px; }
.story-model-selector-wrap select { background: transparent; border: none; outline: none; font-size: 0.76rem; color: var(--text-title); max-width: 110px; cursor: pointer; padding: 2px 0; }

.content-area { flex: 1; overflow-y: auto; padding: 14px 14px 8px 14px; display: flex; flex-direction: column; }
.hide { display: none !important; }

.message-stream { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; padding-bottom: 12px; scroll-behavior: smooth; }
.group-msg-row { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; max-width: 88%; position: relative; }
.group-msg-row.heroine-row { align-self: flex-end; align-items: flex-end; }
.msg-header-row { display: flex; align-items: center; gap: 6px; }
.sender-avatar { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }
.hide-avatar .sender-avatar { display: none !important; }
.sender-badge { font-size: 0.72rem; font-weight: 600; padding: 1px 6px; border-radius: 4px; color: var(--primary); background: var(--primary-soft); }
.btn-collect-toggle { background: transparent; border: none; color: var(--text-muted); font-size: 0.78rem; cursor: pointer; transition: all 0.15s; }
.btn-collect-toggle.active { color: var(--primary); font-weight: 600; }
.bubble { padding: 11px 15px; border-radius: 16px; line-height: 1.55; font-size: 0.92rem; word-break: break-word; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02); }
.bubble.male { background: var(--bg-card); border: 1px solid var(--border); border-bottom-left-radius: 3px; color: var(--text-title); }
.bubble.heroine { background: var(--primary-soft); border: 1px solid var(--border); border-bottom-right-radius: 3px; color: var(--text-title); }
.bubble.director-bubble { background: var(--bg-hover); border: 1px solid var(--primary-soft); color: var(--text-title); border-bottom-left-radius: 3px; }

.narration-bubble { background: var(--bg-card); border: 1px dashed var(--border); border-radius: 14px; padding: 14px 16px; color: var(--text-body); line-height: 1.65; font-size: 0.92rem; transition: all 0.2s; }
.narration-bubble.style-cinema { border-left: 4px solid var(--primary); background: var(--bg-hover); font-style: italic; letter-spacing: 0.3px; }
.narration-bubble.style-psychology { border: 1px solid var(--primary-soft); background: var(--bg-input); font-weight: 500; }
.narration-bubble.style-minimal { border: none; background: transparent; padding: 8px 4px; border-left: 2px solid var(--border); }

.branch-control-bar { display: flex; align-items: center; justify-content: space-between; background: var(--bg-input); border: 1px solid var(--border); border-radius: 12px; padding: 6px 12px; margin-bottom: 8px; font-size: 0.8rem; }
.branch-pager { display: flex; align-items: center; gap: 6px; }
.branch-pager button { background: var(--bg-card); border: 1px solid var(--border); color: var(--text-title); border-radius: 6px; width: 22px; height: 22px; cursor: pointer; font-size: 0.75rem; }
.story-clue-bar { background: var(--primary-soft); border: 1px solid var(--border); border-radius: 12px; padding: 8px 12px; margin-bottom: 8px; display: flex; align-items: center; justify-content: space-between; font-size: 0.8rem; }

.input-dock-wrap { width: 100%; background: var(--bg-app); padding: 4px 0 6px 0; display: flex; flex-direction: column; }
.input-dock { background: var(--bg-card); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 20px; padding: 4px 8px; display: flex; align-items: flex-end; gap: 6px; box-shadow: 0 1px 4px rgba(0,0,0,0.03); position: relative; }
.dock-plus-btn { background: transparent; border: none; color: var(--text-title); border-radius: 50%; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1.25rem; flex-shrink: 0; transition: transform 0.15s; }
.dock-plus-btn.active { transform: rotate(45deg); color: var(--primary); }
.input-dock textarea { flex: 1; background: transparent; border: none; outline: none; box-shadow: none; color: var(--text-title); font-size: 0.92rem; line-height: 20px; height: 22px; max-height: 100px; padding: 1px 4px; resize: none; overflow-y: hidden; -webkit-appearance: none; }
.input-dock textarea::placeholder { color: var(--text-muted); font-size: 0.88rem; }
.btn-send-wechat { background: var(--primary); color: #ffffff; border: none; border-radius: 15px; height: 28px; padding: 0 12px; font-size: 0.82rem; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-bottom: 2px; }

.chat-feature-tray { position:absolute; bottom:50px; left:-8px; right:-8px; background:color-mix(in srgb, var(--bg-sidebar) 96%, transparent); border:1px solid var(--border); border-radius:22px; padding:10px 12px 14px; box-shadow:0 -10px 32px rgba(0,0,0,.12); z-index:30; max-height:48vh; overflow-y:auto; backdrop-filter:blur(16px); }
.chat-feature-head{display:flex;align-items:flex-start;justify-content:space-between;padding:2px 3px 10px}.chat-feature-head div{display:flex;flex-direction:column;gap:2px}.chat-feature-head strong{font-size:.86rem;color:var(--text-title)}.chat-feature-head span{font-size:.68rem;color:var(--text-muted)}.chat-feature-handle{width:34px!important;height:4px;border-radius:99px;background:var(--border);margin-top:4px}.chat-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.feature-tile-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;background:transparent;border:0;padding:8px 4px 6px;border-radius:14px;color:inherit;font:inherit;text-align:center;min-width:0;transition:transform .12s ease,background .12s ease}.feature-tile-btn:active{transform:scale(.96);background:var(--bg-input)}
.feature-icon-bubble{width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:var(--bg-input);border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.04);font-size:1.25rem;margin-bottom:1px}.feature-tile-main{font-size:.78rem;font-weight:700;color:var(--text-title);white-space:nowrap}.feature-tile-sub{font-size:.62rem;color:var(--text-muted);line-height:1.2;white-space:nowrap}
@media (max-width:390px){.chat-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feature-icon-bubble{width:43px;height:43px}.feature-tile-sub{font-size:.59rem}}

.panel-box { background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.02); }
.story-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: 16px; padding: 14px 16px; margin-bottom: 12px; display: flex; flex-direction: column; gap: 6px; cursor: pointer; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.02); position: relative; }
.story-card.pinned { border-left: 4px solid var(--primary); }
.story-card-header { display: flex; justify-content: space-between; align-items: center; }
.story-card-title { font-size: 1rem; font-weight: 700; color: var(--text-title); display: flex; align-items: center; gap: 6px; }
.story-card-desc { font-size: 0.84rem; color: var(--text-muted); line-height: 1.5; }
.story-card-meta { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; color: var(--text-muted); margin-top: 4px; }

.director-toolbar { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; border-bottom: 1px dashed var(--border); margin-bottom: 8px; flex-shrink: 0; }
.director-tool-btn { padding: 5px 11px; font-size: 0.78rem; border-radius: 14px; background: var(--bg-input); border: 1px solid var(--border); color: var(--text-title); white-space: nowrap; cursor: pointer; display: flex; align-items: center; gap: 4px; transition: all 0.15s; }
.director-tool-btn:hover { background: var(--primary-soft); color: var(--primary); border-color: var(--primary); }
.msg-action-bar { display: flex; align-items: center; gap: 8px; font-size: 0.72rem; color: var(--text-muted); margin-top: 2px; }
.msg-action-btn { background: transparent; border: none; color: var(--primary); cursor: pointer; font-size: 0.72rem; padding: 0 2px; }
.msg-action-btn:hover { text-decoration: underline; }

.memory-category-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 12px; margin-bottom: 8px; overflow: hidden; }
.memory-category-title { font-weight: 700; font-size: 0.85rem; color: var(--text-title); display: flex; justify-content: space-between; align-items: center; gap:8px; padding:12px; cursor:pointer; list-style:none; user-select:none; }
.memory-category-title::-webkit-details-marker{display:none;}
.memory-category-title::after{content:"›"; color:var(--text-muted); font-size:1rem; transition:transform .16s ease;}
.memory-category-card[open] .memory-category-title::after{transform:rotate(90deg);}
.memory-category-card[open] .memory-category-title{border-bottom:1px solid var(--border);}
.memory-items-list{padding:10px 12px 12px; max-height:46vh; overflow:auto; font-size:.82rem; line-height:1.65; color:var(--text-body);}
.memory-item-row{padding:7px 0; border-bottom:1px dashed var(--border);}
.memory-item-row:last-child{border-bottom:none;}
.memory-empty{color:var(--text-muted); padding:4px 0;}
.memory-badge-count { font-size: 0.7rem; padding: 1px 6px; border-radius: 10px; background: var(--primary-soft); color: var(--primary); }
.memory-items-list { font-size: 0.8rem; color: var(--text-body); line-height: 1.5; }

.log-entry-row { background: var(--bg-input); border-radius: 10px; border: 1px solid var(--border); padding: 8px 12px; display: flex; flex-direction: column; gap: 4px; }
.log-entry-row.err { border-left: 3px solid #ff5252; }
.log-entry-row.succ { border-left: 3px solid #10b981; }
.log-entry-row.rollback { border-left: 3px solid var(--accent-purple); }

.scene-characters-bar { display: flex; align-items: center; gap: 6px; overflow-x: auto; padding: 4px 0; margin-bottom: 6px; }
.scene-char-chip { font-size: 0.75rem; padding: 3px 10px; border-radius: 12px; background: var(--bg-card); border: 1px solid var(--border); color: var(--text-muted); display: flex; align-items: center; gap: 4px; white-space: nowrap; cursor: pointer; transition: all 0.15s; user-select: none; }
.scene-char-chip.active { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); font-weight: 600; box-shadow: 0 1px 4px var(--primary-soft); }

.transfer-bubble { background: var(--transfer-bg); border: 1px solid var(--transfer-border); border-radius: 14px; padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; min-width: 180px; }
.transfer-meta-top { display: flex; justify-content: space-between; font-size: 0.72rem; color: var(--transfer-text); font-weight: 600; }
.transfer-amount-line { font-size: 1.25rem; font-weight: 700; color: var(--text-title); }
.transfer-memo-line { font-size: 0.75rem; color: var(--text-body); border-top: 1px dashed var(--border); padding-top: 4px; margin-top: 2px; }

.voice-bubble-wrapper { display: flex; flex-direction: column; gap: 4px; max-width: 82%; }
.voice-bubble { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 14px; cursor: pointer; width: fit-content; }
.voice-seconds { font-size: 0.82rem; font-weight: 600; }
.voice-bars-flow { display: flex; align-items: center; gap: 2px; height: 12px; }
.voice-bar-unit { width: 2px; height: 100%; background: currentColor; border-radius: 1px; opacity: 0.8; }
.voice-subtext-card { font-size: 0.78rem; color: var(--text-muted); background: var(--bg-input); border: 1px solid var(--border); padding: 4px 8px; border-radius: 8px; line-height: 1.4; }

.filter-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; border-bottom: 1px solid var(--border); }
.filter-tab-btn { padding: 6px 12px; border-radius: 20px; background: var(--bg-input); border: 1px solid var(--border); color: var(--text-muted); font-size: 0.82rem; cursor: pointer; white-space: nowrap; }
.filter-tab-btn.active { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); font-weight: 600; }

.item-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 6px; }
.item-top-row { display: flex; justify-content: space-between; align-items: center; }
.item-owner-tag { font-size: 0.72rem; padding: 2px 6px; border-radius: 6px; background: var(--primary-soft); color: var(--primary); }

.quote-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.quote-text-body { font-size: 0.92rem; color: var(--text-title); line-height: 1.6; font-style: italic; border-left: 3px solid var(--primary); padding-left: 10px; }
.quote-meta-bar { display: flex; justify-content: space-between; align-items: center; font-size: 0.75rem; color: var(--text-muted); margin-top: 4px; }

.diary-entry-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.diary-meta-row { display: flex; align-items: center; justify-content: space-between; font-size: 0.78rem; }
.diary-date-badge { font-weight: 700; color: var(--text-title); display: flex; align-items: center; gap: 4px; }
.diary-mood-tag { padding: 2px 8px; border-radius: 8px; background: var(--primary-soft); color: var(--primary); font-size: 0.72rem; }
.diary-text-content { font-size: 0.85rem; color: var(--text-body); line-height: 1.6; }

.radar-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.meter-row { display: flex; align-items: center; justify-content: space-between; font-size: 0.84rem; gap: 6px; }
.meter-label-area { min-width: 60px; font-weight: 500; }
.meter-bar-track { flex: 1; height: 6px; background: rgba(0, 0, 0, 0.06); border-radius: 4px; overflow: hidden; position: relative; }
.meter-bar-fill { height: 100%; background: linear-gradient(90deg, var(--primary), var(--accent-purple)); border-radius: 4px; }
.meter-val-text { min-width: 32px; text-align: right; font-size: 0.78rem; color: var(--text-muted); }

.avatar-toggle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; background: var(--bg-input); border: 1px solid var(--border); padding: 8px; border-radius: 14px; }
.toggle-avatar-btn { padding: 8px 4px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-card); color: var(--text-body); font-size: 0.78rem; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 3px; }
.toggle-avatar-btn.active { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); font-weight: 600; }
.avatar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }
.avatar-card { background: var(--bg-input); border: 1px solid var(--border); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.avatar-preview-img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 2px solid var(--primary); }

.quick-item-tray { position: absolute; bottom: 56px; left: 14px; right: 14px; background: var(--bg-sidebar); border: 1px solid var(--border); border-radius: 16px; padding: 12px; box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08); z-index: 20; }

button { outline: none; }
.btn-main { background: var(--primary); color: #ffffff; border: none; border-radius: 20px; padding: 7px 16px; font-weight: 600; cursor: pointer; transition: all 0.15s; }
.btn-main:active { transform: scale(0.96); }
.btn-ghost { background: var(--bg-card); color: var(--text-title); border: 1px solid var(--border); border-radius: 20px; padding: 6px 14px; cursor: pointer; }
textarea, select, input { background: var(--bg-input); border: 1px solid var(--border); border-radius: 10px; padding: 9px 12px; color: var(--text-title); outline: none; }

.modal-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.45); backdrop-filter: blur(3px); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px; }
.modal-box { background: var(--bg-sidebar); border: 1px solid var(--border); border-radius: 18px; width: 100%; max-width: 460px; padding: 20px; display: flex; flex-direction: column; gap: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); max-height: 90vh; overflow-y: auto; }
.action-menu-list { display: flex; flex-direction: column; gap: 4px; }
.action-menu-item { padding: 10px 14px; border-radius: 10px; display: flex; align-items: center; gap: 10px; font-size: 0.88rem; color: var(--text-title); cursor: pointer; border: none; background: transparent; text-align: left; width: 100%; }
.action-menu-item:hover { background: var(--bg-hover); color: var(--primary); }
.action-menu-item.danger { color: #ff5252; }
.broadcast-target-card { background: var(--bg-input); padding: 8px 12px; border-radius: 10px; border: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; }
.phone-modal { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.6); backdrop-filter: blur(4px); z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 16px; }
.phone-shell { width: 100%; max-width: 340px; height: 580px; max-height: 90vh; background: #18151c; border: 3px solid #2d2636; border-radius: 36px; display: flex; flex-direction: column; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4); overflow: hidden; color: #fff; }

.format-chip-btn { font-size: 0.74rem; padding: 3px 8px; border-radius: 8px; border: 1px solid var(--border); background: var(--bg-input); color: var(--text-body); cursor: pointer; }
.format-chip-btn:hover { border-color: var(--primary); color: var(--primary); }
/* ==================== 截图同款：电影分镜严格分语气泡 ==================== */
.fragment-stream-box { display: flex; flex-direction: column; gap: 10px; width: 100%; margin: 6px 0; }
.fragment-lead-text { font-size: 0.9rem; color: var(--text-body); line-height: 1.6; }
.fragment-user-extend {
  background: var(--primary-soft);
  color: var(--primary);
  border: 1px dashed var(--border);
  padding: 6px 12px;
  border-radius: 10px;
  font-size: 0.84rem;
  line-height: 1.5;
  width: fit-content;
  max-width: 95%;
}
.fragment-speaker-title {
  font-weight: 800;
  color: var(--text-title);
  font-size: 0.98rem;
  margin-top: 6px;
  letter-spacing: 0.5px;
}
.fragment-quote-bar {
  font-size: 0.92rem;
  color: var(--text-title);
  font-weight: 600;
  padding: 4px 0 4px 10px;
  border-left: 3px solid var(--text-title);
  line-height: 1.55;
  margin: 2px 0;
}
.fragment-translation-chip {
  background: #eef1f5;
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: #4b5563;
  padding: 5px 12px;
  border-radius: 14px;
  font-size: 0.82rem;
  line-height: 1.45;
  width: fit-content;
  max-width: 92%;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}
.fragment-action-card {
  background: #e5e7eb;
  border-radius: 12px;
  padding: 8px 14px;
  font-size: 0.85rem;
  color: #374151;
  line-height: 1.65;
  width: fit-content;
  max-width: 98%;
  border-left: 3px solid var(--primary);
}
:root[data-theme="dark-rose"] .fragment-translation-chip {
  background: #2a2233;
  color: #d1c4d9;
  border-color: rgba(255,255,255,0.1);
}
:root[data-theme="dark-rose"] .fragment-action-card {
  background: #231b2b;
  color: #e2d9e6;
}

/* ===== 频道级 API / 模型选择器补丁 ===== */
#topbarModelWrap { max-width: min(58vw, 430px); gap: 5px; }
#topbarStoryApiSelect { max-width: 130px; min-width: 72px; }
#topbarStoryModelSelect { max-width: 150px; min-width: 76px; }
@media (max-width: 620px) {
  #topbarModelWrap { max-width: 54vw; padding: 2px 5px; }
  #topbarStoryApiSelect { max-width: 88px; }
  #topbarStoryModelSelect { max-width: 96px; }
  .story-card-meta { gap: 8px; flex-wrap: wrap; }
}


/* ===== 真·人物手机：完全使用本地分支数据，不会后台额外调用 API ===== */
.real-phone-shell { width:min(390px, 96vw); height:min(760px, 92dvh); max-height:92dvh; background:#101014; border-radius:28px; overflow:hidden; display:flex; flex-direction:column; border:1px solid rgba(255,255,255,.12); box-shadow:0 24px 70px rgba(0,0,0,.42); }
.phone-statusbar { height:28px; flex-shrink:0; display:flex; justify-content:space-between; align-items:center; padding:0 18px; color:#c9c7ce; font-size:.66rem; background:#0d0d11; }
.phone-topbar { min-height:54px; padding:8px 12px; display:flex; align-items:center; gap:8px; border-bottom:1px solid rgba(255,255,255,.08); color:#fff; }
.phone-topbar strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:.92rem; }
.phone-subtitle { color:#8f8a98; font-size:.65rem; margin-top:2px; }
.phone-character-select { max-width:120px; min-width:88px; background:#1c1b22; color:#fff; border:1px solid rgba(255,255,255,.12); border-radius:9px; padding:5px 7px; font-size:.72rem; }
.phone-close-btn { width:30px; height:30px; border-radius:50%; border:0; background:#24222a; color:#ff8da1; cursor:pointer; }
.phone-owner-card { flex-shrink:0; padding:9px 14px; background:linear-gradient(135deg,rgba(226,125,149,.16),rgba(162,101,255,.12)); color:#fff; border-bottom:1px solid rgba(255,255,255,.06); }
.phone-app-tabs { flex-shrink:0; display:grid; grid-template-columns:repeat(6,1fr); gap:2px; padding:6px; background:#151419; border-bottom:1px solid rgba(255,255,255,.07); }
.phone-app-tabs button { border:0; background:transparent; color:#88838e; padding:5px 1px; border-radius:9px; cursor:pointer; font-size:.9rem; display:flex; flex-direction:column; align-items:center; gap:2px; }
.phone-app-tabs button span { font-size:.58rem; }
.phone-app-tabs button.active { background:#26232b; color:#fff; }
.phone-content { flex:1; min-height:0; overflow-y:auto; padding:12px; color:#efedf2; background:#121116; }
.phone-home-indicator { width:110px; height:4px; border-radius:99px; background:rgba(255,255,255,.45); margin:7px auto; flex-shrink:0; }
.phone-section-title { font-weight:700; font-size:.78rem; color:#fff; margin:3px 0 8px; display:flex; justify-content:space-between; align-items:center; }
.phone-card { background:#1d1b22; border:1px solid rgba(255,255,255,.075); border-radius:13px; padding:10px; margin-bottom:8px; }
.phone-row { display:flex; gap:9px; align-items:center; padding:9px 4px; border-bottom:1px solid rgba(255,255,255,.06); cursor:pointer; }
.phone-row:last-child { border-bottom:0; }
.phone-avatar { width:38px; height:38px; border-radius:10px; object-fit:cover; background:#2b2831; flex-shrink:0; }
.phone-row-main { min-width:0; flex:1; }
.phone-row-title { color:#fff; font-weight:650; font-size:.8rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.phone-row-sub { color:#9993a0; font-size:.68rem; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.phone-time { color:#77717e; font-size:.62rem; flex-shrink:0; }
.phone-badge { min-width:18px; height:18px; padding:0 5px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; background:#e85b78; color:#fff; font-size:.6rem; }
.phone-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.phone-app-card { background:#1d1b22; border:1px solid rgba(255,255,255,.07); border-radius:14px; padding:13px 6px; text-align:center; cursor:pointer; }
.phone-app-card .ico { font-size:1.35rem; display:block; margin-bottom:5px; }
.phone-app-card .label { font-size:.68rem; color:#d8d4dc; }
.phone-app-card .count { font-size:.6rem; color:#8d8792; margin-top:2px; }
.phone-note { white-space:pre-wrap; line-height:1.5; color:#ded9e3; font-size:.75rem; }
.phone-mini-btn { border:1px solid rgba(255,255,255,.12); background:#26232c; color:#eee; border-radius:8px; padding:4px 8px; cursor:pointer; font-size:.65rem; }
.phone-knowledge-known { border-left:3px solid #78c896; }
.phone-knowledge-observed { border-left:3px solid #e2a15f; }
.phone-knowledge-locked { border-left:3px solid #75707b; opacity:.8; }
@media (max-width: 430px) { .phone-modal { padding:0 !important; } .real-phone-shell { width:100vw; height:100dvh; max-height:100dvh; border-radius:0; } }


/* ==================== 人物手机生态重构版 ==================== */
.real-phone-shell{width:min(390px,96vw)!important;height:min(780px,94dvh)!important;max-height:94dvh!important;background:#0b0b10!important;border-radius:32px!important;border:1px solid rgba(255,255,255,.16)!important;overflow:hidden!important;box-shadow:0 26px 80px rgba(0,0,0,.5)!important;}
.phone-statusbar{height:26px!important;padding:0 18px!important;background:#08080c!important;color:#f2f2f5!important;font-size:.65rem!important;}
.phone-modebar{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#101016;border-bottom:1px solid rgba(255,255,255,.07);}
.phone-mode-segment{display:flex;background:#1c1c24;border-radius:10px;padding:2px;flex-shrink:0;}
.phone-mode-segment button{border:0;background:transparent;color:#898895;border-radius:8px;padding:5px 8px;font-size:.62rem;cursor:pointer;}
.phone-mode-segment button.active{background:#fff;color:#15151b;font-weight:700;}
.phone-mode-tip{font-size:.58rem;color:#777480;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-topbar{min-height:48px!important;padding:6px 9px!important;background:#111117!important;}
.phone-round-btn{width:30px;height:30px;border-radius:50%;border:0;background:#24242c;color:#fff;font-size:1rem;cursor:pointer;flex-shrink:0;}
.phone-title-wrap{min-width:0;flex:1;}
.phone-title-wrap strong{display:block;font-size:.84rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.phone-character-select{max-width:104px!important;min-width:80px!important;background:#22222b!important;border-radius:10px!important;}
.phone-owner-card{padding:7px 12px!important;background:#15151d!important;border-bottom:1px solid rgba(255,255,255,.05)!important;}
.phone-owner-inline{display:flex;align-items:center;gap:8px;}
.phone-owner-avatar{width:32px!important;height:32px!important;border-radius:10px!important;}
.phone-owner-text{min-width:0;flex:1;}.phone-owner-name{font-size:.74rem;font-weight:700;color:#fff}.phone-owner-meta{font-size:.58rem;color:#8c8994;margin-top:2px}
.phone-access-pill{font-size:.55rem;border:1px solid #6f6879;color:#aaa5b1;padding:3px 6px;border-radius:999px}.phone-access-pill.ok{border-color:#4e9f6b;color:#7bd596}
.phone-screen{padding:0!important;background:#111119!important;position:relative;}
.phone-wallpaper{min-height:100%;padding:14px 12px 78px;background:radial-gradient(circle at 20% 10%,rgba(175,92,152,.35),transparent 34%),radial-gradient(circle at 88% 18%,rgba(83,119,205,.28),transparent 32%),linear-gradient(160deg,#171522,#101018 52%,#0c0c11);}
.phone-widget-clock{height:82px;border-radius:20px;padding:15px 16px;margin-bottom:16px;background:rgba(255,255,255,.1);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:center;}
.phone-widget-clock strong{font-size:1.8rem;line-height:1;color:#fff}.phone-widget-clock span{font-size:.63rem;color:#d2cfd8;margin-top:7px}
.phone-home-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px 8px;}
.phone-home-app{border:0;background:transparent;color:#fff;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;min-width:0;padding:0;}
.phone-app-icon{width:52px;height:52px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:1.55rem;background:linear-gradient(145deg,#30303b,#1f1f27);box-shadow:0 6px 12px rgba(0,0,0,.22);position:relative;}
.phone-app-icon b{position:absolute;right:-5px;top:-5px;background:#ff4d61;color:#fff;min-width:18px;height:18px;border-radius:10px;padding:0 4px;display:flex;align-items:center;justify-content:center;font-size:.53rem;border:2px solid #111119;}
.phone-icon-wechat .phone-app-icon{background:linear-gradient(145deg,#42d36f,#20aa4f)}.phone-icon-moments .phone-app-icon{background:linear-gradient(145deg,#6285ff,#7e58d8)}.phone-icon-calls .phone-app-icon{background:linear-gradient(145deg,#4ad66d,#219e4a)}.phone-icon-sms .phone-app-icon{background:linear-gradient(145deg,#56d86d,#2dad47)}.phone-icon-notes .phone-app-icon{background:linear-gradient(145deg,#ffd85c,#e6b62f)}.phone-icon-gallery .phone-app-icon{background:linear-gradient(145deg,#ff8aa1,#d85caa)}.phone-icon-browser .phone-app-icon{background:linear-gradient(145deg,#59b8ff,#337be8)}.phone-icon-notify .phone-app-icon{background:linear-gradient(145deg,#ff7b64,#de4e47)}.phone-icon-knowledge .phone-app-icon{background:linear-gradient(145deg,#8c73ff,#6655ca)}
.phone-app-name{font-size:.62rem;color:#f2eff5;white-space:nowrap}.phone-home-app small{display:none}
.phone-dock{position:absolute;left:12px;right:12px;bottom:12px;height:60px;border-radius:20px;background:rgba(255,255,255,.12);backdrop-filter:blur(18px);display:grid;grid-template-columns:repeat(4,1fr);align-items:center;padding:5px 10px;}
.phone-dock button{border:0;background:transparent;font-size:1.45rem;cursor:pointer;}
.phone-bottom-nav{height:36px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;background:#0d0d12;border-top:1px solid rgba(255,255,255,.05);}
.phone-bottom-nav button{border:0;background:transparent;color:#bcb9c4;font-size:.85rem;cursor:pointer;height:100%;}
.phone-home-indicator{margin:4px auto 6px!important;height:3px!important;}
.phone-app-head{display:flex;align-items:center;gap:8px;min-height:48px;padding:9px 12px;background:#17171f;border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:3}.phone-app-head strong{font-size:.83rem;color:#fff}.phone-app-head>span{font-size:.58rem;color:#898691;margin-left:auto;text-align:right}.phone-inline-back{border:0;background:transparent;color:#8fb2ff;cursor:pointer;font-size:.72rem;padding:4px}
.phone-list-card{margin:10px;background:#191920;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}
.phone-row-button{width:100%;border:0;background:transparent;color:inherit;text-align:left}.phone-row{padding:10px!important}.phone-avatar-self,.phone-group-avatar,.phone-call-avatar,.phone-sms-avatar,.phone-notify-avatar,.phone-browser-avatar{display:flex!important;align-items:center;justify-content:center;font-size:.9rem;background:#2a2932!important;color:#fff}.phone-avatar-self{background:#4b8cff!important;font-size:.68rem}.phone-group-avatar{background:#4b9c7f!important}
.phone-passive-tip{font-size:.62rem;color:#7f7b87;line-height:1.5;padding:4px 12px 14px}.phone-empty{padding:26px 14px;text-align:center;color:#777380;font-size:.68rem}.phone-empty-card{margin:12px;background:#191920;border-radius:14px;border:1px solid rgba(255,255,255,.06)}
.phone-chat-view{display:flex;flex-direction:column;gap:8px;padding:12px;min-height:220px}.phone-chat-bubble{max-width:80%;padding:8px 10px;border-radius:12px;background:#2a2932;color:#f0edf3;font-size:.72rem;line-height:1.45;white-space:pre-wrap}.phone-chat-bubble.mine{align-self:flex-end;background:#68c96c;color:#101512}.phone-chat-bubble.theirs{align-self:flex-start}.phone-chat-bubble b{display:block;font-size:.58rem;margin-bottom:3px}.phone-chat-bubble small{display:block;font-size:.52rem;opacity:.65;margin-top:4px;text-align:right}.phone-action-wide{display:block;width:calc(100% - 24px);margin:0 12px 12px;border:0;background:#2c6ae8;color:#fff;border-radius:12px;padding:10px;cursor:pointer;font-size:.7rem}
.phone-moments{padding:8px 10px}.phone-moment{display:grid;grid-template-columns:40px 1fr;gap:9px;padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.06)}.phone-moment strong{font-size:.7rem;color:#8ea8e8}.phone-moment p{font-size:.72rem;line-height:1.55;margin:5px 0;color:#eeeaf1;white-space:pre-wrap}.phone-moment small{font-size:.55rem;color:#77727d}.phone-moment-comments{background:#22212a;border-radius:7px;padding:6px;margin-top:6px;font-size:.62rem;color:#c9c4cd}
.phone-note-card{margin:10px;background:#1c1b22;border-radius:14px;padding:12px;border:1px solid rgba(255,255,255,.06)}.phone-note-card>div{display:flex;justify-content:space-between;gap:8px}.phone-note-card strong{font-size:.72rem}.phone-note-card span,.phone-note-card small{font-size:.54rem;color:#817c87}.phone-note-card p{font-size:.7rem;line-height:1.5;white-space:pre-wrap;color:#ded9e3;margin:8px 0 3px}
.phone-gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:10px}.phone-photo-card{background:#1b1a21;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.06);padding-bottom:8px}.phone-photo-placeholder{height:88px;background:linear-gradient(135deg,#34303d,#1d2330);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:#777180}.phone-photo-card strong,.phone-photo-card p,.phone-photo-card small{display:block;padding:0 8px}.phone-photo-card strong{font-size:.66rem;margin-top:7px}.phone-photo-card p{font-size:.6rem;color:#a7a2ac;line-height:1.4;margin:5px 0}.phone-photo-card small{font-size:.52rem;color:#6f6b74}
.phone-browser-bar{margin:10px;background:#24232b;color:#8d8994;border-radius:10px;padding:9px 11px;font-size:.68rem}.phone-knowledge-card{margin:10px;border-radius:14px;padding:11px;background:#1c1b22;border-left:3px solid #6dc68b}.phone-knowledge-card.locked{border-left-color:#77717d;opacity:.82}.phone-knowledge-card strong{font-size:.68rem}.phone-knowledge-card p{font-size:.63rem;line-height:1.5;color:#c8c4cc;margin-top:7px}
.phone-lock-screen{min-height:100%;padding:42px 16px 20px;background:radial-gradient(circle at 50% 0,rgba(118,92,155,.28),transparent 35%),linear-gradient(180deg,#171522,#0d0d13);text-align:center}.phone-lock-time{font-size:3rem;font-weight:250;color:#fff}.phone-lock-date{font-size:.68rem;color:#c5c0ca;margin-top:4px}.phone-lock-notifs{margin-top:28px;display:flex;flex-direction:column;gap:7px;text-align:left}.phone-lock-notif{display:flex;gap:9px;background:rgba(255,255,255,.12);backdrop-filter:blur(14px);border-radius:13px;padding:9px 10px}.phone-lock-notif>span{font-size:1.1rem}.phone-lock-notif strong{display:block;font-size:.65rem}.phone-lock-notif small{display:block;font-size:.58rem;color:#c0bbc4;margin-top:2px}.phone-lock-empty{font-size:.65rem;color:#77727d}.phone-lock-help{margin-top:28px;font-size:.65rem;color:#aaa4b0;line-height:1.65}.phone-lock-help span{color:#77717e}.phone-lock-count{margin-top:12px;font-size:.58rem;color:#77717e}
@media(max-width:430px){.real-phone-shell{width:100vw!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.phone-home-grid{gap:14px 7px}.phone-app-icon{width:50px;height:50px}}

/* 在场人物调度修复 */
.scene-scheduler-box{max-width:520px!important}.scene-scheduler-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.scene-scheduler-sub{font-size:.7rem;color:var(--text-muted);margin-top:3px;line-height:1.4}.scene-scheduler-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.scene-selected-count{font-size:.7rem;color:var(--primary);margin-left:auto}.scene-checkbox-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;max-height:280px;overflow-y:auto;padding:2px}.scene-check-card{display:flex;align-items:center;gap:7px;background:var(--bg-input);border:1px solid var(--border);border-radius:10px;padding:9px 10px;font-size:.8rem;cursor:pointer}.scene-check-card.active{border-color:var(--primary);background:var(--primary-soft)}.scene-check-card input{accent-color:var(--primary)}.scene-check-dot{color:var(--primary)}.scene-empty-tip{grid-column:1/-1;padding:18px;text-align:center;color:var(--text-muted);font-size:.76rem}.scene-add-row,.scene-enter-row{display:flex;gap:7px;align-items:center}.scene-add-row input,.scene-enter-row select{flex:1;min-width:0}.scene-scheduler-footer{display:flex;justify-content:flex-end}.scene-scheduler-footer .btn-main{min-width:150px}@media(max-width:520px){.scene-checkbox-grid{grid-template-columns:1fr}.scene-enter-row{flex-wrap:wrap}.scene-enter-row select{flex-basis:100%}}

/* ==================== 2026-10 全功能稳定增强：新故事人物确认 / 手机 / 在场调度 ==================== */
.new-story-builder-box{max-width:680px!important;max-height:90dvh!important;overflow-y:auto!important;gap:10px!important}
.new-story-builder-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.new-story-builder-sub{font-size:.72rem;color:var(--text-muted);line-height:1.45;margin-top:3px}
.story-role-count-badge{flex-shrink:0;border-radius:999px;background:var(--primary-soft);color:var(--primary);padding:4px 9px;font-size:.68rem;font-weight:700}
.new-story-role-toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.new-story-role-toolbar button{font-size:.72rem;padding:5px 9px}
.new-story-role-help{font-size:.68rem;color:var(--text-muted);line-height:1.45}
.new-story-role-review-list{display:flex;flex-direction:column;gap:7px;max-height:260px;overflow-y:auto;border:1px solid var(--border);background:var(--bg-input);border-radius:12px;padding:8px}
.new-story-role-empty{padding:18px 8px;text-align:center;font-size:.74rem;color:var(--text-muted)}
.story-role-review-card{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:flex-start;background:var(--bg-card);border:1px solid var(--border);border-radius:11px;padding:9px}
.story-role-review-card.disabled{opacity:.55}
.story-role-review-card input[type="checkbox"]{margin-top:4px;accent-color:var(--primary)}
.story-role-review-main{min-width:0}
.story-role-review-name{display:flex;gap:7px;align-items:center;color:var(--text-title);font-weight:700;font-size:.8rem}
.story-role-source{font-size:.58rem;color:var(--primary);background:var(--primary-soft);padding:2px 5px;border-radius:999px;font-weight:600}
.story-role-review-desc{font-size:.68rem;color:var(--text-body);line-height:1.45;margin-top:4px;white-space:pre-wrap;word-break:break-word;max-height:58px;overflow:hidden}
.story-role-review-actions{display:flex;flex-direction:column;gap:5px}
.story-role-review-actions button{font-size:.65rem;padding:3px 6px}
.story-role-library-box{max-width:660px!important;max-height:86dvh!important;overflow:hidden!important}
.story-role-library-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.story-role-library-list{display:flex;flex-direction:column;gap:8px;overflow-y:auto;max-height:58dvh;padding-right:2px}
.story-role-library-section-title{font-size:.7rem;font-weight:700;color:var(--text-muted);padding:2px 3px}
.story-role-library-item{display:grid;grid-template-columns:auto 1fr;gap:9px;background:var(--bg-input);border:1px solid var(--border);border-radius:11px;padding:9px;cursor:pointer}
.story-role-library-item:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.story-role-library-item input{margin-top:4px;accent-color:var(--primary)}
.story-role-library-item strong{display:block;color:var(--text-title);font-size:.8rem}
.story-role-library-item small{display:block;color:var(--text-muted);font-size:.64rem;line-height:1.4;margin-top:3px}
.story-role-library-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--border);padding-top:10px;font-size:.7rem;color:var(--text-muted)}
.story-template-group{border:1px dashed var(--border);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:6px}
.story-template-group-head{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--text-title);font-size:.76rem;font-weight:700}
.story-template-select-all{font-size:.62rem;padding:3px 7px}
.ai-scan-status{font-size:.66rem;color:var(--text-muted);padding:4px 2px}

/* 调度层永远可点击，避免旧样式/沉浸状态盖住 */
#sceneCharsModal{z-index:3000!important;pointer-events:auto!important}
#sceneCharsModal .modal-box{pointer-events:auto!important}
#sceneCharsModal button,#sceneCharsModal input,#sceneCharsModal select,#sceneCharsModal label{pointer-events:auto!important;touch-action:manipulation}
.scene-check-card{user-select:none;-webkit-user-select:none}
.scene-check-card input{width:18px;height:18px;flex-shrink:0}

/* 人物手机稳态显示：桌面与模式切换必须始终可见可点 */
#phoneSimulatorModal{z-index:3600!important;pointer-events:auto!important}
#phoneSimulatorModal .real-phone-shell{pointer-events:auto!important}
.phone-modebar,.phone-topbar,.phone-bottom-nav{position:relative;z-index:12}
.phone-mode-segment button{min-width:64px;min-height:30px;touch-action:manipulation;pointer-events:auto!important}
.phone-content{position:relative;z-index:1;min-height:240px!important}
.phone-wallpaper{display:block!important;min-height:100%!important}
.phone-home-app,.phone-dock button,.phone-round-btn,.phone-bottom-nav button{touch-action:manipulation;pointer-events:auto!important}
.phone-safe-error{margin:14px;padding:14px;border-radius:14px;background:#201b22;border:1px solid rgba(255,255,255,.08);color:#ddd;font-size:.68rem;line-height:1.6}
.phone-safe-error button{margin-top:10px;border:0;border-radius:9px;padding:7px 11px;background:#fff;color:#111;cursor:pointer}
.phone-lock-free-btn{margin-top:14px;border:0;border-radius:11px;padding:9px 14px;background:#fff;color:#17151d;font-weight:700;font-size:.68rem;cursor:pointer}
.phone-home-section-label{font-size:.56rem;color:rgba(255,255,255,.65);letter-spacing:.04em;margin:0 0 8px 2px}
.phone-app-icon{transition:transform .12s ease}
.phone-home-app:active .phone-app-icon{transform:scale(.92)}
.phone-app-loading{display:flex;align-items:center;justify-content:center;min-height:220px;color:#8e8994;font-size:.68rem}
.phone-proactive-hint{margin:8px 10px 0;border-radius:10px;background:rgba(255,255,255,.05);padding:7px 9px;color:#898590;font-size:.58rem;line-height:1.45}
.phone-moment-actions{display:flex;gap:8px;margin-top:7px}.phone-moment-actions button{border:0;background:transparent;color:#8ca6e8;font-size:.6rem;cursor:pointer;padding:2px}
.phone-moment-likes{font-size:.58rem;color:#a9a4af;margin-top:5px}

@media(max-width:560px){
  .new-story-builder-box,.story-role-library-box{max-width:none!important;width:100%!important;max-height:94dvh!important}
  .new-story-role-toolbar{display:grid;grid-template-columns:1fr 1fr}
  .story-role-review-card{grid-template-columns:auto 1fr}.story-role-review-actions{grid-column:2;flex-direction:row}
  .phone-mode-tip{display:none}
  .phone-character-select{max-width:92px!important}
}

.character-card-mobile{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-card,#fff);border:1px solid var(--border);border-radius:14px;}
.character-avatar-mobile{width:52px;height:52px;border-radius:50%;object-fit:cover;}
.character-info-mobile{flex:1;display:flex;flex-direction:column;gap:4px;font-size:.85rem;}
.character-info-mobile span{font-size:.72rem;color:var(--text-muted);}


/* 2026-10 人物中心第二阶段：单入口、内联展开、分支四态 */
.character-center-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.character-add-btn{font-size:.76rem!important;padding:5px 10px!important;flex-shrink:0}.character-avatar-toggles{margin-top:10px!important}.character-center-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.character-card-wrap{background:var(--bg-card,#fff);border:1px solid var(--border);border-radius:14px;overflow:hidden}.character-card-wrap .character-card-mobile{border:0;border-radius:0;background:transparent;cursor:pointer}.character-card-wrap.player-card .character-card-mobile{cursor:default}.character-card-expand-trigger.expanded{background:var(--primary-soft)}.character-expand-arrow{font-size:1.1rem;color:var(--text-muted);transition:transform .2s}.character-card-expand-trigger.expanded .character-expand-arrow{transform:rotate(180deg)}.character-detail-inline{border-top:1px solid var(--border);padding:11px 12px;display:grid;gap:9px}.character-detail-inline.hide{display:none!important}.character-detail-section{font-size:.76rem;color:var(--text-body)}.character-detail-section>strong{display:block;color:var(--text-title);font-size:.76rem;margin-bottom:4px}.character-detail-section p{margin:0;line-height:1.5;white-space:pre-wrap}.character-detail-section ul{margin:4px 0 0;padding-left:18px;line-height:1.5}.character-detail-section small{color:var(--text-muted)}.character-mini-chips,.character-presence-actions{display:flex;gap:5px;flex-wrap:wrap}.character-mini-chip{font-size:.66rem;padding:3px 7px;border-radius:999px;background:var(--bg-input);border:1px solid var(--border)}.presence-quick-btn{border:1px solid var(--border);background:var(--bg-input);color:var(--text-body);border-radius:999px;padding:4px 8px;font-size:.66rem}.presence-quick-btn.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary);font-weight:700}.character-detail-actions{display:flex;gap:6px;flex-wrap:wrap}.character-detail-actions button{font-size:.7rem;padding:5px 9px}.scene-state-card{display:grid!important;grid-template-columns:32px minmax(70px,1fr) auto!important;align-items:center!important}.scene-state-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover}.scene-state-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-presence-select{min-width:104px;width:auto!important;padding:5px 7px!important;font-size:.7rem!important;margin:0!important}.scene-state-card.active{border-color:var(--primary);background:var(--primary-soft)}
@media(max-width:520px){.character-avatar-toggles{grid-template-columns:repeat(3,minmax(0,1fr))!important}.character-avatar-toggles button{padding:5px 4px!important;font-size:.66rem!important}.character-detail-actions{display:grid;grid-template-columns:1fr 1fr}.character-detail-actions button{min-height:36px}.scene-state-card{grid-template-columns:30px minmax(62px,1fr) 108px!important}.scene-presence-select{min-height:36px}}
.story-role-library-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;align-self:center}.story-role-library-item:has(.story-role-library-avatar){grid-template-columns:auto auto 1fr}


/* 人物档案中心：单人物聚焦 + 返回 + 内嵌羁绊雷达 */
.character-card-active{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-soft)}
.character-detail-back{appearance:none;border:0;background:transparent;color:var(--primary);font-weight:700;font-size:.78rem;padding:2px 0 6px;text-align:left;justify-self:start;cursor:pointer}
.character-bond-radar{display:grid;gap:8px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;padding:10px}
.character-bond-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.72rem;font-weight:700;color:var(--text-title)}
.character-bond-head small{font-size:.62rem;font-weight:500;color:var(--text-muted)}
.character-bond-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px}
.character-bond-metric{min-width:0}
.character-bond-metric>div:first-child{display:flex;justify-content:space-between;gap:6px;font-size:.66rem;color:var(--text-body);margin-bottom:3px}
.character-bond-metric b{font-size:.64rem;color:var(--text-title)}
.character-bond-track{height:5px;border-radius:999px;background:var(--border);overflow:hidden}
.character-bond-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#f472b6)}
@media(max-width:520px){.character-bond-grid{grid-template-columns:1fr 1fr}.character-bond-head{align-items:flex-start;flex-direction:column;gap:2px}.character-detail-back{min-height:34px}}

/* ==================== 线上礼物订单 ==================== */
.gift-order-modal-box{gap:14px}.gift-order-head{display:flex;gap:10px;align-items:flex-start}.gift-order-head-icon{width:44px;height:44px;border-radius:14px;background:var(--primary-soft);display:flex;align-items:center;justify-content:center;font-size:1.35rem;flex:0 0 auto}.gift-order-head div{display:flex;flex-direction:column;gap:3px}.gift-order-head strong{font-size:1rem;color:var(--text-title)}.gift-order-head small{font-size:.7rem;color:var(--text-muted);line-height:1.45}.gift-order-field{display:flex;flex-direction:column;gap:5px}.gift-order-field>span{font-size:.72rem;color:var(--text-muted);font-weight:600}.gift-order-note{font-size:.69rem;color:var(--text-muted);background:var(--bg-input);border:1px dashed var(--border);border-radius:10px;padding:8px 10px;line-height:1.45}.gift-order-bubble{min-width:210px;max-width:82%;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:11px 13px;box-shadow:0 2px 9px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:5px}.heroine-row .gift-order-bubble{margin-left:auto}.gift-order-bubble-top{display:flex;justify-content:space-between;gap:10px;font-size:.68rem;color:var(--text-muted)}.gift-order-bubble strong{font-size:.95rem;color:var(--text-title)}.gift-order-bubble-meta{font-size:.72rem;color:var(--text-body)}.gift-order-bubble-card{font-size:.72rem;color:var(--text-body);background:var(--bg-input);border-radius:9px;padding:6px 8px}.gift-order-bubble small{font-size:.62rem;color:var(--text-muted);border-top:1px dashed var(--border);padding-top:5px}#triggerSummaryBtn[disabled]{opacity:.72;cursor:progress}

.memory-strategy-note{font-size:.69rem;line-height:1.45;color:var(--text-muted);background:var(--bg-input);border:1px dashed var(--border);border-radius:10px;padding:7px 9px;margin-top:-4px}

/* 角色日记 / 记忆保险点增强 */
.chat-feature-head-minimal{justify-content:center!important;align-items:center!important;padding:0 3px 8px!important}.chat-feature-head-minimal .chat-feature-handle{margin:0 auto!important}
.manual-memory-snapshot{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);margin-bottom:8px;overflow:hidden}.manual-memory-snapshot>summary{list-style:none;cursor:pointer;padding:9px 10px;font-weight:700;color:var(--text-title);display:flex;justify-content:space-between;gap:8px}.manual-memory-snapshot>summary::-webkit-details-marker{display:none}.manual-memory-snapshot-body{padding:0 10px 10px;font-size:.78rem;line-height:1.65}.manual-memory-block{margin-top:8px}.manual-memory-block strong{display:block;color:var(--text-title);margin-bottom:4px}.manual-memory-event{padding:6px 8px;border-radius:8px;background:var(--bg-input);margin:5px 0}.manual-memory-delta{padding:5px 0;border-bottom:1px dashed var(--border)}.manual-memory-delta:last-child{border-bottom:0}.diary-source-tag{font-size:.65rem;color:var(--primary);border:1px solid var(--border);background:var(--primary-soft);padding:2px 6px;border-radius:999px}.diary-entry-card .diary-text-content{white-space:pre-wrap;line-height:1.8}.diary-round-note{font-size:.7rem;color:var(--text-muted);margin-top:4px}


/* ==================== 手机第三阶段：微博 / 分应用红点 / 收起 ==================== */
.phone-minimize-btn{font-size:.82rem!important;color:#d9d6df!important}
.phone-mini-restore{position:fixed;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(max(12px,env(safe-area-inset-bottom,0px)) + 58px);z-index:3599;width:48px;height:48px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(25,24,32,.92);backdrop-filter:blur(18px);box-shadow:0 10px 32px rgba(0,0,0,.34);font-size:1.35rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;touch-action:manipulation}
.phone-mini-restore.hide{display:none!important}.phone-mini-restore span{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:10px;background:#ff4d61;color:#fff;border:2px solid #18171f;font-size:.52rem;display:flex;align-items:center;justify-content:center;font-weight:700}.phone-mini-restore span.hide{display:none!important}
.phone-icon-weibo .phone-app-icon{background:linear-gradient(145deg,#ff9b45,#e86436)}
.phone-weibo{padding:0 0 18px}.phone-weibo-profile{padding:15px 14px 12px;background:linear-gradient(180deg,#211c22,#17171f);border-bottom:1px solid rgba(255,255,255,.06)}.phone-weibo-profile-top{display:flex;gap:10px;align-items:center}.phone-weibo-avatar{width:54px!important;height:54px!important;border-radius:50%!important}.phone-weibo-profile-main{flex:1;min-width:0}.phone-weibo-name{font-size:.86rem;color:#fff;font-weight:750}.phone-weibo-handle{font-size:.58rem;color:#88828e;margin-top:2px}.phone-weibo-bio{font-size:.65rem;color:#c3bec7;line-height:1.5;margin-top:8px;white-space:pre-wrap}.phone-weibo-stats{display:flex;gap:16px;margin-top:10px;color:#8f8995;font-size:.58rem}.phone-weibo-stats b{color:#ece8ee;font-size:.68rem;margin-right:3px}.phone-weibo-edit{border:1px solid rgba(255,255,255,.14);background:#25232b;color:#eee;border-radius:999px;padding:5px 9px;font-size:.58rem;cursor:pointer}.phone-weibo-feed{padding:8px 10px}.phone-weibo-post{display:grid;grid-template-columns:38px 1fr;gap:9px;padding:12px 3px;border-bottom:1px solid rgba(255,255,255,.06)}.phone-weibo-post:last-child{border-bottom:0}.phone-weibo-post-main{min-width:0}.phone-weibo-post-head{display:flex;align-items:center;gap:6px}.phone-weibo-post-head strong{font-size:.7rem;color:#f2edf1}.phone-weibo-post-head span{font-size:.53rem;color:#77717d}.phone-weibo-post p{font-size:.72rem;line-height:1.58;color:#ece8ed;margin:6px 0;white-space:pre-wrap}.phone-weibo-meta{font-size:.53rem;color:#77717d}.phone-weibo-actions{display:flex;gap:14px;margin-top:7px}.phone-weibo-actions button{border:0;background:transparent;color:#9c96a1;font-size:.6rem;padding:2px 0;cursor:pointer}.phone-weibo-actions button.active{color:#ff7a5f}.phone-weibo-comments{margin-top:7px;padding:7px 8px;background:#201e25;border-radius:8px;font-size:.6rem;color:#cbc5cd;line-height:1.55}.phone-weibo-comments b{color:#e9a06d}.phone-weibo-empty{margin:18px 10px;padding:30px 12px;border-radius:14px;background:#191920;text-align:center;color:#77727d;font-size:.67rem}.phone-weibo-unread-tip{margin:8px 10px;padding:8px 10px;border-radius:10px;background:rgba(255,142,77,.08);border:1px solid rgba(255,142,77,.13);font-size:.58rem;color:#b99d8d;line-height:1.5}
.phone-app-badge-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#ff4d61;margin-left:5px;vertical-align:middle}
@media(max-width:430px){.phone-mini-restore{right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 66px)}.phone-weibo-profile{padding-left:13px;padding-right:13px}}


/* ==================== 手机第四阶段：全屏真实手机 ==================== */
#phoneSimulatorModal.phone-modal{inset:0!important;padding:0!important;align-items:stretch!important;justify-content:stretch!important;background:rgba(7,7,10,.96)!important;backdrop-filter:none!important;z-index:1900!important;}
#phoneSimulatorModal .real-phone-shell{width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#f4f4f6!important;padding-top:env(safe-area-inset-top,0px)!important;}
#phoneSimulatorModal .phone-statusbar{height:26px!important;background:#0b0b0e!important;padding-left:max(18px,env(safe-area-inset-left,0px))!important;padding-right:max(18px,env(safe-area-inset-right,0px))!important;}
#phoneSimulatorModal .phone-modebar{min-height:34px;padding:4px 10px;background:#0f0f13;border-bottom:1px solid rgba(255,255,255,.06);}
#phoneSimulatorModal .phone-mode-tip{opacity:.72;font-size:.55rem;}
#phoneSimulatorModal .phone-topbar{min-height:46px!important;background:#121216!important;padding:5px 9px!important;}
#phoneSimulatorModal .phone-title-wrap strong{font-size:.82rem}.phone-character-select{max-width:126px!important;}
#phoneSimulatorModal .phone-owner-card{display:none!important;}
#phoneSimulatorModal .phone-content{flex:1!important;padding:0!important;background:#f3f3f5!important;color:#16161a!important;overscroll-behavior:contain;}
#phoneSimulatorModal .phone-bottom-nav{display:none!important;}
#phoneSimulatorModal .phone-home-indicator{height:5px!important;width:128px!important;background:rgba(0,0,0,.72)!important;margin:5px auto max(5px,env(safe-area-inset-bottom,0px))!important;z-index:20;}
.phone-full-wallpaper{min-height:100%;padding:18px 15px calc(88px + env(safe-area-inset-bottom,0px))!important;}
.phone-home-grid{grid-template-columns:repeat(4,1fr)!important;gap:20px 8px!important;}.phone-app-icon{width:58px!important;height:58px!important;border-radius:17px!important;font-size:1.7rem!important}.phone-app-name{font-size:.68rem!important}.phone-home-app small{display:block!important;font-size:.5rem!important;color:rgba(255,255,255,.72)!important;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phone-widget-clock{height:100px!important;margin-bottom:22px!important;border-radius:24px!important}.phone-widget-clock strong{font-size:2.35rem!important}.phone-dock{height:68px!important;bottom:calc(12px + env(safe-area-inset-bottom,0px))!important;border-radius:24px!important}.phone-icon-assets .phone-app-icon{background:linear-gradient(145deg,#24252d,#090a0d)}.phone-icon-weibo .phone-app-icon{background:linear-gradient(145deg,#ff9b45,#e86436)}
.phone-native-app,.phone-conversation-page{height:100%;display:flex;flex-direction:column;background:#f5f5f7;color:#17171b;min-height:0}.phone-native-head{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 15px;background:rgba(249,249,250,.96);border-bottom:1px solid #dddde1;position:sticky;top:0;z-index:4}.phone-native-head strong{font-size:1rem}.phone-native-head span{font-size:.7rem;color:#888}.phone-native-body{flex:1;min-height:0;overflow-y:auto;padding-bottom:8px}.phone-list-card{background:#fff!important;border-color:#e6e6e9!important;margin:10px!important}.phone-row{border-bottom-color:#ececf0!important}.phone-row-title{color:#151519!important;font-size:.88rem!important}.phone-row-sub{color:#8b8b92!important;font-size:.72rem!important}.phone-time{color:#aaa!important}.phone-avatar{border-radius:9px!important}.phone-empty{color:#8d8d94!important}.phone-avatar-self{background:#27c35a!important}
.phone-wechat-nav,.phone-weibo-nav{height:58px;flex-shrink:0;display:grid;background:#fafafa;border-top:1px solid #dddde1;padding-bottom:env(safe-area-inset-bottom,0px)}.phone-wechat-nav{grid-template-columns:repeat(4,1fr)}.phone-weibo-nav{grid-template-columns:repeat(3,1fr)}.phone-wechat-nav button,.phone-weibo-nav button{border:0;background:transparent;color:#85858c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:.62rem}.phone-wechat-nav button b,.phone-weibo-nav button b{font-size:1.15rem;font-weight:500}.phone-wechat-nav button.active{color:#20b759}.phone-weibo-nav button.active{color:#ff6b36}
.phone-wechat-tools{background:#fff;margin:10px 0;border-top:1px solid #eee;border-bottom:1px solid #eee}.phone-wechat-tools div{padding:13px 16px;border-bottom:1px solid #eee;font-size:.86rem}.phone-wechat-tools div:last-child{border-bottom:0}.phone-contact-section{background:#fff}.phone-contact-letter{padding:7px 15px;background:#f1f1f4;color:#888;font-size:.68rem}.phone-contact-row{width:100%;height:58px;border:0;border-bottom:1px solid #eee;background:#fff;display:flex;align-items:center;gap:12px;padding:0 15px;text-align:left;color:#17171b}.phone-contact-row img{width:40px;height:40px;border-radius:8px;object-fit:cover}.phone-contact-row span{font-size:.88rem}
.phone-wechat-me{padding-top:12px}.phone-wechat-profile-card{background:#fff;display:flex;align-items:center;gap:12px;padding:20px 16px;margin-bottom:12px}.phone-wechat-profile-card img{width:60px;height:60px;border-radius:10px;object-fit:cover}.phone-wechat-profile-card div{flex:1}.phone-wechat-profile-card strong{display:block;font-size:1rem}.phone-wechat-profile-card span{display:block;color:#888;font-size:.7rem;margin-top:4px}.phone-wechat-profile-card>b{color:#aaa}.phone-settings-row{width:100%;height:50px;border:0;border-bottom:1px solid #eee;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;color:#222}.phone-settings-row span{font-size:.86rem}.phone-settings-row b{font-size:.72rem;color:#999;font-weight:500}
.phone-conversation-head{height:48px;flex-shrink:0;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;background:#ededf0;border-bottom:1px solid #d9d9dd;padding:0 6px}.phone-conversation-head button{border:0;background:transparent;font-size:1.65rem;text-align:left;color:#222}.phone-conversation-head strong{text-align:center;font-size:.92rem}.phone-conversation-head span{text-align:right;color:#555}.phone-chat-view-full{flex:1!important;min-height:0!important;overflow-y:auto!important;background:#ededf0!important;padding:12px!important}.phone-chat-bubble{font-size:.8rem!important}.phone-chat-bubble.theirs{background:#fff!important;color:#17171b!important}.phone-chat-bubble.mine{background:#95ec69!important;color:#151515!important}.phone-wechat-composer{min-height:54px;display:grid;grid-template-columns:38px 1fr 54px;gap:7px;align-items:center;padding:7px 9px calc(7px + env(safe-area-inset-bottom,0px));background:#f7f7f8;border-top:1px solid #d8d8dc}.phone-wechat-composer input{height:38px;border:0;border-radius:8px;background:#fff;padding:0 10px;font-size:.82rem;outline:none}.phone-wechat-composer button{height:34px;border:0;border-radius:8px;background:#20b759;color:#fff}.phone-wechat-composer button:first-child{background:transparent;color:#555;font-size:1.2rem}.phone-readonly-foot{padding:9px 12px calc(9px + env(safe-area-inset-bottom,0px));font-size:.64rem;color:#888;text-align:center;background:#f5f5f7;border-top:1px solid #ddd}
.phone-social-compose{display:grid;grid-template-columns:1fr 58px;gap:8px;background:#fff;padding:10px 12px;border-bottom:1px solid #eee}.phone-social-compose textarea{resize:none;border:1px solid #e1e1e5;border-radius:10px;padding:9px;font:inherit;outline:none}.phone-social-compose button{border:0;border-radius:9px;background:#20b759;color:#fff}.phone-weibo-compose button{background:#ff6b36}.phone-wechat-moments{background:#fff!important;padding:0 12px!important}.phone-moment{border-bottom-color:#eee!important}.phone-moment p{color:#222!important}.phone-moment small{color:#999!important}.phone-moment-comments{background:#f0f0f3!important;color:#555!important}.phone-moment-actions button{color:#68788f!important}
.phone-weibo-native{background:#fff}.phone-weibo-native .phone-native-body{background:#fff}.phone-weibo-profile{background:#fff!important;color:#17171b!important;border-bottom-color:#eee!important}.phone-weibo-name{color:#17171b!important}.phone-weibo-bio{color:#666!important}.phone-weibo-stats{color:#999!important}.phone-weibo-stats b{color:#222!important}.phone-weibo-feed{background:#fff!important}.phone-weibo-post{border-bottom-color:#eee!important}.phone-weibo-post-head strong{color:#222!important}.phone-weibo-post p{color:#222!important}.phone-weibo-comments{background:#f6f6f8!important;color:#555!important}.phone-weibo-edit-form{display:flex;flex-direction:column;gap:10px;margin-top:14px}.phone-weibo-edit-form label{font-size:.68rem;color:#888;display:flex;flex-direction:column;gap:5px}.phone-weibo-edit-form input,.phone-weibo-edit-form textarea{border:1px solid #ddd;border-radius:9px;padding:9px;background:#fff;color:#222;outline:none;font:inherit}.phone-weibo-edit-form button{border:0;background:#ff6b36;color:#fff;border-radius:10px;padding:10px}.phone-weibo-readonly span{font-size:.62rem;color:#999}
.phone-assets-app .phone-native-body{background:#f2f2f6;padding:14px}.phone-asset-balance{background:linear-gradient(135deg,#22242a,#090a0d);color:#fff;border-radius:20px;padding:22px;margin-bottom:12px}.phone-asset-balance small,.phone-asset-balance span{display:block;color:#aaa;font-size:.65rem}.phone-asset-balance strong{display:block;font-size:2rem;margin:8px 0 10px}.phone-asset-card{background:#fff;border-radius:14px;margin-bottom:12px;overflow:hidden}.phone-asset-row,.phone-asset-edit-row{min-height:48px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px}.phone-asset-row:last-child,.phone-asset-edit-row:last-child{border-bottom:0}.phone-asset-row span,.phone-asset-edit-row span{font-size:.78rem;color:#555}.phone-asset-row b{font-size:.8rem;color:#222}.phone-asset-edit-row input{flex:1;min-width:0;border:0;text-align:right;font-size:.78rem;outline:none;color:#222;background:transparent}.phone-asset-save{width:100%;border:0;border-radius:12px;background:#111;color:#fff;padding:12px;font-weight:650}.phone-asset-text .phone-asset-edit-row{align-items:flex-start;padding-top:12px;padding-bottom:12px}.phone-asset-text .phone-asset-edit-row input{text-align:left}
.phone-safe-error{color:#444!important;background:#fff!important}.phone-safe-error button{display:block;margin:12px auto;border:0;border-radius:9px;background:#222;color:#fff;padding:8px 12px}
@media(max-width:430px){#phoneSimulatorModal .phone-modebar{padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px))}.phone-home-grid{gap:18px 6px!important}.phone-app-icon{width:56px!important;height:56px!important}}

/* ==================== 手机第五阶段：跟随系统主题 / 商城 / 财务流水 / 操作面板 ==================== */
#phoneSimulatorModal.phone-modal{background:color-mix(in srgb,var(--bg-app) 88%,#000 12%)!important}
#phoneSimulatorModal .real-phone-shell{background:var(--bg-app)!important;color:var(--text-body)!important}
#phoneSimulatorModal .phone-statusbar,#phoneSimulatorModal .phone-modebar,#phoneSimulatorModal .phone-topbar{background:var(--bg-sidebar)!important;color:var(--text-title)!important;border-color:var(--border)!important}
#phoneSimulatorModal .phone-round-btn,.phone-character-select,#phoneSimulatorModal .phone-mode-segment{background:var(--bg-input)!important;color:var(--text-title)!important;border-color:var(--border)!important}
#phoneSimulatorModal .phone-content,.phone-native-app,.phone-conversation-page,.phone-native-body{background:var(--bg-app)!important;color:var(--text-title)!important}
#phoneSimulatorModal .phone-native-head,.phone-wechat-nav,.phone-weibo-nav{background:color-mix(in srgb,var(--bg-sidebar) 94%,transparent)!important;border-color:var(--border)!important;color:var(--text-title)!important}
#phoneSimulatorModal .phone-list-card,.phone-contact-section,.phone-wechat-tools,.phone-wechat-profile-card,.phone-settings-row,.phone-social-compose,.phone-asset-card{background:var(--bg-card)!important;border-color:var(--border)!important;color:var(--text-title)!important}
#phoneSimulatorModal .phone-row-title,.phone-contact-row,.phone-wechat-profile-card strong,.phone-settings-row{color:var(--text-title)!important}
#phoneSimulatorModal .phone-row-sub,.phone-time,.phone-contact-letter,.phone-wechat-profile-card span,.phone-settings-row b{color:var(--text-muted)!important}
.phone-full-wallpaper{background:radial-gradient(circle at 75% 12%,var(--primary-soft),transparent 30%),linear-gradient(145deg,color-mix(in srgb,var(--primary) 26%,var(--bg-app)),var(--bg-app) 52%,color-mix(in srgb,var(--accent-purple) 18%,var(--bg-app)))!important}
.phone-widget-clock{background:color-mix(in srgb,var(--bg-card) 64%,transparent)!important;border:1px solid var(--border)!important;color:var(--text-title)!important;backdrop-filter:blur(22px)}
.phone-dock{background:color-mix(in srgb,var(--bg-card) 64%,transparent)!important;border:1px solid var(--border)!important;backdrop-filter:blur(22px)}
.phone-app-name,.phone-home-app small{color:var(--text-title)!important;text-shadow:0 1px 8px color-mix(in srgb,var(--bg-app) 85%,transparent)}
.phone-icon-taobao .phone-app-icon{background:linear-gradient(145deg,#ff7a24,#ff4f17);color:#fff;font-size:1.2rem!important;font-weight:850}.phone-icon-parcel .phone-app-icon{background:linear-gradient(145deg,#1cb37b,#07965f);color:#fff;font-size:1.1rem!important;font-weight:850}.phone-icon-maps .phone-app-icon{background:linear-gradient(145deg,#50b4ff,#2e7de9)}.phone-icon-calendar .phone-app-icon{background:linear-gradient(145deg,#fff,#f0f0f2);color:#e84b4b}.phone-icon-settings .phone-app-icon{background:linear-gradient(145deg,#a9adb5,#656b76)}
.phone-finance-ledger{margin-top:12px;background:var(--bg-card);border-radius:14px;overflow:hidden}.phone-finance-ledger h4{padding:13px 14px;border-bottom:1px solid var(--border);font-size:.8rem}.phone-finance-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border)}.phone-finance-row:last-child{border-bottom:0}.phone-finance-row div{min-width:0}.phone-finance-row strong{display:block;font-size:.75rem}.phone-finance-row small{display:block;color:var(--text-muted);font-size:.6rem;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone-finance-row b{font-size:.75rem}.phone-finance-row b.plus{color:#1ca56f}.phone-finance-row b.minus{color:#e25b66}
.phone-shop-nav{height:58px;display:grid;grid-template-columns:repeat(4,1fr);background:var(--bg-sidebar);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px);flex-shrink:0}.phone-shop-nav button{border:0;background:transparent;color:var(--text-muted);font-size:.67rem}.phone-shop-nav button.active{color:#ff5b22;font-weight:750}.phone-taobao-head strong{color:#ff5b22}.phone-shop-search{margin:12px;display:flex;align-items:center;gap:8px;background:var(--bg-input);border-radius:18px;padding:8px 12px}.phone-shop-search input{border:0;outline:0;background:transparent;color:var(--text-title);flex:1}.phone-shop-banner{margin:0 12px 12px;padding:16px;border-radius:18px;background:linear-gradient(135deg,#ff7b28,#ff4b18);color:#fff;display:flex;flex-direction:column;gap:5px}.phone-shop-banner b{font-size:1.25rem}.phone-shop-banner span{font-size:.65rem;opacity:.9}.phone-shop-gift-tip{margin:0 12px 10px;padding:9px 12px;border-radius:12px;background:var(--primary-soft);font-size:.68rem}.phone-shop-gift-tip button{float:right;border:0;background:transparent;color:var(--primary)}.phone-shop-products{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 12px 16px}.phone-shop-products article{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:11px;min-width:0}.phone-shop-product-icon{height:82px;border-radius:12px;background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:2.5rem}.phone-shop-product-main{padding-top:8px}.phone-shop-product-main strong,.phone-shop-product-main small,.phone-shop-product-main b{display:block}.phone-shop-product-main strong{font-size:.76rem}.phone-shop-product-main small{font-size:.57rem;color:var(--text-muted);height:31px;line-height:1.4;margin:4px 0}.phone-shop-product-main b{color:#ff5b22;font-size:.85rem}.phone-shop-product-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:8px}.phone-shop-product-actions button{border:1px solid #ff6a2b;border-radius:999px;background:transparent;color:#ff5b22;font-size:.58rem;padding:6px 2px}.phone-shop-product-actions button:last-child{background:#ff5b22;color:#fff}
.phone-shop-cart{padding:12px}.phone-shop-cart-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;background:var(--bg-card);border-radius:14px;padding:12px;margin-bottom:8px}.phone-shop-cart-row>span{font-size:1.8rem}.phone-shop-cart-row strong,.phone-shop-cart-row small{display:block}.phone-shop-cart-row small{color:var(--text-muted);font-size:.63rem;margin-top:3px}.phone-shop-cart-row button{border:0;background:transparent;color:#df5c63}.phone-shop-checkout{position:sticky;bottom:0;background:var(--bg-sidebar);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}.phone-shop-checkout button{border:0;border-radius:999px;background:#ff5b22;color:#fff;padding:9px 18px}.phone-shop-orders,.phone-address-list{padding:12px}.phone-shop-orders article,.phone-address-list article{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:9px}.phone-shop-order-head{display:flex;justify-content:space-between;gap:8px}.phone-shop-order-head b{color:#ff5b22;font-size:.63rem}.phone-shop-orders p,.phone-shop-orders small,.phone-address-list p{font-size:.63rem;color:var(--text-muted);margin-top:5px;line-height:1.5}.phone-address-list button{border:0;background:transparent;color:#df5c63;font-size:.62rem;margin-top:6px}.phone-address-form{margin:12px;padding:12px;border-radius:14px;background:var(--bg-card);display:flex;flex-direction:column;gap:8px}.phone-address-form input,.phone-address-form textarea{border:1px solid var(--border);border-radius:9px;background:var(--bg-input);color:var(--text-title);padding:9px;font:inherit}.phone-address-form button{border:0;border-radius:9px;background:#ff5b22;color:#fff;padding:10px}
.phone-parcel-summary{margin:12px;padding:16px;border-radius:16px;background:linear-gradient(135deg,#19ad77,#078957);color:#fff;font-weight:700}.phone-parcel-card{margin:9px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:12px}.phone-parcel-card>div{display:grid;grid-template-columns:30px 1fr auto;align-items:center}.phone-parcel-card b{color:#14a875;font-size:.62rem}.phone-parcel-card p,.phone-parcel-card small{display:block;color:var(--text-muted);font-size:.62rem;margin-top:6px}
.phone-map-canvas{height:210px;margin:12px;border-radius:20px;background:radial-gradient(circle at 35% 38%,var(--primary-soft),transparent 22%),linear-gradient(135deg,var(--bg-input),color-mix(in srgb,var(--primary) 10%,var(--bg-card)));display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--border)}.phone-map-canvas>span{font-size:2rem}.phone-map-canvas strong{margin-top:8px}.phone-map-canvas small{color:var(--text-muted);margin-top:4px}.phone-map-list{margin:12px}.phone-map-list h4{font-size:.75rem;margin-bottom:8px}.phone-map-list>div{background:var(--bg-card);padding:11px;border-radius:12px;margin-bottom:6px}.phone-map-list span{display:block;color:var(--text-muted);font-size:.62rem;margin-top:3px}
.phone-calendar-date{margin:14px;border-radius:20px;background:var(--primary);color:#fff;padding:18px;display:flex;align-items:end;gap:12px}.phone-calendar-date b{font-size:2.5rem;line-height:1}.phone-calendar-date span{font-size:.67rem}.phone-calendar-events{padding:0 14px 16px}.phone-calendar-events article{display:grid;grid-template-columns:10px 1fr;gap:9px;padding:10px 0;border-bottom:1px solid var(--border)}.phone-calendar-events i{width:7px;height:7px;border-radius:50%;background:var(--primary);margin-top:5px}.phone-calendar-events strong{font-size:.66rem}.phone-calendar-events p{font-size:.65rem;color:var(--text-muted);margin-top:4px;line-height:1.5}
.phone-settings-group{margin:14px;background:var(--bg-card);border-radius:14px;overflow:hidden}.phone-settings-group>div{display:flex;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-size:.74rem}.phone-settings-group>div:last-child{border-bottom:0}.phone-settings-group b{color:var(--text-muted);font-weight:500}.phone-settings-help{margin:0 18px;color:var(--text-muted);font-size:.63rem;line-height:1.55}
.phone-chat-action-sheet{position:absolute;inset:0;z-index:80;display:flex;align-items:flex-end}.phone-chat-sheet-mask{position:absolute;inset:0;background:rgba(0,0,0,.25)}.phone-chat-sheet,.phone-transfer-sheet{position:relative;width:100%;background:var(--bg-sidebar);border-radius:20px 20px 0 0;padding:16px 12px calc(12px + env(safe-area-inset-bottom,0px));box-shadow:0 -10px 40px rgba(0,0,0,.18)}.phone-chat-sheet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 8px;padding:8px 0 18px}.phone-chat-sheet-grid button{border:0;background:transparent;color:var(--text-title);display:flex;flex-direction:column;align-items:center;gap:6px}.phone-chat-sheet-grid b{width:50px;height:50px;border-radius:15px;background:var(--bg-input);display:flex;align-items:center;justify-content:center;font-size:1.2rem}.phone-chat-sheet-grid span{font-size:.63rem}.phone-chat-sheet-cancel{width:100%;border:0;border-radius:12px;background:var(--bg-input);color:var(--text-title);padding:11px}.phone-transfer-sheet h3{font-size:.88rem;text-align:center;margin-bottom:12px}.phone-transfer-amount{display:flex;align-items:center;border-bottom:1px solid var(--border);padding:8px 4px;margin-bottom:10px}.phone-transfer-amount span{font-size:1.2rem}.phone-transfer-amount input{flex:1;border:0;background:transparent;color:var(--text-title);font-size:2rem;outline:0;padding:0 8px}.phone-transfer-sheet>input{width:100%;border:1px solid var(--border);background:var(--bg-input);color:var(--text-title);border-radius:9px;padding:10px;margin-bottom:10px}.phone-transfer-sheet>button{width:100%;border:0;border-radius:10px;padding:11px;margin-top:6px;background:#20b759;color:#fff}.phone-transfer-sheet>button:last-child{background:var(--bg-input);color:var(--text-title)}
:root[data-theme="dark-rose"] #phoneSimulatorModal .phone-chat-view-full,:root[data-theme="dark-rose"] #phoneSimulatorModal .phone-conversation-head,:root[data-theme="dark-rose"] #phoneSimulatorModal .phone-wechat-composer{background:var(--bg-input)!important;border-color:var(--border)!important}:root[data-theme="dark-rose"] #phoneSimulatorModal .phone-chat-bubble.theirs{background:var(--bg-card)!important;color:var(--text-title)!important}:root[data-theme="dark-rose"] #phoneSimulatorModal .phone-chat-bubble.mine{background:color-mix(in srgb,#20b759 68%,#fff 8%)!important;color:#07130a!important}
@media(max-width:430px){.phone-shop-products{grid-template-columns:1fr 1fr;gap:8px;padding:0 9px 14px}.phone-shop-product-icon{height:70px}.phone-chat-sheet-grid{grid-template-columns:repeat(4,1fr)}}


/* Stage5b: realistic shopping/address ownership + complete asset records */
.phone-address-owner{font-size:.72rem;color:var(--primary);font-weight:700;margin-bottom:4px}
.phone-address-form label{display:grid;gap:6px;color:var(--text-muted);font-size:.78rem}
.phone-address-form select,.phone-asset-long textarea{width:100%;border:1px solid var(--border);background:var(--bg-input);color:var(--text-body);border-radius:12px;padding:10px;font:inherit}
.phone-asset-row-text{align-items:flex-start!important}.phone-asset-row-text b{max-width:65%;white-space:pre-wrap;text-align:right;font-weight:600}
.phone-finance-row small{display:block;margin-top:3px}


/* ==================== Stage6: realistic transfer / assets / shopping / life apps ==================== */
.transfer-modal-overlay{backdrop-filter:blur(12px)}
.wechat-transfer-modal-box{width:min(92vw,390px)!important;border-radius:26px!important;padding:0!important;overflow:hidden!important;background:var(--bg-card)!important;border:1px solid var(--border)!important;box-shadow:0 30px 80px rgba(0,0,0,.28)!important}
.wechat-transfer-modal-head{display:flex;align-items:center;gap:12px;padding:20px 20px 14px}.wechat-transfer-logo{width:42px;height:42px;border-radius:13px;background:#20b759;color:#fff;display:grid;place-items:center;font-size:1.35rem;font-weight:800}.wechat-transfer-modal-head strong{display:block;color:var(--text-title);font-size:1rem}.wechat-transfer-modal-head small{display:block;color:var(--text-muted);font-size:.7rem;margin-top:3px}.wechat-transfer-recipient{display:flex;align-items:center;gap:12px;margin:0 18px 14px;padding:13px;border-radius:17px;background:var(--bg-input);border:1px solid var(--border)}.wechat-transfer-recipient img{width:48px;height:48px;border-radius:12px;object-fit:cover}.wechat-transfer-recipient small,.wechat-transfer-recipient strong{display:block}.wechat-transfer-recipient small{color:var(--text-muted);font-size:.66rem}.wechat-transfer-recipient strong{font-size:.92rem;color:var(--text-title);margin-top:3px}.wechat-transfer-select,.wechat-transfer-memo{display:flex;align-items:center;gap:10px;margin:0 20px 12px;color:var(--text-muted);font-size:.7rem}.wechat-transfer-select span,.wechat-transfer-memo span{width:58px}.wechat-transfer-select select,.wechat-transfer-memo input{flex:1;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-title);padding:9px 2px;outline:0}.wechat-transfer-input-wrap{margin:8px 20px 5px;display:flex;align-items:center;border-bottom:1px solid var(--border);padding:6px 0 10px}.wechat-transfer-input-wrap span{font-size:1.8rem;color:var(--text-title);font-weight:700}.wechat-transfer-input-wrap input{border:0!important;background:transparent!important;color:var(--text-title)!important;font-size:2.45rem!important;font-weight:750!important;min-width:0;flex:1;outline:0!important;padding:0 8px!important}.wechat-transfer-quick{display:flex;gap:7px;margin:10px 20px 15px}.wechat-transfer-quick button{border:1px solid color-mix(in srgb,#20b759 38%,var(--border));background:color-mix(in srgb,#20b759 7%,var(--bg-card));color:#20a952;border-radius:999px;padding:6px 10px;font-size:.66rem}.wechat-transfer-modal-note{margin:2px 20px 14px;color:var(--text-muted);font-size:.64rem;line-height:1.55}.wechat-transfer-confirm,.wechat-transfer-cancel{width:calc(100% - 40px);margin:0 20px 10px;border:0;border-radius:13px;padding:12px;font-size:.86rem}.wechat-transfer-confirm{background:#20b759;color:#fff;font-weight:750}.wechat-transfer-cancel{background:var(--bg-input);color:var(--text-title);margin-bottom:18px}
.wechat-transfer-card{width:min(270px,78vw);border-radius:10px;overflow:hidden;background:#f39a45;color:#fff;box-shadow:0 3px 10px rgba(117,63,15,.14)}.wechat-transfer-main{display:flex;gap:12px;align-items:center;padding:16px 15px 13px}.wechat-transfer-icon{width:42px;height:42px;border-radius:50%;border:2px solid rgba(255,255,255,.9);display:grid;place-items:center;font-size:1.15rem;font-weight:800}.wechat-transfer-main>div:last-child{min-width:0}.wechat-transfer-main strong{display:block;font-size:1.25rem;line-height:1.1}.wechat-transfer-main span{display:block;font-size:.68rem;opacity:.94;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wechat-transfer-foot{display:flex;justify-content:space-between;align-items:center;background:#fff;color:#aaa;padding:7px 10px;font-size:.58rem}.wechat-transfer-foot small{font-size:.54rem}.wechat-transfer-actions{display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid #eee}.wechat-transfer-actions button{border:0;background:#fff;padding:10px 5px;color:#20a957;font-size:.72rem;font-weight:650}.wechat-transfer-actions button+button{border-left:1px solid #eee;color:#888}.phone-chat-bubble.transfer-wrap{background:transparent!important;padding:0!important;box-shadow:none!important;max-width:none!important}.heroine-row>.wechat-transfer-card{margin-left:auto}.group-msg-row>.wechat-transfer-card{margin-right:auto}
.phone-asset-basis{margin:-2px 14px 10px;padding:9px 11px;border-radius:12px;background:var(--primary-soft);color:var(--text-muted);font-size:.63rem;line-height:1.5}.phone-asset-balance span{line-height:1.5}
.phone-shop-search{position:relative}.phone-shop-search-btn{border:0;border-radius:999px;background:#ff5b22;color:#fff;font-size:.64rem;padding:7px 12px;flex-shrink:0}.phone-shop-store{font-size:.5rem;color:#ff7a35;margin-bottom:3px}.phone-shop-product-main em{display:block;font-style:normal;color:var(--text-muted);font-size:.5rem;margin-top:3px}.phone-shop-product-main small{height:auto!important;min-height:30px}
.phone-icon-food .phone-app-icon{background:linear-gradient(145deg,#ffd128,#f5a900);color:#211700;font-weight:900}.phone-icon-ride .phone-app-icon{background:linear-gradient(145deg,#ff8c20,#ff5e00);color:#fff;font-weight:900}.phone-icon-music .phone-app-icon{background:linear-gradient(145deg,#ff416f,#7d39db);color:#fff;font-weight:900}
.phone-life-banner{margin:12px;border-radius:20px;padding:18px;color:#fff;display:flex;flex-direction:column;gap:5px}.phone-life-banner.food{background:linear-gradient(135deg,#ffc928,#f1a600);color:#2b2100}.phone-life-banner b{font-size:1.1rem}.phone-life-banner span{font-size:.62rem;opacity:.82}.phone-life-grid{display:grid;gap:9px;padding:0 12px 14px}.phone-life-grid article{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:15px;padding:11px}.phone-life-grid article>span{font-size:1.8rem}.phone-life-grid small,.phone-life-grid strong,.phone-life-grid b{display:block}.phone-life-grid small{font-size:.55rem;color:var(--text-muted)}.phone-life-grid strong{font-size:.75rem;margin:2px 0}.phone-life-grid b{font-size:.7rem;color:#f0a400}.phone-life-grid button{border:0;border-radius:999px;background:#ffcc21;color:#302500;padding:7px 11px;font-size:.62rem}.phone-life-title{margin:4px 14px 8px;font-size:.75rem}.phone-life-order{display:grid;grid-template-columns:34px 1fr auto;gap:9px;align-items:center;margin:0 12px 8px;padding:10px;border-radius:13px;background:var(--bg-card);border:1px solid var(--border)}.phone-life-order small{display:block;color:var(--text-muted);font-size:.56rem;margin-top:3px}.phone-life-order>strong{font-size:.68rem}.phone-ride-map{height:225px;margin:12px;border-radius:22px;background:radial-gradient(circle at 40% 42%,color-mix(in srgb,#ff7b1c 20%,transparent),transparent 24%),linear-gradient(135deg,var(--bg-input),var(--bg-card));border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center}.phone-ride-map i{color:#ff6f13;font-size:1.5rem}.phone-ride-map b{margin-top:8px}.phone-ride-map span{color:var(--text-muted);font-size:.6rem;margin-top:4px}.phone-ride-form{display:grid;gap:9px;margin:12px}.phone-ride-form input,.phone-ride-form select{border:1px solid var(--border);background:var(--bg-card);color:var(--text-title);border-radius:13px;padding:11px}.phone-ride-form button{border:0;border-radius:13px;background:#ff6f13;color:#fff;padding:12px;font-weight:700}.phone-music-now{margin:16px;padding:28px 18px;border-radius:26px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 70%,#6a35c9),#17151d);color:#fff;text-align:center}.phone-music-now>div{width:82px;height:82px;border-radius:22px;margin:0 auto 14px;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:2.4rem}.phone-music-now small,.phone-music-now strong,.phone-music-now span{display:block}.phone-music-now small{opacity:.65;font-size:.58rem}.phone-music-now strong{font-size:1rem;margin-top:5px}.phone-music-now span{font-size:.62rem;opacity:.72;margin-top:4px}.phone-music-list{margin:0 12px}.phone-music-list button{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-title);padding:11px 4px;text-align:left}.phone-music-list button>span{width:30px;height:30px;border-radius:9px;background:var(--primary-soft);display:grid;place-items:center}.phone-music-list b,.phone-music-list small{display:block}.phone-music-list small{color:var(--text-muted);font-size:.56rem;margin-top:2px}.phone-music-list i{color:var(--text-muted)}
@media(max-width:430px){.wechat-transfer-card{width:min(265px,80vw)}.wechat-transfer-input-wrap input{font-size:2.15rem!important}.phone-life-grid article{grid-template-columns:40px 1fr auto}}

.phone-transfer-sheet-real{padding-top:10px!important}.phone-transfer-sheet-handle{width:38px;height:4px;border-radius:4px;background:var(--border);margin:0 auto 14px}.phone-transfer-person{display:flex;align-items:center;gap:11px;padding:8px 4px 15px}.phone-transfer-person img{width:48px;height:48px;border-radius:13px;object-fit:cover}.phone-transfer-person small,.phone-transfer-person strong,.phone-transfer-person span{display:block}.phone-transfer-person small{font-size:.58rem;color:var(--text-muted)}.phone-transfer-person strong{font-size:.9rem;margin:2px 0;color:var(--text-title)}.phone-transfer-person span{font-size:.58rem;color:var(--text-muted)}.phone-transfer-amount.real{margin:4px 0 12px;padding:10px 2px 13px}.phone-transfer-amount.real span{font-size:1.7rem}.phone-transfer-amount.real input{font-size:2.35rem!important;font-weight:750}.phone-transfer-memo-real{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--border);padding:0 2px 10px}.phone-transfer-memo-real span{font-size:.65rem;color:var(--text-muted)}.phone-transfer-memo-real input{border:0;background:transparent;color:var(--text-title);outline:0;flex:1;text-align:right}.phone-transfer-explain{font-size:.58rem;color:var(--text-muted);line-height:1.5;margin:10px 2px}.phone-transfer-send-real{background:#20b759!important;color:#fff!important;font-weight:750!important}

/* ==================== 手机第七阶段：底部安全区 / 结构化资产 / 真实生活 App ==================== */
#phoneSimulatorModal .phone-content{overflow:hidden!important;min-height:0!important;}
#phoneSimulatorModal .phone-native-app,#phoneSimulatorModal .phone-conversation-page{height:100%!important;max-height:100%!important;min-height:0!important;overflow:hidden!important;}
#phoneSimulatorModal .phone-native-body{flex:1!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain;padding-bottom:max(14px,env(safe-area-inset-bottom,0px))!important;}
#phoneSimulatorModal .phone-wechat-nav,#phoneSimulatorModal .phone-weibo-nav,#phoneSimulatorModal .phone-shop-nav{position:relative!important;inset:auto!important;margin-top:auto!important;flex-shrink:0!important;z-index:15!important;padding-bottom:max(4px,env(safe-area-inset-bottom,0px))!important;}
#phoneSimulatorModal .phone-home-indicator{flex-shrink:0!important;margin-top:5px!important;}
.wechat7-wallet{margin:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:15px}.wechat7-wallet>div{display:flex;justify-content:space-between;align-items:center}.wechat7-wallet span{font-size:.78rem}.wechat7-wallet strong{font-size:1.05rem;color:var(--text-title)}.wechat7-wallet small{display:block;color:var(--text-muted);font-size:.6rem;line-height:1.45;margin-top:7px}
.asset7-app .phone-native-body{padding:12px!important}.asset7-hero{border-radius:22px;padding:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 35%,#15151b),#111217);color:#fff;margin-bottom:12px}.asset7-hero small,.asset7-hero span{display:block;opacity:.7;font-size:.62rem}.asset7-hero>strong{display:block;font-size:2rem;margin:6px 0 8px}.asset7-hero>div{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.asset7-hero>div b{background:rgba(255,255,255,.1);border-radius:999px;padding:5px 9px;font-size:.58rem;font-weight:600}.asset7-company{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:12px}.asset7-company-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.asset7-company-head small,.asset7-company-head strong,.asset7-company-head span{display:block}.asset7-company-head small{font-size:.56rem;color:var(--text-muted)}.asset7-company-head strong{font-size:1rem;margin:3px 0}.asset7-company-head span{font-size:.62rem;color:var(--text-muted)}.asset7-company-head>b{font-size:1.15rem;color:var(--primary)}.asset7-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.asset7-metrics>div{background:var(--bg-input);border-radius:12px;padding:9px}.asset7-metrics span,.asset7-metrics b{display:block}.asset7-metrics span{font-size:.55rem;color:var(--text-muted)}.asset7-metrics b{font-size:.76rem;margin-top:3px}.asset7-est-note{display:block;color:var(--text-muted);font-size:.55rem;margin-top:8px}.asset7-section,.asset7-editor{background:var(--bg-card);border:1px solid var(--border);border-radius:15px;margin-bottom:10px;overflow:hidden}.asset7-section>summary,.asset7-editor>summary{list-style:none;padding:13px 14px;font-size:.78rem;font-weight:700;display:flex;justify-content:space-between;cursor:pointer}.asset7-section>summary::-webkit-details-marker,.asset7-editor>summary::-webkit-details-marker{display:none}.asset7-section>summary span{font-size:.6rem;color:var(--text-muted)}.asset7-line{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--border)}.asset7-line div{min-width:0}.asset7-line strong,.asset7-line small{display:block}.asset7-line strong{font-size:.7rem}.asset7-line small{font-size:.55rem;color:var(--text-muted);margin-top:3px}.asset7-line>b{font-size:.7rem;white-space:nowrap}.asset7-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border-top:1px solid var(--border)}.asset7-edit-grid label{font-size:.58rem;color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.asset7-edit-grid label.wide{grid-column:1/-1}.asset7-edit-grid input,.asset7-edit-grid textarea{border:1px solid var(--border);background:var(--bg-input);color:var(--text-title);border-radius:10px;padding:9px;font-size:.72rem;min-width:0}.asset7-save{margin:0 12px 12px;width:calc(100% - 24px);border:0;border-radius:12px;background:var(--primary);color:#fff;padding:11px;font-weight:700}
.contact7-row{display:grid!important;grid-template-columns:42px 1fr auto!important}.contact7-row>button[data-wechat-contact]{border:0;background:transparent;text-align:left;color:var(--text-title);padding:0}.contact7-row>button span,.contact7-row>button small{display:block}.contact7-row>button small{font-size:.54rem;color:var(--text-muted);margin-top:2px}.contact7-edit{border:0;background:var(--bg-input);color:var(--text-muted);border-radius:999px;padding:6px 9px;font-size:.56rem}.gift7-wrap{padding:0!important;background:transparent!important;max-width:86%!important}.gift7-card{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;background:linear-gradient(135deg,#fff4e6,#ffe0b3);color:#4a2d12;border-radius:14px;overflow:hidden;padding:12px;border:1px solid rgba(183,113,38,.16);min-width:240px}.gift7-art{width:44px;height:44px;border-radius:12px;background:#fff8ef;display:grid;place-items:center;font-size:1.5rem}.gift7-main small,.gift7-main strong,.gift7-main span{display:block}.gift7-main small{font-size:.53rem;opacity:.65}.gift7-main strong{font-size:.82rem;margin:2px 0}.gift7-main span{font-size:.6rem;opacity:.8}.gift7-card>footer{grid-column:1/-1;border-top:1px solid rgba(153,101,44,.16);padding-top:7px;font-size:.52rem;opacity:.66}.gift7-note{display:flex!important;align-items:center;gap:6px;margin-top:7px;font-size:.58rem}.gift7-note input{flex:1;border:1px solid var(--border);border-radius:9px;padding:6px;background:var(--bg-card);color:var(--text-title);min-width:0}
.food7-search,.ride7-search{display:flex;align-items:center;gap:7px;margin:12px;padding:7px 8px;border-radius:14px;background:var(--bg-card);border:1px solid var(--border)}.food7-search input,.ride7-search input{flex:1;border:0;background:transparent;color:var(--text-title);outline:0;min-width:0;font-size:.75rem}.food7-search button,.ride7-search button{border:0;border-radius:999px;padding:7px 11px;background:#ffb800;color:#251900;font-size:.62rem;font-weight:700}.food7-cats{display:flex;gap:7px;overflow-x:auto;padding:0 12px 8px}.food7-cats button{border:1px solid var(--border);background:var(--bg-card);color:var(--text-body);border-radius:999px;padding:7px 11px;white-space:nowrap;font-size:.62rem}.food7-cats button.active{background:#ffcf33;color:#332600;border-color:#ffcf33}.food7-list{display:grid;gap:9px;padding:4px 12px 16px}.food7-list article{display:grid;grid-template-columns:54px 1fr;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:11px}.food7-icon{width:54px;height:54px;border-radius:14px;background:var(--bg-input);display:grid;place-items:center;font-size:1.7rem}.food7-shop{display:flex;justify-content:space-between;gap:8px}.food7-shop strong{font-size:.72rem}.food7-shop span{font-size:.56rem;color:#e49a00}.food7-list article>div:last-child>b{display:block;font-size:.75rem;margin:4px 0}.food7-list small{font-size:.54rem;color:var(--text-muted);line-height:1.35}.food7-price{display:flex;justify-content:space-between;align-items:center;margin-top:7px}.food7-price strong{color:#f2a400}.food7-price button{border:0;background:#ffcc21;color:#2f2400;border-radius:999px;padding:6px 9px;font-size:.58rem}.food7-cart{display:flex;align-items:center;justify-content:space-between;background:var(--bg-sidebar);border-top:1px solid var(--border);padding:9px 12px max(9px,env(safe-area-inset-bottom,0px));flex-shrink:0}.food7-cart span{font-size:.7rem}.food7-cart button{border:0;background:#ffcc21;color:#2b2100;border-radius:999px;padding:9px 15px;font-weight:700}.food7-title{font-size:.72rem;margin:4px 14px 8px}.food7-orders{padding:0 12px 12px}.food7-orders article{display:flex;justify-content:space-between;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:9px;margin-bottom:7px}.food7-orders b,.food7-orders small{display:block}.food7-orders small{font-size:.54rem;color:var(--text-muted);margin-top:3px}.food7-orders>article>strong{font-size:.65rem}
.ride7-location{display:flex;gap:10px;align-items:center;margin:14px 12px 8px;padding:12px;background:var(--bg-card);border-radius:14px;border:1px solid var(--border)}.ride7-location>span{color:#ff6f13}.ride7-location small,.ride7-location strong{display:block}.ride7-location small{font-size:.55rem;color:var(--text-muted)}.ride7-location strong{font-size:.75rem;margin-top:2px}.ride7-suggestions,.ride7-options,.ride7-active,.ride7-history{margin:10px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;overflow:hidden}.ride7-suggestions h4,.ride7-history h4{font-size:.7rem;padding:11px 12px;margin:0;border-bottom:1px solid var(--border)}.ride7-suggestions button{width:100%;display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-title);padding:10px 12px;text-align:left}.ride7-suggestions button:last-child{border-bottom:0}.ride7-suggestions b,.ride7-suggestions small{display:block}.ride7-suggestions small{font-size:.54rem;color:var(--text-muted);margin-top:2px}.ride7-options header{padding:12px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.ride7-options header span{font-size:.55rem;color:var(--text-muted)}.ride7-options header strong{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ride7-options header button{border:0;background:transparent;color:var(--primary);font-size:.58rem}.ride7-options>button{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-title);padding:11px 12px;text-align:left}.ride7-options>button:last-child{border-bottom:0}.ride7-options strong,.ride7-options small{display:block}.ride7-options small{font-size:.54rem;color:var(--text-muted);margin-top:3px}.ride7-options>button>b{font-size:.72rem}.ride7-driver{display:grid;grid-template-columns:46px 1fr auto;gap:9px;align-items:center;padding:14px}.ride7-driver>div:first-child{width:46px;height:46px;border-radius:14px;background:var(--bg-input);display:grid;place-items:center;font-size:1.4rem}.ride7-driver small,.ride7-driver strong,.ride7-driver span{display:block}.ride7-driver small{font-size:.53rem;color:var(--text-muted)}.ride7-driver strong{font-size:.8rem;margin:2px 0}.ride7-driver span{font-size:.55rem;color:var(--text-muted)}.ride7-route{display:grid;gap:8px;padding:0 14px 14px;font-size:.65rem}.ride7-route i{height:18px;border-left:1px dashed var(--border);margin-left:4px}.ride7-active>button{width:calc(100% - 24px);margin:0 12px 12px;border:0;border-radius:12px;background:#ff6f13;color:#fff;padding:11px;font-weight:700}.ride7-history>div{padding:9px 12px;border-top:1px solid var(--border)}.ride7-history span,.ride7-history small{display:block}.ride7-history span{font-size:.66rem}.ride7-history small{font-size:.53rem;color:var(--text-muted);margin-top:2px}
.phone-icon-xhs .phone-app-icon{background:#ff2442;color:#fff;font-size:.82rem!important;font-weight:900}.phone-icon-video .phone-app-icon{background:#fb7299;color:#fff}.phone-icon-mail .phone-app-icon{background:linear-gradient(145deg,#4da2ff,#246de8);color:#fff}.xhs7-compose{display:flex;gap:7px;margin:12px}.xhs7-compose input{flex:1;min-width:0;border:1px solid var(--border);background:var(--bg-card);color:var(--text-title);border-radius:12px;padding:9px}.xhs7-compose button{border:0;border-radius:12px;background:#ff2442;color:#fff;padding:0 12px}.xhs7-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0 12px 14px}.xhs7-grid article{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.xhs7-cover{height:110px;background:linear-gradient(145deg,var(--primary-soft),var(--bg-input));display:grid;place-items:center;font-size:2rem}.xhs7-grid strong,.xhs7-grid small{display:block;padding:0 9px}.xhs7-grid strong{font-size:.67rem;line-height:1.4;margin-top:8px}.xhs7-grid small{font-size:.52rem;color:var(--text-muted);padding-bottom:9px;margin-top:4px}.video7-list{padding:12px}.video7-list article{display:grid;grid-template-columns:112px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.video7-cover{height:70px;border-radius:12px;background:linear-gradient(145deg,#fb7299,#7a5cff);color:#fff;display:grid;place-items:center;font-size:1.4rem}.video7-list strong,.video7-list small{display:block}.video7-list strong{font-size:.7rem}.video7-list small{font-size:.54rem;color:var(--text-muted);margin:5px 0}.video7-list button{border:0;background:var(--primary);color:#fff;border-radius:999px;padding:5px 9px;font-size:.55rem}.video7-title{font-size:.72rem;margin:8px 12px}.video7-history{display:flex;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border);font-size:.62rem}.video7-history small{color:var(--text-muted)}.mail7-list{margin:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.mail7-list article{padding:11px 12px;border-bottom:1px solid var(--border)}.mail7-list article:last-child{border-bottom:0}.mail7-list article>div{display:flex;justify-content:space-between;gap:8px}.mail7-list strong{font-size:.65rem}.mail7-list span{font-size:.52rem;color:var(--text-muted)}.mail7-list b{display:block;font-size:.7rem;margin:5px 0}.mail7-list p{font-size:.58rem;color:var(--text-muted);margin:0;line-height:1.45}
@media(max-width:430px){.asset7-edit-grid{grid-template-columns:1fr}.asset7-edit-grid label.wide{grid-column:auto}.asset7-metrics{grid-template-columns:1fr 1fr}.gift7-card{min-width:220px}.xhs7-grid{gap:7px}.video7-list article{grid-template-columns:98px 1fr}}

/* Stage 7.1 — 资产可视化与底部安全区收口 */
.asset7-composition{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;padding:14px;margin-bottom:12px}.asset7-composition header strong,.asset7-composition header span{display:block}.asset7-composition header strong{font-size:.78rem}.asset7-composition header span{font-size:.54rem;color:var(--text-muted);margin-top:3px;line-height:1.45}.asset7-stack{height:12px;border-radius:999px;overflow:hidden;display:flex;background:var(--bg-input);margin:13px 0 10px}.asset7-stack i{display:block;height:100%;min-width:2px}.asset7-stack .p1,.asset7-legend .p1{background:var(--primary)}.asset7-stack .p2,.asset7-legend .p2{background:#5d8ff6}.asset7-stack .p3,.asset7-legend .p3{background:#9a7be8}.asset7-stack .p4,.asset7-legend .p4{background:#57a982}.asset7-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px}.asset7-legend>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:6px;font-size:.56rem}.asset7-legend i{width:8px;height:8px;border-radius:50%}.asset7-legend span{color:var(--text-muted)}.asset7-legend b{font-weight:700}.asset7-company-status{margin:10px 0 0;padding:8px 10px;border-radius:10px;background:var(--bg-input);font-size:.6rem;line-height:1.45}.asset7-company-foot{display:flex;flex-direction:column;gap:3px;margin-top:9px;color:var(--text-muted);font-size:.55rem}.asset7-line>b{max-width:50%;white-space:normal;text-align:right;word-break:break-all}
/* 所有 App 导航都属于 App 布局的一部分，永远贴住手机内容底部，不参与正文滚动。 */
#phoneSimulatorModal .phone-screen,#phoneSimulatorModal .phone-content{height:100%!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
#phoneSimulatorModal .phone-native-app,#phoneSimulatorModal .phone-conversation-page{flex:1!important;height:auto!important;min-height:0!important;overflow:hidden!important}
#phoneSimulatorModal .phone-wechat-nav,#phoneSimulatorModal .phone-weibo-nav,#phoneSimulatorModal .phone-shop-nav{position:relative!important;bottom:auto!important;left:auto!important;right:auto!important;width:100%!important;margin:0!important;margin-top:auto!important;transform:none!important;flex:0 0 auto!important;box-sizing:border-box!important;min-height:58px!important}
#phoneSimulatorModal .food7-cart{position:relative!important;bottom:auto!important;left:auto!important;right:auto!important;width:100%!important;box-sizing:border-box!important;margin-top:auto!important}
@media(max-width:430px){.asset7-legend{grid-template-columns:1fr}.asset7-hero>strong{font-size:1.55rem;word-break:break-all}.asset7-metrics b{font-size:.65rem;word-break:break-all}}

/* ==================== 手机第八阶段：真实交互与活生态 ==================== */
/* 手机全屏层之上的输入/确认弹窗必须可见，解决照片、位置、语音、名片点击像“没反应”。 */
#promptModal,#confirmModal,#transferModal,#giftOrderModal,#voiceInputModal{z-index:5200!important}
#phoneSimulatorModal .phone-content>.phone-full-wallpaper,#phoneSimulatorModal .phone-content>.phone-wallpaper.phone-full-wallpaper{height:100%!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain;padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))!important}
#phoneSimulatorModal .phone-dock{position:sticky!important;left:12px!important;right:12px!important;bottom:8px!important;margin-top:24px!important;z-index:5!important}
.phone-chat-sheet-real{background:color-mix(in srgb,var(--bg-sidebar) 97%,transparent)}
.stage8-sheet-title{font-size:.82rem;font-weight:750;color:var(--text-title);padding:2px 4px 12px}.stage8-recipient-list{max-height:48vh;overflow-y:auto;border:1px solid var(--border);border-radius:14px;background:var(--bg-card);margin-bottom:12px}.stage8-recipient-list button{width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text-title);padding:10px 12px;text-align:left}.stage8-recipient-list button:last-child{border-bottom:0}.stage8-recipient-list img{width:42px;height:42px;border-radius:11px;object-fit:cover}.stage8-recipient-list span{font-size:.76rem}.stage8-recipient-list i{font-style:normal;color:var(--text-muted)}
.stage8-rider-select{margin:8px 12px;padding:11px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px}.stage8-rider-select label,.stage8-rider-select small{display:block}.stage8-rider-select label{font-size:.58rem;color:var(--text-muted);margin-bottom:6px}.stage8-rider-select select{width:100%;border:1px solid var(--border);background:var(--bg-input);color:var(--text-title);border-radius:10px;padding:9px;font-size:.72rem}.stage8-rider-select small{font-size:.53rem;color:var(--text-muted);line-height:1.45;margin-top:7px}.stage8-rider-chip{margin:0 14px 12px;padding:8px 10px;border-radius:10px;background:var(--bg-input);font-size:.6rem;color:var(--text-muted)}.stage8-rider-chip b{color:var(--text-title)}.stage8-ride-lock{margin:0 12px 12px;padding:10px 11px;border-radius:12px;background:color-mix(in srgb,#ff9f0a 10%,var(--bg-card));border:1px solid color-mix(in srgb,#ff9f0a 28%,var(--border));font-size:.59rem;line-height:1.55;color:var(--text-body)}
.stage8-avatar-fallback{display:grid!important;place-items:center!important;background:linear-gradient(145deg,var(--primary-soft),var(--bg-input))!important;color:var(--text-title)!important;font-size:.78rem!important;font-weight:750}.stage8-contact-rich>span{display:flex!important;flex-direction:column;gap:2px;min-width:0}.stage8-contact-rich>span b{font-size:.8rem;font-weight:650}.stage8-contact-rich>span small{font-size:.56rem;color:#999}.stage8-social-row .phone-row-sub{max-width:62vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage8-social-plus{opacity:.35!important;pointer-events:none}
/* 微博可视化 */
.weibo8-app{background:#f5f5f7}.weibo8-head{background:rgba(255,255,255,.96)!important}.weibo8-head strong{font-weight:800}.weibo8-trends{display:flex;gap:7px;align-items:center;overflow-x:auto;padding:10px 12px;background:#fff;border-bottom:1px solid #eee}.weibo8-trends span{font-size:.62rem;color:#ff6b36;white-space:nowrap}.weibo8-trends b{font-size:.58rem;font-weight:600;color:#666;background:#f4f4f6;border-radius:999px;padding:6px 9px;white-space:nowrap}.weibo8-compose{display:grid;grid-template-columns:38px 1fr 54px;gap:8px;align-items:start;background:#fff;padding:12px;border-bottom:8px solid #f3f3f5}.weibo8-compose img{width:38px;height:38px;border-radius:50%;object-fit:cover}.weibo8-compose textarea{border:0;resize:none;outline:0;font:inherit;font-size:.75rem;padding:8px 4px;background:transparent;color:#222}.weibo8-compose button{border:0;background:#ff6b36;color:#fff;border-radius:999px;padding:8px 9px;font-size:.62rem}.weibo8-feed{display:grid;gap:8px;padding:8px}.weibo8-card{background:#fff;border-radius:14px;padding:12px;box-shadow:0 1px 0 rgba(0,0,0,.04)}.weibo8-card>header{display:grid;grid-template-columns:42px 1fr 28px;gap:9px;align-items:center}.weibo8-card>header img{width:42px;height:42px;border-radius:50%;object-fit:cover}.weibo8-card>header strong,.weibo8-card>header span{display:block}.weibo8-card>header strong{font-size:.75rem;color:#222}.weibo8-card>header span{font-size:.52rem;color:#999;margin-top:2px}.weibo8-card>header button{border:0;background:transparent;color:#aaa}.weibo8-card>p{font-size:.76rem;line-height:1.62;color:#222;white-space:pre-wrap;margin:10px 0}.weibo8-media{height:132px;border-radius:12px;background:linear-gradient(145deg,#f2f2f4,#e5e5e9);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:#888}.weibo8-media span{font-size:1.6rem}.weibo8-media small{font-size:.55rem}.weibo8-card>footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #eee;margin-top:10px;padding-top:8px}.weibo8-card>footer button{border:0;background:transparent;color:#777;font-size:.58rem;padding:5px}.weibo8-card>footer button b{font-size:.9rem;margin-right:4px;font-weight:500}.weibo8-card>footer button.active{color:#ff6b36}.weibo8-comments{background:#f6f6f8;border-radius:10px;padding:8px 9px;font-size:.58rem;line-height:1.55;color:#555}.weibo8-comments b{color:#e45d31}.weibo8-notify-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.weibo8-notify-summary>div{background:#fff;border-radius:14px;padding:12px;text-align:center}.weibo8-notify-summary b,.weibo8-notify-summary span{display:block}.weibo8-notify-summary b{font-size:1rem;color:#222}.weibo8-notify-summary span{font-size:.55rem;color:#999;margin-top:3px}.weibo8-notify-list{padding:0 10px 12px}.weibo8-notify-list article{display:grid;grid-template-columns:34px 1fr;gap:9px;background:#fff;border-radius:12px;padding:10px;margin-bottom:7px}.weibo8-notify-list article>div{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff1ea;color:#ff6b36}.weibo8-notify-list b,.weibo8-notify-list p,.weibo8-notify-list small{display:block;margin:0}.weibo8-notify-list b{font-size:.65rem}.weibo8-notify-list p{font-size:.58rem;color:#666;margin:3px 0}.weibo8-notify-list small{font-size:.5rem;color:#aaa}.weibo8-profile{background:#fff;margin-bottom:8px}.weibo8-cover{height:92px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 45%,#ffb36a),#ff7b50 55%,#f2b35d)}.weibo8-profile-main{display:flex;align-items:flex-end;gap:10px;padding:0 14px;margin-top:-28px}.weibo8-profile-main img{width:68px;height:68px;border-radius:50%;object-fit:cover;border:4px solid #fff}.weibo8-profile-name{padding-bottom:5px}.weibo8-profile-name strong,.weibo8-profile-name span{display:block}.weibo8-profile-name strong{font-size:.9rem;color:#222}.weibo8-profile-name span{font-size:.55rem;color:#999;margin-top:2px}.weibo8-profile>p{font-size:.64rem;line-height:1.5;color:#555;padding:8px 14px 0;margin:0}.weibo8-stats{display:flex;gap:18px;padding:10px 14px;border-bottom:1px solid #eee}.weibo8-stats span{font-size:.56rem;color:#999}.weibo8-stats b{color:#222;font-size:.7rem;margin-right:3px}.weibo8-edit{display:grid;gap:8px;padding:12px 14px}.weibo8-edit label{display:grid;gap:4px;font-size:.55rem;color:#888}.weibo8-edit input,.weibo8-edit textarea{border:1px solid #ddd;background:#fafafa;border-radius:10px;padding:9px;color:#222;font:inherit;font-size:.7rem}.weibo8-edit button{border:0;background:#ff6b36;color:#fff;border-radius:10px;padding:10px;font-size:.65rem}.weibo8-nav{background:#fff!important}.weibo8-nav button.active{color:#ff6b36!important}
@media(max-width:430px){.weibo8-media{height:118px}.stage8-recipient-list{max-height:54vh}}

/* ==================== 手机第九阶段：固定Dock / 微博热搜 / 微信零钱 ==================== */
.phone-home-shell9{height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg-app);overflow:hidden}
.phone-home-scroll9{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
.phone-wallpaper9{min-height:100%;padding:16px 12px 26px;background:radial-gradient(circle at 18% 8%,color-mix(in srgb,var(--primary) 34%,transparent),transparent 34%),radial-gradient(circle at 85% 18%,rgba(86,114,190,.24),transparent 32%),linear-gradient(160deg,color-mix(in srgb,var(--bg-app) 82%,#191624),var(--bg-app) 68%,color-mix(in srgb,var(--bg-app) 90%,#000));color:#fff}
#phoneSimulatorModal .phone-dock9{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;margin:0!important;height:72px!important;flex:0 0 auto;z-index:9;border-radius:0!important;border-left:0!important;border-right:0!important;border-bottom:0!important;padding:7px 18px calc(7px + env(safe-area-inset-bottom,0px))!important;background:color-mix(in srgb,var(--bg-card) 92%,transparent)!important;backdrop-filter:blur(24px)}
#phoneSimulatorModal .phone-dock9 button{min-height:44px}
.phone-icon-food .phone-app-icon{background:linear-gradient(145deg,#ffd447,#ffb300)!important;color:#342000!important;font-weight:900}
.phone-icon-ride .phone-app-icon{background:linear-gradient(145deg,#ff7c32,#ff4f1f)!important;color:#fff!important;font-weight:900}

.wechat9-wallet-button{width:calc(100% - 24px);margin:12px!important;text-align:left;display:block;border:1px solid var(--border)!important;color:var(--text-title)!important;cursor:pointer}
.wechat9-wallet-button>div{display:flex;justify-content:space-between;align-items:center}.wechat9-wallet-button>b{float:right;margin-top:-26px;color:var(--text-muted)}
.wechat9-wallet-page{padding:0 0 18px}.wechat9-wallet-hero{padding:34px 20px 28px;text-align:center;background:linear-gradient(145deg,#20b75b,#16a34a);color:#fff}.wechat9-wallet-hero small,.wechat9-wallet-hero span{display:block;opacity:.82}.wechat9-wallet-hero strong{display:block;font-size:2rem;letter-spacing:.02em;margin:10px 0}.wechat9-wallet-tools{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg-card);border-bottom:1px solid var(--border)}.wechat9-wallet-tools button{border:0;background:transparent;color:var(--text-title);padding:16px 6px;font-size:.72rem}.wechat9-ledger{padding:10px}.wechat9-ledger details{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;overflow:hidden}.wechat9-ledger summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:12px 13px;cursor:pointer}.wechat9-ledger summary::-webkit-details-marker{display:none}.wechat9-ledger summary b,.wechat9-ledger summary small{display:block}.wechat9-ledger summary b{font-size:.75rem}.wechat9-ledger summary small{font-size:.55rem;color:var(--text-muted);margin-top:3px}.wechat9-ledger summary>span{font-size:.55rem;color:var(--text-muted)}.wechat9-ledger-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px 13px;border-top:1px solid var(--border)}.wechat9-ledger-row>div{min-width:0}.wechat9-ledger-row strong,.wechat9-ledger-row small{display:block}.wechat9-ledger-row strong{font-size:.68rem}.wechat9-ledger-row small{font-size:.53rem;color:var(--text-muted);margin-top:4px;white-space:normal}.wechat9-ledger-row>b{font-size:.68rem;white-space:nowrap}.wechat9-ledger-row .plus{color:#18a957}.wechat9-ledger-row .minus{color:var(--text-title)}

.weibo9-app{background:#f5f5f7}.weibo9-head{background:rgba(255,255,255,.97)!important}.weibo9-hot{margin:10px;background:#fff;border-radius:16px;overflow:hidden;border:1px solid #ececef}.weibo9-hot>header{display:flex;align-items:center;justify-content:space-between;padding:13px 13px 10px;border-bottom:1px solid #f0f0f2}.weibo9-hot>header>div strong,.weibo9-hot>header>div span{display:block}.weibo9-hot>header strong{font-size:.82rem;color:#1f1f23}.weibo9-hot>header span{font-size:.5rem;color:#999;margin-top:3px}.weibo9-hot>header>b{font-size:.55rem;color:#ff6b36}.weibo9-hot-row{display:grid;grid-template-columns:24px minmax(0,1fr) 26px 64px;gap:6px;align-items:center;padding:8px 12px;border-bottom:1px solid #f5f5f6}.weibo9-hot-row:last-child{border-bottom:0}.weibo9-hot-row em{font-style:normal;font-size:.7rem;font-weight:800;color:#a0a0a7;text-align:center}.weibo9-hot-row em.rank-1{color:#f43f3f}.weibo9-hot-row em.rank-2{color:#ff7a32}.weibo9-hot-row em.rank-3{color:#e7a41b}.weibo9-hot-row>span{font-size:.68rem;color:#26262a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weibo9-hot-row i{font-style:normal;font-size:.48rem;color:#fff;background:#ff6b36;border-radius:4px;padding:2px 3px;text-align:center}.weibo9-hot-row small{font-size:.48rem;color:#aaa;text-align:right}
.weibo9-compose{display:grid;grid-template-columns:40px minmax(0,1fr) 54px;gap:9px;align-items:start;padding:12px;background:#fff;border-top:1px solid #eee;border-bottom:8px solid #f1f1f3}.weibo9-compose>img{width:40px;height:40px;border-radius:50%;object-fit:cover}.weibo9-compose>div{min-width:0}.weibo9-compose textarea{width:100%;border:0;resize:none;outline:0;background:transparent;color:#222;font:inherit;font-size:.74rem;line-height:1.5;padding:4px 0}.weibo9-compose>div>div{display:flex;gap:10px;margin-top:4px}.weibo9-compose>div>div button{border:0;background:transparent;color:#e4673a;font-size:.55rem;padding:2px}.weibo9-compose .publish{border:0;border-radius:999px;background:#ff6b36;color:#fff;padding:8px 8px;font-size:.6rem}
.weibo9-feed{display:grid;gap:8px;padding:8px}.weibo9-card{background:#fff;border-radius:14px;padding:12px;border:1px solid #eeeeef}.weibo9-card-head{display:grid;grid-template-columns:44px minmax(0,1fr) 26px;gap:9px;align-items:center}.weibo9-card-head img,.weibo9-avatar-fallback{width:44px;height:44px;border-radius:50%;object-fit:cover}.weibo9-avatar-fallback{display:grid;place-items:center;background:linear-gradient(145deg,#ff8f60,#ed6033);color:#fff;font-size:1rem;font-weight:800}.weibo9-author{min-width:0}.weibo9-author>div{display:flex;align-items:center;gap:4px}.weibo9-author strong{font-size:.76rem;color:#202024;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weibo9-author i{font-style:normal;display:inline-grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#ff8a30;color:#fff;font-size:.45rem;font-weight:800}.weibo9-author span{display:block;font-size:.5rem;color:#999;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weibo9-card-head>button{border:0;background:transparent;color:#aaa}.weibo9-text{font-size:.76rem;line-height:1.72;color:#222;white-space:pre-wrap;margin:11px 0}.weibo9-media-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin:8px 0}.weibo9-media-grid.one{grid-template-columns:1fr}.weibo9-media-grid>div{min-height:98px;border-radius:9px;background:linear-gradient(145deg,#ebecef,#dedfe4);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#888;gap:5px;padding:8px;text-align:center}.weibo9-media-grid>div b{font-size:1.25rem}.weibo9-media-grid>div span{font-size:.5rem}.weibo9-source{font-size:.48rem;color:#aaa;margin:7px 0}.weibo9-card>footer{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #eee;padding-top:8px}.weibo9-card>footer button{border:0;background:transparent;color:#777;padding:5px;font-size:.56rem}.weibo9-card>footer button span{font-size:.82rem;margin-right:4px}.weibo9-card>footer button.active{color:#ff6b36}.weibo9-comments{background:#f7f7f8;border-radius:9px;padding:8px;font-size:.56rem;line-height:1.55;color:#555}.weibo9-comments b{color:#e45d31}.weibo9-nav{background:#fff!important}.weibo9-nav button.active{color:#ff6b36!important}

@media(max-width:430px){.phone-wallpaper9{padding-left:10px;padding-right:10px}.weibo9-hot{margin:8px}.weibo9-hot-row{grid-template-columns:22px minmax(0,1fr) 24px 56px;padding-left:9px;padding-right:9px}.weibo9-media-grid>div{min-height:84px}}

/* ==================== 手机第十阶段：真实后台 / 淘宝搜索 / 通讯录标签 ==================== */
/* 桌面：仅 App 网格滚动，Dock 始终贴在可视手机底部。 */
#phoneSimulatorModal .phone-home-shell9{position:relative!important;height:100%!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important}
#phoneSimulatorModal .phone-home-scroll9{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;padding-bottom:12px!important;-webkit-overflow-scrolling:touch!important}
#phoneSimulatorModal .phone-dock9{position:relative!important;inset:auto!important;flex:0 0 auto!important;width:100%!important;margin:0!important;z-index:20!important}
.taobao10-search{margin:10px 10px 6px;display:grid;grid-template-columns:28px minmax(0,1fr) 54px;align-items:center;border:2px solid #ff6200;border-radius:999px;background:var(--bg-card);overflow:hidden}.taobao10-search>span{text-align:center;color:#ff6200}.taobao10-search input{border:0!important;background:transparent!important;outline:0;color:var(--text-title);font-size:.72rem;min-width:0;padding:10px 0}.taobao10-search button{height:100%;border:0;background:#ff6200;color:white;font-size:.62rem;font-weight:700}.taobao10-cats{display:flex;gap:7px;overflow-x:auto;padding:6px 10px 10px;scrollbar-width:none}.taobao10-cats::-webkit-scrollbar{display:none}.taobao10-cats button{border:0;background:var(--bg-input);color:var(--text-body);border-radius:999px;padding:7px 11px;font-size:.58rem;white-space:nowrap}.taobao10-cats button.active{background:#ff6200;color:#fff}.taobao10-result-head{display:flex;justify-content:space-between;align-items:end;padding:8px 12px}.taobao10-result-head strong{font-size:.74rem}.taobao10-result-head span{font-size:.52rem;color:var(--text-muted)}.taobao10-products article{border-radius:14px!important;margin:0 10px 9px!important;border:1px solid var(--border)!important}.taobao10-gift{margin:0 10px 8px!important}
.stage10-contact-sections .phone-contact-letter{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--bg-app) 96%,transparent);backdrop-filter:blur(8px);padding-top:8px!important}.stage10-contact-row small{white-space:normal!important}.stage10-contact-row{min-height:58px}.stage10-contact-row .stage8-avatar-fallback{flex:0 0 42px}

/* ===== Stage 11 · 美团完整订单 / 微博评论池 / 导演世界控制台 ===== */
.food11-app{height:100%;display:flex;flex-direction:column;min-height:0;background:var(--bg-main,#f5f5f7)}
.food11-app>.phone-native-body{flex:1;min-height:0;overflow:auto;padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.food11-back,.food11-order-link{border:0;background:transparent;color:var(--primary,#ff7b3d);font-size:.9rem;font-weight:700;padding:8px 4px}
.food11-search{position:sticky;top:0;z-index:4;background:var(--bg-main,#f5f5f7);padding-top:4px}
.food11-list{display:grid;gap:10px;padding:10px 12px 110px}
.food11-list article{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:14px;background:var(--card-bg,#fff);border:1px solid var(--border-color,rgba(0,0,0,.06));border-radius:18px}
.food11-thumb{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;font-size:2rem;background:color-mix(in srgb,var(--primary,#ff7b3d) 10%,var(--card-bg,#fff))}
.food11-item-main{min-width:0;display:grid;gap:5px}.food11-item-main>div:first-child,.food11-item-main>div:last-child{display:flex;justify-content:space-between;align-items:center;gap:10px}.food11-item-main>div:first-child span{font-size:.78rem;color:#f59e0b}.food11-item-main>b{font-size:.96rem}.food11-item-main small{font-size:.74rem;color:var(--text-muted,#888);white-space:normal}.food11-item-main>div:last-child>strong{font-size:1.08rem}.food11-item-main button{border:0;border-radius:999px;background:var(--primary,#ff7b3d);color:white;padding:8px 12px;font-weight:700}
.food11-cartbar,.food11-paybar{position:absolute;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:8;min-height:62px;border-radius:18px;background:#171719;color:white;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.food11-cartbar>div{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center}.food11-cartbar>div>span{width:24px;height:24px;border-radius:12px;background:var(--primary,#ff7b3d);display:grid;place-items:center;font-size:.75rem}.food11-cartbar small{grid-column:1/-1;color:#aaa;font-size:.68rem}.food11-cartbar button,.food11-paybar button{border:0;border-radius:14px;background:var(--primary,#ff7b3d);color:#fff;padding:12px 16px;font-weight:800}
.food11-cart-list{display:grid;gap:10px;padding:12px}.food11-cart-list article{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;background:var(--card-bg,#fff);border-radius:16px}.food11-cart-list article>div:nth-child(2){display:grid;gap:4px}.food11-cart-list article>div:nth-child(2) b{font-size:.76rem;color:var(--text-muted,#888)}.food11-cart-list article>div:nth-child(2) strong{font-size:.92rem}.food11-cart-list article>div:nth-child(2) span{font-weight:800}.food11-qty{display:flex;align-items:center;gap:9px}.food11-qty button{width:30px;height:30px;border-radius:10px;border:1px solid var(--border-color,#ddd);background:var(--card-bg,#fff)}
.food11-checkout{display:grid;gap:12px;padding:12px 12px 110px}.food11-address,.food11-card,.food11-options,.food11-rider,.food11-status{background:var(--card-bg,#fff);border-radius:18px;border:1px solid var(--border-color,rgba(0,0,0,.06));padding:14px}.food11-address,.food11-options{display:grid;gap:10px}.food11-address label,.food11-options label{display:grid;gap:6px;font-size:.76rem;color:var(--text-muted,#888)}.food11-address input,.food11-address select,.food11-options select,.food11-options textarea{width:100%;box-sizing:border-box;border:1px solid var(--border-color,#ddd);border-radius:12px;background:var(--input-bg,var(--card-bg,#fff));color:var(--text-main,#222);padding:11px;font-size:16px}.food11-address>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.food11-card h4{margin:0 0 10px}.food11-card>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:.82rem}.food11-card>div.total{border-top:1px solid var(--border-color,#eee);margin-top:4px;padding-top:12px}.food11-card p{margin:6px 0;color:var(--text-main,#222);font-size:.82rem}
.food11-status{display:grid;gap:4px}.food11-status small{color:var(--primary,#ff7b3d)}.food11-status strong{font-size:1.35rem}.food11-status span{font-size:.76rem;color:var(--text-muted,#888)}
.food11-progress{display:grid;grid-template-columns:repeat(6,1fr);padding:6px 2px 12px}.food11-progress>div{display:grid;justify-items:center;gap:4px;position:relative;color:var(--text-muted,#999)}.food11-progress>div:before{content:"";position:absolute;top:10px;left:-50%;right:50%;height:2px;background:var(--border-color,#ddd);z-index:0}.food11-progress>div:first-child:before{display:none}.food11-progress i{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-color,#ccc);display:grid;place-items:center;font-style:normal;font-size:.68rem;background:var(--card-bg,#fff);z-index:1}.food11-progress span{font-size:.62rem;text-align:center}.food11-progress>div.done{color:var(--primary,#ff7b3d)}.food11-progress>div.done i{border-color:var(--primary,#ff7b3d);background:var(--primary,#ff7b3d);color:#fff}.food11-progress>div.done:before{background:var(--primary,#ff7b3d)}
.food11-rider{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px}.food11-rider-avatar{width:46px;height:46px;border-radius:50%;background:#ffd166;display:grid;place-items:center;font-weight:900;color:#5a3a00}.food11-rider>div:nth-child(2){display:grid;gap:3px}.food11-rider small,.food11-rider span{font-size:.72rem;color:var(--text-muted,#888)}.food11-rider>b{font-size:.74rem;color:var(--primary,#ff7b3d)}
.food11-actions{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 30px}.food11-actions button{flex:1;min-width:120px;border:1px solid var(--border-color,#ddd);border-radius:12px;background:var(--card-bg,#fff);color:var(--text-main,#222);padding:11px}.food11-actions button.primary{background:var(--primary,#ff7b3d);border-color:var(--primary,#ff7b3d);color:white}
.food11-orders{display:grid;gap:10px;padding:12px 12px 86px}.food11-orders>button{border:0;background:var(--card-bg,#fff);color:var(--text-main,#222);border-radius:16px;padding:14px;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.food11-orders>button>div{display:grid;gap:4px}.food11-orders>button small{color:var(--text-muted,#888);font-size:.7rem}.food11-orders aside{display:grid;justify-items:end;gap:5px}.food11-orders aside em{font-style:normal;color:var(--primary,#ff7b3d);font-size:.72rem}.food11-orders aside span{font-size:.68rem;color:var(--text-muted,#888)}.food11-nav{position:absolute;left:0;right:0;bottom:0;padding:7px 18px calc(7px + env(safe-area-inset-bottom));display:flex;background:color-mix(in srgb,var(--card-bg,#fff) 94%,transparent);border-top:1px solid var(--border-color,#eee);backdrop-filter:blur(18px)}.food11-nav button{flex:1;border:0;background:transparent;color:var(--text-muted,#888);padding:8px}.food11-nav button.active{color:var(--primary,#ff7b3d);font-weight:800}

.weibo11-card{overflow:hidden}.weibo11-comments{max-height:none}.weibo11-comments>div{padding:4px 0;line-height:1.45}.weibo11-comments .kind-npc b{color:var(--primary,#ff7b3d)}.weibo11-comments .kind-media b{color:#3b82f6}.weibo11-more-comments{width:100%;border:0;border-top:1px solid var(--border-color,#eee);background:transparent;color:var(--primary,#ff7b3d);font-weight:700;padding:12px;text-align:center}.weibo11-more-comments:active{opacity:.65}

#viewDirectorConsole:before{content:"WORLD ADMIN · 最高权限";display:block;align-self:flex-start;font-size:.65rem;letter-spacing:.08em;color:var(--primary,#ff7b3d);border:1px solid color-mix(in srgb,var(--primary,#ff7b3d) 35%,transparent);border-radius:999px;padding:4px 9px;margin-bottom:7px}

@media(max-width:380px){.food11-progress span{font-size:.56rem}.food11-address>div{grid-template-columns:1fr}.food11-list article{grid-template-columns:54px minmax(0,1fr)}.food11-thumb{width:54px;height:54px}}

/* ===== Stage12: 微信联系人主页 / 头像 / 世界线串联 ===== */
.stage12-chat-head{gap:10px!important;justify-content:flex-start!important}
.stage12-chat-head>strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage12-avatar-hit{width:36px;height:36px;border:0;background:transparent;padding:0;border-radius:9px;overflow:hidden;flex:0 0 36px;cursor:pointer}
.stage12-avatar-hit img{width:100%;height:100%;object-fit:cover;display:block;border-radius:9px}
.stage12-msg-row{display:flex;align-items:flex-start;gap:7px;margin:8px 0;max-width:100%}
.stage12-msg-row.mine{justify-content:flex-end}
.stage12-msg-row.theirs{justify-content:flex-start}
.stage12-msg-row>div{min-width:0;max-width:78%}
.stage12-msg-row .phone-chat-bubble{max-width:100%;margin:0}
.stage12-msg-row .stage12-avatar-hit{width:34px;height:34px;flex-basis:34px;margin-top:2px}
.stage12-contact-profile .phone-native-body,.stage12-contact-moments .phone-native-body{padding:0 14px 24px}
.stage12-profile-hero{display:flex;gap:16px;align-items:center;padding:22px 4px 18px;border-bottom:1px solid var(--border-color,rgba(127,127,127,.18))}
.stage12-profile-hero img{width:72px;height:72px;border-radius:14px;object-fit:cover}
.stage12-profile-hero>div{display:flex;flex-direction:column;gap:5px;min-width:0}
.stage12-profile-hero strong{font-size:1.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stage12-profile-hero span,.stage12-profile-hero small{font-size:.78rem;color:var(--text-muted)}
.stage12-profile-lines{margin:12px 0;background:var(--bg-card);border-radius:14px;overflow:hidden;border:1px solid var(--border-color,rgba(127,127,127,.14))}
.stage12-profile-lines>div,.stage12-profile-lines>button{width:100%;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px;border:0;border-bottom:1px solid var(--border-color,rgba(127,127,127,.12));background:transparent;color:inherit;text-align:left;font-size:.9rem}
.stage12-profile-lines>*:last-child{border-bottom:0}
.stage12-profile-lines b{font-weight:500;color:var(--text-muted);max-width:65%;text-align:right;white-space:normal}
.stage12-profile-moments,.stage12-profile-edit{width:100%;border:0;border-radius:14px;background:var(--bg-card);color:inherit;padding:15px 14px;margin:0 0 12px;display:flex;justify-content:space-between;align-items:center;font-size:.9rem;border:1px solid var(--border-color,rgba(127,127,127,.14))}
.stage12-profile-edit{justify-content:center;color:var(--primary);font-weight:650}
.stage12-moments-cover{height:170px;border-radius:16px;margin:12px 0 16px;background:linear-gradient(145deg,var(--bg-card),var(--bg-input));display:flex;align-items:flex-end;justify-content:flex-end;gap:10px;padding:18px;position:relative}
.stage12-moments-cover img{width:64px;height:64px;border-radius:12px;object-fit:cover;border:3px solid var(--bg-card)}
.stage12-moments-cover strong{font-size:1rem}
.stage12-own-profile{width:100%;border:0;background:transparent;color:inherit;text-align:left}
.stage12-own-profile small{display:block;color:var(--text-muted);font-size:.72rem;margin-top:3px}
@media(max-width:420px){.stage12-msg-row>div{max-width:80%}.stage12-profile-hero img{width:64px;height:64px}}

/* ==================== Stage 13: 朋友圈 / 记忆注入 / 主动生活 ==================== */
.npc-life-mode-card{background:var(--bg-input);border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:10px}
.npc-life-mode-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.npc-life-mode-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}.npc-life-mode-head strong{font-size:.88rem;color:var(--text-title)}.npc-life-mode-head span,.npc-life-mode-desc{font-size:.72rem;color:var(--text-muted);line-height:1.5}.npc-life-mode-head select{min-width:92px;border-radius:10px;padding:7px 9px;background:var(--bg-card);color:var(--text-title);border:1px solid var(--border)}.npc-life-mode-desc{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border)}

.mom13-cover{position:relative;height:172px;margin:-4px -2px 34px;border-radius:0 0 18px 18px;overflow:visible}.mom13-cover-bg{height:100%;border-radius:0 0 18px 18px;background:linear-gradient(135deg,var(--primary-soft),var(--bg-input) 55%,var(--bg-card));border-bottom:1px solid var(--border)}.mom13-cover-bg:after{content:"";position:absolute;inset:0;border-radius:0 0 18px 18px;background:radial-gradient(circle at 78% 30%,rgba(255,255,255,.35),transparent 32%),linear-gradient(180deg,transparent 38%,rgba(0,0,0,.14));pointer-events:none}.mom13-self{position:absolute;right:16px;bottom:-28px;display:flex;align-items:center;gap:10px;z-index:2}.mom13-self strong{max-width:180px;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.55);font-size:1rem}.mom13-self img{width:62px;height:62px;object-fit:cover;border-radius:10px;border:3px solid var(--bg-card);box-shadow:0 4px 14px rgba(0,0,0,.18)}
.mom13-compose{display:grid;grid-template-columns:40px 1fr;gap:10px;margin:10px 10px 16px;padding:10px;border-bottom:1px solid var(--border)}.mom13-compose>img{width:40px;height:40px;border-radius:7px;object-fit:cover}.mom13-compose textarea{width:100%;resize:none;border:0;background:transparent;color:var(--text-title);font-size:.9rem;line-height:1.55;outline:none;min-height:54px}.mom13-compose-foot{display:flex;justify-content:space-between;align-items:center;gap:8px}.mom13-compose-foot span{font-size:.68rem;color:var(--text-muted)}.mom13-compose-foot button{border:0;border-radius:8px;padding:7px 14px;background:var(--primary);color:white;font-weight:600}
.mom13-feed{display:flex;flex-direction:column}.mom13-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;padding:14px 12px;border-bottom:1px solid var(--border);background:transparent}.mom13-avatar{width:42px;height:42px;border-radius:8px;object-fit:cover}.mom13-main{min-width:0}.mom13-name{border:0;background:transparent;padding:0;color:#576b95;font-weight:700;font-size:.88rem;text-align:left}.mom13-name.static{display:block}.mom13-text{margin:5px 0 8px;color:var(--text-title);font-size:.9rem;line-height:1.55;word-break:break-word}.mom13-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:280px;margin:8px 0}.mom13-media-grid.single{grid-template-columns:minmax(0,220px)}.mom13-media-tile{aspect-ratio:1/1;border-radius:3px;background:linear-gradient(135deg,var(--bg-input),var(--primary-soft));border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--text-muted);overflow:hidden}.mom13-media-grid.single .mom13-media-tile{aspect-ratio:4/3}.mom13-media-tile span{font-size:1.3rem}.mom13-media-tile small{font-size:.68rem;max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mom13-location{display:inline-block;color:#576b95;font-size:.72rem;margin:2px 0 5px}.mom13-meta{display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:.68rem;margin-top:4px}.mom13-more{border:0;background:var(--bg-input);color:#576b95;border-radius:4px;padding:2px 7px}.mom13-likes,.mom13-comments{background:var(--bg-input);border-radius:6px;padding:7px 9px;font-size:.76rem;line-height:1.55;color:var(--text-title);margin-top:7px}.mom13-likes{color:#576b95}.mom13-likes span{margin-right:5px}.mom13-comments b{color:#576b95}.mom13-actions{display:flex;gap:10px;margin-top:8px}.mom13-actions button{border:0;background:transparent;color:#576b95;padding:4px 0;font-size:.76rem}.mom13-social-body{padding:0!important}

.mem13-overlay{display:flex;align-items:center;justify-content:center;position:fixed;inset:0;background:rgba(0,0,0,.56);z-index:100000;padding:16px;box-sizing:border-box}.mem13-modal{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--bg-card);color:var(--text-title);border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:0 18px 50px rgba(0,0,0,.28)}.mem13-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px}.mem13-head>div{display:flex;flex-direction:column;gap:3px}.mem13-head strong{font-size:1.05rem}.mem13-head span{font-size:.73rem;color:var(--text-muted);line-height:1.5}.mem13-head button{border:0;background:var(--bg-input);color:var(--text-muted);width:34px;height:34px;border-radius:50%}.mem13-modal textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;background:var(--bg-input);color:var(--text-title);padding:11px;font-size:.88rem;line-height:1.55;resize:vertical}.mem13-result{margin-top:10px;padding:10px;border-radius:12px;background:var(--bg-input);border:1px solid var(--border);font-size:.78rem;color:var(--text-muted);line-height:1.5}.mem13-time{font-weight:700;color:var(--text-title);margin-bottom:7px}.mem13-row{display:grid;grid-template-columns:minmax(62px,auto) auto 1fr;align-items:start;gap:7px;padding:8px 0;border-bottom:1px dashed var(--border)}.mem13-row:last-child{border-bottom:0}.mem13-row b{color:var(--text-title)}.mem13-row span{padding:2px 6px;border-radius:999px;font-size:.68rem;background:var(--primary-soft);color:var(--primary)}.mem13-row .role-unknown{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border)}.mem13-row p{margin:0;color:var(--text-muted)}.mem13-done{margin-top:9px;color:var(--primary);font-weight:600}.mem13-error{color:#dc2626}.mem13-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}

@media(max-width:520px){.npc-life-mode-head{align-items:flex-start}.npc-life-mode-head select{min-width:84px}.mom13-cover{height:150px}.mom13-card{grid-template-columns:38px minmax(0,1fr);padding:12px 9px}.mom13-avatar{width:38px;height:38px}.mom13-media-grid{max-width:240px}.mem13-row{grid-template-columns:1fr auto}.mem13-row p{grid-column:1/-1}.mem13-actions button{flex:1;min-height:42px}}


/* Stage14 · 微信聊天标题居中 + 功能卡片统一视觉 */
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head{position:relative!important;display:flex!important;align-items:center!important;gap:7px!important;padding:0 8px!important;min-width:0!important}
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head>button:first-child{flex:0 0 32px!important;z-index:2!important}
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head>.stage12-avatar-hit{flex:0 0 34px!important;z-index:2!important}
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head>strong{position:absolute!important;left:50%!important;transform:translateX(-50%)!important;width:min(48%,220px)!important;text-align:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;pointer-events:none!important;font-size:.92rem!important}
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head>span:last-child{margin-left:auto!important;max-width:28%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;text-align:right!important;z-index:2!important;font-size:.62rem!important}
#phoneSimulatorModal .wx14-sheet{padding:9px 12px calc(12px + env(safe-area-inset-bottom,0px))!important;background:color-mix(in srgb,var(--bg-sidebar) 94%,transparent)!important;backdrop-filter:blur(22px)}
#phoneSimulatorModal .wx14-sheet-handle{width:34px;height:4px;border-radius:99px;background:var(--border);margin:1px auto 14px}
#phoneSimulatorModal .wx14-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;padding:0 0 14px!important}
#phoneSimulatorModal .wx14-tool{min-height:84px!important;border:1px solid color-mix(in srgb,var(--border) 82%,transparent)!important;border-radius:17px!important;background:var(--bg-card)!important;padding:10px 7px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:space-between!important;text-align:left!important;box-shadow:0 4px 14px rgba(0,0,0,.035)}
#phoneSimulatorModal .wx14-tool>b{width:35px!important;height:35px!important;border-radius:12px!important;background:color-mix(in srgb,var(--bg-input) 82%,#fff 18%)!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:1rem!important;font-weight:750!important}
#phoneSimulatorModal .wx14-tool>span{display:block!important;width:100%!important}
#phoneSimulatorModal .wx14-tool strong{display:block;font-size:.7rem;color:var(--text-title);line-height:1.3}
#phoneSimulatorModal .wx14-tool small{display:block;font-size:.53rem;color:var(--text-muted);margin-top:2px;line-height:1.25}
#phoneSimulatorModal .wx14-transfer>b{background:color-mix(in srgb,#ff9f43 18%,var(--bg-input))!important;color:#d87b20}
#phoneSimulatorModal .wx14-taobao>b{background:color-mix(in srgb,#ff5a5f 15%,var(--bg-input))!important;color:#df454d}
#phoneSimulatorModal .wx14-photo>b{background:color-mix(in srgb,#5b8def 15%,var(--bg-input))!important;color:#4f7ed5}
#phoneSimulatorModal .wx14-location>b{background:color-mix(in srgb,#31b96b 15%,var(--bg-input))!important;color:#219654}
#phoneSimulatorModal .wx14-voice>b{background:color-mix(in srgb,#8e72d8 15%,var(--bg-input))!important;color:#775bc4}
#phoneSimulatorModal .wx14-card>b{background:color-mix(in srgb,#4aa6b8 15%,var(--bg-input))!important;color:#37899a}
#phoneSimulatorModal .wx14-media-card,#phoneSimulatorModal .wx14-contact-card,#phoneSimulatorModal .wx14-gift-card{min-width:190px;max-width:245px;border-radius:10px;overflow:hidden;background:#fff;color:#151515}
#phoneSimulatorModal .wx14-photo .wx14-photo-preview{height:126px;background:linear-gradient(145deg,#dce6ef,#aabcca);display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff}
#phoneSimulatorModal .wx14-photo p{padding:8px 10px;margin:0;font-size:.68rem}
#phoneSimulatorModal .wx14-location{display:grid;grid-template-columns:88px 1fr;min-height:72px}.wx14-map{position:relative;background:linear-gradient(135deg,#d9eadf,#c8d8e9);display:flex;align-items:center;justify-content:center;font-size:1.35rem}.wx14-map:before,.wx14-map:after{content:"";position:absolute;background:rgba(255,255,255,.7)}.wx14-map:before{width:100%;height:2px;transform:rotate(-23deg)}.wx14-map:after{height:100%;width:2px;transform:rotate(34deg)}.wx14-location>div:last-child{padding:11px 10px;min-width:0}.wx14-location b,.wx14-location small{display:block}.wx14-location b{font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wx14-location small{font-size:.53rem;color:#999;margin-top:5px}
#phoneSimulatorModal .wx14-voice{min-width:170px;max-width:235px;display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center}.wx14-voice .wx14-wave{font-size:1.1rem;letter-spacing:-5px;transform:scaleX(-1);display:inline-block}.wx14-voice b{font-size:.68rem}.wx14-voice small{grid-column:1/-1;font-size:.56rem;opacity:.7;margin-top:5px;line-height:1.4}
#phoneSimulatorModal .wx14-contact-card{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:9px;padding:10px}.wx14-card-avatar{width:42px;height:42px;border-radius:8px;background:#8ea6bc;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.wx14-contact-card b,.wx14-contact-card small{display:block}.wx14-contact-card b{font-size:.72rem}.wx14-contact-card small{font-size:.53rem;color:#999;margin-top:3px}.wx14-contact-card>span{color:#aaa}
#phoneSimulatorModal .wx14-gift-card{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;padding:11px;background:linear-gradient(135deg,#ff765f,#ee5151);color:#fff}.wx14-gift-card>div{font-size:1.8rem;text-align:center}.wx14-gift-card small,.wx14-gift-card b,.wx14-gift-card p{display:block;margin:0}.wx14-gift-card small{opacity:.78;font-size:.52rem}.wx14-gift-card b{font-size:.78rem;margin-top:2px}.wx14-gift-card p{font-size:.55rem;opacity:.86;margin-top:4px;line-height:1.35}
:root[data-theme="dark-rose"] #phoneSimulatorModal .wx14-media-card,:root[data-theme="dark-rose"] #phoneSimulatorModal .wx14-contact-card{background:var(--bg-card);color:var(--text-title)}
@media(max-width:360px){#phoneSimulatorModal .wx14-tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}#phoneSimulatorModal .wx14-tool{min-height:78px!important;padding:8px 6px!important}}

/* ==================== Stage15：统一美化 / 自定义背景 / 顶部模型参数 ==================== */
:root{--custom-bg-opacity:.24;--custom-bg-blur:2px;}
#app{position:relative;isolation:isolate;}
html.custom-bg-active #app::before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(255,255,255,calc(1 - var(--custom-bg-opacity))),rgba(255,255,255,calc(1 - var(--custom-bg-opacity)))),var(--custom-bg-image);background-size:cover;background-position:center;filter:blur(var(--custom-bg-blur));transform:scale(1.02);z-index:-1;pointer-events:none;}
html[data-theme="dark-rose"].custom-bg-active #app::before{background-image:linear-gradient(rgba(22,18,25,calc(1 - var(--custom-bg-opacity))),rgba(22,18,25,calc(1 - var(--custom-bg-opacity)))),var(--custom-bg-image);}
html.custom-bg-active .main-viewport{background:color-mix(in srgb,var(--bg-app) 82%,transparent);backdrop-filter:blur(10px);}
html.custom-bg-active .sidebar,html.custom-bg-active .app-topbar{background:color-mix(in srgb,var(--bg-sidebar) 88%,transparent);backdrop-filter:blur(16px);}
html.custom-bg-active .panel-box,html.custom-bg-active .story-card,html.custom-bg-active .input-dock{background:color-mix(in srgb,var(--bg-card) 90%,transparent);backdrop-filter:blur(14px);}

.brand-title{gap:8px;font-weight:760;letter-spacing:.02em}.brand-mark{width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary);font-size:.9rem;border:1px solid color-mix(in srgb,var(--primary) 26%,var(--border));}
.nav-btn{border-radius:11px}.nav-btn-content>span{letter-spacing:.01em}.nav-btn.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 22%,transparent)}
.app-topbar{min-height:54px;height:auto;padding-top:max(5px,env(safe-area-inset-top));padding-bottom:5px;box-shadow:0 1px 0 rgba(0,0,0,.02)}
.btn-main,.btn-ghost,.director-tool-btn,.story-inline-tool{border-radius:11px!important;min-height:32px;transition:background .16s ease,border-color .16s ease,transform .12s ease,box-shadow .16s ease}.btn-main:active,.btn-ghost:active,.director-tool-btn:active,.story-inline-tool:active{transform:scale(.97)}
.story-inline-tool{padding:2px 8px!important;font-size:.75rem!important;color:var(--text-title)!important;background:var(--bg-card)!important;border:1px solid var(--border)!important;margin:0!important;font-weight:600!important;}
#toggleImmersiveBtn.active{background:var(--primary-soft)!important;color:var(--primary)!important;border-color:color-mix(in srgb,var(--primary) 40%,var(--border))!important;}
.hero-phone-btn{background:var(--text-title);box-shadow:none;border:1px solid color-mix(in srgb,var(--text-title) 12%,transparent);border-radius:12px}.phone-line-icon{font-size:.9rem;opacity:.92}
.panel-box{border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.035)}
.story-card{border-radius:18px;box-shadow:0 8px 24px rgba(0,0,0,.035)}
.narration-bubble{border-style:solid;border-radius:16px;box-shadow:0 5px 20px rgba(0,0,0,.025)}
.input-dock{border-radius:17px;box-shadow:0 8px 26px rgba(0,0,0,.05)}

/* 顶部模型参数：按模型独立 */
.story-model-selector-wrap{position:relative;border-radius:12px;padding:3px 5px 3px 7px;background:color-mix(in srgb,var(--bg-input) 90%,transparent);max-width:min(72vw,520px)}
.story-model-selector-wrap select{max-width:108px;min-width:0}.topbar-sampling-btn{border:0;background:var(--bg-card);color:var(--text-muted);font-size:.64rem;font-weight:700;padding:5px 7px;border-radius:8px;white-space:nowrap;cursor:pointer;border-left:1px solid var(--border)}
.topbar-sampling-btn:hover{color:var(--primary)}.topbar-sampling-btn:disabled{opacity:.45;cursor:not-allowed}
.topbar-sampling-popover{position:absolute;right:0;top:calc(100% + 8px);width:min(310px,86vw);background:color-mix(in srgb,var(--bg-card) 96%,transparent);border:1px solid var(--border);box-shadow:0 14px 40px rgba(0,0,0,.14);border-radius:16px;padding:12px;z-index:120;backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:10px}.topbar-sampling-popover.hide{display:none}.sampling-pop-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.sampling-pop-head strong{font-size:.82rem;color:var(--text-title)}.sampling-pop-head span{font-size:.66rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.topbar-sampling-popover label{font-size:.72rem;color:var(--text-body);display:grid;grid-template-columns:1fr auto;gap:5px}.topbar-sampling-popover label b{color:var(--primary);font-variant-numeric:tabular-nums}.topbar-sampling-popover input{grid-column:1/-1;width:100%;accent-color:var(--primary)}.topbar-sampling-popover small{font-size:.64rem;line-height:1.45;color:var(--text-muted)}
.legacy-global-sampling{display:none!important}

/* 系统偏好：背景自定义 */
.appearance-custom-card{border-top:1px dashed var(--border);padding-top:12px;display:flex;flex-direction:column;gap:10px}.appearance-custom-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.appearance-custom-head>div{display:flex;flex-direction:column;gap:2px}.appearance-custom-head strong{font-size:.9rem;color:var(--text-title)}.appearance-custom-head span{font-size:.7rem;color:var(--text-muted);line-height:1.4}.appearance-custom-actions{display:grid;grid-template-columns:auto 1fr auto;gap:7px}.appearance-custom-actions input{min-width:0}.appearance-slider{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:.74rem;color:var(--text-body)}.appearance-slider b{color:var(--primary);font-variant-numeric:tabular-nums}.appearance-slider input{grid-column:1/-1;width:100%;accent-color:var(--primary)}

/* 人物中心头像开关：状态更明确 */
.toggle-avatar-btn{position:relative}.toggle-avatar-btn::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--text-muted);opacity:.45}.toggle-avatar-btn.active::after{background:var(--primary);opacity:1;box-shadow:0 0 0 3px var(--primary-soft)}

/* 长记录注入合体 */
.mem15-modal{max-width:620px}.mem15-actions{display:grid!important;grid-template-columns:1.35fr 1fr;gap:8px}.mem15-person-result{margin-top:6px;padding:7px 9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-input);font-size:.72rem;color:var(--text-body)}

/* 朋友圈：更像真实社交信息流，同时保持克制 */
.mom13-card{padding:15px 13px!important;gap:11px!important}.mom13-avatar{width:42px!important;height:42px!important;border-radius:9px!important;box-shadow:0 2px 10px rgba(0,0,0,.06)}.mom13-name{font-size:.82rem!important;font-weight:750!important}.mom13-text{font-size:.84rem!important;line-height:1.68!important}.mom13-meta{margin-top:8px!important}.mom13-likes,.mom13-comments{background:color-mix(in srgb,var(--bg-input) 92%,transparent)!important;border-radius:8px!important}.mom13-comments>div+div{margin-top:4px}.mom13-actions button{border-radius:8px!important;padding:4px 9px!important}

/* 微信 + 功能卡统一，不用幼稚大表情 */
.wx14-tool-grid{gap:10px!important}.wx14-tool{border:1px solid var(--border)!important;background:var(--bg-card)!important;border-radius:15px!important;min-height:80px!important;box-shadow:0 5px 16px rgba(0,0,0,.03)!important}.wx14-tool>b{font-family:ui-sans-serif,system-ui!important;font-size:1rem!important;background:var(--bg-input)!important;border:1px solid var(--border)!important;color:var(--text-title)!important;width:38px!important;height:38px!important;border-radius:12px!important;display:flex!important;align-items:center!important;justify-content:center!important}.wx14-tool span strong{font-size:.78rem!important}.wx14-tool span small{font-size:.61rem!important}.wx14-sheet{border-radius:20px 20px 0 0!important}

/* 导演界面更像 AI 对话而非控制台 */
#viewMasterDirector .director-bubble,#viewDirectorConsole .director-bubble{border-style:solid;background:color-mix(in srgb,var(--bg-input) 88%,transparent);line-height:1.65}.director-toolbar{gap:7px;flex-wrap:wrap}.director-tool-btn span{filter:grayscale(.35);opacity:.86}

@media(max-width:700px){.topbar-title{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-model-selector-wrap{max-width:calc(100vw - 128px)}.story-model-selector-wrap>span{display:none}.story-model-selector-wrap select:first-of-type{max-width:74px}.story-model-selector-wrap select:nth-of-type(2){max-width:92px}.topbar-sampling-btn{font-size:.58rem;padding:5px}.hero-phone-btn{padding:5px 8px}.hero-phone-btn{font-size:0}.hero-phone-btn span{font-size:.92rem}.appearance-custom-actions{grid-template-columns:1fr 1fr}.appearance-custom-actions input{grid-column:1/-1}.mem15-actions{grid-template-columns:1fr}.story-clue-bar>div:last-child{overflow-x:auto;max-width:62%;padding-bottom:1px}.story-inline-tool{white-space:nowrap}}

/* custom background stacking fix */
html.custom-bg-active #app::before{z-index:0}
html.custom-bg-active .sidebar,html.custom-bg-active .main-viewport{position:relative;z-index:1}

/* ==================== Stage16 稳定性与朋友圈交互反馈 ==================== */
#manualBranchSnapshotBtn{min-width:34px;position:relative;transition:.18s ease;border-radius:9px}
#manualBranchSnapshotBtn.saving{opacity:.7;transform:scale(.96)}
#manualBranchSnapshotBtn.saved{background:color-mix(in srgb,#35b779 16%,var(--bg-card));color:#229461;border-color:color-mix(in srgb,#35b779 38%,var(--border))}
#manualBranchSnapshotBtn.error{background:color-mix(in srgb,#e55 12%,var(--bg-card));color:#d44}
.mom16-actions{display:flex;align-items:center;gap:8px;margin-top:9px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--border) 78%,transparent)}
.mom16-actions button{border:1px solid var(--border);background:var(--bg-card);color:#576b95;border-radius:999px;min-height:32px;padding:5px 12px;font-size:.74rem;font-weight:650;cursor:pointer}
.mom16-actions button.active{background:color-mix(in srgb,#576b95 10%,var(--bg-card));border-color:color-mix(in srgb,#576b95 36%,var(--border));color:#445a83}
.mom16-actions button:active{transform:scale(.97)}
.mom13-card.compact{grid-template-columns:42px minmax(0,1fr)}
@media(max-width:520px){.mom16-actions{gap:6px}.mom16-actions button{flex:1;min-height:36px}.mom13-card.compact{grid-template-columns:38px minmax(0,1fr)}}

/* ===== Core convergence · 手动快照管理 / 记忆人物范围 ===== */
.manual-world-snapshot-panel{
  margin:0 0 14px;padding:12px;border:1px solid var(--border);border-radius:14px;
  background:color-mix(in srgb,var(--bg-card) 92%,var(--primary-soft));
}
.manual-world-snapshot-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.manual-world-snapshot-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.manual-world-snapshot-head strong{font-size:.92rem;color:var(--text-title)}
.manual-world-snapshot-head span,.manual-world-snapshot-head small{font-size:.7rem;color:var(--text-muted)}
.manual-world-snapshot-list{display:flex;flex-direction:column;gap:8px}
.manual-world-snapshot-card{padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card)}
.manual-world-snapshot-meta{display:flex;justify-content:space-between;gap:10px;align-items:center}
.manual-world-snapshot-meta strong{font-size:.83rem;color:var(--text-title);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manual-world-snapshot-meta span{font-size:.68rem;color:var(--text-muted);white-space:nowrap}
.manual-world-snapshot-sub{margin-top:4px;font-size:.7rem;color:var(--text-muted)}
.manual-world-snapshot-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.manual-world-snapshot-actions button{min-height:34px;padding:6px 10px;border-radius:9px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-body);font-size:.72rem;font-weight:650}
.manual-world-snapshot-actions button.primary{background:var(--primary-soft);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 28%,var(--border))}
.manual-world-snapshot-actions button.danger{color:#c44}
.manual-world-snapshot-empty{padding:14px 8px;text-align:center;color:var(--text-muted);font-size:.76rem}
.action-log-section{display:flex;flex-direction:column;gap:8px}

.mem-core-picker{margin:10px 0 0;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--bg-card)}
.mem-core-picker-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.mem-core-picker-head strong{font-size:.82rem;color:var(--text-title)}
.mem-core-picker-head>div{display:flex;gap:6px}
.mem-core-picker-head button{border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-body);padding:5px 8px;font-size:.68rem}
.mem-core-person-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.mem-core-person-grid label{display:flex;align-items:center;gap:7px;min-height:34px;padding:5px 7px;border:1px solid var(--border);border-radius:9px;background:var(--bg-input);font-size:.74rem;color:var(--text-body)}
.mem-core-person-grid input{accent-color:var(--primary)}
.mem-core-policy{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:9px;padding-top:9px;border-top:1px dashed var(--border);font-size:.7rem;color:var(--text-muted)}
.mem-core-policy>span{font-weight:700;color:var(--text-body)}
.mem-core-policy label{display:flex;align-items:center;gap:4px}
.mem-core-picker>small{display:block;margin-top:7px;color:var(--text-muted);font-size:.66rem;line-height:1.5}
@media(max-width:480px){.mem-core-person-grid{grid-template-columns:1fr}.manual-world-snapshot-meta{align-items:flex-start;flex-direction:column;gap:2px}.manual-world-snapshot-meta span{white-space:normal}}


/* ===== Core v2: background AI budget + knowledge provenance ===== */
.world-ai-budget-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.world-ai-budget-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.world-ai-budget-row strong{font-size:.8rem;color:var(--text-title)}.world-ai-budget-row span{font-size:.72rem;color:var(--text-muted);line-height:1.45}.world-ai-budget-row select{min-width:86px;background:var(--bg-input);color:var(--text-title);border:1px solid var(--border);border-radius:9px;padding:7px 9px}
.knowledge-source-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.knowledge-source-row:last-child{border-bottom:0}.knowledge-source-row>div{display:grid;grid-template-columns:auto 1fr;gap:4px 7px;min-width:0;flex:1}.knowledge-source-row b{font-size:.66rem;padding:2px 6px;border:1px solid var(--border);border-radius:999px;color:var(--text-muted);align-self:start}.knowledge-source-row span{font-size:.8rem;color:var(--text-title);line-height:1.55;min-width:0}.knowledge-source-row small{grid-column:2;font-size:.68rem;color:var(--text-muted)}.knowledge-source-row button{flex:0 0 auto;border:1px solid var(--border);background:var(--bg-input);color:var(--primary);border-radius:8px;padding:6px 8px;font-size:.7rem;cursor:pointer}.knowledge-type-suspicion,.knowledge-type-rumor,.knowledge-type-misunderstanding{font-style:italic}
.knowledge-why-overlay{z-index:12050}.knowledge-why-modal{width:min(92vw,430px);max-height:min(78vh,680px);overflow:auto;background:var(--bg-panel);border:1px solid var(--border);border-radius:18px;padding:16px;color:var(--text-title);box-shadow:0 20px 60px rgba(0,0,0,.35)}.knowledge-why-modal header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.knowledge-why-modal header>div{display:flex;flex-direction:column;gap:3px}.knowledge-why-modal header strong{font-size:.95rem}.knowledge-why-modal header span{font-size:.7rem;color:var(--text-muted)}.knowledge-why-modal header button{border:0;background:transparent;color:var(--text-muted);font-size:1rem}.knowledge-why-fact{margin:14px 0;padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:12px;line-height:1.65}.knowledge-why-modal dl{display:grid;grid-template-columns:72px 1fr;gap:8px 10px;font-size:.78rem}.knowledge-why-modal dt{color:var(--text-muted)}.knowledge-why-modal dd{margin:0;word-break:break-word}.knowledge-why-modal p{font-size:.72rem;color:var(--text-muted);line-height:1.55;margin:14px 0 0}@media(max-width:420px){.world-ai-budget-row{align-items:flex-start;flex-direction:column}.world-ai-budget-row select{width:100%}.knowledge-source-row{flex-direction:column}.knowledge-source-row button{align-self:flex-end}}


/* 稳定架构版：新建故事开场位置确认 */
.story-role-presence-row{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.72rem;color:var(--text-muted)}
.story-role-presence-row span{min-width:52px}
.story-role-presence{min-height:34px;border:1px solid var(--border);border-radius:10px;background:var(--panel-bg,#111827);color:var(--text-body);padding:5px 9px;font-size:.76rem;max-width:150px}
@media(max-width:520px){.story-role-presence-row{justify-content:space-between}.story-role-presence{max-width:138px}}

/* ===== 稳定世界生活版：微信表情包 ===== */
.core-sticker-panel{padding:10px 12px max(14px,env(safe-area-inset-bottom));}
.core-sticker-panel header{display:flex;align-items:flex-end;justify-content:space-between;padding:2px 4px 10px;gap:12px;}
.core-sticker-panel header strong{font-size:16px;font-weight:700;}
.core-sticker-panel header span{font-size:12px;color:var(--muted,#8a8a8f);}
.core-sticker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:42vh;overflow:auto;padding:2px 2px 12px;overscroll-behavior:contain;}
.core-sticker-item,.core-sticker-upload{border:0;background:var(--panel,#fff);background:color-mix(in srgb,var(--panel,#fff) 90%,var(--border,#ddd));border-radius:14px;min-height:82px;padding:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:inherit;}
.core-sticker-item img{width:58px;height:58px;object-fit:contain;border-radius:10px;display:block;}
.core-sticker-item small,.core-sticker-upload small{font-size:10px;line-height:1.2;color:var(--muted,#8a8a8f);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.core-sticker-upload b{width:54px;height:54px;border:1px dashed var(--border,#bbb);border-radius:14px;display:grid;place-items:center;font-size:27px;font-weight:400;}
.wx14-sticker-msg{display:flex;flex-direction:column;align-items:flex-start;gap:3px;background:transparent!important;min-width:92px;}
.wx14-sticker-msg img{display:block;width:min(150px,38vw);height:min(150px,38vw);object-fit:contain;border-radius:13px;}
.wx14-sticker-msg small{font-size:10px;color:var(--muted,#8a8a8f);padding-left:3px;}
.wx14-sticker-missing{padding:10px 12px;border:1px dashed var(--border,#bbb);border-radius:12px;font-size:13px;}
.wx14-sticker-missing small{display:block;margin-top:3px;color:var(--muted,#8a8a8f);font-size:10px;}
@media (max-width:360px){.core-sticker-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.wx14-sticker-msg img{width:128px;height:128px;}}


/* =========================================================
   iOS 阅读优先界面 / 可编辑人物识别 / 对话排版
   ========================================================= */
.mobile-model-toggle{display:none;}
.story-context-panel{display:flex;flex-direction:column;gap:8px;padding:8px 10px!important;}
.story-clue-editor-wrap{display:flex;align-items:center;gap:7px;min-width:0;}
.story-clue-label{font-size:.68rem;font-weight:700;color:var(--text-muted);white-space:nowrap;flex:0 0 auto;}
.story-clue-editable{
  min-width:0;flex:1;min-height:30px;max-height:72px;overflow:auto;
  padding:6px 9px;border:1px solid var(--border);border-radius:10px;background:var(--bg-input);
  color:var(--text);font-size:.78rem;line-height:1.45;outline:none;white-space:normal;
}
.story-clue-editable:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent);}
.story-clue-actions{display:flex;gap:5px;flex:0 0 auto;}
.story-mini-btn{min-height:30px!important;padding:4px 9px!important;font-size:.72rem!important;}
.story-tools-scroll{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:1px 0 2px;}
.story-tools-scroll::-webkit-scrollbar{display:none;}
.story-tools-scroll>button{flex:0 0 auto;min-height:34px;border-radius:999px;padding:5px 12px!important;font-size:.74rem!important;}
.story-danger-tool{color:#d94f70!important;}
.scene-bar-label{font-size:.7rem;color:var(--text-muted);font-weight:700;white-space:nowrap;margin-right:2px;}

.fragment-speaker-head{display:flex;align-items:center;gap:8px;margin:16px 0 5px;padding:0 2px;}
.fragment-speaker-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.fragment-speaker-name{font-size:.92rem;font-weight:800;color:var(--text);letter-spacing:.02em;}
.fragment-quote-bar{
  position:relative!important;margin:0 0 12px 10px!important;padding:9px 12px 9px 14px!important;
  border-left:3px solid var(--primary)!important;border-radius:0 12px 12px 0!important;
  background:color-mix(in srgb,var(--primary) 7%,var(--bg-card))!important;
  color:var(--text)!important;font-size:.95rem!important;line-height:1.7!important;max-width:94%!important;
}
.fragment-quote-bar::before{content:"";position:absolute;left:-3px;top:0;bottom:0;width:3px;border-radius:3px;background:var(--primary);}
.fragment-action-card{border-radius:12px!important;padding:10px 12px!important;margin:9px 0!important;line-height:1.75!important;}
.fragment-lead-text{line-height:1.82!important;margin:9px 0!important;}
.story-meta-details{margin:10px 0;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);overflow:hidden;}
.story-meta-details>summary{cursor:pointer;padding:10px 12px;font-size:.78rem;font-weight:700;color:var(--text-muted);list-style:none;}
.story-meta-details>summary::-webkit-details-marker{display:none;}
.story-meta-details>summary::after{content:"⌄";float:right;}
.story-meta-details[open]>summary::after{content:"⌃";}
.story-meta-details-body{padding:0 12px 12px;white-space:pre-line;font-size:.8rem;line-height:1.55;color:var(--text);}

.role-recognition-modal{z-index:12000!important;}
.role-recognition-card{width:min(720px,94vw);max-height:min(86dvh,820px);display:flex;flex-direction:column;overflow:hidden;}
.role-recognition-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;}
.role-recognition-sub{font-size:.72rem;color:var(--text-muted);line-height:1.45;margin-top:3px;}
.role-recognition-list{display:flex;flex-direction:column;gap:8px;overflow:auto;padding:4px 2px 10px;-webkit-overflow-scrolling:touch;}
.role-recognition-row{display:grid;grid-template-columns:28px 1fr;gap:7px;padding:9px;border:1px solid var(--border);border-radius:13px;background:var(--bg-input);}
.role-keep{display:flex;align-items:center;justify-content:center;}
.role-keep input{width:20px;height:20px;accent-color:var(--primary);}
.role-fields{display:grid;grid-template-columns:minmax(100px,1.5fr) minmax(90px,1fr) minmax(80px,.8fr);gap:6px;}
.role-fields input,.role-fields select{width:100%;min-height:36px;border-radius:9px;font-size:.78rem;}
.role-recognition-meta{grid-column:2;font-size:.66rem;color:var(--text-muted);}
.role-add-manual{width:100%;min-height:40px;margin:2px 0 8px;}
.role-recognition-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;border-top:1px solid var(--border);font-size:.67rem;color:var(--text-muted);}
.role-recognition-foot>div{display:flex;gap:7px;flex:0 0 auto;}

@media (max-width: 760px){
  html,body{overscroll-behavior-y:none;}
  .app-topbar{
    min-height:58px!important;height:58px!important;padding:
      max(6px,env(safe-area-inset-top))
      10px 6px!important;
    gap:8px!important;align-items:center!important;
    background:color-mix(in srgb,var(--bg-card) 94%,transparent)!important;
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  }
  .topbar-left{min-width:0;flex:1;gap:8px!important;}
  #openSidebarBtn{width:42px!important;height:42px!important;min-width:42px!important;border-radius:13px!important;font-size:1.15rem!important;}
  .topbar-title{min-width:0;max-width:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.94rem!important;font-weight:750!important;}
  .topbar-right{gap:6px!important;flex:0 0 auto;}
  .mobile-model-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 11px;border:1px solid var(--border);border-radius:12px;background:var(--bg-input);color:var(--text);font-size:.72rem;font-weight:700;}
  .mobile-model-toggle.active{border-color:var(--primary);color:var(--primary);}
  #topbarModelWrap{
    display:none!important;position:fixed!important;z-index:11000!important;
    top:calc(env(safe-area-inset-top) + 62px);left:12px;right:12px;max-width:none!important;width:auto!important;
    padding:10px!important;border-radius:16px!important;background:var(--bg-card)!important;
    border:1px solid var(--border)!important;box-shadow:0 14px 38px rgba(0,0,0,.16)!important;
  }
  #topbarModelWrap.mobile-open{display:grid!important;grid-template-columns:20px 1fr 1fr auto;gap:7px!important;}
  #topbarStoryApiSelect,#topbarStoryModelSelect{max-width:none!important;width:100%!important;min-width:0!important;height:38px!important;}
  #topbarSamplingBtn{height:38px!important;}
  .hero-phone-btn{min-width:42px!important;width:42px!important;height:42px!important;padding:0!important;border-radius:14px!important;font-size:0!important;}
  .hero-phone-btn .phone-line-icon{font-size:1.08rem!important;margin:0!important;}

  #viewStoryChat{min-height:0!important;}
  .branch-control-bar{
    margin:8px 10px 0!important;padding:8px 10px!important;border-radius:15px!important;
    min-height:46px!important;gap:8px!important;
  }
  #currentBranchName{font-size:.79rem!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .branch-pager{gap:4px!important;flex:0 0 auto;}
  .branch-pager button{width:34px!important;height:34px!important;min-width:34px!important;border-radius:10px!important;padding:0!important;}
  #branchPagerText{min-width:34px;text-align:center;}

  .story-context-panel{margin:8px 10px 0!important;border-radius:15px!important;padding:9px!important;}
  .story-clue-editor-wrap{align-items:flex-start;flex-wrap:wrap;}
  .story-clue-label{width:100%;font-size:.66rem;}
  .story-clue-editable{flex:1 1 calc(100% - 112px);min-height:38px;max-height:76px;font-size:.78rem;}
  .story-clue-actions{flex:0 0 auto;}
  .story-mini-btn{min-height:38px!important;}
  .story-tools-scroll{width:100%;padding-top:1px;}
  .story-tools-scroll>button{min-height:38px!important;padding:6px 13px!important;}

  .scene-characters-bar{margin:7px 10px 0!important;padding:6px 2px!important;overflow-x:auto!important;white-space:nowrap!important;scrollbar-width:none;}
  .scene-characters-bar::-webkit-scrollbar{display:none;}
  .scene-char-chip{min-height:34px!important;border-radius:999px!important;padding:5px 10px!important;}

  .message-stream{padding:12px 14px calc(104px + env(safe-area-inset-bottom))!important;}
  .narration-bubble{font-size:.95rem!important;line-height:1.78!important;}
  .fragment-stream-box{font-size:.95rem!important;}
  .fragment-action-card{background:color-mix(in srgb,var(--text) 4%,var(--bg-card))!important;border-left:3px solid color-mix(in srgb,var(--primary) 70%,transparent)!important;}
  .fragment-speaker-head{margin-top:15px;}
  .fragment-quote-bar{font-size:.96rem!important;max-width:96%!important;margin-left:8px!important;}

  .input-dock{
    left:10px!important;right:10px!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;
    width:auto!important;border-radius:19px!important;padding:7px!important;min-height:54px!important;
    box-shadow:0 12px 34px rgba(0,0,0,.12)!important;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  }
  .input-dock textarea{font-size:16px!important;line-height:1.35!important;min-height:38px!important;padding:9px 10px!important;}
  .input-dock button{min-width:58px!important;min-height:40px!important;border-radius:14px!important;}

  .role-recognition-card{width:100vw!important;max-width:none!important;height:min(88dvh,780px)!important;max-height:88dvh!important;margin-top:auto!important;border-radius:22px 22px 0 0!important;padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;}
  .role-fields{grid-template-columns:1fr 1fr;}
  .role-name-input{grid-column:1 / -1;}
  .role-recognition-foot{align-items:flex-start;flex-direction:column;}
  .role-recognition-foot>div{width:100%;}
  .role-recognition-foot button{flex:1;min-height:42px;}
}

/* very small iPhones */
@media (max-width:390px){
  .mobile-model-toggle{padding:0 8px;font-size:.68rem;}
  .story-clue-actions{width:100%;}
  .story-clue-actions button{flex:1;}
  .story-clue-editable{flex-basis:100%;}
}


/* ===== iOS full-height + full-screen character phone hardening ===== */
:root{--roleos-visual-h:100dvh}
html,body,#app,.main-viewport{
  height:var(--roleos-visual-h,100dvh)!important;
  min-height:var(--roleos-visual-h,100dvh)!important;
  max-height:var(--roleos-visual-h,100dvh)!important;
}
html,body{width:100%;overflow:hidden!important;overscroll-behavior:none}
#app,.main-viewport,.content-area,#viewStoryChat{min-height:0!important}
.content-area{flex:1 1 auto!important;overflow:hidden!important;padding-bottom:0!important}
#viewStoryChat{flex:1 1 auto!important;height:auto!important;overflow:hidden!important}
#viewStoryChat .message-stream{
  flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:10px!important
}
#viewStoryChat .input-dock-wrap{
  flex:0 0 auto!important;margin:0!important;
  padding:4px 0 max(8px,env(safe-area-inset-bottom,0px))!important
}

@media(max-width:760px){
  #phoneSimulatorModal.phone-modal{
    position:fixed!important;inset:0!important;width:100vw!important;
    height:var(--roleos-visual-h,100dvh)!important;max-width:none!important;max-height:none!important;
    padding:0!important;margin:0!important;align-items:stretch!important;justify-content:stretch!important;
    background:#f4f2f2!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
    overflow:hidden!important
  }
  #phoneSimulatorModal.hide{display:none!important}
  #phoneSimulatorModal .phone-shell,
  #phoneSimulatorModal .real-phone-shell{
    width:100vw!important;min-width:100vw!important;max-width:none!important;
    height:var(--roleos-visual-h,100dvh)!important;min-height:var(--roleos-visual-h,100dvh)!important;
    max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;
    box-shadow:none!important;overflow:hidden!important;display:flex!important;flex-direction:column!important
  }
  #phoneSimulatorModal .phone-statusbar{
    flex:0 0 auto!important;padding-top:max(8px,env(safe-area-inset-top,0px))!important
  }
  #phoneSimulatorModal .phone-modebar,
  #phoneSimulatorModal .phone-topbar{flex:0 0 auto!important}
  #phoneSimulatorContent{
    flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;overscroll-behavior:contain
  }
  #phoneSimulatorModal .phone-bottom-nav{
    flex:0 0 auto!important;margin:0!important;
    padding-bottom:max(8px,env(safe-area-inset-bottom,0px))!important
  }
}


/* ===== Multi-lead import review & phone social cleanup ===== */
.roleos-import-controls{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.72fr);
  gap:8px;margin-top:8px
}
.roleos-import-controls label{display:flex;flex-direction:column;gap:5px}
.roleos-import-controls label>span{font-size:.72rem;color:var(--text-muted)}
.roleos-import-controls select{
  min-height:40px;border:1px solid var(--border);border-radius:12px;
  background:var(--bg-card);color:var(--text-main);padding:0 10px
}
.roleos-import-role-modal{width:min(720px,94vw);max-height:88dvh;overflow:hidden;display:flex;flex-direction:column}
.roleos-import-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.roleos-import-head>div{display:flex;flex-direction:column;gap:4px}
.roleos-import-head small,.roleos-import-note{color:var(--text-muted);font-size:.78rem;line-height:1.45}
.roleos-import-role-list{overflow:auto;display:flex;flex-direction:column;gap:8px;margin:12px 0;min-height:0}
.roleos-import-role-row{
  display:grid;grid-template-columns:30px minmax(100px,1.1fr) minmax(110px,.9fr) minmax(88px,.72fr) 52px;
  gap:7px;align-items:center;padding:9px;border:1px solid var(--border);border-radius:14px;background:var(--bg-card)
}
.roleos-import-role-row input[type="text"],.roleos-import-role-row select{
  min-width:0;min-height:40px;border:1px solid var(--border);border-radius:10px;
  background:var(--bg-soft);color:var(--text-main);padding:0 9px
}
.roleos-import-remove{border:0;background:transparent;color:#ef6f83;min-height:40px}
.roleos-import-actions{display:flex;gap:8px;justify-content:space-between;align-items:center}
#phoneSimulatorContent .phone-contact-row small,
#phoneSimulatorContent .phone-row-sub{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%
}
#phoneSimulatorContent .phone-contact-row{min-width:0}
#phoneSimulatorContent .phone-contact-row>span,
#phoneSimulatorContent .phone-contact-row button{min-width:0}

@media(max-width:640px){
  .roleos-import-controls{grid-template-columns:1fr}
  .roleos-import-role-modal{width:100vw;max-width:none;height:100dvh;max-height:none;border-radius:0}
  .roleos-import-role-row{
    grid-template-columns:28px minmax(0,1fr) 110px;
    grid-template-areas:
      "keep name importance"
      "keep presence remove";
  }
  .roleos-import-keep{grid-area:keep}
  .roleos-import-name{grid-area:name}
  .roleos-import-importance{grid-area:importance}
  .roleos-import-presence{grid-area:presence}
  .roleos-import-remove{grid-area:remove}
}


/* ===== iOS layout correction v2: compact story UI + true phone viewport ===== */

/* 不再把 html/body/max-height 锁死到 visualViewport；Safari 会因此整页被向上挤。
   只让应用自身占当前动态视口，页面结构继续用正常 flex。 */
html, body{
  height:auto !important;
  min-height:100% !important;
  max-height:none !important;
  overflow:hidden !important;
}
#app{
  height:100dvh !important;
  min-height:100dvh !important;
  max-height:100dvh !important;
  overflow:hidden !important;
}
.main-viewport{
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
}
.content-area{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding:10px 12px 0 !important;
}
#viewStoryChat{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
}
#viewStoryChat .message-stream{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  padding-bottom:12px !important;
}
#viewStoryChat .input-dock-wrap{
  flex:0 0 auto !important;
  position:relative !important;
  bottom:auto !important;
  margin:0 !important;
  padding:6px 0 max(8px, env(safe-area-inset-bottom,0px)) !important;
  background:var(--bg-app) !important;
}

/* ---- 剧情顶部：人物识别线索压缩成紧凑工具卡，不再占两三行 ---- */
.story-context-panel{
  margin:6px 0 7px !important;
  padding:7px 8px !important;
  gap:6px !important;
  border-radius:14px !important;
}
.story-clue-editor-wrap{
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
}
.story-clue-label{
  width:auto !important;
  margin:0 !important;
  font-size:.67rem !important;
  white-space:nowrap !important;
}
.story-clue-label::after{
  content:"";
}
.story-clue-editable{
  min-height:34px !important;
  height:34px !important;
  max-height:34px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  white-space:nowrap !important;
  padding:7px 9px !important;
  border-radius:10px !important;
  font-size:.74rem !important;
  line-height:18px !important;
}
.story-clue-actions{
  display:flex !important;
  gap:5px !important;
  flex:0 0 auto !important;
}
.story-clue-actions .story-mini-btn{
  min-height:34px !important;
  height:34px !important;
  padding:0 10px !important;
  border-radius:10px !important;
  font-size:.74rem !important;
  white-space:nowrap !important;
}
.story-tools-scroll{
  width:100% !important;
  max-width:none !important;
  display:flex !important;
  gap:6px !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding:0 0 1px !important;
}
.story-tools-scroll::-webkit-scrollbar{display:none}
.story-tools-scroll button{
  flex:0 0 auto !important;
  min-height:34px !important;
  height:34px !important;
  padding:0 13px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}
.scene-characters-bar{
  margin:0 0 5px !important;
  min-height:0 !important;
}

/* 分支条压缩 */
.branch-control-bar{
  min-height:44px !important;
  padding:7px 9px !important;
  margin-bottom:6px !important;
  border-radius:13px !important;
}
.branch-control-bar #currentBranchName{
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

/* ---- iPhone 人物手机：使用浏览器真实 viewport，不再继承故事页高度偏移 ---- */
@media (max-width:760px){
  #phoneSimulatorModal.phone-modal{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    padding:0 !important;
    background:#f7f5f5 !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    overflow:hidden !important;
    z-index:5000 !important;
  }
  #phoneSimulatorModal.hide{display:none !important}
  #phoneSimulatorModal .phone-shell,
  #phoneSimulatorModal .real-phone-shell{
    position:relative !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    max-width:none !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    background:#f8f6f6 !important;
  }

  /* 手机自身状态栏始终可见，不额外叠加 iOS safe-area，避免被推到看不见的位置 */
  #phoneSimulatorModal .phone-statusbar{
    position:relative !important;
    z-index:30 !important;
    flex:0 0 34px !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 18px !important;
    margin:0 !important;
    background:#fff !important;
    color:#393238 !important;
    border-bottom:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    font-size:.72rem !important;
    line-height:34px !important;
  }
  #phoneBatteryText,
  #phoneWorldClock,
  #phoneStatusCenter{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#393238 !important;
  }

  #phoneSimulatorModal .phone-modebar{
    flex:0 0 auto !important;
    min-height:48px !important;
    padding:6px 12px !important;
    background:#fff !important;
    border-bottom:1px solid #eee7e9 !important;
    color:#544b52 !important;
  }
  #phoneSimulatorModal .phone-topbar{
    flex:0 0 auto !important;
    min-height:56px !important;
    padding:7px 12px !important;
    background:#fff !important;
    color:#40373d !important;
    border-bottom:1px solid #eee7e9 !important;
  }
  #phoneSimulatorModal .phone-title-wrap{
    min-width:0 !important;
    flex:1 1 auto !important;
  }
  #phoneSimulatorModal .phone-title-wrap strong,
  #phoneSimulatorModal .phone-subtitle{
    color:#40373d !important;
  }
  #phoneSimulatorModal .phone-character-select{
    max-width:150px !important;
    min-width:0 !important;
  }
  #phoneHomeHeader{
    flex:0 0 auto !important;
  }
  #phoneSimulatorContent{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px !important;
  }
  #phoneSimulatorModal .phone-bottom-nav{
    position:relative !important;
    bottom:auto !important;
    flex:0 0 68px !important;
    height:68px !important;
    min-height:68px !important;
    margin:0 !important;
    padding:0 0 max(6px,env(safe-area-inset-bottom,0px)) !important;
    background:#fff !important;
    border-top:1px solid #ece5e7 !important;
    z-index:25 !important;
  }
}

/* 390px 左右 iPhone：进一步压缩人物线索 */
@media(max-width:430px){
  .story-clue-editor-wrap{
    grid-template-columns:minmax(0,1fr) auto !important;
  }
  .story-clue-label{
    display:none !important;
  }
  .story-clue-actions .story-mini-btn:first-child{
    display:none !important; /* 自动 blur 会保存；手机上不必占一个“保存”按钮 */
  }
  .story-context-panel{
    padding:6px 7px !important;
  }
}


/* ===== iOS final layout correction v3 ===== */
@media (max-width:760px){
  html,body{
    height:100% !important;
    min-height:100% !important;
    max-height:none !important;
    overflow:hidden !important;
  }
  #app{
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    box-sizing:border-box !important;
    padding-top:max(env(safe-area-inset-top,0px), 12px) !important;
    overflow:hidden !important;
  }
  .main-viewport{
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
  }
  .topbar{
    flex:0 0 auto !important;
    min-height:58px !important;
    padding-top:4px !important;
    padding-bottom:4px !important;
  }
  .content-area{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding:8px 12px 0 !important;
  }
  #viewStoryChat{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:100% !important;
    overflow:hidden !important;
  }
  #viewStoryChat .message-stream{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:10px !important;
  }
  #viewStoryChat .input-dock-wrap{
    flex:0 0 auto !important;
    position:relative !important;
    bottom:auto !important;
    margin:0 !important;
    padding:6px 0 max(8px,env(safe-area-inset-bottom,0px)) !important;
  }

  /* 人物识别线索：去掉大面积粉色容器，只保留小输入框 + 识别人 */
  .story-context-panel{
    width:auto !important;
    max-width:100% !important;
    margin:4px 0 5px !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    border-radius:0 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:5px !important;
  }
  .story-clue-editor-wrap{
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    min-width:0 !important;
  }
  .story-clue-label{display:none !important}
  .story-clue-editable{
    flex:0 1 205px !important;
    width:205px !important;
    max-width:calc(100vw - 126px) !important;
    min-width:0 !important;
    height:34px !important;
    min-height:34px !important;
    max-height:34px !important;
    padding:7px 10px !important;
    border-radius:12px !important;
    font-size:.72rem !important;
    line-height:18px !important;
    white-space:nowrap !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
  }
  .story-clue-actions{
    flex:0 0 auto !important;
    display:flex !important;
    gap:5px !important;
  }
  .story-clue-actions .story-mini-btn{
    height:34px !important;
    min-height:34px !important;
    padding:0 11px !important;
    border-radius:12px !important;
    font-size:.72rem !important;
  }
  .story-clue-actions .story-mini-btn:first-child{display:none !important}
  .story-tools-scroll{
    width:100% !important;
    display:flex !important;
    gap:6px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    padding:0 !important;
    margin:0 !important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .story-tools-scroll::-webkit-scrollbar{display:none}
  .story-tools-scroll button{
    flex:0 0 auto !important;
    height:32px !important;
    min-height:32px !important;
    padding:0 12px !important;
    border-radius:999px !important;
    font-size:.72rem !important;
  }

  /* 人物手机真正全屏；手机自身状态栏一定可见 */
  #phoneSimulatorModal.phone-modal{
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    margin:0 !important;
    padding:0 !important;
    z-index:5000 !important;
    overflow:hidden !important;
  }
  #phoneSimulatorModal .phone-shell,
  #phoneSimulatorModal .real-phone-shell{
    width:100% !important;
    height:100% !important;
    min-height:0 !important;
    max-height:none !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:hidden !important;
  }
  #phoneSimulatorModal .phone-statusbar{
    order:-30 !important;
    flex:0 0 38px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 18px !important;
    margin:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    background:#fff !important;
    color:#30292d !important;
    visibility:visible !important;
    opacity:1 !important;
    overflow:visible !important;
    z-index:50 !important;
  }
  #phoneWorldClock,#phoneStatusCenter,#phoneBatteryText{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    color:#30292d !important;
    font-size:.72rem !important;
    line-height:1 !important;
  }
  #phoneSimulatorModal .phone-modebar{order:-20 !important;flex:0 0 auto !important}
  #phoneSimulatorModal .phone-topbar{order:-10 !important;flex:0 0 auto !important}
  #phoneSimulatorContent{
    order:0 !important;
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch;
  }
  #phoneSimulatorModal .phone-bottom-nav{
    order:20 !important;
    flex:0 0 70px !important;
    min-height:70px !important;
    margin:0 !important;
    padding-bottom:max(6px,env(safe-area-inset-bottom,0px)) !important;
  }
}
@media(max-width:430px){
  .story-clue-editable{
    flex-basis:190px !important;
    width:190px !important;
    max-width:calc(100vw - 112px) !important;
  }
}


/* ===== Targeted fix: iOS story viewport only ===== */
@media (max-width: 760px){
  /* 不再动整个 App 的高度算法，只修主线这一屏。 */
  .content-area{
    min-height:0 !important;
    padding-bottom:0 !important;
  }
  #viewStoryChat{
    position:relative !important;
    flex:1 1 0 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    padding-bottom:0 !important;
  }

  /* 正文自己滚动，给底部输入框预留空间。 */
  #viewStoryChat .message-stream{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
    padding-bottom:96px !important;
  }

  /* 关键：输入框永远贴在主线视口最底部，而不是被内容高度顶到半空。 */
  #viewStoryChat .input-dock-wrap{
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    z-index:40 !important;
    width:100% !important;
    margin:0 !important;
    padding:6px 0 max(8px, env(safe-area-inset-bottom, 0px)) !important;
    background:linear-gradient(to top, var(--bg-app) 82%, color-mix(in srgb,var(--bg-app) 92%,transparent)) !important;
  }

  /* 顶部保持自然位置，不再额外用 transform / visualViewport 推整页。 */
  .main-viewport,
  .app-topbar,
  .content-area{
    transform:none !important;
    top:auto !important;
  }
}


/* ===== Targeted fix: narration format only ===== */
.roleos-consistent-narration{
  gap:0 !important;
}
.roleos-narration-paragraph{
  margin:10px 0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  color:var(--text-body) !important;
  font-size:.94rem !important;
  line-height:1.82 !important;
  white-space:normal !important;
}
.roleos-speaker-head{
  margin:16px 0 5px !important;
}
.roleos-dialogue-line{
  margin:0 0 13px 9px !important;
}


/* ===== Recognition cleanup: high-confidence only ===== */
.story-clue-editable:empty::before{
  content:attr(data-placeholder);
  color:var(--text-muted);
  opacity:.72;
  pointer-events:none;
}
.role-recognition-card{
  width:min(680px,94vw) !important;
  max-height:min(82dvh,760px) !important;
}
.role-recognition-list{
  gap:8px !important;
}
.role-recognition-row{
  padding:10px !important;
  border-radius:14px !important;
}
.role-recognition-meta{
  margin-top:5px !important;
  font-size:.68rem !important;
  color:var(--text-muted) !important;
}
.role-fields{
  gap:7px !important;
}
.role-fields .role-name-input,
.role-fields .role-type-select,
.role-fields .role-presence-select{
  min-height:38px !important;
}
@media(max-width:760px){
  .role-recognition-card{
    width:100vw !important;
    max-width:none !important;
    height:100dvh !important;
    max-height:100dvh !important;
    border-radius:0 !important;
    padding:calc(max(env(safe-area-inset-top,0px),12px) + 8px) 14px max(env(safe-area-inset-bottom,0px),12px) !important;
  }
  .role-recognition-head{
    flex:0 0 auto !important;
  }
  .role-recognition-list{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }
  .role-recognition-row{
    display:grid !important;
    grid-template-columns:32px minmax(0,1fr) !important;
    gap:8px !important;
  }
  .role-fields{
    grid-column:2 !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 108px 92px !important;
  }
  .role-recognition-meta{
    grid-column:2 !important;
  }
  .role-recognition-foot{
    flex:0 0 auto !important;
  }
}
@media(max-width:430px){
  .role-fields{
    grid-template-columns:1fr 1fr !important;
  }
  .role-name-input{
    grid-column:1 / -1 !important;
  }
}

/* ===== iPhone 17 + 在场人物可编辑/可删除：定向修正（仅覆盖相关界面） ===== */
.scene-checkbox-grid{
  grid-template-columns:1fr !important;
}
.scene-state-card{
  grid-template-columns:32px minmax(90px,1fr) auto auto !important;
  cursor:default !important;
}
.scene-state-name-input{
  min-width:0;
  width:100%;
  height:36px;
  padding:7px 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--bg-card);
  color:var(--text-title);
  font-size:.8rem;
  outline:none;
}
.scene-state-name-input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 2px var(--primary-soft);
}
.scene-delete-character-btn{
  flex:0 0 auto;
  height:34px;
  padding:0 9px;
  border:1px solid rgba(255,82,82,.22);
  border-radius:9px;
  background:rgba(255,82,82,.07);
  color:#e04b5f;
  font-size:.72rem;
  cursor:pointer;
}
.scene-state-card .scene-state-avatar{flex:0 0 auto;}
.scene-state-card .scene-presence-select{min-width:92px;}

/* iPhone 17 标准机型按 1206×2622（约 402×874 CSS 逻辑比例）收口布局。
   只覆盖手机竖屏，不改桌面端，也不改变任何剧情/数据逻辑。 */
@media (max-width:430px) and (orientation:portrait){
  html,body{
    width:100% !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  #app{
    width:100vw !important;
    height:100dvh !important;
    min-height:100dvh !important;
    max-height:100dvh !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .main-viewport{
    width:100% !important;
    height:100dvh !important;
    min-height:0 !important;
    max-height:100dvh !important;
    overflow:hidden !important;
  }
  .app-topbar{
    box-sizing:border-box !important;
    flex:0 0 calc(50px + env(safe-area-inset-top,0px)) !important;
    height:calc(50px + env(safe-area-inset-top,0px)) !important;
    min-height:calc(50px + env(safe-area-inset-top,0px)) !important;
    padding:max(env(safe-area-inset-top,0px), 8px) 10px 0 !important;
    gap:6px !important;
  }
  .topbar-left{gap:6px !important;}
  #openSidebarBtn{
    width:38px !important;
    min-width:38px !important;
    height:38px !important;
    border-radius:11px !important;
  }
  .topbar-title{
    font-size:.86rem !important;
    max-width:118px !important;
  }
  .topbar-right{gap:5px !important;}
  .mobile-model-toggle{
    min-height:36px !important;
    height:36px !important;
    padding:0 9px !important;
  }
  .hero-phone-btn{
    min-width:38px !important;
    width:38px !important;
    height:38px !important;
    border-radius:12px !important;
  }
  #topbarModelWrap{
    top:calc(env(safe-area-inset-top,0px) + 54px) !important;
    left:10px !important;
    right:10px !important;
  }
  .content-area{
    flex:1 1 0 !important;
    min-height:0 !important;
    height:auto !important;
    padding:6px 10px 0 !important;
    overflow:hidden !important;
  }
  #viewStoryChat{
    flex:1 1 0 !important;
    min-height:0 !important;
    height:auto !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .branch-control-bar{
    min-height:40px !important;
    margin:0 0 5px !important;
    padding:4px 7px !important;
    border-radius:11px !important;
    gap:5px !important;
  }
  #currentBranchName{font-size:.72rem !important;}
  .branch-pager{gap:3px !important;}
  .branch-pager button{
    width:30px !important;
    min-width:30px !important;
    height:30px !important;
    border-radius:8px !important;
  }
  #branchPagerText{min-width:30px !important;font-size:.68rem !important;}
  .story-context-panel{
    margin:0 0 4px !important;
    padding:0 !important;
    gap:4px !important;
  }
  .story-clue-editor-wrap{
    width:100% !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:5px !important;
  }
  .story-clue-editable{
    width:100% !important;
    max-width:none !important;
    min-height:32px !important;
    height:32px !important;
    max-height:32px !important;
    padding:6px 9px !important;
    line-height:18px !important;
    font-size:.7rem !important;
  }
  .story-clue-actions .story-mini-btn{
    height:32px !important;
    min-height:32px !important;
    padding:0 10px !important;
    font-size:.7rem !important;
  }
  .story-tools-scroll{
    gap:5px !important;
    min-height:30px !important;
  }
  .story-tools-scroll button{
    height:30px !important;
    min-height:30px !important;
    padding:0 10px !important;
    font-size:.69rem !important;
  }
  .scene-characters-bar{
    margin:0 0 4px !important;
    padding:2px 0 !important;
    min-height:34px !important;
  }
  .scene-char-chip{
    min-height:30px !important;
    padding:4px 9px !important;
    font-size:.7rem !important;
  }
  #viewStoryChat .message-stream{
    min-height:0 !important;
    padding:7px 2px calc(78px + env(safe-area-inset-bottom,0px)) !important;
    gap:10px !important;
    overflow-y:auto !important;
    -webkit-overflow-scrolling:touch;
  }
  .narration-bubble,
  .bubble{
    font-size:.9rem !important;
    line-height:1.65 !important;
  }
  #viewStoryChat .input-dock-wrap{
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    padding:4px 0 max(6px,env(safe-area-inset-bottom,0px)) !important;
  }
  #viewStoryChat .input-dock{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    bottom:auto !important;
    width:100% !important;
    min-height:46px !important;
    margin:0 !important;
    padding:5px 7px !important;
    border-radius:16px !important;
  }
  #viewStoryChat .input-dock textarea{
    min-height:34px !important;
    height:34px !important;
    max-height:88px !important;
    padding:7px 6px !important;
    font-size:16px !important;
  }
  #viewStoryChat .input-dock button{
    min-height:34px !important;
    height:34px !important;
  }

  #sceneCharsModal{
    padding:max(env(safe-area-inset-top,0px),8px) 10px max(env(safe-area-inset-bottom,0px),8px) !important;
    align-items:center !important;
  }
  #sceneCharsModal .scene-scheduler-box{
    width:100% !important;
    max-width:402px !important;
    max-height:calc(100dvh - max(env(safe-area-inset-top,0px),8px) - max(env(safe-area-inset-bottom,0px),8px) - 12px) !important;
    padding:13px !important;
    gap:9px !important;
    border-radius:18px !important;
    overflow:hidden !important;
  }
  #sceneCharsModal .scene-scheduler-sub{
    font-size:.66rem !important;
    line-height:1.4 !important;
  }
  #sceneCharsModal .scene-checkbox-grid{
    display:flex !important;
    flex-direction:column !important;
    gap:7px !important;
    max-height:none !important;
    min-height:0 !important;
    flex:1 1 auto !important;
    overflow-y:auto !important;
    padding:1px !important;
  }
  #sceneCharsModal .scene-state-card{
    display:grid !important;
    grid-template-columns:34px minmax(0,1fr) 88px 48px !important;
    align-items:center !important;
    gap:6px !important;
    padding:7px !important;
    border-radius:11px !important;
  }
  #sceneCharsModal .scene-state-avatar{
    width:34px !important;
    height:34px !important;
    border-radius:50% !important;
    object-fit:cover !important;
  }
  #sceneCharsModal .scene-state-name-input{
    height:34px !important;
    min-height:34px !important;
    padding:6px 8px !important;
    font-size:.76rem !important;
  }
  #sceneCharsModal .scene-presence-select{
    width:88px !important;
    min-width:88px !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 5px !important;
    font-size:.69rem !important;
  }
  #sceneCharsModal .scene-delete-character-btn{
    width:48px !important;
    height:34px !important;
    padding:0 !important;
    font-size:.68rem !important;
  }
  #sceneCharsModal .scene-add-row,
  #sceneCharsModal .scene-enter-row{
    gap:6px !important;
  }
  #sceneCharsModal .scene-add-row input,
  #sceneCharsModal .scene-enter-row select,
  #sceneCharsModal .scene-add-row button,
  #sceneCharsModal .scene-enter-row button,
  #sceneCharsModal .scene-scheduler-footer button{
    min-height:38px !important;
    font-size:.72rem !important;
  }
}

/* ===== 2026-10-04 iPhone 17 第二次定向修正：底部输入 / 模型选择 / 在场人物删除 / 旁白分段 ===== */
.scene-char-chip{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  cursor:pointer;
}
.scene-chip-name{
  max-width:112px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.scene-chip-edit-btn,
.scene-chip-delete-btn{
  width:22px;
  min-width:22px;
  height:22px;
  min-height:22px;
  padding:0;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.72rem;
  line-height:1;
  cursor:pointer;
  background:var(--bg-card);
}
.scene-chip-edit-btn{
  border:1px solid var(--border);
  color:var(--text-muted);
}
.scene-chip-delete-btn{
  border:1px solid rgba(224,75,95,.28);
  color:#dc4f64;
  background:rgba(224,75,95,.07);
  font-weight:800;
}
.scene-bar-label{
  position:sticky;
  left:0;
  z-index:3;
  padding:5px 7px 5px 1px;
  background:var(--bg-app);
}

.roleos-speaker-head .fragment-speaker-name{
  font-weight:850 !important;
}
.roleos-dialogue-line{
  display:flex !important;
  align-items:flex-start !important;
  gap:7px !important;
}
.roleos-dialogue-pipe{
  flex:0 0 auto;
  color:var(--primary);
  font-weight:900;
  font-size:1.05em;
  line-height:1.65;
}
.roleos-translation-line{
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  font-style:normal;
}

@media (max-width:430px) and (orientation:portrait){
  html,
  body,
  #app,
  .main-viewport{
    height:var(--roleos-visual-h,100dvh) !important;
    min-height:var(--roleos-visual-h,100dvh) !important;
    max-height:var(--roleos-visual-h,100dvh) !important;
  }
  body{
    font-size:16px !important;
  }
  .app-topbar{
    flex-basis:calc(54px + env(safe-area-inset-top,0px)) !important;
    height:calc(54px + env(safe-area-inset-top,0px)) !important;
    min-height:calc(54px + env(safe-area-inset-top,0px)) !important;
    padding:max(env(safe-area-inset-top,0px),8px) 12px 0 !important;
  }
  .topbar-title{
    font-size:17px !important;
    max-width:150px !important;
  }
  #openSidebarBtn,
  .hero-phone-btn{
    width:42px !important;
    min-width:42px !important;
    height:42px !important;
    min-height:42px !important;
  }
  .mobile-model-toggle{
    height:42px !important;
    min-height:42px !important;
    padding:0 13px !important;
    font-size:14px !important;
    background:var(--bg-card) !important;
    color:var(--text-title) !important;
    opacity:1 !important;
  }

  /* 手机上模型选择改成真正不透明、可触摸的浮层；select 使用 iOS 原生选择器。 */
  #topbarModelWrap{
    display:none !important;
    position:fixed !important;
    z-index:20000 !important;
    top:calc(env(safe-area-inset-top,0px) + 60px) !important;
    left:12px !important;
    right:12px !important;
    width:auto !important;
    max-width:none !important;
    padding:12px !important;
    border:1px solid rgba(0,0,0,.12) !important;
    border-radius:18px !important;
    background:var(--bg-sidebar) !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    box-shadow:0 18px 48px rgba(0,0,0,.22) !important;
    pointer-events:auto !important;
  }
  #topbarModelWrap.mobile-open{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:9px !important;
  }
  #topbarModelWrap.mobile-open::before{
    content:"当前界面 API / 模型";
    display:block;
    color:var(--text-title);
    font-size:14px;
    font-weight:800;
    padding:1px 2px 3px;
  }
  #topbarModelWrap>span{
    display:none !important;
  }
  #topbarStoryApiSelect,
  #topbarStoryModelSelect{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:46px !important;
    min-height:46px !important;
    padding:0 12px !important;
    border:1px solid var(--border) !important;
    border-radius:12px !important;
    background:var(--bg-card) !important;
    color:var(--text-title) !important;
    opacity:1 !important;
    font-size:16px !important;
    line-height:46px !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-appearance:menulist !important;
    appearance:auto !important;
  }
  #topbarStoryApiSelect option,
  #topbarStoryModelSelect option{
    background:#fff;
    color:#111;
  }
  #topbarSamplingBtn{
    width:100% !important;
    height:42px !important;
    min-height:42px !important;
    border:1px solid var(--border) !important;
    background:var(--bg-input) !important;
    color:var(--text-title) !important;
    opacity:1 !important;
    font-size:13px !important;
  }
  #topbarSamplingPopover{
    position:relative !important;
    top:auto !important;
    right:auto !important;
    left:auto !important;
    width:100% !important;
    max-width:none !important;
    grid-column:1 / -1 !important;
    background:var(--bg-card) !important;
    opacity:1 !important;
    z-index:1 !important;
  }

  .content-area{
    padding:8px 12px 0 !important;
  }
  #viewStoryChat{
    position:relative !important;
    height:100% !important;
    min-height:0 !important;
  }
  .branch-control-bar{
    min-height:44px !important;
    padding:6px 9px !important;
  }
  #currentBranchName{
    font-size:14px !important;
  }
  .story-clue-editable{
    min-height:38px !important;
    height:38px !important;
    max-height:38px !important;
    padding:9px 11px !important;
    font-size:14px !important;
    line-height:20px !important;
  }
  .story-clue-actions .story-mini-btn,
  .story-tools-scroll button{
    min-height:38px !important;
    height:38px !important;
    padding:0 12px !important;
    font-size:14px !important;
  }
  .scene-characters-bar{
    min-height:40px !important;
    margin:3px 0 5px !important;
    padding:2px 0 !important;
  }
  .scene-char-chip{
    min-height:36px !important;
    padding:5px 7px 5px 10px !important;
    font-size:14px !important;
  }
  .scene-chip-name{
    max-width:126px !important;
  }
  .scene-chip-edit-btn,
  .scene-chip-delete-btn{
    width:25px !important;
    min-width:25px !important;
    height:25px !important;
    min-height:25px !important;
    font-size:13px !important;
  }

  /* 正文占满剩余区域；给固定底部输入框预留准确空间。 */
  #viewStoryChat .message-stream{
    flex:1 1 auto !important;
    min-height:0 !important;
    overflow-y:auto !important;
    padding:10px 2px calc(92px + env(safe-area-inset-bottom,0px)) !important;
    gap:12px !important;
    -webkit-overflow-scrolling:touch;
  }
  .narration-bubble,
  .bubble,
  .fragment-stream-box,
  .roleos-narration-paragraph{
    font-size:17px !important;
  }
  .roleos-narration-paragraph{
    line-height:1.85 !important;
    margin:14px 0 !important;
  }
  .roleos-speaker-head{
    margin:18px 0 7px !important;
  }
  .fragment-speaker-avatar{
    width:30px !important;
    height:30px !important;
  }
  .fragment-speaker-name{
    font-size:17px !important;
    font-weight:850 !important;
  }
  .roleos-dialogue-line{
    max-width:100% !important;
    margin:0 0 11px 0 !important;
    padding:10px 12px !important;
    font-size:17px !important;
    line-height:1.72 !important;
    border-radius:10px !important;
  }
  .fragment-translation-chip{
    max-width:100% !important;
    margin:0 0 15px 0 !important;
    padding:7px 10px !important;
    font-size:14.5px !important;
    line-height:1.55 !important;
    border-radius:9px !important;
  }
  .fragment-user-extend{
    width:100% !important;
    max-width:100% !important;
    margin:10px 0 14px !important;
    padding:9px 11px !important;
    font-size:15px !important;
    line-height:1.65 !important;
    border-radius:10px !important;
  }

  /* 输入框固定占住屏幕最底部，底部安全区本身也由输入区域背景覆盖。 */
  #viewStoryChat .input-dock-wrap{
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    margin:0 !important;
    padding:7px 12px max(8px,env(safe-area-inset-bottom,0px)) !important;
    background:var(--bg-app) !important;
    border-top:1px solid var(--border) !important;
    box-shadow:0 -10px 28px rgba(0,0,0,.07) !important;
    z-index:40 !important;
  }
  #viewStoryChat .input-dock{
    width:100% !important;
    min-height:54px !important;
    padding:6px 8px !important;
    border-radius:19px !important;
    background:var(--bg-card) !important;
    opacity:1 !important;
  }
  #viewStoryChat .input-dock textarea{
    min-height:40px !important;
    height:40px !important;
    max-height:112px !important;
    padding:9px 7px !important;
    font-size:16px !important;
    line-height:22px !important;
  }
  #viewStoryChat .btn-send-wechat{
    min-width:72px !important;
    height:40px !important;
    min-height:40px !important;
    padding:0 17px !important;
    border-radius:16px !important;
    font-size:16px !important;
  }
}

/* 人物识别弹窗：给每一行一个真正可见的删除按钮，不再只靠取消勾选。 */
.role-recognition-row{
  grid-template-columns:28px minmax(0,1fr) auto !important;
}
.role-recognition-meta{
  grid-column:2 !important;
}
.role-delete-row-btn{
  grid-column:3 !important;
  grid-row:1 / span 2 !important;
  align-self:center;
  min-width:48px;
  height:34px;
  padding:0 8px;
  border:1px solid rgba(224,75,95,.28);
  border-radius:9px;
  background:rgba(224,75,95,.07);
  color:#dc4f64;
  font-size:.72rem;
  font-weight:700;
  cursor:pointer;
}
@media(max-width:760px){
  .role-recognition-row{
    grid-template-columns:32px minmax(0,1fr) 52px !important;
  }
  .role-fields{
    grid-column:2 !important;
  }
  .role-recognition-meta{
    grid-column:2 !important;
  }
  .role-delete-row-btn{
    grid-column:3 !important;
    grid-row:1 / span 2 !important;
    width:52px !important;
    min-width:52px !important;
    height:38px !important;
    font-size:13px !important;
  }
}

/* ===== 2026-10-04 在场人物操作收纳：默认只显示姓名，修改/删除放入底部操作卡 ===== */
.scene-char-chip{
  position:relative !important;
  gap:5px !important;
  padding-right:5px !important;
}
.scene-chip-more-btn,
.scene-row-more-btn{
  appearance:none;
  -webkit-appearance:none;
  border:0 !important;
  outline:0;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text-muted);
  background:transparent !important;
  box-shadow:none !important;
  letter-spacing:-1.5px;
  line-height:1;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.scene-chip-more-btn{
  width:27px;
  min-width:27px;
  height:27px;
  min-height:27px;
  padding:0 2px 5px 0 !important;
  border-radius:999px !important;
  font-size:13px !important;
  opacity:.58;
}
.scene-chip-more-btn:active,
.scene-row-more-btn:active{
  background:var(--primary-soft) !important;
  color:var(--primary) !important;
  opacity:1;
  transform:scale(.96);
}

/* 调度弹窗不再直接暴露姓名输入框与红色删除键。 */
#sceneCharsModal .scene-state-card{
  grid-template-columns:32px minmax(0,1fr) auto 34px !important;
  gap:8px !important;
  padding:8px 9px !important;
}
#sceneCharsModal .scene-state-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:.82rem;
  font-weight:650;
  color:var(--text-title);
}
#sceneCharsModal .scene-row-more-btn{
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  padding:0 2px 6px 0 !important;
  border-radius:10px !important;
  font-size:14px !important;
  opacity:.65;
}
#sceneCharsModal .scene-delete-character-btn,
#sceneCharsModal .scene-state-name-input{
  display:none !important;
}

/* iOS 风格底部人物操作卡。 */
.scene-character-action-overlay{
  position:fixed;
  inset:0;
  z-index:100050;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:16px 12px max(12px,env(safe-area-inset-bottom,0px));
  background:rgba(38,29,34,.18);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
  opacity:0;
  transition:opacity .18s ease;
}
.scene-character-action-overlay.show{opacity:1;}
.scene-character-action-sheet{
  width:min(100%,430px);
  overflow:hidden;
  padding:7px 10px 10px;
  border:1px solid rgba(170,135,146,.16);
  border-radius:24px;
  background:color-mix(in srgb,var(--bg-card) 97%,transparent);
  box-shadow:0 18px 55px rgba(66,45,54,.20);
  transform:translateY(22px) scale(.985);
  transition:transform .2s cubic-bezier(.2,.8,.2,1);
}
.scene-character-action-overlay.show .scene-character-action-sheet{
  transform:translateY(0) scale(1);
}
.scene-action-handle{
  width:34px;
  height:4px;
  margin:2px auto 9px;
  border-radius:999px;
  background:color-mix(in srgb,var(--text-muted) 30%,transparent);
}
.scene-action-person{
  display:flex;
  align-items:center;
  gap:10px;
  padding:5px 7px 10px;
}
.scene-action-avatar{
  width:38px;
  height:38px;
  flex:0 0 38px;
  object-fit:cover;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--bg-input);
}
.scene-action-copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.scene-action-copy strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-title);
  font-size:.92rem;
}
.scene-action-copy span{
  color:var(--text-muted);
  font-size:.68rem;
}
.scene-action-item{
  width:100%;
  min-height:58px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:0;
  border-top:1px solid var(--border);
  background:transparent;
  color:var(--text-title);
  text-align:left;
  cursor:pointer;
}
.scene-action-item>span:nth-child(2){
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.scene-action-item b{font-size:.84rem;font-weight:700;}
.scene-action-item small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text-muted);
  font-size:.66rem;
  font-weight:400;
}
.scene-action-icon{
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:var(--primary-soft);
  color:var(--primary);
  font-size:1rem;
  font-weight:750;
}
.scene-action-delete .scene-action-icon{
  background:rgba(224,75,95,.09);
  color:#d94f63;
}
.scene-action-delete b{color:#d94f63;}
.scene-action-chevron{
  color:var(--text-muted);
  font-size:1.2rem;
  text-align:center;
}
.scene-action-item:active{background:var(--bg-hover);}
.scene-action-cancel{
  width:100%;
  min-height:46px;
  margin-top:7px;
  border:0;
  border-radius:15px;
  background:var(--bg-input);
  color:var(--text-body);
  font-size:.82rem;
  font-weight:650;
  cursor:pointer;
}

@media(max-width:430px) and (orientation:portrait){
  .scene-char-chip{
    min-height:34px !important;
    padding:4px 4px 4px 10px !important;
  }
  .scene-chip-more-btn{
    width:25px !important;
    min-width:25px !important;
    height:25px !important;
    min-height:25px !important;
    font-size:12px !important;
  }
  #sceneCharsModal .scene-state-card{
    grid-template-columns:30px minmax(0,1fr) 92px 32px !important;
    gap:7px !important;
  }
  #sceneCharsModal .scene-row-more-btn{
    width:32px !important;
    min-width:32px !important;
    height:32px !important;
    min-height:32px !important;
  }
  .scene-character-action-overlay{
    padding-left:10px;
    padding-right:10px;
  }
  .scene-character-action-sheet{
    border-radius:22px;
  }
}


/* ===== iPhone 模型实体弹层 + 顶栏手机文字完整显示 v5 ===== */
@media (max-width:760px){
  body.roleos-model-editor-open{
    overflow:hidden !important;
    touch-action:none;
  }

  #roleosMobileModelOverlay.roleos-mobile-model-overlay{
    position:fixed !important;
    inset:0 !important;
    z-index:60000 !important;
    display:flex !important;
    align-items:flex-start !important;
    justify-content:center !important;
    padding:calc(env(safe-area-inset-top,0px) + 68px) 14px max(18px,env(safe-area-inset-bottom,0px)) !important;
    box-sizing:border-box !important;
    isolation:isolate !important;
  }
  #roleosMobileModelOverlay.roleos-mobile-model-overlay.hide{
    display:none !important;
  }
  .roleos-mobile-model-backdrop{
    position:absolute !important;
    inset:0 !important;
    background:rgba(38,29,33,.42) !important;
    opacity:1 !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .roleos-mobile-model-sheet{
    position:relative !important;
    z-index:1 !important;
    width:min(100%,430px) !important;
    max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 92px) !important;
    overflow:auto !important;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box !important;
    padding:0 !important;
    border:1px solid #eadfe3 !important;
    border-radius:22px !important;
    background:#ffffff !important;
    background-image:none !important;
    opacity:1 !important;
    filter:none !important;
    mix-blend-mode:normal !important;
    box-shadow:0 24px 70px rgba(34,24,29,.28),0 4px 18px rgba(34,24,29,.12) !important;
  }
  .roleos-mobile-model-sheet-head{
    min-height:64px !important;
    padding:13px 14px 11px 16px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    border-bottom:1px solid #eee5e8 !important;
    background:#ffffff !important;
    color:#342a2f !important;
    box-sizing:border-box !important;
  }
  .roleos-mobile-model-sheet-head>div{
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:3px !important;
  }
  .roleos-mobile-model-sheet-head strong{
    font-size:17px !important;
    line-height:1.2 !important;
    color:#342a2f !important;
  }
  .roleos-mobile-model-sheet-head span{
    font-size:12px !important;
    line-height:1.35 !important;
    color:#9a8990 !important;
  }
  .roleos-mobile-model-close{
    flex:0 0 38px !important;
    width:38px !important;
    height:38px !important;
    border:1px solid #eadfe3 !important;
    border-radius:12px !important;
    background:#faf6f7 !important;
    color:#5c4f55 !important;
    font-size:16px !important;
    line-height:1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 !important;
  }
  .roleos-mobile-model-sheet-content{
    padding:14px !important;
    background:#ffffff !important;
  }

  #roleosMobileModelOverlay #topbarModelWrap,
  #roleosMobileModelOverlay #topbarModelWrap.mobile-open{
    display:grid !important;
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:#ffffff !important;
    background-image:none !important;
    box-shadow:none !important;
    opacity:1 !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    transform:none !important;
    mix-blend-mode:normal !important;
    pointer-events:auto !important;
  }
  #roleosMobileModelOverlay #topbarModelWrap.mobile-open::before{
    display:none !important;
    content:none !important;
  }
  #roleosMobileModelOverlay #topbarModelWrap>span{
    display:none !important;
  }
  #roleosMobileModelOverlay #topbarStoryApiSelect,
  #roleosMobileModelOverlay #topbarStoryModelSelect{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:50px !important;
    min-height:50px !important;
    padding:0 42px 0 13px !important;
    border:1px solid #e7dce0 !important;
    border-radius:14px !important;
    background-color:#fbf8f9 !important;
    background-image:none !important;
    color:#352b30 !important;
    opacity:1 !important;
    -webkit-text-fill-color:#352b30 !important;
    font-size:16px !important;
    font-weight:600 !important;
    line-height:50px !important;
    box-shadow:none !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-appearance:menulist !important;
    appearance:auto !important;
  }
  #roleosMobileModelOverlay #topbarStoryApiSelect option,
  #roleosMobileModelOverlay #topbarStoryModelSelect option{
    background:#ffffff !important;
    color:#111111 !important;
  }
  #roleosMobileModelOverlay #topbarSamplingBtn{
    width:100% !important;
    min-height:46px !important;
    height:46px !important;
    padding:0 13px !important;
    border:1px solid #e7dce0 !important;
    border-radius:14px !important;
    background:#f7f1f3 !important;
    color:#5f5056 !important;
    opacity:1 !important;
    font-size:14px !important;
    font-weight:700 !important;
  }
  #roleosMobileModelOverlay #topbarSamplingPopover{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:13px !important;
    border:1px solid #eadfe3 !important;
    border-radius:14px !important;
    background:#ffffff !important;
    background-image:none !important;
    color:#352b30 !important;
    opacity:1 !important;
    box-shadow:none !important;
    filter:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  /* 覆盖旧规则的 font-size:0 / 42px 方块：手机入口完整显示“人物手机”。 */
  .app-topbar .hero-phone-btn,
  #openHeroPhoneBtn.hero-phone-btn{
    width:auto !important;
    min-width:88px !important;
    max-width:none !important;
    height:42px !important;
    min-height:42px !important;
    padding:0 10px !important;
    gap:5px !important;
    border-radius:14px !important;
    font-size:14px !important;
    line-height:1 !important;
    font-weight:750 !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
  }
  .app-topbar .hero-phone-btn span,
  #openHeroPhoneBtn.hero-phone-btn span,
  #openHeroPhoneBtn .phone-line-icon{
    flex:0 0 auto !important;
    font-size:16px !important;
    line-height:1 !important;
    margin:0 !important;
  }
  .app-topbar .topbar-right{
    gap:6px !important;
    overflow:visible !important;
  }
  .app-topbar .topbar-title{
    min-width:0 !important;
    max-width:none !important;
  }
}

:root[data-theme="dark-rose"] .roleos-mobile-model-sheet,
:root[data-theme="dark-rose"] .roleos-mobile-model-sheet-head,
:root[data-theme="dark-rose"] .roleos-mobile-model-sheet-content,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarModelWrap,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarSamplingPopover{
  background:#221c29 !important;
  color:#f7eef3 !important;
  border-color:rgba(255,255,255,.10) !important;
}
:root[data-theme="dark-rose"] .roleos-mobile-model-sheet-head strong,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarStoryApiSelect,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarStoryModelSelect{
  color:#f7eef3 !important;
  -webkit-text-fill-color:#f7eef3 !important;
}
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarStoryApiSelect,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarStoryModelSelect,
:root[data-theme="dark-rose"] #roleosMobileModelOverlay #topbarSamplingBtn,
:root[data-theme="dark-rose"] .roleos-mobile-model-close{
  background:#2c2435 !important;
  border-color:rgba(255,255,255,.10) !important;
}

/* ===== 2026-10-04 mobile9 · 字体 / 独立背景 / 自定义主题 / iOS 键盘与底部间距 ===== */
:root{
  --roleos-reader-font-size:17px;
  --narration-bg-opacity:.28;
  --narration-bg-blur:0px;
  --phone-chat-bg-opacity:.34;
}

/* 系统设置必须自己滚动：外层 content-area 在聊天页为了固定输入框会 overflow:hidden。 */
#viewGlobalSettings{
  flex:1 1 auto !important;
  min-height:0 !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior:contain !important;
  padding-bottom:calc(28px + env(safe-area-inset-bottom,0px)) !important;
}

/* 设置页新的外观控件。 */
.roleos-theme-color-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.roleos-theme-color-grid label{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:8px 9px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg-input);
  color:var(--text-body);
  font-size:.72rem;
}
.roleos-theme-color-grid input[type="color"]{
  width:34px;
  min-width:34px;
  height:30px;
  padding:2px;
  border:1px solid var(--border);
  border-radius:9px;
  background:var(--bg-card);
}
.roleos-bg-preview{
  position:relative;
  width:100%;
  height:92px;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed var(--border);
  border-radius:14px;
  background-color:var(--bg-input);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  color:var(--text-muted);
  font-size:.72rem;
}
.roleos-bg-preview.has-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(255,255,255,.52);
}
:root[data-theme="dark-rose"] .roleos-bg-preview.has-image::after{background:rgba(18,16,21,.48)}
.roleos-bg-preview span{position:relative;z-index:1;padding:5px 9px;border-radius:999px;background:color-mix(in srgb,var(--bg-card) 82%,transparent);color:var(--text-title)}
.roleos-phone-bg-preview{height:104px}

/* 真正的旁白背景层：只覆盖 messageStream 所占区域，不再铺整套 App。 */
#viewStoryChat{isolation:isolate}
#roleosNarrationBackgroundLayer{
  position:absolute;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  border-radius:14px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  opacity:0;
  transform:scale(1.015);
  transform-origin:center;
  transition:opacity .18s ease,filter .18s ease;
}
#roleosNarrationBackgroundLayer.active{display:block}
#viewStoryChat .message-stream{position:relative;z-index:1}
html.narration-bg-active #viewStoryChat .message-stream{
  background:color-mix(in srgb,var(--bg-app) 22%,transparent) !important;
  border-radius:14px;
}
html.narration-bg-active #viewStoryChat .narration-bubble,
html.narration-bg-active #viewStoryChat .fragment-stream-box,
html.narration-bg-active #viewStoryChat .story-meta-details{
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

/* 人物手机聊天背景只进入聊天正文。 */
html.phone-chat-bg-active #phoneSimulatorModal .phone-chat-view-full,
html.phone-chat-bg-active #phoneSimulatorModal .phone-chat-view{
  background-color:#ededf0 !important;
  background-image:
    linear-gradient(rgba(237,237,240,var(--phone-chat-bg-wash,.66)),rgba(237,237,240,var(--phone-chat-bg-wash,.66))),
    var(--phone-chat-bg-image) !important;
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
  background-attachment:local !important;
}
:root[data-theme="dark-rose"].phone-chat-bg-active #phoneSimulatorModal .phone-chat-view-full,
:root[data-theme="dark-rose"].phone-chat-bg-active #phoneSimulatorModal .phone-chat-view{
  background-image:
    linear-gradient(rgba(27,22,34,var(--phone-chat-bg-wash,.66)),rgba(27,22,34,var(--phone-chat-bg-wash,.66))),
    var(--phone-chat-bg-image) !important;
}

/* 阅读字体：只动真正需要读的正文，不把按钮和布局一起放大。 */
#viewStoryChat .narration-bubble,
#viewStoryChat .bubble,
#viewStoryChat .fragment-stream-box,
#viewStoryChat .roleos-narration-paragraph,
#viewStoryChat .roleos-dialogue-line{
  font-size:var(--roleos-reader-font-size) !important;
}
#viewStoryChat .fragment-speaker-name{font-size:var(--roleos-reader-font-size) !important}
#viewStoryChat .fragment-translation-chip,
#viewStoryChat .fragment-user-extend{font-size:max(13px,calc(var(--roleos-reader-font-size) - 2px)) !important}
#phoneSimulatorModal .phone-chat-bubble,
#phoneSimulatorModal .phone-chat-view-full{
  font-size:max(13px,calc(var(--roleos-reader-font-size) - 2px)) !important;
}

@media(max-width:760px){
  /* 顶栏下面少留一点空气，人物手机按钮与主线内容更紧凑。 */
  .app-topbar{
    padding-bottom:2px !important;
  }
  .content-area{
    padding-top:4px !important;
  }

  /* 主线发送栏下移：仍保留 Home Indicator 安全余量，但不再空一大截。 */
  #viewStoryChat .input-dock-wrap{
    bottom:0 !important;
    padding:5px 10px max(2px,calc(env(safe-area-inset-bottom,0px) - 24px)) !important;
  }
  #viewStoryChat .message-stream{
    padding-bottom:calc(76px + max(4px,env(safe-area-inset-bottom,0px))) !important;
  }

  /* 键盘打开时不改 body / app 高度，只让输入区域保持稳定。 */
  html.roleos-keyboard-open body,
  html.roleos-keyboard-open #app,
  html.roleos-keyboard-open .main-viewport{
    transform:none !important;
    top:auto !important;
    height:var(--roleos-visual-h,100dvh) !important;
    min-height:var(--roleos-visual-h,100dvh) !important;
    max-height:var(--roleos-visual-h,100dvh) !important;
  }
  html.roleos-keyboard-open body{
    position:fixed !important;
    inset:0 !important;
    width:100% !important;
  }
  html.roleos-keyboard-open #viewStoryChat .input-dock-wrap{
    transition:none !important;
  }

  /* 人物手机底部也收紧，不再把导航 + home indicator 叠成一大块空白。 */
  #phoneSimulatorModal .phone-bottom-nav{
    flex-basis:58px !important;
    height:58px !important;
    min-height:58px !important;
    padding-bottom:max(2px,calc(env(safe-area-inset-bottom,0px) - 22px)) !important;
  }
  #phoneSimulatorModal .phone-home-indicator{
    width:118px !important;
    height:3px !important;
    margin:2px auto max(2px,calc(env(safe-area-inset-bottom,0px) - 26px)) !important;
  }
  #phoneSimulatorContent{padding-bottom:2px !important}
  #phoneSimulatorModal .phone-wechat-composer{
    padding-bottom:max(5px,calc(env(safe-area-inset-bottom,0px) - 22px)) !important;
  }

  #viewGlobalSettings{
    border-radius:14px !important;
    padding:13px !important;
  }
  .roleos-theme-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .appearance-custom-card{gap:9px !important}
  .appearance-custom-actions{grid-template-columns:1fr auto !important}
  .appearance-custom-actions .btn-main{grid-column:1 / -1 !important}
  .appearance-custom-actions input{grid-column:1 !important;min-height:42px !important;font-size:14px !important}
  .appearance-custom-actions .btn-ghost{grid-column:2 !important;min-height:42px !important}
  .roleos-bg-preview{height:82px}
}

@media(max-width:390px){
  .roleos-theme-color-grid{grid-template-columns:1fr 1fr}
  #viewStoryChat .input-dock-wrap{
    padding-left:8px !important;
    padding-right:8px !important;
  }
}


/* ===== 2026-10-04 mobile10 · 档案/设定滚动 + 微信式单聊天背景 ===== */
/* 聊天主界面为了固定输入栏会锁住 content-area；这两个长页面必须拥有自己的滚动容器。 */
#viewStoryConfig,
#viewCharacterCenter{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  max-height:100% !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-y:contain !important;
  touch-action:pan-y !important;
  padding-bottom:calc(34px + env(safe-area-inset-bottom,0px)) !important;
}
#viewStoryConfig > *,
#viewCharacterCenter > *{
  flex-shrink:0;
}

@media(max-width:760px){
  #viewStoryConfig,
  #viewCharacterCenter{
    width:100% !important;
    border-radius:14px !important;
    padding:13px 12px calc(42px + env(safe-area-inset-bottom,0px)) !important;
    scroll-padding-bottom:80px !important;
  }
  #viewStoryConfig .npc-life-mode-card,
  #viewCharacterCenter .character-center-list{
    min-width:0 !important;
  }
}

/* 微信聊天页右上角：真正可点击的“•••”，用于本聊天单独设置背景。 */
#phoneSimulatorModal .phone-conversation-head .roleos-chat-more{
  margin-left:auto !important;
  flex:0 0 40px !important;
  width:40px !important;
  height:38px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:10px !important;
  background:transparent !important;
  color:var(--text-title,#222) !important;
  font-size:1.12rem !important;
  font-weight:700 !important;
  letter-spacing:1px !important;
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  cursor:pointer !important;
  z-index:5 !important;
  -webkit-tap-highlight-color:transparent !important;
}
#phoneSimulatorModal .phone-conversation-head.stage12-chat-head .roleos-chat-more{
  margin-left:auto !important;
  max-width:none !important;
  overflow:visible !important;
}

/* 单聊天背景设置：像微信聊天设置一样，从手机内部底部弹起，而不是跑到软件总设置里。 */
#phoneSimulatorModal .roleos-chat-bg-overlay{
  position:absolute !important;
  inset:0 !important;
  z-index:500 !important;
  display:flex !important;
  align-items:flex-end !important;
  justify-content:center !important;
  background:rgba(0,0,0,.34) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
#phoneSimulatorModal .roleos-chat-bg-sheet{
  width:100% !important;
  max-height:min(74%,620px) !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  background:var(--bg-card,#fff) !important;
  color:var(--text-title,#222) !important;
  border-radius:22px 22px 0 0 !important;
  border:1px solid var(--border,rgba(0,0,0,.08)) !important;
  border-bottom:0 !important;
  box-shadow:0 -16px 45px rgba(0,0,0,.18) !important;
  padding:9px 14px calc(16px + env(safe-area-inset-bottom,0px)) !important;
}
.roleos-chat-bg-handle{
  width:42px;
  height:5px;
  margin:0 auto 10px;
  border-radius:999px;
  background:color-mix(in srgb,var(--text-muted,#999) 35%,transparent);
}
.roleos-chat-bg-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.roleos-chat-bg-head>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.roleos-chat-bg-head strong{font-size:.94rem;color:var(--text-title)}
.roleos-chat-bg-head span{font-size:.66rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roleos-chat-bg-close{
  width:34px;height:34px;flex:0 0 34px;border:0;border-radius:50%;
  background:var(--bg-input);color:var(--text-title);font-size:1rem;cursor:pointer;
}
.roleos-chat-bg-preview{
  position:relative;
  width:100%;
  height:146px;
  overflow:hidden;
  border-radius:16px;
  border:1px solid var(--border);
  background:#ededf0 center/cover no-repeat;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:11px;
}
.roleos-chat-bg-preview::after{
  content:"聊天背景预览";
  position:relative;
  z-index:2;
  padding:5px 9px;
  border-radius:999px;
  font-size:.65rem;
  background:rgba(255,255,255,.82);
  color:#555;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.roleos-chat-bg-preview.has-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(237,237,240,var(--roleos-chat-preview-wash,.66));
}
.roleos-chat-bg-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.roleos-chat-bg-actions button,
.roleos-chat-bg-url-row button{
  min-height:42px;border-radius:12px;border:1px solid var(--border);font-size:.76rem;font-weight:600;cursor:pointer;
}
.roleos-chat-bg-pick{background:var(--primary);color:#fff;border-color:transparent!important}
.roleos-chat-bg-none{background:var(--bg-input);color:var(--text-title)}
.roleos-chat-bg-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-bottom:11px}
.roleos-chat-bg-url-row input{
  min-width:0;height:42px;border:1px solid var(--border);border-radius:12px;background:var(--bg-input);color:var(--text-title);padding:0 10px;font-size:.72rem;outline:none;
}
.roleos-chat-bg-url-row button{padding:0 12px;background:var(--bg-card);color:var(--primary)}
.roleos-chat-bg-opacity{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:7px 2px 11px;font-size:.7rem;color:var(--text-muted)}
.roleos-chat-bg-opacity input{width:100%;accent-color:var(--primary)}
.roleos-chat-bg-opacity b{color:var(--primary);min-width:38px;text-align:right}
.roleos-chat-bg-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.roleos-chat-bg-footer button{min-height:42px;border-radius:12px;border:1px solid var(--border);font-size:.74rem;cursor:pointer}
.roleos-chat-bg-default{background:var(--bg-input);color:var(--text-title)}
.roleos-chat-bg-done{background:var(--primary);color:#fff;border-color:transparent!important;font-weight:700}

@media(max-width:430px){
  #phoneSimulatorModal .roleos-chat-bg-sheet{padding-left:12px!important;padding-right:12px!important}
  .roleos-chat-bg-preview{height:132px}
}


/* ===== mobile12 · 微信设置可打开 + 默认聊天背景编辑 ===== */
#phoneSimulatorModal .roleos-wechat-settings-page{
  min-height:0 !important;
  height:100% !important;
  display:flex !important;
  flex-direction:column !important;
  background:#f5f5f7 !important;
}
#phoneSimulatorModal .roleos-wechat-settings-head{
  flex:0 0 52px !important;
  display:grid !important;
  grid-template-columns:44px 1fr 44px !important;
  align-items:center !important;
  padding:0 8px !important;
}
#phoneSimulatorModal .roleos-wechat-settings-head>button{
  width:38px !important;
  height:38px !important;
  border:0 !important;
  background:transparent !important;
  color:var(--text-title,#222) !important;
  font-size:1.7rem !important;
  cursor:pointer !important;
}
#phoneSimulatorModal .roleos-wechat-settings-head>strong{
  text-align:center !important;
  font-size:.92rem !important;
}
#phoneSimulatorModal .roleos-wechat-settings-body,
#phoneSimulatorModal .roleos-wechat-bg-editor{
  flex:1 1 auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
  padding:14px 12px calc(18px + env(safe-area-inset-bottom,0px)) !important;
}
#phoneSimulatorModal .roleos-wechat-settings-group{
  overflow:hidden !important;
  margin-bottom:14px !important;
  border:1px solid var(--border,rgba(0,0,0,.08)) !important;
  border-radius:14px !important;
  background:var(--bg-card,#fff) !important;
}
#phoneSimulatorModal .roleos-wechat-settings-group .phone-settings-row{
  border-bottom:1px solid var(--border,rgba(0,0,0,.08)) !important;
}
#phoneSimulatorModal .roleos-wechat-settings-note{
  padding:11px 14px 13px !important;
  color:var(--text-muted,#888) !important;
  font-size:.68rem !important;
  line-height:1.55 !important;
}
#phoneSimulatorModal .roleos-wechat-settings-static{
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:0 14px !important;
  border-bottom:1px solid var(--border,rgba(0,0,0,.08)) !important;
  font-size:.76rem !important;
}
#phoneSimulatorModal .roleos-wechat-settings-static:last-child{border-bottom:0 !important}
#phoneSimulatorModal .roleos-wechat-settings-static b{color:var(--text-muted,#888) !important;font-size:.68rem !important;font-weight:500 !important}
#phoneSimulatorModal .roleos-wechat-bg-preview{
  position:relative !important;
  height:220px !important;
  margin-bottom:12px !important;
  overflow:hidden !important;
  border:1px solid var(--border,rgba(0,0,0,.08)) !important;
  border-radius:18px !important;
  background:#ededf0 center/cover no-repeat !important;
}
#phoneSimulatorModal .roleos-wechat-bg-preview.has-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(237,237,240,var(--roleos-chat-preview-wash,.66));
}
#phoneSimulatorModal .roleos-wechat-bg-primary,
#phoneSimulatorModal .roleos-wechat-bg-reset{
  width:100% !important;
  min-height:44px !important;
  border-radius:13px !important;
  font-size:.78rem !important;
  cursor:pointer !important;
}
#phoneSimulatorModal .roleos-wechat-bg-primary{border:0 !important;background:var(--primary) !important;color:#fff !important;font-weight:700 !important}
#phoneSimulatorModal .roleos-wechat-bg-reset{border:1px solid var(--border) !important;background:var(--bg-card) !important;color:#e0566f !important;margin-top:8px !important}
#phoneSimulatorModal .roleos-wechat-bg-url{display:grid !important;grid-template-columns:minmax(0,1fr) auto !important;gap:7px !important;margin:10px 0 !important}
#phoneSimulatorModal .roleos-wechat-bg-url input{min-width:0 !important;height:42px !important;border:1px solid var(--border) !important;border-radius:12px !important;background:var(--bg-card) !important;color:var(--text-title) !important;padding:0 10px !important;font-size:.72rem !important}
#phoneSimulatorModal .roleos-wechat-bg-url button{height:42px !important;border:1px solid var(--border) !important;border-radius:12px !important;background:var(--bg-card) !important;color:var(--primary) !important;padding:0 12px !important}
#phoneSimulatorModal .roleos-wechat-bg-opacity{display:grid !important;grid-template-columns:auto 1fr auto !important;align-items:center !important;gap:9px !important;padding:8px 2px 10px !important;color:var(--text-muted) !important;font-size:.7rem !important}
#phoneSimulatorModal .roleos-wechat-bg-opacity input{width:100% !important;accent-color:var(--primary) !important}
#phoneSimulatorModal .roleos-wechat-bg-opacity b{min-width:38px !important;text-align:right !important;color:var(--primary) !important}
#phoneSimulatorModal .roleos-wechat-bg-editor>p{margin:12px 2px 0 !important;color:var(--text-muted) !important;font-size:.67rem !important;line-height:1.55 !important}


/* ===== mobile16 · iPhone 紧凑字号 + 人物手机 App 全高模式 ===== */
@media (max-width:760px){
  /* 整套手机界面缩小一档。多数尺寸使用 rem，因此统一从根字号收紧。 */
  html{
    font-size:15px !important;
    -webkit-text-size-adjust:100% !important;
  }
  body{
    font-size:13.5px !important;
  }

  /* 主线阅读默认再收一档；用户在设置里的字体滑杆仍可覆盖此变量。 */
  :root{
    --roleos-reader-font-size:16px;
  }

  /* 保持表单输入至少 16px，防止 iPhone Safari 聚焦时自动放大整个页面。 */
  input[type="text"],
  input[type="search"],
  input[type="url"],
  input[type="email"],
  input[type="password"],
  textarea,
  select{
    font-size:16px !important;
  }

  /* 顶栏与常用按钮整体更轻、更紧凑。 */
  .app-topbar{
    min-height:48px !important;
    height:48px !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .topbar-title{font-size:.88rem !important}
  .mobile-model-toggle,
  .hero-phone-btn{font-size:.76rem !important}
  .story-tools-scroll .btn-ghost,
  .branch-control-bar,
  .scene-character-chip{font-size:.72rem !important}

  /* 人物手机：进入具体 App 后不再叠三四层顶部信息。 */
  #phoneSimulatorModal.phone-app-open .phone-statusbar,
  #phoneSimulatorModal.phone-app-open .phone-modebar,
  #phoneSimulatorModal.phone-app-open #phoneHomeHeader{
    display:none !important;
  }

  #phoneSimulatorModal.phone-app-open .phone-topbar{
    order:-10 !important;
    flex:0 0 46px !important;
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
    padding:4px 8px !important;
    margin:0 !important;
    border-bottom:1px solid #ece7e8 !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-title-wrap strong{
    font-size:.9rem !important;
    line-height:1.15 !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-subtitle{
    display:none !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-character-select{
    max-width:126px !important;
    height:34px !important;
    min-height:34px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-round-btn{
    width:34px !important;
    height:34px !important;
    min-width:34px !important;
    min-height:34px !important;
  }

  /* App 内容真正占满剩余高度；去掉微信自己再重复一次的“微信”标题。 */
  #phoneSimulatorModal.phone-app-open #phoneSimulatorContent{
    flex:1 1 auto !important;
    min-height:0 !important;
    height:auto !important;
    padding:0 !important;
    overflow-y:auto !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-native-app{
    min-height:100% !important;
    height:100% !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-native-head{
    display:none !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-native-body{
    flex:1 1 auto !important;
    min-height:0 !important;
    padding-top:4px !important;
  }

  /* 具体聊天仍保留自己的会话标题栏，但压短。 */
  #phoneSimulatorModal.phone-app-open .phone-conversation-head{
    min-height:44px !important;
    height:44px !important;
    padding:4px 9px !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-conversation-head strong{
    font-size:.88rem !important;
  }
  #phoneSimulatorModal.phone-app-open .phone-chat-view,
  #phoneSimulatorModal.phone-app-open .phone-chat-view-full{
    padding-top:8px !important;
  }

  /* 底部导航继续保留，但再收一点高度，把空间留给 App 正文。 */
  #phoneSimulatorModal .phone-bottom-nav{
    flex-basis:52px !important;
    height:52px !important;
    min-height:52px !important;
  }
  #phoneSimulatorModal .phone-home-indicator{
    margin-top:1px !important;
  }

  /* 微信列表、通讯录、朋友圈等文字稍微缩小，聊天正文仍受阅读字号控制。 */
  #phoneSimulatorModal .phone-row-title,
  #phoneSimulatorModal .phone-contact-row b,
  #phoneSimulatorModal .phone-settings-row,
  #phoneSimulatorModal .phone-wechat-profile-card strong{
    font-size:.82rem !important;
  }
  #phoneSimulatorModal .phone-row-sub,
  #phoneSimulatorModal .phone-contact-row small,
  #phoneSimulatorModal .phone-time,
  #phoneSimulatorModal .phone-wechat-profile-card span,
  #phoneSimulatorModal .phone-wechat-profile-card small{
    font-size:.68rem !important;
  }
}
