/* ============================================================
   JomGuide.my — 手机版 app 界面（只在 ≤767px 生效：<link media>）
   不是桌面版缩小：顶栏 + 底部 tab bar + 底部抽屉；
   内容像刷社交 app 的信息流 —— 每篇文章都是一条 post。
   style.css 的页面布局都包在 @media (min-width: 768px) 里，
   手机上的页面结构全部由这里接手；按钮、表单、正文排版等仍共用 style.css。
   ============================================================ */

:root {
  --gutter: 16px;
  --appbar-h: 56px;
  --tabbar-h: 60px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --header-h: calc(var(--appbar-h) + var(--safe-top));   /* 锚点跳转时让出顶栏 */
  --band: #F2F4F3;          /* 模块之间的灰色隔条；也是关于页的底色 */
  --card: #FFFFFF;
  --r-card: 18px;
  --r-media: 14px;
  --shadow-card: 0 1px 2px rgba(17, 24, 39, .05), 0 6px 18px -10px rgba(17, 24, 39, .16);
}

html { font-size: 15px; scroll-padding-bottom: calc(var(--tabbar-h) + var(--safe-bottom)); }   /* 手机字号整体小一号（rem 都跟着缩） */
.input, input, select, textarea { font-size: 16px; }   /* 输入框保持 16px，iOS 聚焦时才不会放大页面 */
body { background: #fff; padding-bottom: calc(var(--tabbar-h) + var(--safe-bottom)); -webkit-tap-highlight-color: transparent; }
body:has(.about-split), body:has(.contact-grid) { background: var(--band); }   /* 关于、联系：像设置页，灰底白卡片 */
.sheet-open, .sheet-open body { overflow: hidden; }   /* 抽屉打开时背景不滚 */
.btn:hover { transform: none; }                        /* 触屏没有悬停 */
.js .reveal { opacity: 1; transform: none; transition: none; animation: none; }   /* app 里内容直接出现 */
.site-header { display: none; }                       /* 桌面顶栏与抽屉菜单：手机改用 app 顶栏 + tab bar */

/* ---------- 页面切换：顶栏和 tab bar 不动，只有内容过场 ---------- */
@view-transition { navigation: auto; }
.appbar { view-transition-name: appbar; }
.tabbar { view-transition-name: tabbar; }
::view-transition-old(root) { animation: vt-out 120ms ease-in both; }
::view-transition-new(root) { animation: vt-in 240ms cubic-bezier(.2, .7, .2, 1) 60ms both; }
::view-transition-group(appbar) { animation-duration: 180ms; }
::view-transition-old(tabbar), ::view-transition-new(tabbar) { animation: none; }
@keyframes vt-out { to { opacity: 0; } }
@keyframes vt-in { from { opacity: 0; transform: translateY(10px); } }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}

/* ---------- 顶栏：一级页面 logo + 语言；二级页面 返回 + 标题 + 操作 ---------- */
.appbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 2px; height: calc(var(--appbar-h) + var(--safe-top)); padding: var(--safe-top) max(6px, env(safe-area-inset-right)) 0 max(6px, env(safe-area-inset-left)); background: rgba(255, 255, 255, .96); -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px); border-bottom: 1px solid transparent; transition: border-color .2s; }
.appbar.scrolled { border-bottom-color: var(--line); }
.appbar-brand { display: inline-flex; align-items: center; padding: 0 10px; }
.appbar-brand img { width: auto; height: 30px; }
.appbar-title { flex: 1; min-width: 0; padding: 0 4px; font-size: 1rem; font-weight: 800; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transform: translateY(4px); transition: opacity .2s, transform .2s var(--ease); }
.appbar.show-title .appbar-title { opacity: 1; transform: none; }   /* 页面自己的大标题滚出去后才显示 */
.appbar-actions { display: flex; align-items: center; gap: 2px; margin-left: auto; padding-right: 2px; }
.appbar-btn { display: grid; place-items: center; width: 44px; height: 44px; flex: none; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--ink); text-decoration: none; cursor: pointer; }
.appbar-btn:hover { color: var(--ink); }
.appbar-btn:active { background: var(--bg-mute); }
.appbar-btn .ic { width: 22px; height: 22px; }
.appbar-back .ic { width: 28px; height: 28px; }
.appbar-btn.copied { color: var(--green-deep); }
.appbar .lang { margin-right: 8px; }
.appbar-progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--green); transform: scaleX(0); transform-origin: 0 50%; }

/* ---------- 底部 tab bar ---------- */
.tabbar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: calc(var(--tabbar-h) + var(--safe-bottom)); padding: 0 env(safe-area-inset-right, 0px) var(--safe-bottom) env(safe-area-inset-left, 0px); background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px); border-top: 1px solid var(--line); }
.tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; color: var(--ink-3); font-size: .6875rem; font-weight: 800; line-height: 1.2; text-decoration: none; }
.tab:hover { color: var(--ink-3); }
.tab-ic { display: grid; place-items: center; width: 56px; height: 30px; border-radius: 999px; transition: background-color .2s; }
.tab .ic { width: 22px; height: 22px; }
.tab:active .tab-ic { background: var(--bg-mute); }
.tab[aria-current] { color: var(--green-ink); }
.tab[aria-current] .tab-ic { background: var(--green-tint); }
.tab[aria-current] .ic { stroke-width: 2.3; }

/* ---------- 底部抽屉（<dialog>）：分类、文章目录 ---------- */
.sheet { position: fixed; inset: auto 0 0; width: 100%; max-width: none; max-height: min(86svh, 720px); margin: 0; padding: 0; border: 0; border-radius: 22px 22px 0 0; background: var(--card); color: var(--ink); box-shadow: 0 -12px 40px -12px rgba(11, 31, 23, .35); overflow: hidden; }
.sheet[open] { display: flex; flex-direction: column; animation: sheet-up .32s var(--ease); }
.sheet::backdrop { background: rgba(11, 31, 23, .45); }
.sheet[open]::backdrop { animation: sheet-fade .32s ease; }
.sheet.is-closing { animation: sheet-down .22s ease-in forwards; }
.sheet.is-closing::backdrop { animation: sheet-fade-out .22s ease-in forwards; }
@keyframes sheet-up { from { transform: translateY(100%); } }
@keyframes sheet-down { to { transform: translateY(100%); } }
@keyframes sheet-fade { from { opacity: 0; } }
@keyframes sheet-fade-out { to { opacity: 0; } }
.sheet-head { position: relative; flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 24px 12px 10px 20px; touch-action: none; }
.sheet-head::before { content: ""; position: absolute; top: 8px; left: 50%; width: 38px; height: 5px; margin-left: -19px; border-radius: 3px; background: var(--line-2); }   /* 拖动把手：往下拉可关闭 */
.sheet-head h2 { font-size: 1.25rem; }
.sheet-close { display: grid; place-items: center; width: 36px; height: 36px; flex: none; padding: 0; border: 0; border-radius: 50%; background: var(--bg-mute); color: var(--ink-2); cursor: pointer; }
.sheet-close .ic { width: 18px; height: 18px; }
.sheet-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 16px calc(20px + var(--safe-bottom)); }
@media (prefers-reduced-motion: reduce) { .sheet[open], .sheet[open]::backdrop, .sheet.is-closing, .sheet.is-closing::backdrop { animation-duration: 1ms; } }

.sheet-group + .sheet-group { margin-top: 18px; }
.sheet-group-title { display: flex; align-items: center; gap: 6px; padding: 0 4px 8px; font-size: .875rem; font-weight: 800; color: var(--green-deep); }
.sheet-group-title small { margin-left: auto; color: var(--ink-3); font-size: .8125rem; font-weight: 700; }
.sheet-list { list-style: none; border-radius: 16px; background: var(--bg-soft); overflow: hidden; }
.sheet-list li + li { border-top: 1px solid var(--line); }
.sheet-list a { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; color: var(--ink); text-decoration: none; }
.sheet-list a:active { background: var(--bg-mute); }
.sheet-list a[aria-current] strong { color: var(--green-deep); }
.sheet-list > li > a > .ic { color: var(--ink-3); }
.sheet-thumb { display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border-radius: 12px; background: var(--green-tint); color: var(--green-deep); }
.sheet-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sheet-text { min-width: 0; }
.sheet-text strong { display: block; font-size: 1rem; line-height: 1.3; }
.sheet-text small { color: var(--ink-3); font-size: .8125rem; }
.sheet-all { display: flex; align-items: center; gap: 10px; margin-top: 18px; padding: 14px 16px; border-radius: 16px; background: var(--green); color: var(--ink); font-weight: 800; text-decoration: none; }
.sheet-all:hover { color: var(--ink); }
.sheet-all > .ic:last-child { margin-left: auto; }
.sheet-toc { list-style: none; counter-reset: toc; }
.sheet-toc li { counter-increment: toc; }
.sheet-toc a { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 6px; padding: 13px 4px; border-top: 1px solid var(--line); color: var(--ink-2); font-weight: 700; line-height: 1.45; text-decoration: none; }
.sheet-toc li:first-child a { border-top: 0; }
.sheet-toc a::before { content: counter(toc, decimal-leading-zero); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.sheet-toc a.active { color: var(--green-deep); }
.sheet-toc a.active::before { color: var(--green); }

/* ---------- 信息流里的模块：之间用灰色隔条分开 ---------- */
.section { padding-block: 16px 14px; }
.section-soft { background: none; }
.hero + .section, .section + .section, .section + .band, .band + .section, .post .related-sec, .site-footer { border-top: 8px solid var(--band); }
.sec-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 2px; }
.sec-head h2 { margin-top: 2px; font-size: 1.125rem; line-height: 1.35; }
.sec-eyebrow { font-size: .75rem; }
.section-head { margin-bottom: 12px; }
.section-head h2 { margin-top: 6px; font-size: 1.3rem; }
/* 「更多」只留一个圆形箭头；文字仍在，读屏照读 */
.sec-head > .link-arrow, .band .link-arrow { position: relative; flex: none; width: 34px; height: 34px; overflow: hidden; border-radius: 50%; background: var(--green-tint); color: transparent; white-space: nowrap; }
.sec-head > .link-arrow .ic, .band .link-arrow .ic { position: absolute; top: 8px; left: 8px; color: var(--green-deep); }
.sec-head > .link-arrow:hover .ic, .band .link-arrow:hover .ic { transform: none; }
.more-btn { width: 100%; margin-top: 12px; }
.col-side { display: none; }   /* 侧栏只有必读清单：手机上不需要 */

/* ---------- post：一行两条（像小红书）—— 图 → 标题 → 摘要 → 分类头像 + 日期 ---------- */
.stream, .spread-list { list-style: none; }
.col-main:has(> .stream), .month-group, .spread { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 10px; align-items: start; }
.col-main:has(> .stream) > :not(.feature-row, .stream), .month-group > .month { grid-column: 1 / -1; }
.stream, .spread-list { display: contents; }   /* 每条 post 直接排进两列的格子里，精选那条也一样 */
.stream-item, .feature-row, .spread-feature, .spread-list li { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "title" "text" "head"; align-content: start; min-width: 0; }
.stream-body, .feature-body, .spread-list li > div { display: contents; }
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) :is(.meta, .post-extras) { display: none; }   /* 两列放不下：阅读时间、#话题、分享都在文章页里 */
.stream-thumb, .feature-img, .spread-img, .spread-thumb { grid-area: media; display: block; aspect-ratio: var(--media-ratio); overflow: hidden; border-radius: 12px; background: var(--bg-mute); }
.stream-thumb img, .feature-img img, .spread-img img, .spread-thumb img { width: 100%; height: 100%; object-fit: cover; }
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) :is(h2, h3) { grid-area: title; margin-top: 8px; font-size: .9375rem; font-weight: 800; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }   /* 标题 2 行，摘要 3 行 */
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) :is(h2, h3) a { color: var(--ink); text-decoration: none; }
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; }   /* 整张卡可点 */
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) .excerpt { grid-area: text; margin-top: 4px; font-size: .8125rem; line-height: 1.5; -webkit-line-clamp: 3; }
:is(.stream-item, .feature-row, .spread-feature, .spread-list li) .kicker { grid-area: head; margin-top: 8px; }
.feature-row .badge-featured { position: relative; z-index: 2; grid-area: media; align-self: start; justify-self: start; margin: 8px 0 0 8px; padding: 2px 8px; font-size: .6875rem; }
/* 头像行：分类像发帖的账号，右边是日期 */
.kicker { flex-wrap: nowrap; gap: 6px; color: var(--ink-3); font-size: .75rem; }
.kicker .sep { display: none; }
.kicker time { flex: none; margin-left: auto; }
.kicker .cat-label { gap: 6px; min-width: 0; overflow: hidden; color: var(--ink-2); font-size: .75rem; white-space: nowrap; }
.kicker .cat-label .ic { width: 20px; height: 20px; padding: 4px; border-radius: 50%; background: var(--green-tint); color: var(--green-deep); }
.month-group + .month-group { margin-top: 8px; }

/* 横滑卡片：首页搞钱、相关文章 —— 和两列的 post 同一个样子 */
.card-rail { list-style: none; display: flex; gap: 10px; margin: 12px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter) 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
.card-rail::-webkit-scrollbar { display: none; }
.card { position: relative; flex: 0 0 44%; display: flex; flex-direction: column; min-width: 0; scroll-snap-align: start; }
.card-thumb { display: block; aspect-ratio: var(--media-ratio); overflow: hidden; border-radius: 12px; background: var(--bg-mute); }
.card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.card h3 { order: 2; margin-top: 8px; font-size: .9375rem; font-weight: 800; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.card h3 a { color: var(--ink); text-decoration: none; }
.card h3 a::after { content: ""; position: absolute; inset: 0; }
.card .kicker { order: 3; margin-top: 8px; }
.card .meta { display: none; }

/* ---------- 首页顶部：标语 + 搜索 + 热门话题 + 分组圆圈（像 story） ---------- */
.hero { position: relative; background: none; color: var(--ink); }
.hero-bg, .hero::after { display: none; }   /* 手机不下载 hero 照片（index.blade.php 的空 <source>） */
.hero-inner { display: grid; gap: 18px; padding-top: 12px; padding-bottom: 16px; }
.hero-copy { min-width: 0; }
.hero-pill { display: flex; align-items: center; gap: 8px; width: 100%; padding: 4px 10px 4px 4px; border: 1px solid var(--line); border-radius: 999px; background: var(--bg-soft); color: var(--ink); font-size: .8125rem; text-decoration: none; }
.hero-pill:hover { color: var(--ink); }
.pill-tag { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 999px; background: var(--green); color: var(--ink); font-size: .75rem; font-weight: 800; }
.pill-text { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 700; }
.hero-pill > .ic { flex: none; color: var(--green-deep); }
.hero h1 { margin-top: 14px; font-size: 1.375rem; line-height: 1.28; letter-spacing: -.02em; }
.hero h1 .hl { color: var(--green-deep); }
.hero-points { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 10px; color: var(--ink-2); font-size: .8125rem; font-weight: 700; }   /* 每篇指南给你什么 */
.hero-points li { display: inline-flex; align-items: center; gap: 5px; }
.hero-points .ic { width: 15px; height: 15px; color: var(--green-deep); }
.hero-search { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 4px 4px 4px 14px; border-radius: 14px; background: var(--bg-mute); color: var(--ink); }
.hero-search:focus-within { background: #fff; box-shadow: inset 0 0 0 1.5px var(--green-deep); outline: 3px solid rgba(16, 185, 129, .25); outline-offset: 0; }
.hero-search > .ic { color: var(--ink-3); }
.hero-search input { flex: 1; min-width: 0; height: 42px; border: 0; outline: 0; background: transparent; font: inherit; font-size: 16px; color: var(--ink); text-overflow: ellipsis; }
.hero-search input::placeholder { color: var(--ink-3); }
.hero-search .btn { width: 40px; min-height: 40px; padding: 0; border-radius: 11px; }
.hero-search .btn-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hero-hot { display: flex; align-items: center; gap: 8px; margin: 12px -16px 0; padding: 0 16px; overflow-x: auto; color: var(--ink-3); font-size: .8125rem; scrollbar-width: none; }
.hero-hot::-webkit-scrollbar { display: none; }
.hero-hot > span { flex: none; font-weight: 700; }
.hot-chip { flex: none; padding: 5px 12px; border-radius: 999px; background: var(--green-tint); color: var(--green-ink); font-weight: 700; text-decoration: none; }
.hot-chip:hover { color: var(--green-ink); }
.hero-cats { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hero-cat { display: grid; justify-items: center; gap: 8px; padding: 4px 0; color: var(--ink); text-align: center; text-decoration: none; }
.hero-cat:hover { color: var(--ink); }
.hero-cat .icon-badge { width: 56px; height: 56px; border-radius: 50%; background: var(--green-tint); color: var(--green-deep); box-shadow: 0 0 0 2.5px #fff, 0 0 0 4.5px var(--green); transition: transform .12s ease-out; }   /* 绿色圈，像 story */
.hero-cat .icon-badge .ic { width: 24px; height: 24px; }
.hero-cat:active .icon-badge { transform: scale(.94); }
.hero-cat strong { display: block; font-size: .8125rem; line-height: 1.25; }
.hero-cat small { display: none; }

/* ---------- 首页速递：横滑的图卡 —— 图在上（统一比例），日期与标题在下 ---------- */
.band { position: relative; padding: 16px 0 14px; background: none; color: var(--ink); }
.band > img, .band::after { display: none; }
.band-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "eyebrow link" "title link" "lead lead" "stories stories" "follow follow"; column-gap: 12px; }
.band-grid > div { display: contents; }
.band .sec-eyebrow { grid-area: eyebrow; color: var(--green-deep); }
.band h2 { grid-area: title; margin-top: 2px; font-size: 1.125rem; line-height: 1.35; }
.band .lead { grid-area: lead; margin-top: 6px; color: var(--ink-2); font-size: .9375rem; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.band .link-arrow { grid-area: link; align-self: center; }
.digest-rows { grid-area: stories; list-style: none; display: flex; gap: 10px; margin: 14px calc(-1 * var(--gutter)) 0; padding: 0 var(--gutter) 4px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); scrollbar-width: none; }
.digest-rows::-webkit-scrollbar { display: none; }
.digest-row { position: relative; flex: 0 0 60%; display: flex; flex-direction: column; min-width: 0; scroll-snap-align: start; }
.digest-thumb { position: relative; aspect-ratio: var(--media-ratio); overflow: hidden; border-radius: 12px; background: var(--bg-mute); }
.digest-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.digest-issue { position: absolute; top: 10px; left: 10px; z-index: 1; padding: 2px 9px; border-radius: 999px; background: rgba(11, 31, 23, .8); color: #fff; font-size: .75rem; font-weight: 800; line-height: 1.6; }
.digest-issue.is-new { background: var(--green); color: var(--ink); }
.digest-body { padding-top: 8px; }
.digest-meta time { color: var(--green-deep); font-size: .75rem; font-weight: 800; }
.digest-row h3 { margin-top: 2px; font-size: .9375rem; font-weight: 800; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.digest-row h3 a { color: var(--ink); text-decoration: none; }
.digest-row h3 a::after { content: ""; position: absolute; inset: 0; }
.digest-row .excerpt { display: none; }
.band .follow { grid-area: follow; gap: 8px; margin-top: 14px; }
.band .follow-btn { min-height: 36px; padding: 0 14px; border-color: var(--line-2); color: var(--ink); font-size: .875rem; }
.band .follow-btn:hover { background: none; border-color: var(--line-2); color: var(--ink); }

/* ---------- 首页搞懂：同样一行两条（列表那几条在手机上也配图） ---------- */
.spread { margin-top: 12px; }
.spread-list li::before { content: none; }

/* ---------- 页头 ---------- */
/* 关于：照片横幅卡 */
.page-head { position: relative; isolation: isolate; display: grid; align-items: end; min-height: 172px; margin: 12px var(--gutter) 0; padding: 18px 16px 16px; overflow: hidden; border-radius: 22px; background: var(--deep); color: #fff; }
.page-head > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.page-head::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11, 31, 23, .2) 0%, rgba(11, 31, 23, .88) 100%); }
.page-head .container { padding: 0; }
.page-head nav { display: none; }   /* 面包屑：手机用顶栏「返回」 */
.page-head h1 { font-size: 1.75rem; line-height: 1.2; }
.page-head .lead { margin-top: 6px; color: rgba(255, 255, 255, .86); font-size: .9375rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* 分类页：像账号主页 —— 圆形头像、名称、分组与篇数、简介 */
.page-head:has(.page-count) { grid-template-columns: 68px minmax(0, 1fr); column-gap: 14px; align-items: center; min-height: 0; margin: 0; padding: 16px var(--gutter) 4px; overflow: visible; border-radius: 0; background: none; color: var(--ink); isolation: auto; }
.page-head:has(.page-count):not(:has(> img)) { grid-template-columns: minmax(0, 1fr); }
.page-head:has(.page-count)::after { content: none; }
.page-head:has(.page-count) > img { position: static; z-index: auto; grid-column: 1; grid-row: 1 / span 2; width: 68px; height: 68px; border-radius: 50%; box-shadow: 0 0 0 2px #fff, 0 0 0 3.5px var(--green); }
.page-head:has(.page-count) .container { display: contents; }
.page-head:has(.page-count) h1 { grid-column: -2 / -1; grid-row: 1; align-self: end; font-size: 1.5rem; }
.page-head:has(.page-count) .page-count { grid-column: -2 / -1; grid-row: 2; align-self: start; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: 4px; color: var(--ink-3); font-size: .8125rem; }
.page-head:has(.page-count) .chip-dark { background: var(--green-tint); color: var(--green-ink); -webkit-backdrop-filter: none; backdrop-filter: none; }
.page-head:has(.page-count) .lead { grid-column: 1 / -1; grid-row: 3; margin-top: 12px; color: var(--ink-2); -webkit-line-clamp: 4; }
/* 搜索页：不要照片，iOS 式大标题 */
.page-head-plain { min-height: 0; margin: 0; padding: 14px var(--gutter) 2px; border-radius: 0; background: none; color: var(--ink); }
.page-head-plain > img, .page-head-plain::after { display: none; }
.page-head-plain h1 { font-size: 2rem; }
.page-head-plain .lead { color: var(--ink-3); }

/* 分类页：同组分类像主页上的分页标签（例：理财 | 财富） */
.seg { display: flex; gap: 24px; margin-top: 8px; padding: 0 var(--gutter); border-bottom: 1px solid var(--line); }
.seg a { margin-bottom: -1px; padding: 10px 2px 9px; border-bottom: 2.5px solid transparent; color: var(--ink-3); font-size: .9375rem; font-weight: 800; text-decoration: none; }
.seg a[aria-current] { border-bottom-color: var(--green); color: var(--ink); }

/* ---------- 筛选：搜索框 + 横滑 chips ---------- */
.topic-bar { display: grid; gap: 10px; margin-bottom: 4px; }
.filter-search .input { min-height: 44px; border: 0; border-radius: 14px; background: var(--bg-mute); }
.filter-search .input:focus { background: #fff; box-shadow: inset 0 0 0 1.5px var(--green-deep); }
.chip-row { display: flex; gap: 8px; margin-inline: calc(-1 * var(--gutter)); padding: 0 var(--gutter) 2px; overflow-x: auto; scrollbar-width: none; }
.chip-row::-webkit-scrollbar { display: none; }
.chip-row-label { display: none; }   /* 分组本身有 aria-label */
.filter-chip { flex: none; min-height: 34px; padding: 5px 14px; border: 0; background: var(--bg-mute); color: var(--ink-2); white-space: nowrap; }
.filter-status { font-size: .8125rem; }
.month { position: sticky; top: var(--header-h); z-index: 5; margin: 0 calc(-1 * var(--gutter)); padding: 12px var(--gutter) 8px; background: #fff; color: var(--ink-3); font-size: .8125rem; font-weight: 800; letter-spacing: .04em; }   /* 月份像 app 列表的分组标题一样吸顶 */
.pager { justify-content: center; margin-top: 16px; padding-top: 0; border-top: 0; }
.pager-btn { min-width: 40px; height: 40px; }
.pager-step { width: 40px; padding: 0; }
.pager-txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pager .more-btn { margin-top: 0; }   /* 手机：全部文章用「加载更多」，不翻页 */

/* ---------- 文章页：读一条 post ---------- */
.post-head { padding-top: 14px; padding-bottom: 16px; }
.post-head nav { display: none; }   /* 面包屑：手机用顶栏「返回」 */
.post-head .kicker .cat-label { color: var(--ink); font-size: .875rem; }
.post-head .kicker .cat-label .ic { width: 28px; height: 28px; padding: 6px; }
.post-title { margin-top: 12px; font-size: 1.625rem; line-height: 1.25; letter-spacing: -.015em; }
.post-dek { margin-top: 10px; color: var(--ink-2); font-size: 1rem; line-height: 1.6; }
.byline { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.avatar { width: 38px; height: 38px; flex: none; padding: 5px; border-radius: 50%; background: var(--green-tint); }
.byline-text { display: grid; gap: 1px; min-width: 0; color: var(--ink-3); font-size: .8125rem; }
.byline-text strong { color: var(--ink); font-size: .875rem; }
.byline-dates { display: flex; flex-wrap: wrap; gap: 0 10px; }
.share-icons { display: none; }   /* 分享在顶栏 */
.post-cover { padding: 0; }
.post-cover img { width: 100%; aspect-ratio: var(--media-ratio); object-fit: cover; background: var(--bg-mute); }
.post-grid { padding-block: 18px 28px; }
.post-aside { display: none; }     /* 目录在顶栏「目录」抽屉里 */
.post-source { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 16px; padding: 6px 12px; border-radius: 999px; background: var(--bg-soft); color: var(--ink-2); font-size: .8125rem; font-weight: 700; }
.table-wrap table { min-width: 600px; }
.step, .digest-item { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
.step-num, .digest-num { width: 38px; height: 38px; font-size: .95rem; }
.digest-num { border-radius: 10px; }
.post-cta:not(:empty) { margin-top: 28px; }
.post-end { margin-top: 28px; gap: 18px; }
.post-tags { gap: 4px 12px; }
.post-tags > span { display: none; }   /* 「话题」标签名省掉，直接是 #话题 */
.post-tags .tag { padding: 0; border: 0; background: none; color: var(--green-deep); font-size: .9375rem; }
.post-nav { grid-template-columns: minmax(0, 1fr); }
.post-nav .next { text-align: left; }
.post-nav .next small { justify-content: flex-start; }
.related-sec { padding-block: 16px 20px; }

/* ---------- CTA 块、表单 ---------- */
.cta-block { padding: 20px 16px; }
.lead-card { gap: 18px; padding: 20px 16px; }
.lead-form { padding: 16px; }
.form-grid { grid-template-columns: minmax(0, 1fr); }

/* ---------- 关于：像 app 的设置页，一组组白卡片列表 ---------- */
.about-split, .contact-grid { display: grid; gap: 14px; }
.about-copy { padding: 18px 16px; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-card); }
.about-copy h2, .contact-grid h2 { margin-top: 8px; font-size: 1.3rem; }
.about-copy p:not(.eyebrow) { margin-top: 10px; color: var(--ink-2); }
.quote-media { position: relative; }
.quote-media img { width: 100%; aspect-ratio: var(--media-ratio); object-fit: cover; border-radius: var(--r-card); }
.quote-card { margin-top: 10px; padding: 14px 16px; border-radius: 14px; background: rgba(11, 31, 23, .92); color: #fff; }
.quote-card blockquote { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.5; }
.quote-card cite { display: block; margin-top: 4px; color: rgba(255, 255, 255, .72); font-size: .75rem; font-style: normal; }
.contact-card .icon-badge { width: 40px; height: 40px; border-radius: 12px; }
.contact-card strong { display: block; }
.contact-card span { color: var(--ink-2); font-size: .875rem; }
.contact-grid .lead { margin-top: 8px; font-size: .9375rem; }
.contact-cards { display: grid; margin-top: 12px; overflow: hidden; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-card); }
.contact-card { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-top: 1px solid var(--line); }
.contact-card:first-child { border-top: 0; }
.contact-card a { word-break: break-all; }
.form-card { padding: 18px 16px; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-card); }
.form-card h3 { font-size: 1.15rem; }
.about-faq .section-head { margin-bottom: 12px; }
.faq-more { margin-top: 8px; color: var(--ink-2); font-size: .875rem; }
.faq-list { padding: 0 16px; border-radius: var(--r-card); background: var(--card); box-shadow: var(--shadow-card); }   /* 常见问题：一张白卡片 */
.faq-list .faq:first-child { border-top: 0; }
.faq-list .faq:last-of-type { border-bottom: 0; }
.faq summary { font-size: .9375rem; }

/* ---------- 页脚：一小段免责声明 + 版权（导航都在 tab bar 和抽屉里） ---------- */
.site-footer { padding: 20px 0 18px; color: var(--ink-3); font-size: .8125rem; }
.foot-grid { display: grid; gap: 14px; }
.foot-grid > nav { display: none; }
.foot-brand { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 1rem; font-weight: 800; text-decoration: none; }
.foot-brand img { width: 28px; height: 28px; }
.foot-brand .dot { color: var(--orange); }
.site-footer p { font-size: .8125rem; line-height: 1.6; }
.foot-tagline { margin-top: 8px; }
.foot-fine { margin-top: 8px; }
.site-footer h2 { margin-bottom: 4px; color: var(--ink-2); font-size: .8125rem; }
.site-footer a { color: var(--ink-2); }
.foot-bottom { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); font-size: .75rem; }
.foot-bottom a { font-weight: 700; }

/* ---------- 错误页 ---------- */
.error-page { padding-block: 36px 24px; }
.error-code { font-size: 4.5rem; }
.error-page h1 { font-size: 1.5rem; }
.error-page .btn-row .btn { flex: 1 1 100%; }
.error-search .btn { padding: 0 16px; }
.error-page + .section { border-top: 8px solid var(--band); }
