/* 长叙岛 · 网页改版「素」 — atelier.css
   规则：选择器一律以 #phone 开头（压过 ai-chat-theme.css / product-design.css 的旧样式）。
   规则体里不写裸颜色，全部走 var(--a-*)；唯一例外是桌面端 body 背景。
   不用 CSS 嵌套；!important 只用在必须压过 JS 写入的行内样式的地方，逐处注释原因。 */

/* ===================== 令牌 ===================== */
:root {
  --a-bg: #EDE9E2;      /* 纸色，页面底 */
  --a-ink: #181613;     /* 墨黑：正文、主按钮底 */
  --a-t2: #6C665C;      /* 次要文字 */
  --a-hair: rgba(24, 22, 19, .20);   /* 细线 */
  --a-hair2: rgba(24, 22, 19, .28);  /* 较深的细线 */
  --a-rust: #8A4B34;    /* 唯一强调色 */
  --a-sheet: #FAF8F4;   /* 亮纸片 */
  --a-band: #E3DDD2;    /* 深色带 */
  --a-scrim: rgba(24,22,19,.45); /* 弹窗遮罩 */
  --a-serif: "Noto Serif SC", "Songti SC", "STSong", serif;
  --a-sans: -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
  --a-latin: "Cormorant Garamond", Georgia, serif;
  color-scheme: light;
}

/* 手机页面：纸色 */
body { background: var(--a-bg); }
/* 桌面：框外底色（唯一允许裸写颜色的规则），#phone 仍是 430 宽、居中，尺寸沿用原规则 */
@media (min-width: 651px) {
  body { background: #D9D4CB; }
  #phone { border: 1px solid var(--a-hair2); }
}

#phone {
  background: var(--a-bg);
  color: var(--a-ink);
  font-family: var(--a-sans);
  border-radius: 0;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
  /* demo.html 里有一处行内样式引用了这个未定义的变量（草稿状态行），在这里补上 */
  --text-secondary: var(--a-t2);
}
#phone button { font-family: inherit; }
#phone :focus-visible { outline: 2px solid var(--a-ink); outline-offset: 2px; }

/* ===================== 通用部件 ===================== */

/* 站点头：长叙岛 + 积分 + 用户圆按钮；下面一行文字导航 */
#phone .site-head { flex: 0 0 auto; padding: 20px 22px 0; }
#phone .site-bar { display: flex; align-items: center; justify-content: space-between; }
#phone .site-logo { font: 500 16px/1 var(--a-serif); letter-spacing: .5em; color: var(--a-ink); }
#phone .site-acct { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .14em; color: var(--a-t2); }
#phone .site-acct b { font: 500 16px/1 var(--a-latin); color: var(--a-ink); font-feature-settings: "lnum" 1; letter-spacing: .04em; }
#phone .site-user {
  position: relative;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--a-hair2);
  border-radius: 50%;
  background: transparent;
  color: var(--a-ink);
  font-size: 15px;
  cursor: pointer;
}
/* 视觉 36px，可点区域扩到 44px */
#phone .site-user::after { content: ""; position: absolute; inset: -4px; }
#phone .site-user.is-active { background: var(--a-ink); color: var(--a-bg); border-color: var(--a-ink); }
#phone .site-nav { display: flex; gap: 18px; margin-top: 8px; border-bottom: 1px solid var(--a-hair); }
#phone .site-nav-item {
  position: relative;
  display: flex;
  align-items: center;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--a-t2);
  font: 400 13px/1 var(--a-sans);
  letter-spacing: .32em;
  text-decoration: none;
  cursor: pointer;
}
#phone .site-nav-item.is-active { color: var(--a-ink); }
#phone .site-nav-item.is-active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: var(--a-ink); }

/* 二级页头：返回箭头 + 上一级名称，中间可选标题 */
#phone .sub-head {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  flex: 0 0 auto;
  height: 60px;
  padding: 0 10px;
  border-bottom: 1px solid var(--a-hair);
}
#phone .sub-back {
  display: flex;
  align-items: center;
  gap: 8px;
  justify-self: start;
  height: 44px;
  min-width: 44px;
  padding: 0 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--a-t2);
  font: 400 12px/1 var(--a-sans);
  letter-spacing: .28em;
  cursor: pointer;
}
#phone .sub-back .ph { font-size: 18px; color: var(--a-ink); }
#phone .sub-title { font: 400 16px/1 var(--a-serif); letter-spacing: .36em; color: var(--a-ink); }

/* 按钮：主（墨黑底、直角、52px）/ 次（细线框、直角） */
#phone .a-btn,
#phone .a-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 52px;
  padding: 0 20px;
  border: 0;
  border-radius: 0;
  background: var(--a-ink);
  color: var(--a-bg);
  box-shadow: none;
  font: 400 13px/1 var(--a-sans);
  letter-spacing: .42em;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
#phone .a-btn .ph,
#phone .a-cta .ph { font-size: 16px; letter-spacing: 0; }
#phone .a-btn:disabled,
#phone .a-cta:disabled { opacity: .45; cursor: not-allowed; }
#phone .a-ghost,
#phone .a-newbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--a-ink);
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  box-shadow: none;
  font: 400 12px/1 var(--a-sans);
  letter-spacing: .34em;
  text-decoration: none;
  cursor: pointer;
}
#phone .a-ghost:disabled,
#phone .a-newbtn:disabled { opacity: .45; cursor: not-allowed; }

/* 分区：亮纸片 / 深色带 / 区块小标题 */
#phone .a-sheet { margin: 0 22px; background: var(--a-sheet); border: 1px solid var(--a-hair); border-radius: 0; box-shadow: none; }
#phone .a-band { background: var(--a-band); border-bottom: 1px solid var(--a-hair); }
#phone .a-sect { display: flex; align-items: baseline; justify-content: space-between; margin: 30px 22px 10px; font-size: 11px; letter-spacing: .3em; color: var(--a-t2); }

/* 列表：整个列表在一张亮纸片里，条目之间 1px 细线 */
#phone .a-list .a-li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  width: 100%;
  min-height: 44px;
  padding: 14px 18px;
  border: 0;
  border-bottom: 1px solid var(--a-hair);
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  text-align: left;
  cursor: pointer;
}
#phone .a-list .a-li:last-child { border-bottom: 0; }
#phone .a-li-main { flex: 1; min-width: 0; }
#phone .a-li b { display: block; font: 500 17px/1.4 var(--a-serif); letter-spacing: .14em; color: var(--a-ink); overflow-wrap: anywhere; }
#phone .a-li small { display: block; margin-top: 5px; overflow: hidden; font-size: 12px; font-weight: 400; color: var(--a-t2); white-space: nowrap; text-overflow: ellipsis; }
#phone .a-li time { flex: 0 0 auto; margin-top: 3px; font: 400 13px/1.2 var(--a-latin); letter-spacing: .06em; color: var(--a-t2); font-feature-settings: "lnum" 1; white-space: nowrap; }

/* ===================== 首页 #view-personas ===================== */
/* 整页自然往下滚：滚动的是视图本身（站点头随内容一起走），不是内层列表 */
#phone #view-personas { background: var(--a-bg); overflow-x: hidden; overflow-y: auto; }
#phone #view-personas #session-list { flex: 0 0 auto; overflow: visible; padding: 0 0 max(40px, env(safe-area-inset-bottom)); background: transparent; }
#phone .a-greet { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 26px 22px 0; }
#phone .a-greet h1 { margin: 0; font: 400 24px/1.2 var(--a-serif); letter-spacing: .1em; color: var(--a-ink); }
#phone .a-date { flex: 0 0 auto; font: italic 400 15px/1 var(--a-latin); color: var(--a-t2); font-feature-settings: "lnum" 1; }
#phone .a-feature { padding: 26px 22px 22px; border-color: var(--a-ink); position: relative; top: 0; z-index: 2; box-sizing: border-box; overflow: hidden; transition: height 200ms ease, padding 200ms ease; }
#phone .a-feature h2 { margin: 0; font: 500 40px/1.15 var(--a-serif); letter-spacing: .16em; color: var(--a-ink); overflow-wrap: anywhere; }
#phone .a-meta { margin-top: 10px; font-size: 11px; letter-spacing: .24em; color: var(--a-t2); }
#phone .a-quote { margin: 20px 0; padding-top: 18px; border-top: 1px solid var(--a-hair); font: 400 15px/1.75 var(--a-sans); letter-spacing: .05em; color: var(--a-t2); }
#phone .a-quote p { display: -webkit-box; margin: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow-wrap: anywhere; }
#phone .a-quote small { display: block; margin-top: 8px; font: italic 400 13px/1.4 var(--a-latin); letter-spacing: .04em; color: var(--a-t2); font-feature-settings: "lnum" 1; }
/* Scrolling never changes the hero's height or its document-flow position. */
#phone #view-personas { overflow-anchor: none; scroll-padding-bottom: 2px; }
#phone .a-feature-label { margin-top: 36px; margin-bottom: 16px; }
#phone .a-feature-row { display: flex; align-items: center; gap: 8px; }
#phone .a-feature-identity { flex: 1; min-width: 0; }
#phone .a-feature-fold { flex: 0 0 auto; min-height: 24px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--a-t2); font: 400 11px/1.4 var(--a-sans); letter-spacing: .24em; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
#phone .a-feature-fold-inline, #phone .a-feature-open { display: none; }
#phone .a-feature.is-collapsed { padding: 16px 22px; }
#phone .a-feature.is-collapsed h2 { font-size: 22px; }
#phone .a-feature.is-collapsed .a-meta { margin-top: 6px; }
#phone .a-feature.is-collapsed .a-feature-content { display: none; }
#phone .a-feature.is-collapsed .a-feature-fold-inline { display: none; }
#phone .a-feature.is-collapsed .a-feature-open { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 0; background: var(--a-ink); color: var(--a-bg); font-size: 20px; cursor: pointer; }
/* Zero flow height; the independent bar sits below any still-visible header. */
#phone .a-home-bar-slot { position: sticky; top: 0; z-index: 3; flex: 0 0 0; height: 0; }
#phone .a-home-bar { position: absolute; inset: 0 0 auto; height: 52px; display: flex; align-items: center; background: var(--a-sheet); border-bottom: 1px solid var(--a-ink); box-sizing: border-box; opacity: 0; transform: translateY(-4px); pointer-events: none; transition: opacity 180ms ease, transform 180ms ease; }
#phone .a-home-bar.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
#phone .a-home-bar-top { flex: 1; min-width: 0; height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 16px 0 22px; border: 0; border-radius: 0; background: transparent; color: var(--a-ink); cursor: pointer; }
#phone .a-home-bar-top span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 16px/1.2 var(--a-serif); letter-spacing: .08em; }
#phone .a-home-bar-top small { flex: 0 0 auto; font: 400 10px/1.4 var(--a-sans); color: var(--a-t2); letter-spacing: .04em; }
#phone .a-home-bar-open { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; margin-right: 4px; padding: 0; border: 0; border-radius: 0; background: var(--a-ink); color: var(--a-bg); font-size: 20px; cursor: pointer; }
#phone .a-daily { margin-top: 14px; }
#phone .a-newbtn { width: calc(100% - 44px); margin: 14px 22px 0; height: 48px; }

/* 今日陪伴入口（首页纸片里 / 聊天里） */
#phone .daily-companion-entry {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 64px;
  padding: 12px 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  box-shadow: none;
  text-align: left;
  cursor: pointer;
}
#phone .daily-companion-entry > i { flex: 0 0 auto; font-size: 20px; color: var(--a-t2); }
#phone .daily-companion-entry > span { flex: 1; min-width: 0; }
#phone .daily-companion-entry small { display: block; font-size: 11px; letter-spacing: .14em; color: var(--a-t2); overflow-wrap: anywhere; }
#phone .daily-companion-entry b { display: block; margin-top: 3px; font: 400 15px/1.5 var(--a-serif); letter-spacing: .04em; color: var(--a-ink); overflow-wrap: anywhere; }
#phone .daily-companion-entry em { flex: 0 0 auto; max-width: 84px; font-style: normal; font-size: 12px; letter-spacing: .08em; color: var(--a-t2); }
#phone .daily-companion-entry.in-chat { min-height: 54px; padding: 8px 14px; border: 1px solid var(--a-hair); background: var(--a-sheet); color: var(--a-ink); }
#phone .daily-companion-entry.in-chat small,
#phone .daily-companion-entry.in-chat em,
#phone .daily-companion-entry.in-chat > i { color: var(--a-t2); }
#phone #chat-daily-entry { padding: 12px 22px 0; }

/* ===================== 聊天 #view-chat ===================== */
#phone #view-chat,
#phone #view-chat .scroll { background: var(--a-bg); scrollbar-color: var(--a-hair2) transparent; }

/* 页头：返回 · 角色名（下一行“在线”）· 原文 · 更多 */
#phone #view-chat .topbar {
  position: relative;
  flex: 0 0 auto;
  height: 64px;
  min-height: 64px;
  padding: 0 10px;
  gap: 0;
  background: var(--a-bg);
  border-bottom: 1px solid var(--a-hair);
}
#phone #view-chat .topbar .btn-icon,
#phone #view-chat .topbar .source-query-shortcut {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  font-size: 20px;
  line-height: 1;
}
#phone #view-chat .topbar .source-query-shortcut { color: var(--a-t2); font-size: 19px; }
/* 图标按钮，文字标签只留给读屏（按钮自带 aria-label） */
#phone #view-chat .topbar .source-query-shortcut span { display: none; }
#phone #view-chat .topbar .name {
  position: absolute;
  top: 50%;
  right: 100px;
  left: 100px;
  max-width: none;
  overflow: hidden;
  padding-left: .3em;
  transform: translateY(-50%);
  font: 400 17px/1.3 var(--a-serif);
  letter-spacing: .3em;
  color: var(--a-ink);
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}
#phone #view-chat .topbar .name::after { content: "在线"; display: block; margin-top: 4px; font: 400 11px/1.2 var(--a-sans); letter-spacing: .34em; color: var(--a-t2); }
/* 角色已下线时（JS 会显示 #offline-notice），别再写“在线” */
#phone #view-chat:has(#offline-notice[style*="block"]) .topbar .name::after { content: "已下线"; }
/* 模型名徽章：保留节点（JS 会往里写），视觉隐藏 */
#phone #view-chat #chat-model { display: none; }

/* 提示条 */
/* 行内 style 写死了颜色/底色，只能用 !important 才压得过 */
#phone #offline-notice { padding: 10px 22px; border-bottom: 1px solid var(--a-hair); }
#phone #connection-notice { padding: 10px 22px; border-bottom: 1px solid var(--a-hair); background: var(--a-bg); color: var(--a-t2); font-size: 12px; }
#phone #cost-preview { padding: 8px 22px; border-top: 1px solid var(--a-hair); font-size: 12px; }
#phone #draft-status { margin: 0 10px; }
/* 两条提示的行内 style 写死了颜色/底色，合并覆盖，避免重复优先级声明。 */
#phone #offline-notice,
#phone #cost-preview { background: var(--a-bg) !important; color: var(--a-t2) !important; }

/* 故事时钟、里程碑：细线小标签 */
#phone #view-chat .chat-context-strip { gap: 8px; padding: 0 22px; background: transparent; border: 0; }
#phone #view-chat #milestone-bar { background: transparent; border: 0; }
#phone #view-chat .milestone-strip { padding: 10px 0 0; }
#phone #view-chat .story-clock { margin-top: 10px; padding: 5px 10px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-t2); font-size: 11px; }
#phone #view-chat .story-clock span { color: var(--a-t2); }
#phone #view-chat .story-clock strong { font-size: 11px; color: var(--a-ink); }
#phone #view-chat .milestone-chip { padding: 4px 10px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-t2); }
#phone #view-chat .milestone-chip i { color: var(--a-t2); }
#phone #view-chat .scene-summary { border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-t2); font-size: 11px; }

/* 场景状态（有内容时才出现） */
#phone #view-chat .conversation-state-panel { margin: 10px 22px 0; border: 0; border-top: 1px solid var(--a-hair); border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; box-shadow: none; color: var(--a-ink); }
#phone #view-chat .conversation-state-summary { min-height: 44px; padding: 0; border-radius: 0; background: transparent; }
#phone #view-chat .conversation-state-summary strong { color: var(--a-t2); font-size: 11px; letter-spacing: .3em; font-weight: 400; }
#phone #view-chat .conversation-state-summary .scene-summary { border: 0; color: var(--a-t2); font-size: 12px; }
#phone #view-chat .conversation-state-summary .ph { color: var(--a-t2); }
#phone #view-chat .conversation-state-fields { right: -1px; left: -1px; padding: 2px 14px 10px; border: 1px solid var(--a-hair); border-radius: 0; background: var(--a-sheet); box-shadow: none; }
#phone #view-chat .conversation-state-row { border-bottom: 1px solid var(--a-hair); }
#phone #view-chat .conversation-state-label { color: var(--a-t2); font-weight: 400; }
#phone #view-chat .conversation-state-value { color: var(--a-ink); }

/* 关系与事件：居中小字，两侧细线；阶段名铁锈红 */
#phone #view-chat .relationship-event-panel { margin: 10px 22px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: var(--a-ink); }
#phone #view-chat .relationship-event-summary { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0; border-radius: 0; }
#phone #view-chat .relationship-event-summary::before,
#phone #view-chat .relationship-event-summary::after { content: ""; flex: 1 1 0; height: 1px; background: var(--a-hair); }
#phone #view-chat .relationship-event-summary > span { flex: 0 0 auto; gap: 0; font-size: 11px; letter-spacing: .3em; color: var(--a-t2); }
#phone #view-chat .relationship-event-summary > span .ph,
#phone #view-chat .relationship-event-summary > .ph { display: none; }
#phone #view-chat .relationship-event-summary > span strong { font-weight: 400; }
#phone #view-chat .relationship-event-summary > small { flex: 0 1 auto; min-width: 0; max-width: 55%; font-size: 11px; letter-spacing: .3em; color: var(--a-rust); text-align: left; }
#phone #view-chat .relationship-event-summary > small::before { content: "· "; color: var(--a-t2); }
#phone #view-chat .relationship-event-body { max-height: min(34dvh, 260px); padding: 0; border-top: 1px solid var(--a-hair); }
#phone #view-chat .relationship-flow-section { margin-top: 0; padding: 12px 0; border: 0; border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; }
#phone #view-chat .relationship-flow-section > header { color: var(--a-t2); font-size: 11px; letter-spacing: .2em; }
#phone #view-chat .relationship-flow-section > header strong { color: var(--a-ink); font-size: 12px; font-weight: 400; }
#phone #view-chat .relationship-flow-section h3 { margin: 4px 0 6px; color: var(--a-ink); font: 400 15px/1.5 var(--a-serif); }
#phone #view-chat .relationship-flow-section p,
#phone #view-chat .relationship-flow-section li,
#phone #view-chat .relationship-flow-section small,
#phone #view-chat .relationship-flow-section span { color: var(--a-t2); font-size: 12px; }
/* 折叠小节的标题行：去掉浏览器默认三角，右侧放细线箭头 */
#phone #view-chat .relationship-flow-status > summary,
#phone #view-chat .experience-source > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; padding: 0; list-style: none; color: var(--a-ink); font: 400 13px/1.4 var(--a-sans); letter-spacing: .12em; cursor: pointer; }
#phone #view-chat .relationship-flow-status > summary::-webkit-details-marker,
#phone #view-chat .experience-source > summary::-webkit-details-marker { display: none; }
#phone #view-chat .relationship-flow-status > summary::after,
#phone #view-chat .experience-source > summary::after { content: "\e136"; font: normal 400 13px/1 "Phosphor"; letter-spacing: 0; color: var(--a-t2); }
#phone #view-chat .relationship-evidence-item { border-top: 1px solid var(--a-hair); }
#phone #view-chat .relationship-evidence-item small { color: var(--a-t2); font-size: 11px; }
#phone #view-chat .relationship-evidence-item button,
#phone #view-chat .story-source-button,
#phone #view-chat .event-feedback button,
#phone #view-chat .source-quote-copy,
#phone #view-chat .failed-source-query {
  min-height: 44px;
  padding: 0 14px;
  border: 1px solid var(--a-hair2);
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  font: 400 12px/1.2 var(--a-sans);
  letter-spacing: .12em;
}
#phone #view-chat .failed-source-query { margin-top: 10px; }
#phone #view-chat .story-node { padding: 2px 0 2px 12px; border-left: 1px solid var(--a-ink); border-radius: 0; background: transparent; }
#phone #view-chat .story-node small { color: var(--a-ink); font-weight: 400; }
#phone #view-chat .story-node span { color: var(--a-t2); }
#phone #view-chat .story-event-progress,
#phone #view-chat .story-event-progress strong { color: var(--a-t2); font-size: 11px; font-weight: 400; }
#phone #view-chat .story-event-switcher-group > small { color: var(--a-t2); font-size: 11px; }
#phone #view-chat .story-event-switcher button { min-height: 44px; border: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-t2); box-shadow: none; }
#phone #view-chat .story-event-switcher button[aria-selected="true"] { border-color: var(--a-ink); background: transparent; color: var(--a-ink); box-shadow: none; }
#phone #view-chat .story-event-switcher button[data-model-focused="true"]::after { color: var(--a-rust); }
#phone #view-chat .story-event-actions button { min-height: 44px; border: 1px solid var(--a-ink); border-radius: 0; background: var(--a-ink); color: var(--a-bg); font: 400 12px/1.2 var(--a-sans); letter-spacing: .2em; }
#phone #view-chat .story-event-actions button.secondary { border-color: var(--a-ink); background: transparent; color: var(--a-ink); }
#phone #view-chat .persona-control-note,
#phone #view-chat .relationship-flow-empty { color: var(--a-t2); font-size: 12px; }
#phone #view-chat .relationship-flow-error { color: var(--a-rust); font-size: 12px; }
#phone #view-chat .relationship-event-panel button:focus-visible,
#phone #view-chat .relationship-event-summary:focus-visible { outline: 2px solid var(--a-ink); outline-offset: 2px; }

/* 事件回执条 */
#phone .event-status-feed { padding: 0 22px; max-height: 120px; }
#phone .event-status-card { padding: 10px 0; border: 0; border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-t2); font-size: 12px; }
#phone .event-status-card strong { color: var(--a-ink); font: 400 13px/1.5 var(--a-serif); }
#phone .event-status-card small { color: var(--a-t2); font-size: 11px; }
#phone .event-status-card .experience-source [data-event-receipt-id] { border-top: 1px solid var(--a-hair); }
#phone .experience-source > summary { color: var(--a-t2); }

/* 消息列表 */
#phone #view-chat #msg-list { padding: 20px 22px 28px; scroll-padding-bottom: 28px; }
#phone #view-chat .msg { margin: 0 0 18px; }
#phone #view-chat #msg-list .msg:last-child { margin-bottom: 18px; }
/* 角色连着说的几条：靠近一些（无时间标签时） */
#phone #view-chat .assistant-turn + .assistant-turn:not(:has(> .time)) { margin-top: -10px; }
/* 时间：居中的拉丁斜体，放在这条消息上方 */
#phone #view-chat .msg .time { order: -1; align-self: center; margin: 0 0 12px; font: italic 400 13px/1.3 var(--a-latin); letter-spacing: .04em; color: var(--a-t2); font-feature-settings: "lnum" 1; }
/* “已思考 x 秒”的行内 style 写死了颜色，只能用 !important 才压得过 */
#phone #view-chat .msg .time[style] { color: var(--a-t2) !important; }

/* 用户消息：墨黑方块、纸色字、直角、右对齐 */
#phone #view-chat .msg.mine { align-items: flex-end; }
#phone #view-chat .mine .bubble { max-width: 76%; padding: 12px 16px; border: 0; border-radius: 0; background: var(--a-ink); color: var(--a-bg); box-shadow: none; font: 400 15px/1.7 var(--a-sans); letter-spacing: .02em; }

/* 角色消息：没有气泡，宋体细体 */
#phone #view-chat .theirs .bubble { max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--a-ink); box-shadow: none; }
#phone #view-chat .assistant-turn { width: 100%; gap: 0; }
#phone #view-chat .assistant-turn-card { width: 100%; max-width: 94%; padding: 0; }
/* “正在思考…”/失败时 JS 会给卡片和文字写行内灰色，只能用 !important 才压得过 */
#phone #view-chat .assistant-turn-card[style*="color"],
#phone #view-chat .assistant-copy[style*="color"] { color: var(--a-t2) !important; }
#phone #view-chat .assistant-copy { gap: 8px; font: 300 17px/1.85 var(--a-serif); letter-spacing: .05em; color: var(--a-ink); }
#phone #view-chat .assistant-dialogue-bubble { width: auto; max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
#phone #view-chat .assistant-dialogue { color: var(--a-ink); font-weight: 300; }
#phone #view-chat .assistant-action { align-self: flex-start; max-width: 100%; padding: 0; color: var(--a-t2); font-size: 15px; line-height: 1.85; text-align: left; }
#phone #view-chat .relationship-source-highlight .bubble,
#phone #view-chat .relationship-source-highlight .assistant-turn-card { outline: 1px solid var(--a-rust); outline-offset: 6px; }

/* 心里想法（可折叠） */
#phone .inner-thought { width: 100%; max-width: 94%; margin: 8px 0 0; border-top: 1px solid var(--a-hair); color: var(--a-t2); }
#phone .inner-thought summary strong { color: var(--a-ink); font: 400 12px/1.4 var(--a-sans); letter-spacing: .2em; }
#phone .inner-thought summary span { color: var(--a-t2); font-size: 11px; }
#phone .inner-thought summary .ph { color: var(--a-t2); }
#phone .inner-thought-copy { color: var(--a-t2); font: 300 14px/1.8 var(--a-serif); }
#phone .turn-inner-thought .turn-inner-thought-summary strong { color: var(--a-ink); }
#phone .turn-inner-thought .turn-inner-thought-summary span { color: var(--a-t2); }

/* 来源核对卡片、系统原文回顾、事件记录：细线框 */
#phone #view-chat .source-quote-card { width: 100%; max-width: 100%; margin: 0 0 10px; border: 1px solid var(--a-hair); border-radius: 0; background: var(--a-sheet); box-shadow: none; color: var(--a-ink); }
#phone #view-chat .source-quote-card summary { min-height: 44px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 8px 14px; color: var(--a-ink); font: 400 13px/1.5 var(--a-sans); letter-spacing: .08em; }
#phone #view-chat .source-quote-card summary small { margin-left: 0; color: var(--a-t2); font-size: 11px; font-weight: 400; }
#phone #view-chat .source-quote-body { padding: 10px 14px 12px; border-top: 1px solid var(--a-hair); background: transparent; color: var(--a-ink); font: 400 13px/1.7 var(--a-sans); }
#phone #view-chat .source-quote-copy { margin: 8px 14px; }
#phone #view-chat .source-quote-card:focus-visible,
#phone #view-chat .source-quote-copy:focus-visible,
#phone #view-chat .assistant-turn:focus-visible { outline: 2px solid var(--a-ink); outline-offset: 2px; }
#phone #view-chat .system-source-summary { align-self: stretch; width: 100%; max-width: 100%; margin-bottom: 10px; padding: 10px 14px; border: 1px solid var(--a-hair); border-left: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-ink); font-size: 13px; }
#phone #view-chat .system-source-summary span { color: var(--a-t2); }

/* 失败卡片：细线框 + 小字 */
#phone #view-chat .failed-reply-card { align-self: stretch; gap: 10px; width: 100%; max-width: 100%; margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; box-shadow: none; color: var(--a-t2); }
#phone #view-chat .failed-reply-card i { margin-top: 1px; color: var(--a-t2); font-size: 16px; }
#phone #view-chat .failed-reply-card strong { color: var(--a-ink); font: 400 13px/1.5 var(--a-sans); letter-spacing: .04em; }
#phone #view-chat .failed-reply-card span { color: var(--a-t2); font-size: 12px; }

/* 空会话、历史加载、新消息提示 */
#phone #view-chat .empty { padding: 60px 20px; color: var(--a-t2); font: 300 16px/1.9 var(--a-serif); letter-spacing: .05em; }
#phone .history-load-status { color: var(--a-t2); font-size: 11px; }
#phone .history-load-button { min-height: 44px; padding: 0 14px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); }
#phone .new-message-indicator { right: 22px; bottom: 132px; min-height: 44px; padding: 0 16px; border: 0; border-radius: 0; background: var(--a-ink); color: var(--a-bg); box-shadow: none; font-size: 12px; letter-spacing: .2em; }

/* 输入区：下划线输入框 + 墨黑方块发送键；工具图标在下一行 */
#phone #view-chat .footer {
  position: relative;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 14px;
  padding: 12px 22px max(8px, env(safe-area-inset-bottom));
  background: var(--a-bg);
  border-top: 1px solid var(--a-hair);
}
#phone #view-chat .footer textarea {
  flex: 1 1 0;
  order: 1;
  min-width: 0;
  min-height: 44px;
  max-height: 120px;
  margin: 0;
  padding: 10px 0;
  border: 0;
  border-bottom: 1px solid var(--a-hair2);
  border-radius: 0;
  background: transparent;
  color: var(--a-ink);
  box-shadow: none;
  font: 300 15px/1.6 var(--a-serif);
  letter-spacing: .08em;
  outline: none;
}
#phone #view-chat .footer textarea::placeholder { color: var(--a-t2); opacity: 1; }
#phone #view-chat .footer textarea:focus { border-bottom-color: var(--a-ink); }
#phone #view-chat .footer textarea:disabled { opacity: .5; }
#phone #view-chat .footer .btn-send {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  order: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: var(--a-ink);
  color: var(--a-bg);
  box-shadow: none;
  font-size: 0;
  line-height: 0;
}
/* 按钮文字“发送”仍在 DOM 里给读屏用，视觉上换成箭头图标 */
#phone #view-chat .footer .btn-send::before { content: "\e08e"; font: normal 400 18px/1 "Phosphor"; letter-spacing: 0; }
#phone #view-chat .footer .btn-send:disabled { opacity: .45; cursor: not-allowed; }
#phone #view-chat .footer .tool-row { order: 3; flex: 0 0 100%; width: 100%; gap: 0; margin: 2px 0 0 -12px; }
#phone #view-chat .footer .tool-btn { display: grid; place-items: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--a-t2); font-size: 20px; line-height: 1; }
#phone #view-chat .footer .tool-btn[aria-expanded="true"] { color: var(--a-ink); }

/* B3：发图按钮先藏起来（.tool-btn 自带 display，要显式让 hidden 生效） */
#phone #view-chat .footer .tool-btn[hidden] { display: none; }

/* ===================== 第二段：名录 / 详情 / 我的 / 设置 ===================== */
#phone .sub-head[hidden],
#phone .site-head[hidden],
#phone .a-pick-foot[hidden] { display: none; }
#phone .sub-title { margin: 0; }
#phone #view-pick,
#phone #view-profile,
#phone #view-settings { background: var(--a-bg); color: var(--a-ink); overflow-x: hidden; }

/* 通用小标题（区块名 + 下方细线） */
#phone .a-h2 { margin: 0; padding-bottom: 10px; border-bottom: 1px solid var(--a-hair); font: 400 11px/1.4 var(--a-sans); letter-spacing: .3em; color: var(--a-t2); }
#phone .a-no { font: italic 400 14px/1.4 var(--a-latin); letter-spacing: .02em; color: var(--a-t2); font-feature-settings: "lnum" 1; }

/* ---------- 名录（列表状态）：整页自然往下滚 ---------- */
#phone #view-pick[data-mode="list"] { overflow-y: auto; }
#phone .a-pick-body { flex: 0 0 auto; padding-bottom: max(40px, env(safe-area-inset-bottom)); }
#phone .a-dh { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 24px 22px 0; }
#phone .a-dh h1 { margin: 0; font: 300 28px/1.2 var(--a-serif); letter-spacing: .14em; color: var(--a-ink); }
#phone .a-link { position: relative; flex: 0 0 auto; min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--a-ink); font: 400 11px/1 var(--a-sans); letter-spacing: .2em; cursor: pointer; }
#phone .a-link::after { content: ""; position: absolute; right: 0; bottom: 12px; left: 0; height: 1px; background: var(--a-ink); }
#phone .a-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 14px 22px 0; border: 1px solid var(--a-ink); }
#phone .a-seg button { min-height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--a-ink); font: 400 12px/1 var(--a-sans); letter-spacing: .3em; cursor: pointer; }
#phone .a-seg button + button { border-left: 1px solid var(--a-ink); }
#phone .a-seg button.is-on { background: var(--a-ink); color: var(--a-bg); }
#phone .a-tiles { display: flex; flex-direction: column; gap: 12px; margin: 18px 22px 0; }
#phone .a-tile { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 16px; width: 100%; padding: 16px 18px; border: 1px solid var(--a-hair); border-radius: 0; background: var(--a-sheet); color: var(--a-ink); box-shadow: none; text-align: left; cursor: pointer; }
#phone .a-tile .a-no { grid-column: 1 / -1; }
#phone .a-tile b { min-width: 0; font: 400 20px/1.4 var(--a-serif); letter-spacing: .16em; overflow-wrap: anywhere; }
#phone .a-tile .a-k { align-self: center; display: flex; align-items: center; min-height: 32px; padding: 0 12px; border: 1px solid var(--a-ink); font: 400 11px/1 var(--a-sans); letter-spacing: .28em; white-space: nowrap; }
#phone .a-tile small { grid-column: 1 / -1; margin-top: 6px; font: 300 14px/1.75 var(--a-serif); letter-spacing: .02em; color: var(--a-ink); }
#phone .a-empty { margin: 30px 0; font: 300 14px/1.8 var(--a-serif); color: var(--a-t2); }

/* ---------- 角色详情：中间滚动，底栏固定 ---------- */
#phone #view-pick[data-mode="detail"] .a-pick-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-bottom: 24px; }
#phone .a-cover { padding: 30px 22px 26px; }
#phone .a-cover h1 { margin: 10px 0 0; font: 300 44px/1.1 var(--a-serif); letter-spacing: .22em; color: var(--a-ink); overflow-wrap: anywhere; }
/* 次要色压在深色带上对比度只有 4.2:1，深色带里的小字改用墨黑 */
#phone .a-cover .a-no { color: var(--a-ink); }
#phone .a-cmeta { margin-top: 12px; font-size: 11px; letter-spacing: .3em; color: var(--a-ink); }
#phone .a-dsec { margin: 24px 22px 0; }
#phone .a-hook { margin: 14px 0 0; font: 300 19px/1.8 var(--a-serif); letter-spacing: .05em; color: var(--a-ink); }
#phone .a-bio { margin: 10px 0 0; font: 300 15px/1.9 var(--a-serif); letter-spacing: .04em; color: var(--a-ink); }
#phone .a-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
#phone .a-chips span { display: flex; align-items: center; min-height: 30px; padding: 0 12px; border: 1px solid var(--a-hair2); font-size: 12px; letter-spacing: .2em; }
#phone .a-pick-foot { flex: 0 0 auto; padding: 12px 22px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--a-hair); background: var(--a-bg); }
#phone .a-pick-foot p { margin: 0 0 10px; font-size: 11px; line-height: 1.6; letter-spacing: .04em; color: var(--a-t2); }

/* ---------- 我的：整页自然往下滚 ---------- */
#phone #view-profile { overflow-y: auto; }
#phone .a-page { flex: 0 0 auto; padding-bottom: max(40px, env(safe-area-inset-bottom)); }
#phone .a-mh { padding: 26px 22px 0; }
#phone .a-mh h1 { margin: 0; font: 300 30px/1.2 var(--a-serif); letter-spacing: .14em; color: var(--a-ink); }
#phone .a-mh p { margin: 8px 0 0; font-size: 12px; letter-spacing: .14em; color: var(--a-t2); }
#phone .a-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 24px 22px 0; border-top: 1px solid var(--a-hair); border-bottom: 1px solid var(--a-hair); }
#phone .a-stats div { min-width: 0; padding: 16px 0 14px; }
#phone .a-stats div + div { padding-left: 16px; border-left: 1px solid var(--a-hair); }
#phone .a-stats b { display: block; font: 400 38px/1 var(--a-latin); font-feature-settings: "lnum" 1; color: var(--a-ink); }
#phone .a-stats span { display: block; margin-top: 8px; font-size: 11px; letter-spacing: .24em; color: var(--a-t2); }
#phone .a-rows { margin: 22px 22px 0; }
#phone .a-row { font-family: var(--a-sans); display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; padding: 0; border: 0; border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-ink); text-align: left; text-decoration: none; cursor: pointer; }
#phone .a-row:disabled { color: var(--a-ink); cursor: default; }
#phone .a-row b { flex: 0 0 auto; font: 300 16px/1.4 var(--a-serif); letter-spacing: .1em; }
#phone .a-row em { flex: 1 1 0; font-weight: 400; min-width: 0; overflow: hidden; font-style: normal; font-size: 12px; letter-spacing: .12em; color: var(--a-t2); text-align: right; text-overflow: ellipsis; white-space: nowrap; }
#phone .a-row em.is-rust { color: var(--a-rust); }
#phone .a-row.is-complete em.is-rust { color: var(--a-t2); }
#phone .a-row > i { flex: 0 0 auto; font-size: 15px; color: var(--a-t2); }
#phone .a-row.is-out b { color: var(--a-rust); }
#phone .a-fine { margin: 18px 22px 0; font: 300 13px/1.8 var(--a-serif); color: var(--a-t2); }
#phone .a-fine b { display: block; font-weight: 400; }

/* ---------- 陪伴设置 ---------- */
#phone #view-settings { min-height: 0; }
#phone .settings-scroll { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; padding: 0 0 16px; background: transparent; }
#phone .settings-content { padding: 0; }
#phone .a-signin { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 22px 22px 0; padding: 14px 0; border-top: 1px solid var(--a-hair); border-bottom: 1px solid var(--a-hair); }
#phone .a-signin > div { min-width: 0; }
#phone .a-signin b { display: block; font: 300 16px/1.4 var(--a-serif); letter-spacing: .1em; }
#phone .a-signin small { display: block; margin-top: 5px; font-size: 12px; line-height: 1.5; color: var(--a-t2); }
#phone .a-signin .a-ghost { flex: 0 0 auto; padding: 0 14px; font-size: 12px; letter-spacing: .06em; white-space: nowrap; }
#phone .a-signin .a-ghost:disabled { border-color: var(--a-hair2); color: var(--a-t2); }
#phone .a-group { margin: 24px 22px 0; }
#phone .a-opt { display: flex; align-items: center; gap: 16px; min-height: 62px; padding: 10px 0; border-bottom: 1px solid var(--a-hair); cursor: pointer; }
#phone .a-opt.settings-push-row { margin: 0; cursor: default; }
#phone .a-opt-t { flex: 1 1 0; min-width: 0; }
#phone .a-opt-t b { display: block; font: 300 16px/1.4 var(--a-serif); letter-spacing: .1em; color: var(--a-ink); }
#phone .a-opt-t small { display: block; margin-top: 5px; font-size: 12px; line-height: 1.5; letter-spacing: .04em; color: var(--a-t2); overflow-wrap: anywhere; }
/* 聊天方式沿用分段选择，只在这行取消名录的外边距。 */
#phone .a-opt.a-chat-style { display: block; cursor: default; }
#phone .a-chat-style .a-seg { margin: 12px 0 0; }
#phone .a-chat-style .a-seg button:focus-visible { outline: 2px solid var(--a-ink); outline-offset: 3px; position: relative; z-index: 1; }
#phone .a-note { margin: 12px 0 0; font: 300 13px/1.8 var(--a-serif); color: var(--a-t2); }
#phone .a-note strong { font-weight: 400; color: var(--a-ink); }
#phone .a-note-stage { display: block; margin-top: 4px; font: 400 11px/1.6 var(--a-sans); letter-spacing: .2em; }
#phone .a-note-stage strong { color: var(--a-rust); letter-spacing: .1em; }

/* 开关：原 checkbox 改外观。44×24 细线胶囊；关=描边，开=墨黑填充 + 纸色圆钮 */
#phone .settings-switch-input { -webkit-appearance: none; appearance: none; position: relative; flex: 0 0 44px; width: 44px; height: 24px; margin: 0; border: 1px solid var(--a-ink); border-radius: 99px; background: transparent; cursor: pointer; transition: background-color .18s ease; }
#phone .settings-switch-input::after { content: ""; position: absolute; top: 3px; left: 3px; box-sizing: border-box; width: 16px; height: 16px; border: 1px solid var(--a-ink); border-radius: 50%; background: transparent; transition: transform .18s ease; }
/* 视觉 44×24，可点区域上下各扩 10px 到 44 高 */
#phone .settings-switch-input::before { content: ""; position: absolute; top: -10px; right: 0; bottom: -10px; left: 0; }
#phone .settings-switch-input:checked { background: var(--a-ink); }
#phone .settings-switch-input:checked::after { border-color: var(--a-bg); background: var(--a-bg); transform: translateX(20px); }
#phone .settings-switch-input:focus-visible { outline: 2px solid var(--a-ink); outline-offset: 3px; }
#phone .settings-switch-input:disabled { opacity: .45; cursor: default; }

/* 离线提醒按钮（文字由 JS 控制）：可用时是细线框，不可用时只是一行小字 */
#phone .settings-push-button { flex: 0 0 auto; min-width: 0; min-height: 44px; padding: 0 14px; border: 1px solid var(--a-ink); border-radius: 0; background: transparent; color: var(--a-ink); font: 400 12px/1 var(--a-sans); letter-spacing: .2em; white-space: nowrap; cursor: pointer; }
#phone .settings-push-button.is-enabled { border-color: var(--a-ink); background: transparent; color: var(--a-ink); }
#phone .settings-push-button:disabled { opacity: 1; border-color: transparent; color: var(--a-t2); cursor: default; }

/* 关系共识：规则列表（JS 渲染）、快捷短语、下划线输入框 */
#phone .settings-consent #rule-list { max-height: none; margin: 10px 0 0; padding: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; }
#phone .settings-rule-empty { padding: 12px 0; color: var(--a-t2); font: 300 13px/1.8 var(--a-serif); text-align: left; }
#phone .settings-rule-row { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 52px; padding: 6px 0; border: 0; border-bottom: 1px solid var(--a-hair); }
#phone .settings-rule-row:first-child { border-top: 0; }
#phone .settings-rule-row > i { margin: 0; color: var(--a-t2); font-size: 14px; }
#phone .settings-rule-row > span { min-width: 0; color: var(--a-ink); font: 300 15px/1.6 var(--a-serif); overflow-wrap: anywhere; }
#phone .settings-rule-row > button { min-width: 44px; min-height: 44px; padding: 0 6px; border: 0; border-radius: 0; background: transparent; color: var(--a-rust); font: 400 12px/1 var(--a-sans); letter-spacing: .14em; }
#phone .settings-rule-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
#phone .settings-rule-chips button { min-height: 44px; padding: 0 12px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); font: 400 12px/1.3 var(--a-sans); letter-spacing: .12em; }
#phone .settings-rule-input { display: flex; align-items: flex-end; gap: 12px; margin: 0; }
#phone .settings-rule-input input { flex: 1 1 0; min-width: 0; min-height: 44px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); font: 300 15px/1.5 var(--a-serif); letter-spacing: .04em; outline: none; }
#phone .settings-rule-input input::placeholder { color: var(--a-t2); opacity: 1; }
#phone .settings-rule-input input:focus { border-bottom-color: var(--a-ink); }
#phone .settings-rule-input button { flex: 0 0 auto; min-width: 0; min-height: 44px; padding: 0 16px; border: 1px solid var(--a-ink); border-radius: 0; background: transparent; color: var(--a-ink); font: 400 12px/1 var(--a-sans); letter-spacing: .3em; }

/* 底部固定保存栏 */
#phone .settings-actions { display: flex; flex: 0 0 auto; gap: 10px; padding: 12px 22px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--a-hair); background: var(--a-bg); }
#phone .settings-actions button { border-radius: 0; box-shadow: none; }
#phone .settings-save { display: flex; flex: 1 1 0; align-items: center; justify-content: space-between; min-width: 0; height: 52px; min-height: 52px; padding: 0 20px; border: 0; background: var(--a-ink); color: var(--a-bg); font: 400 13px/1 var(--a-sans); letter-spacing: .42em; }
#phone .settings-save i { font-size: 16px; letter-spacing: 0; }
#phone .settings-cancel { flex: 0 0 auto; height: 52px; min-height: 52px; padding: 0 18px; border: 1px solid var(--a-hair2); background: transparent; color: var(--a-t2); font: 400 13px/1 var(--a-sans); letter-spacing: .3em; }

@media (max-width: 359px) {
  #phone .a-stats b { font-size: 30px; }
  #phone .a-stats div + div { padding-left: 12px; }
}

/* ===================== 2b · 弹窗与附属界面 ===================== */

/* 登录与保留的选模型页 */
#phone #view-login { padding: 32px 22px; overflow-y: auto; background: var(--a-bg); color: var(--a-ink); }
#phone #view-login .logo { width: 72px; height: 72px; margin-bottom: 28px; border: 1px solid var(--a-ink); border-radius: 0; background: transparent; color: var(--a-ink); box-shadow: none; font: 300 38px/1 var(--a-serif); }
#phone #view-login h1 { margin: 0 0 16px; color: var(--a-ink); font: 300 23px/1.5 var(--a-serif); letter-spacing: .06em; }
#phone #view-login .sub { color: var(--a-t2); font: 400 12px/1.8 var(--a-sans); }
#phone #view-login .tip { max-width: 100%; margin-top: 24px; padding: 10px 12px; border: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-t2); font: 400 12px/1.7 var(--a-sans); overflow-wrap: anywhere; }
#phone #view-login .btn-main,
#phone #view-newchat .btn-main { min-height: 52px; padding: 12px 22px; border: 1px solid var(--a-ink); border-radius: 0; background: var(--a-ink); color: var(--a-bg); box-shadow: none; font: 400 13px/1.5 var(--a-sans); letter-spacing: .3em; }
#phone #view-login .btn-ghost { min-height: 44px; padding: 12px 16px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); font-size: 12px; }
#phone #invite-code { background: var(--a-bg); color: var(--a-ink); font-family: var(--a-sans); }
#phone #invite-code::placeholder { color: var(--a-t2); }
#phone #view-newchat,
#phone #view-newchat .scroll,
#phone #view-newchat .topbar,
#phone #view-newchat .footer { background: var(--a-bg); color: var(--a-ink); border-color: var(--a-hair); box-shadow: none; }
#phone #view-newchat .topbar { padding: 12px 22px; }
#phone #view-newchat .topbar .name { color: var(--a-ink); font: 300 18px/1.5 var(--a-serif); }
#phone #view-newchat .btn-icon { min-height: 44px; border: 0; border-radius: 0; background: transparent; color: var(--a-t2); }
#phone #view-newchat .scroll { padding: 16px 22px; scrollbar-color: var(--a-hair2) var(--a-bg); }
#phone #view-newchat .footer { padding: 12px 22px; }
#phone #view-newchat .model,
#phone #view-newchat .card { padding: 16px 0; border: 0; border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; box-shadow: none; color: var(--a-ink); }
#phone #view-newchat .model .n,
#phone #view-newchat .card .n { color: var(--a-ink); font: 300 18px/1.5 var(--a-serif); }
#phone #view-newchat .model .price,
#phone #view-newchat .card .b { color: var(--a-t2); }
#phone #view-newchat .radio { border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); }
#phone #view-newchat .radio.on { border-color: var(--a-ink); background: var(--a-ink); }
#phone #view-newchat .radio.on::after { background: var(--a-bg); }

/* 菜单、输入面板、离线提示与轻提示 */
#phone #connection-notice { overflow-wrap: anywhere; line-height: 1.7; }
#phone #chat-daily-entry .daily-companion-entry { border-color: var(--a-hair2); }
#phone .composer-popover { left: 0; width: min(330px, 100%); max-height: min(50dvh, 360px); overflow-y: auto; padding: 12px; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-bg); color: var(--a-ink); box-shadow: none; scrollbar-color: var(--a-hair2) var(--a-bg); }
#phone .emoji-panel { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; }
#phone .emoji-panel button { min-width: 0; min-height: 44px; padding: 4px 0; border: 0; border-radius: 0; color: var(--a-ink); background: transparent; }
#phone .emoji-panel button:hover { background: var(--a-band); }
#phone .voice-panel { gap: 8px; }
#phone .voice-panel button { min-height: 52px; padding: 12px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); box-shadow: none; }
#phone .voice-panel button b { font: 400 15px/1.5 var(--a-serif); }
#phone .voice-panel button > i { grid-row: 1 / span 2; color: var(--a-t2); font-size: 20px; }
#phone .voice-panel button small { color: var(--a-t2); font: 400 11px/1.6 var(--a-sans); }
#phone #menu { right: 22px; max-width: calc(100% - 44px); max-height: calc(100% - 100px); overflow-y: auto; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-bg); color: var(--a-ink); box-shadow: none; }
#phone #menu div { display: flex; align-items: center; min-height: 44px; padding: 10px 18px; border-bottom: 1px solid var(--a-hair); color: var(--a-ink); font: 400 13px/1.5 var(--a-sans); }
#phone #menu div:last-child { border-bottom: 0; color: var(--a-rust); }
#phone #menu div:hover { background: var(--a-band); }
#phone #toast { width: max-content; max-width: calc(100% - 44px); padding: 12px 18px; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-bg); color: var(--a-ink); box-shadow: none; font: 400 13px/1.7 var(--a-sans); text-align: center; white-space: normal; overflow-wrap: anywhere; }

/* 遮罩只负责定位，内容在纸面面板内滚动。 */
#phone :is(.first-event-modal, .memory-journal-modal, .source-query-modal, .a-import-modal, .scene-evidence-modal) { position: absolute; inset: 0; align-items: flex-end; justify-content: center; padding: 24px 14px max(18px, env(safe-area-inset-bottom)); background: var(--a-scrim); backdrop-filter: none; }
#phone .a-import-modal { z-index: 72; }
#phone :is(.first-event-panel, .source-query-panel, .a-import-panel, .scene-evidence-panel) { width: 100%; min-width: 0; max-height: 100%; padding: 22px 20px 18px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-bg); color: var(--a-ink); box-shadow: none; scrollbar-color: var(--a-hair2) var(--a-bg); }
#phone :is(.memory-journal-panel, .a-import-panel) { --a-popup-bg: var(--a-bg); --a-popup-ink: var(--a-ink); }
/* 旧主题在记忆/导入遮罩上强制指定了背景，记忆遮罩还强制模糊；这两项需同级覆盖。 */
#phone :is(#mem-modal, #import-modal) { background: var(--a-scrim) !important; backdrop-filter: none !important; }
/* 旧主题强制指定了表面的背景、边框、圆角、阴影，M1 边框也在行内；分别覆盖这四项。局部令牌只引用既有纸色/墨色。 */
#phone :is(#mem-modal, #import-modal) :is(.memory-journal-panel, .a-import-panel, button, textarea, #import-result),
#phone #daily-life-modal .daily-life-step-actions button,
#phone #invite-code {
  background: var(--a-popup-bg, var(--a-bg)) !important;
  border: 1px solid var(--a-hair2) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
/* 兼容层文字色需压过旧主题强制色，以及邀请码 label 的行内色。 */
#phone :is(#mem-modal, #import-modal) :is(.memory-journal-panel, .a-import-panel, button, textarea, #import-result),
#phone #daily-life-modal .daily-life-step-actions button,
#phone #invite-code,
#phone #import-result [style*="color"],
#phone #invite-wrap label { color: var(--a-popup-ink, var(--a-ink)) !important; }
#phone #import-modal .a-cta { --a-popup-bg: var(--a-ink); --a-popup-ink: var(--a-bg); }

/* 宋体标题、留白和细线操作：首次相遇 / 今日陪伴 */
#phone .first-event-panel > small { color: var(--a-t2); font: 400 10px/1.4 var(--a-sans); letter-spacing: .2em; }
#phone .first-event-panel h2,
#phone .source-query-head h2,
#phone .memory-journal-head h2,
#phone .a-import-title { margin: 0 0 16px; color: var(--a-ink); font: 300 23px/1.5 var(--a-serif); letter-spacing: .04em; }
#phone .first-event-panel > small + h2 { margin-top: 10px; }
#phone .first-event-panel > p { color: var(--a-t2); font: 400 13px/1.9 var(--a-sans); overflow-wrap: anywhere; }
#phone .first-event-note { margin-top: 18px; padding: 12px 0; border-top: 1px solid var(--a-hair); border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-t2); font: 400 11px/1.8 var(--a-sans); }
#phone .first-event-note i { color: var(--a-t2); }
#phone .first-event-actions { grid-template-columns: 1fr 1.25fr; gap: 10px; margin-top: 20px; }
#phone .first-event-actions button,
#phone .daily-life-actions button { min-width: 0; min-height: 48px; padding: 10px 8px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); box-shadow: none; font: 400 12px/1.7 var(--a-sans); letter-spacing: .12em; overflow-wrap: anywhere; }
#phone .first-event-actions .first-event-enter,
#phone .daily-life-chat { min-height: 52px; border: 1px solid var(--a-ink); border-radius: 0; background: var(--a-ink); color: var(--a-bg); box-shadow: none; font: 400 13px/1.7 var(--a-sans); letter-spacing: .2em; }
#phone .daily-life-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#phone .daily-life-close { margin-top: 12px; min-height: 44px; border-radius: 0; color: var(--a-t2); background: transparent; font: 400 12px/1.7 var(--a-sans); }
#phone .daily-life-progress { margin-top: 20px; padding: 0; border: 0; border-radius: 0; background: transparent; }
#phone .daily-life-progress-head { color: var(--a-t2); font: 400 11px/1.6 var(--a-sans); }
#phone .daily-life-progress-head small { color: var(--a-t2); }
#phone .daily-life-progress-track { height: 1px; margin-top: 12px; border-radius: 0; background: var(--a-hair2); }
#phone .daily-life-progress-track i { border-radius: 0; background: var(--a-ink); }
#phone .daily-life-progress h3 { margin-top: 18px; color: var(--a-ink); font: 300 18px/1.6 var(--a-serif); }
#phone .daily-life-progress > p { color: var(--a-t2); font: 400 12px/1.8 var(--a-sans); }
#phone .daily-life-persona-action { padding: 12px 0; border-top: 1px solid var(--a-hair); border-bottom: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-t2); font: 400 11px/1.7 var(--a-sans); }
#phone .daily-life-persona-action i { color: var(--a-t2); }
#phone .daily-life-step-actions button { min-height: 44px; padding: 10px 8px; font: 400 12px/1.6 var(--a-sans); }
#phone .daily-life-panel .experience-source { color: var(--a-t2); }

/* 原文查询与记忆档案 */
#phone .source-query-head,
#phone .memory-journal-head { display: flex; align-items: flex-start; gap: 12px; padding: 0; }
#phone .source-query-head > div,
#phone .memory-journal-head > div { min-width: 0; flex: 1; }
#phone .source-query-head button,
#phone #mem-modal .memory-journal-head button { flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; margin-top: -6px; padding: 0; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); font: 300 24px/1 var(--a-sans); }
#phone .source-query-note,
#phone .memory-journal-note { margin: 0 0 18px; padding: 0; color: var(--a-t2); font: 400 12px/1.8 var(--a-sans); }
#phone .source-query-form { gap: 10px; padding: 0; }
#phone .source-query-form label { color: var(--a-t2); font: 400 12px/1.7 var(--a-sans); }
#phone .source-query-form textarea { min-height: 88px; padding: 12px; border: 1px solid var(--a-hair2); border-radius: 0; color: var(--a-ink); background: var(--a-bg); font: 400 14px/1.7 var(--a-sans); }
#phone .source-query-form textarea::placeholder { color: var(--a-t2); }
#phone .source-query-form button { min-height: 52px; padding: 12px 20px; border: 1px solid var(--a-ink); border-radius: 0; color: var(--a-bg); background: var(--a-ink); font: 400 13px/1.5 var(--a-sans); letter-spacing: .2em; }
#phone .source-query-result { padding: 16px 0 0; color: var(--a-t2); font: 400 12px/1.8 var(--a-sans); }
#phone .source-query-record { padding: 12px 0; border: 0; border-top: 1px solid var(--a-hair); border-radius: 0; background: transparent; }
#phone .source-query-record strong { color: var(--a-ink); font: 300 16px/1.6 var(--a-serif); }
#phone .source-query-record small,
#phone .source-query-caveat { color: var(--a-t2); }
#phone .source-query-record pre { margin: 6px 0 0; padding: 12px 0; border-top: 1px solid var(--a-hair); background: transparent; color: var(--a-ink); font: 300 15px/1.8 var(--a-serif); }
#phone #mem-modal .memory-journal-panel { padding: 22px 20px 18px; }
#phone .memory-journal-list { padding: 0; overscroll-behavior: contain; scrollbar-color: var(--a-hair2) var(--a-bg); }
#phone .memory-journal-section { margin: 0; padding: 14px 0; border: 0; border-top: 1px solid var(--a-hair); border-radius: 0; background: transparent; }
#phone .memory-journal-section h3 { color: var(--a-t2); font: 400 11px/1.6 var(--a-sans); letter-spacing: .2em; }
#phone .memory-anniversary,
#phone .memory-diary-item { border-color: var(--a-hair); }
#phone .memory-anniversary > i { color: var(--a-rust); }
#phone .memory-anniversary b,
#phone .memory-diary-copy b { color: var(--a-ink); font: 300 16px/1.7 var(--a-serif); overflow-wrap: anywhere; }
#phone .memory-anniversary small,
#phone .memory-diary-copy small,
#phone .memory-diary-copy span,
#phone .memory-journal-empty,
#phone .memory-journal-empty small { color: var(--a-t2); font: 400 11px/1.7 var(--a-sans); }
#phone .memory-diary-item { grid-template-columns: minmax(0, 1fr) 44px; }
#phone #mem-modal .memory-diary-item button { width: 44px; height: 44px; min-height: 44px; }

/* 导入保留原来的上传与提交行为，仅把行内外观移入样式层。 */
#phone .a-import-help { margin-bottom: 16px; color: var(--a-t2); font: 400 12px/1.8 var(--a-sans); }
#phone .a-import-files { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 16px; }
#phone .a-import-files .a-ghost { min-width: 0; min-height: 44px; padding: 8px 10px; font-size: 12px; letter-spacing: 0; }
#phone #import-filename { max-width: 100%; color: var(--a-t2); font-size: 11px; overflow-wrap: anywhere; }
#phone #import-text { width: 100%; min-width: 0; padding: 12px; resize: vertical; font: 400 13px/1.8 var(--a-sans); }
#phone #import-text::placeholder { color: var(--a-t2); }
#phone #import-result { margin-top: 16px; padding: 12px; font: 400 13px/1.8 var(--a-sans); overflow-wrap: anywhere; }
#phone .a-import-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
#phone .a-import-actions button { flex: 1 1 100px; min-width: 0; min-height: 52px; height: auto; padding: 12px; justify-content: center; font: 400 13px/1.6 var(--a-sans); letter-spacing: .1em; }

/* 关系展开内容：沿用正文排版，原文与反馈也只留细线。 */
#phone #view-chat .history-load-status { border-radius: 0; }
#phone #view-chat .event-feedback,
#phone #view-chat .source-quote-card { border: 0; border-top: 1px solid var(--a-hair); border-radius: 0; background: transparent; color: var(--a-ink); box-shadow: none; }
#phone #view-chat .source-quote-card summary,
#phone #view-chat .source-quote-card summary small { color: var(--a-t2); font: 400 12px/1.7 var(--a-sans); }
#phone #view-chat .source-quote-body { padding: 12px 0; border-color: var(--a-hair); background: transparent; color: var(--a-ink); font: 300 15px/1.8 var(--a-serif); }
#phone #view-chat .source-quote-verification > div { border-color: var(--a-hair); color: var(--a-t2); background: transparent; }
#phone :is(.first-event-modal, .source-query-modal, .memory-journal-modal, .a-import-modal, .composer-popover, #view-login, #view-newchat) :is(button, a, input, textarea):focus-visible,
#phone .daily-companion-entry:focus-visible,
#phone .daily-life-chat:focus-visible,
#phone .experience-source > summary:focus-visible { outline: 2px solid var(--a-ink); outline-offset: 2px; }

/* 明确的相处状态；切换不是角色发言，也不属于关系事件。 */
#phone #view-chat .presence-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; padding: 14px 22px; border-bottom: 1px solid var(--a-hair); background: var(--a-sheet); color: var(--a-ink); font: 400 12px/1.5 var(--a-sans); }
#phone #view-chat .presence-bar[hidden], #phone #menu-presence-settings[hidden] { display: none; }
#phone .presence-actions { display: flex; gap: 12px; }
#phone .presence-actions button { min-height: 28px; padding: 0; border: 0; border-bottom: 1px solid currentColor; border-radius: 0; background: none; color: var(--a-ink); font: inherit; cursor: pointer; }
#phone .presence-actions button.presence-leave { color: var(--a-rust); }
#phone .presence-actions button:disabled { opacity: .4; cursor: not-allowed; }
#phone .presence-separator { display: flex; align-items: center; gap: 12px; margin: 24px 0; color: var(--a-t2); font: 400 11px/1.5 var(--a-sans); }
#phone .presence-separator::before, #phone .presence-separator::after { content: ''; height: 1px; flex: 1; background: var(--a-hair); }
#phone .presence-narration { color: var(--a-t2); }
#phone .presence-spoken, #phone .presence-scene-copy { color: var(--a-ink); }
#phone .presence-scene-copy { font: 300 16px/1.9 var(--a-serif); white-space: normal; }
#phone .a-presence-choice { display: block; width: 100%; margin: 8px 0; padding: 12px; border: 1px solid var(--a-hair2); border-radius: 0; background: transparent; color: var(--a-ink); font: inherit; cursor: pointer; }

/* SPEC-15 第一停点：聊天详情覆盖消息，不参与消息区高度分配。 */
#phone #view-chat #msg-list { min-height: 0; }
#phone #chat-space-region { position: relative; flex: 0 0 auto; z-index: 20; }
#phone #chat-status-toggle { display: flex; align-items: center; gap: 8px; width: 100%; height: 40px; padding: 0 22px; border: 0; border-bottom: 1px solid var(--a-hair); border-radius: 0; background: var(--a-bg); color: var(--a-t2); font: 400 11px/1.4 var(--a-sans); text-align: left; }
#phone #chat-status-copy { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#phone #chat-today-badge { flex: 0 0 auto; font: inherit; color: var(--a-rust); }
#phone #chat-status-toggle > i { flex: 0 0 auto; font-size: 14px; }
#phone #chat-status-toggle:focus-visible { outline: 2px solid var(--a-ink); outline-offset: -2px; }
#phone #chat-details-backdrop { position: absolute; top: 100%; right: 0; left: 0; height: 100dvh; background: var(--a-scrim); }
#phone #chat-details-panel { position: absolute; top: 100%; right: 0; left: 0; max-height: var(--chat-panel-height, 60dvh); overflow-y: auto; overscroll-behavior: contain; padding-bottom: 18px; border-bottom: 1px solid var(--a-hair2); background: var(--a-sheet); color: var(--a-ink); scrollbar-color: var(--a-hair2) transparent; }
#phone #chat-details-panel[hidden], #phone #chat-details-backdrop[hidden], #phone #chat-today-badge[hidden] { display: none; }
#phone #chat-details-panel .relationship-event-body { max-height: none; overflow: visible; }
#phone #chat-details-panel .conversation-state-fields { position: static; border: 0; padding-right: 0; padding-left: 0; }
#phone #view-chat .presence-bar { height: 36px; min-height: 36px; padding: 4px 22px; gap: 8px; }
#phone #view-chat .presence-bar > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#phone #view-chat .presence-actions { flex: 0 0 auto; white-space: nowrap; gap: 8px; }
#phone #view-chat #offline-notice, #phone #view-chat #connection-notice { flex: 0 0 auto; height: 28px; padding: 4px 22px !important; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 12px/19px var(--a-sans); }
#phone #msg-list #event-status-feed { display: block; padding: 0; max-height: none; overflow: visible; text-align: center; }
#phone #msg-list #event-status-feed[hidden] { display: none; }
#phone #msg-list .event-status-card { display: block; margin: 10px 0 20px; padding: 0; border: 0; background: transparent; color: var(--a-t2); font: 400 11px/1.6 var(--a-sans); }
#phone #msg-list .event-status-card > strong, #phone #msg-list .event-status-card > span { display: inline; font: inherit; color: inherit; }
#phone #msg-list .event-status-card > strong::after { content: ' · '; }
#phone #msg-list .event-status-card .experience-source { margin: 3px 0 0; }
#phone #view-chat.is-keyboard #chat-space-region,
#phone #view-chat.is-keyboard #presence-bar,
#phone #view-chat.is-keyboard #offline-notice,
#phone #view-chat.is-keyboard #connection-notice,
#phone #view-chat.is-keyboard #cost-preview,
#phone #view-chat.is-keyboard #cost-estimate,
#phone #view-chat.is-keyboard #new-message-indicator { display: none !important; }
#phone #view-chat.is-keyboard .topbar .name[data-chat-alert]:not([data-chat-alert=""])::after { content: attr(data-chat-alert); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: .04em; }

/* SPEC-15: local per-message cap lives in settings; the quote shares the send row. */
#phone #view-settings #cost-preview { padding: 0; font-size: inherit; }
#phone #max-points { width: 64px; min-height: 44px; flex: 0 0 64px; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-sheet); color: var(--a-ink); font: inherit; padding: 8px; }
#phone #view-chat .footer #cost-estimate { order: 2; flex: 0 0 auto; max-width: 72px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 400 11px/1.4 var(--a-sans); color: var(--a-t2); }
#phone #view-chat .footer #cost-estimate[hidden] { display: none; }
#phone #chat-details-panel .chat-context-strip { min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--a-hair2) transparent; padding-bottom: 8px; }
#phone #chat-details-panel .chat-context-strip::-webkit-scrollbar { display: block; height: 4px; }
#phone #chat-details-panel .milestone-strip { overflow: visible; flex-wrap: nowrap; }

/* 第三轮：单按钮提示与确认共用纸面弹窗，键盘焦点由 aDialog 管理。 */
#phone #a-dialog { position: absolute; inset: 0; z-index: 90; display: flex; align-items: center; justify-content: center; padding: 24px 14px max(18px, env(safe-area-inset-bottom)); background: var(--a-scrim); }
#phone #a-dialog[hidden] { display: none; }
#phone .a-dialog-panel { width: 100%; min-width: 0; max-height: 100%; padding: 24px 20px 20px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--a-hair2); border-radius: 0; background: var(--a-bg); color: var(--a-ink); box-shadow: none; scrollbar-color: var(--a-hair2) var(--a-bg); }
#phone .a-dialog-panel h2 { margin: 0 0 18px; color: var(--a-ink); font: 300 23px/1.6 var(--a-serif); letter-spacing: .06em; }
#phone .a-dialog-copy { color: var(--a-t2); font: 400 13px/1.9 var(--a-sans); overflow-wrap: anywhere; }
#phone .a-dialog-copy p { margin: 0 0 8px; }
#phone .a-dialog-copy p:last-child { margin-bottom: 0; }
#phone .a-dialog-actions { display: flex; gap: 10px; margin-top: 24px; }
#phone .a-dialog-actions button { flex: 1 1 0; min-width: 0; height: auto; min-height: 52px; padding: 12px 16px; justify-content: center; font: 400 13px/1.6 var(--a-sans); letter-spacing: .24em; }
#phone .a-dialog-actions button[hidden] { display: none; }
#phone .a-dialog-actions .is-danger { border: 1px solid var(--a-hair2); background: transparent; color: var(--a-rust); }

/* 用户偏好：减少动效 */
@media (prefers-reduced-motion: reduce) {
  /* 关掉本页所有过渡与动画；旧样式里有 !important，这里只能同样用 !important */
  #phone *, #phone *::before, #phone *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  /* This independent bar retains only its fade, never translation or height motion. */
  #phone .a-home-bar { transform: none; transition: opacity 180ms ease !important; }
}
/* Story-clock separators belong between turns, never inside a bubble. */
#phone #chat-message-content .story-time-separator {
  width: 100%;
  text-align: center;
  color: var(--a-t2);
  font-size: 11px;
  line-height: 1.5;
  margin: 14px 0;
}
