@import url('./scrollbars.css');

:root {
  --page-paper:#F5F0E6;
  --page-ink:#38342F;
  --page-charcoal:#292723;
  --page-on-dark:#F3EEE5;
  --page-muted:#827567;
  --page-accent:#B44335;
  --page-accent-on-dark:#D57B69;
  --page-link:#805F43;
  --page-rule:#DED6CA;
  --page-play-shade:linear-gradient(rgba(41,39,35,.14),rgba(41,39,35,.04) 24%,rgba(41,39,35,.2) 45%,rgba(41,39,35,.84) 82%,#292723 100%);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
  color: var(--page-ink);
  background: #ece7df;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 3px solid #be382e; outline-offset: 4px; }
.app { max-width: 480px; margin: auto; height: 100dvh; background: var(--page-paper); display: flex; flex-direction: column; }
/* 微信原生导航栏之外的可用区域；旧版 WebView 不依赖 dvh。 */
.wechat-browser, .wechat-browser body { height: 100%; overflow: hidden; }
.wechat-browser .app { width: 100%; max-width: none; height: var(--wechat-viewport-height, 100vh); }
.wechat-browser .app > header { display: none; }
header { flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; padding: calc(20px + env(safe-area-inset-top)) 24px 20px; }
.brand { font-size: 20px; font-weight: 700; }
header span { font-size: 12px; color: #857569; }
main { flex: 1; min-height: 0; overflow-y: auto; padding: 24px 24px 36px; }
.route-loading { min-height: 100%; margin: 0; display: grid; place-items: center; font-size: 13px; }
.eyebrow { color: #bb382e; font-size: 13px; letter-spacing: 3px; }
h1 { max-width: 340px; font-size: clamp(28px, 8vw, 38px); line-height: 1.45; margin: 24px 0; }
.description { color: #776758; line-height: 1.9; }
.discussion { background: #f2e8da; padding: 20px; border-radius: 18px; margin: 36px 0 24px; }
h2 { font-size: 16px; margin: 0 0 12px; }
.discussion p { margin: 0; line-height: 1.8; }
.prototype-link { display: flex; justify-content: space-between; align-items: center; min-height: 52px; padding: 14px 18px; background: #bd392f; color: #fff; border-radius: 12px; }
.note { font-size: 12px; line-height: 1.8; color: #857569; margin-top: 18px; }
.me-mode header { display: none; }
.me-mode main { padding: calc(32px + env(safe-area-inset-top)) 20px 24px; }
.me-welcome { margin-bottom: 32px; }
.me-location { margin: 0 0 10px; font-size: 13px; line-height: 1.8; letter-spacing: .06em; color: #bb382e; }
.me-greeting { max-width: 32em; font-size: 12px; line-height: 1.9; color: #918477; margin: 0 0 28px; }
.me-page .me-place-copy { max-width: none; font-size: clamp(18px, 5.5vw, 22px); line-height: 1.6; font-weight: 500; color: #302a24; margin: 0; overflow-wrap: break-word; text-wrap: pretty; }
.me-place-copy > span { display: block; }
.me-page .me-place-copy.is-pending { font-size: 14px; font-weight: 400; color: #918477; }
.me-login-slot { min-width: 0; }
.me-page--guest { min-height: 100%; display: flex; flex-direction: column; }
.me-page--guest > .me-welcome, .me-page--guest > .me-login-slot { flex-shrink: 0; }
.me-fingerprint { margin: auto 0 0; padding-top: 28px; font-size: 10px; line-height: 1.8; color: #a1968a; text-align: center; overflow-wrap: anywhere; }
.me-login-status { padding: 28px 16px; border: 1px solid #e7ddcf; border-radius: 16px; color: #857569; text-align: center; font-size: 13px; }
.me-login-retry { width: 100%; min-height: 44px; border: 0; border-radius: 10px; background: #bd392f; color: white; font: inherit; }
.me-login-slot uniplat-user-login { display: block; --uniplat-user-login-width: 100%; --uniplat-user-login-primary: #bd392f; --uniplat-user-login-text: #302a24; --uniplat-user-login-muted: #857569; --uniplat-user-login-background: #fffaf2; --uniplat-user-login-input-background: #fffdf8; --uniplat-user-login-font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif; }
/* 使用组件公开的 CSS Parts；不修改 Shadow DOM 或复制登录表单。 */
.me-login-slot uniplat-user-login::part(shell) { border-color: #e7ddcf; border-radius: 14px; box-shadow: none; }
.me-login-slot uniplat-user-login::part(header) { min-height: 0; padding: 18px 18px 8px; background: transparent; border-bottom: 0; }
.me-login-slot uniplat-user-login::part(header-title) { font-size: 14px; line-height: 1.6; font-weight: 600; }
.me-login-slot uniplat-user-login::part(form) { padding: 12px 18px 20px; }
.me-login-slot uniplat-user-login::part(tabs) { gap: 16px; border-bottom-color: #e7ddcf; }
.me-login-slot uniplat-user-login::part(tab) { font-size: 12px; }
.me-login-slot uniplat-user-login::part(method-panel) { padding-top: 16px; }
.me-login-slot uniplat-user-login::part(agreement) { font-size: 11px; line-height: 1.8; }
.me-session { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px; border: 1px solid #e7ddcf; border-radius: 16px; }
.me-session span { color: #44664f; font-size: 14px; }
.me-session button { border: 0; background: transparent; color: #bd392f; min-height: 44px; font: inherit; font-size: 13px; }
.notifications-mode { background: #fffaf2 url("../assets/summon-background.svg") center / cover no-repeat; }
.notifications-mode header { display: none; }
.notifications-mode main { padding: env(safe-area-inset-top) 0 0; overflow: hidden; }
.notification-page { height: 100%; min-height: 0; display: flex; flex-direction: column; }
.notification-slot { flex: 1; min-height: 0; }
.notification-tools { background: #fffaf280; backdrop-filter: blur(10px); display: flex; align-items: center; justify-content: flex-end; gap: 8px; border-bottom: 1px solid #e7ddcf; }
.notification-tools button { min-height: 44px; padding: 8px 16px; flex-shrink: 0; border: 0; background: transparent; color: #bd392f; font: inherit; font-size: 13px; }
.notification-tools button:disabled { opacity: .45; }
.notification-status { margin: 0; padding: 12px 16px; font-size: 12px; color: #857569; }
.notification-status:empty { display: none; }
.notification-slot > .me-login-retry { width: calc(100% - 32px); margin: 0 16px; }
.notification-gate { padding: 36px 24px; }
.notification-gate p:not(.eyebrow) { color: #857569; font-size: 14px; line-height: 1.8; }
.notification-gate .prototype-link { margin-top: 24px; }
.notification-slot uniplat-notification-center { height: 100%; width: 100%; --uniplat-notification-primary: #bd392f; --uniplat-notification-background: transparent; --uniplat-notification-surface: #fffaf2c9; --uniplat-notification-text: #302a24; --uniplat-notification-muted: #857569; --uniplat-notification-border: #e7ddcf; --uniplat-notification-font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif; }
.notifications-mode nav { background: transparent; backdrop-filter: none; border-top: 0; }
nav { flex-shrink: 0; display: flex; background: var(--page-paper); border-top: 1px solid var(--page-rule); padding: 8px 8px calc(8px + env(safe-area-inset-bottom)); }
nav a { flex: 1; min-height: 48px; display: grid; place-items: center; font-size: 14px; color: var(--page-muted); border-radius: 10px; }
nav a[aria-current] { color: var(--page-accent); background: #f7e9df; font-weight: 700; }

/* 播放区铺满视口，Tab 叠在内容上；文字和操作为底部导航留出空间。 */
.feed-mode { position: relative; --feed-nav-space: calc(64px + env(safe-area-inset-bottom)); background: var(--page-charcoal); color: var(--page-on-dark); }
.feed-mode header { display: none; }
.feed-mode main { overflow: hidden; padding: 0; }
.feed-mode nav { position: absolute; inset: auto 0 0; z-index: 2; background: transparent; border: 0; }
.feed-mode nav a { color: #f3eee5b3; border-radius: 0; }
.feed-mode nav a[aria-current] { color: var(--page-accent-on-dark); background: transparent; }
.feed-mode nav a:focus-visible { outline-color: #fff; outline-offset: -4px; }
.app.map-mode { position: relative; width: 100%; max-width: none; background: #303f52; color: #fff; }
:root:has(.map-mode) { background: #303f52; }
.map-mode header { display: none; }
.map-mode main { overflow: hidden; padding: 0; }
.map-mode nav { position: absolute; inset: auto auto 0 50%; width: 100%; max-width: 480px; transform: translateX(-50%); z-index: 2; border: 0; background: linear-gradient(transparent, #071322dc); }
.map-mode nav a { color: #fffc; border-radius: 0; text-shadow: 0 1px 4px #000; }
.map-mode nav a[aria-current] { color: #fff; background: transparent; }
.map-mode nav a:focus-visible { outline-color: #fff; outline-offset: -4px; }
.map-shell { height: 100%; position: relative; overflow: hidden; }
.map-frame { display: block; width: 100%; height: 100%; border: 0; }
.map-loading { position: absolute; left: 24px; right: 24px; top: 45%; padding: 14px; border-radius: 10px; background: #10221deb; text-align: center; font-size: 13px; pointer-events: none; }
.map-reload { position: absolute; top: 54%; left: 20%; width: 60%; min-height: 48px; border: 1px solid #fff6; border-radius: 8px; color: #fff; background: #21382fea; }
.feed-shell { position: relative; height: 100%; overflow: hidden; isolation: isolate; }
.feed-stage { position: absolute; inset: 0; touch-action: none; user-select: none; }
.feed-action-layer { position:absolute; inset:0; pointer-events:none; }
.feed-action-layer .feed-actions { pointer-events:auto; }
.feed-track { height: 100%; display: flex; flex-direction: column; will-change: transform; }
.feed-card { flex: 0 0 100%; height: 100%; position: relative; overflow: hidden; background: var(--page-charcoal); }
.feed-image { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.food-media { position: absolute; inset: 0; }
.feed-art { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(ellipse at 85% 15%, #a7bc8660, transparent 65%), linear-gradient(150deg, #46634d, #203f36 80%); }
.theme-grain .feed-art { background: radial-gradient(ellipse at 70% 15%, #e5c98870, transparent 60%), linear-gradient(150deg, #b59358, #454d34 80%); }
.theme-road .feed-art { background: radial-gradient(ellipse at 20% 10%, #c1a08c65, transparent 65%), linear-gradient(150deg, #83624e, #323d38 80%); }
.theme-river .feed-art { background: radial-gradient(ellipse at 80% 20%, #86b7c66b, transparent 65%), linear-gradient(150deg, #417c88, #163e50 80%); }
.theme-scenery .feed-art { background: radial-gradient(ellipse at 25% 10%, #d9c39a60, transparent 65%), linear-gradient(160deg, #6c866b, #263c39 80%); }
.theme-landmark .feed-art { background: radial-gradient(ellipse at 80% 10%, #c9a68470, transparent 65%), linear-gradient(160deg, #97644b, #48362f 80%); }
.visual-word { position: absolute; top: 15%; left: 11%; font-family: "Songti SC", "Noto Serif CJK SC", serif; font-size: clamp(150px, 56vw, 270px); color: #ffeed045; line-height: 1; font-weight: 300; }
.art-ring { position: absolute; width: 420px; height: 420px; border: 1px solid #f5e0b626; border-radius: 50%; top: 13%; left: 34%; box-shadow: 0 0 0 34px #f5e0b608, 0 0 0 70px #f5e0b608; }
.art-line { position: absolute; width: 250px; height: 140%; border: 1px solid #f5e0b626; border-radius: 50%; top: -10%; left: 42%; transform: rotate(32deg); }
.theme-river .art-line { width: 90px; border-width: 24px; border-color: #c3e0d312; transform: rotate(-26deg); }
.feed-shade { position: absolute; inset: 0; background: var(--page-play-shade); pointer-events: none; }
.feed-heading { position: absolute; left: 24px; top: calc(90px + env(safe-area-inset-top)); display: flex; gap: 10px; align-items: center; }
.feed-type { border: 1px solid #fff5; padding: 5px 10px; border-radius: 5px; font-size: 12px; letter-spacing: 2px; background: #0001; }
.feed-location { font-size: 11px; color: #fff9; }
.feed-body { position: absolute; left: 24px; right: 70px; bottom: calc(91px + var(--feed-nav-space)); }
.feed-kicker { font-size: 12px; line-height: 1.7; color: #e7dbc0; margin: 0 0 12px; }
.feed-body h1 { font-size: clamp(27px, 8vw, 36px); line-height: 1.35; margin: 0 0 14px; color: var(--page-on-dark); text-wrap: balance; }
.feed-summary { font-size: 13px; line-height: 1.9; color: #f3eee5c7; margin: 0; max-width: 320px; }
.product-id { font-size: 10px; color: #e7dbc0; overflow-wrap: anywhere; }
.feed-actions { position: absolute; right: 12px; bottom: calc(120px + var(--feed-nav-space)); display: flex; flex-direction: column; gap: 10px; }
.feed-action { background: none; border: 0; min-width: 48px; min-height: 54px; padding: 4px 0; color: var(--page-on-dark); display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 11px; text-shadow: 0 1px 3px #29272366; }
.feed-action svg { width: 28px; height: 28px; filter: none; }
.feed-action small { font-size: inherit; }
.feed-chat-action img { width: 38px; height: 38px; border: 1.5px solid #fff9; border-radius: 50%; box-shadow: 0 2px 8px #0003; }
.feed-chat-action { margin-bottom: 4px; }
.feed-action[data-feed-action="like"] svg { fill: currentColor; }
.feed-action[data-feed-action="like"].selected { color: var(--page-accent-on-dark); }
.feed-action[data-feed-action="save"].selected { color: var(--page-accent-on-dark); }
.feed-action[data-feed-action="save"].selected svg { fill: currentColor; }
.feed-media-note { position: absolute; left: 24px; bottom: calc(65px + var(--feed-nav-space)); font-size: 9px; color: #fff6; }
.feed-status:not(:empty) { position: absolute; left: 24px; right: 24px; top: 50%; padding: 14px; border-radius: 10px; background: #10221deb; color: #fff; font-size: 13px; text-align: center; pointer-events: none; }
.feed-retry { position: absolute; top: 35%; left: 20%; width: 60%; min-height: 48px; border: 1px solid #fff6; border-radius: 8px; color: #fff; background: #21382fea; }
[hidden] { display: none !important; }
button { cursor: pointer; }
button:focus-visible { outline: 3px solid #ffc977; outline-offset: 3px; }
.feed-dialog { width: min(440px, calc(100% - 32px)); max-height: 75dvh; padding: 26px; border: 0; border-radius: 20px; background: #fffaf2; color: #302a24; overflow-y: auto; }
.feed-dialog::backdrop { background: #091a12b3; }
.detail-content h2 { font-size: 25px; line-height: 1.4; }
.detail-content > p:not(.eyebrow) { line-height: 1.9; color: #776758; font-size: 14px; }
.feed-dialog > button { width: 100%; min-height: 48px; margin-top: 18px; border: 0; border-radius: 8px; background: #bd392f; color: #fff; font: inherit; }
.feed-dialog.feed-sheet { position: fixed; inset: auto 0 var(--feed-nav-space); margin: 0 auto; width: min(100%, 480px); max-height: calc(100dvh - var(--feed-nav-space) - 70px); border-radius: 22px 22px 0 0; padding: 24px; }
.panel-page-name { font-size: 13px !important; margin: 8px 0 18px; }
.detail-content .panel-note { font-size: 11px !important; margin: 14px 0 0; color: #857569; }
.feed-comments { max-height: 27dvh; overflow-y: auto; overscroll-behavior: contain; }
.feed-comment { border-bottom: 1px solid #e7ddcf; padding: 14px 0; }
.feed-comment b { font-size: 13px; }
.feed-comment time { margin-left: 10px; color: #857569; font-size: 10px; }
.feed-comment p { margin: 8px 0 0; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; white-space: pre-wrap; }
.comments-empty { text-align: center; color: #857569; font-size: 13px; padding: 12px 0; }
#feed-comment-form { margin-top: 16px; }
.feed-dialog label { display: block; font-size: 13px; margin: 8px 0; }
.feed-dialog textarea,.feed-dialog input { width: 100%; padding: 12px; border: 1px solid #d9cdbb; border-radius: 8px; background: #fffdf8; color: #302a24; font: inherit; font-size: 16px; box-sizing: border-box; }
.feed-dialog textarea { resize: vertical; max-height: 22dvh; }
#feed-comment-form button,.feed-dialog .panel-primary { width: 100%; min-height: 44px; margin-top: 10px; border: 0; border-radius: 8px; background: #bd392f; color: #fff; font: inherit; }
.comment-error { font-size: 12px; color: #bd392f; }
.share-copy-status { font-size: 12px; line-height: 1.7; }
@media (max-height: 650px) {
  .feed-heading { top: calc(70px + env(safe-area-inset-top)); }
  .feed-body { left: 20px; bottom: calc(80px + var(--feed-nav-space)); }
  .feed-body h1 { font-size: 26px; margin-bottom: 8px; }
  .feed-kicker { margin-bottom: 7px; }
  .feed-summary { font-size: 12px; line-height: 1.65; }
  .feed-media-note { bottom: calc(55px + var(--feed-nav-space)); left: 20px; }
  .visual-word { top: 24%; font-size: 160px; }
  .feed-actions { bottom: calc(80px + var(--feed-nav-space)); gap: 4px; }
  .feed-action { min-height: 44px; gap: 4px; font-size: 10px; }
  .feed-action svg { width: 24px; height: 24px; }
  .feed-chat-action img { width: 32px; height: 32px; }
}

/* 闲话独立铺满手机视口，输入区随软键盘的可视区域变化。 */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mite-chat { position: fixed; inset: var(--chat-top, 0px) 0 auto; width: min(100%, 480px); max-width: 480px; height: var(--chat-height, 100dvh); max-height: none; margin: 0 auto; padding: 0; border: 0; background: var(--chat-bg, #20342b); color: #fff7e8; isolation: isolate; overflow: hidden; }
.mite-chat::backdrop { background: transparent; }
.mite-chat::before { content: ""; position: absolute; inset: -28px; z-index: -2; background: var(--chat-image, none) center / cover; filter: blur(24px) brightness(.4) saturate(.8); pointer-events: none; }
.mite-chat::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, transparent, var(--chat-bg)); opacity: .8; pointer-events: none; }
.mite-layout { height: 100%; display: flex; flex-direction: column; }
.mite-header { display: flex; align-items: center; gap: 10px; padding: calc(12px + env(safe-area-inset-top)) 18px 12px 8px; border-bottom: 1px solid #fff3d922; }
.mite-header > button { width: 44px; height: 44px; flex-shrink: 0; background: none; border: 0; color: var(--chat-accent); font-size: 36px; line-height: 1; }
.mite-header img { width: 44px; height: 44px; }
.mite-header h2 { font-size: 18px; margin: 0 0 4px; }
.mite-header p { font-size: 11px; color: #fff1d5b3; margin: 0; }
.mite-badge { margin-left: auto; font-size: 11px; color: var(--chat-accent); border: 1px solid #fff3d933; padding: 5px 9px; border-radius: 20px; }
.mite-context { display: flex; align-items: center; gap: 10px; padding: 12px 24px; background: #fff1d509; font-size: 12px; }
.mite-context span { color: #fff1d5b3; flex-shrink: 0; }
.mite-context strong { font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.mite-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 20px 24px; }
.mite-welcome { text-align: center; padding-top: 10px; }
.mite-welcome > img { width: 112px; height: 112px; }
.mite-welcome .mite-hello { color: var(--chat-accent); font-size: 13px; margin: 14px 0; }
.mite-welcome h3 { font-family: "Songti SC", "Noto Serif CJK SC", serif; font-size: 28px; line-height: 1.45; font-weight: 600; margin: 0; }
.mite-welcome > p { font-size: 12px; color: #fff1d5b3; line-height: 1.8; margin: 16px 0 22px; }
.mite-suggestions { display: flex; flex-direction: column; gap: 8px; text-align: left; }
.mite-suggestions button { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: 12px 14px; border: 1px solid #fff3d92b; border-radius: 12px; color: #fff1db; background: #fff2dc0c; font: inherit; font-size: 12px; text-align: left; }
.mite-suggestions button span { color: var(--chat-accent); margin-left: 8px; }
.mite-message { display: flex; gap: 8px; margin-bottom: 20px; }
.mite-message > img { width: 32px; height: 32px; flex-shrink: 0; }
.mite-message > div { max-width: 87%; min-width: 0; }
.mite-message small { font-size: 10px; color: #fff1d5b3; }
.mite-message p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.8; margin: 6px 0 0; padding: 12px 14px; background: #fff2dc0c; border: 1px solid #fff3d922; border-radius: 2px 14px 14px 14px; }
.mite-message.mine { justify-content: flex-end; text-align: right; }
.mite-message.mine p { background: #fff2dc18; border-color: #fff3d92b; text-align: left; border-radius: 14px 2px 14px 14px; }
.mite-composer { padding: 0 18px calc(12px + env(safe-area-inset-bottom)); background: #00000018; border-top: 1px solid #fff3d922; }
.mite-status { font-size: 11px; line-height: 1.6; color: #fff1d5b3; margin: 8px 4px; }
.mite-status:empty { display: none; }
.mite-composer form { display: flex; align-items: flex-end; gap: 8px; padding: 7px; background: #fff2dc0c; border: 1px solid #fff3d933; border-radius: 18px; margin-top: 8px; }
.mite-composer textarea { flex: 1; min-width: 0; min-height: 44px; max-height: 110px; padding: 12px 6px; resize: none; border: 0; outline: none; background: transparent; color: #fff7e8; font: inherit; font-size: 16px; line-height: 20px; }
.mite-composer textarea::placeholder { color: #fff1d580; }
.mite-composer form:focus-within { border-color: var(--chat-accent); box-shadow: 0 0 0 2px #fff3d911; }
.mite-composer button { flex-shrink: 0; width: 44px; height: 44px; border: 0; border-radius: 13px; color: var(--chat-bg); background: var(--chat-accent); }
.mite-composer button:disabled { opacity: .45; cursor: wait; }
.mite-composer svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.mite-composer > small { display: block; margin: 8px 0 0; font-size: 9px; color: #fff1d58c; text-align: center; }
@media (max-height: 650px) {
  .mite-scroll { padding: 14px 20px; }
  .mite-welcome { padding-top: 0; }
  .mite-welcome > img { width: 72px; height: 72px; }
  .mite-welcome h3 { font-size: 24px; }
  .mite-welcome .mite-hello { margin: 10px 0; }
  .mite-welcome > p { margin: 10px 0 14px; }
}

/* 登录后的个人页：账号、地方寄语与本机风味记录。 */
.me-profile { display: flex; align-items: center; gap: 14px; margin-bottom: 28px; }
.me-avatar { width: 58px; height: 58px; flex-shrink: 0; display: grid; place-items: center; border-radius: 50%; background: #eedcc6; color: #a74a35; font-size: 26px; font-weight: 600; border: 3px solid #fffdf8; box-shadow: 0 0 0 1px #e8dac9; overflow: hidden; }
.me-avatar img { width: 100%; height: 100%; object-fit: cover; }
.me-profile-info { min-width: 0; }
.me-member-label { margin: 0 0 5px; font-size: 11px; color: #918477; }
.me-member-label span { margin-left: 6px; color: #52785e; padding: 2px 6px; border-radius: 5px; background: #e6eddf; font-size: 10px; }
.me-profile-info h2 { margin: 0; font-size: 21px; line-height: 1.4; overflow-wrap: anywhere; }
.me-profile-status { margin: 5px 0 0; color: #918477; font-size: 11px; line-height: 1.6; }
.me-page--member .me-welcome { padding: 22px 0; margin-bottom: 8px; border-top: 1px solid #e8dfd1; }
.me-page--member .me-greeting { margin-bottom: 18px; }
.me-page--member .me-place-copy { font-size: clamp(18px, 5.5vw, 24px); }
.me-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 24px; }
.me-stats button { display: grid; justify-items: center; gap: 5px; min-height: 100px; padding: 14px 8px; border: 1px solid #e8dfd1; border-radius: 14px; background: #fffdf780; color: #857569; font: inherit; cursor: pointer; }
.me-stats button[aria-pressed="true"] { background: #f6e9dc; border-color: #dcbda7; color: #b94332; }
.me-stats svg { width: 19px; height: 19px; }
.me-stats strong { font-size: 24px; line-height: 1.1; font-weight: 600; overflow-wrap: anywhere; }
.me-stats span { font-size: 12px; }
.me-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.me-section-heading h2 { margin: 0; font-size: 16px; }
.me-section-heading > span { font-size: 10px; color: #a09386; }
.me-collection { margin-bottom: 24px; }
.me-empty { padding: 26px 16px; text-align: center; border-radius: 16px; background: #f2eadf70; }
.me-empty > svg { width: 26px; height: 26px; color: #c4a48b; }
.me-empty p { margin: 12px 0 16px; font-size: 12px; line-height: 1.8; color: #918477; }
.me-empty a { display: inline-block; min-height: 44px; padding: 13px 20px; font-size: 12px; color: #b94332; border: 1px solid #dbc0ab; border-radius: 24px; }
.me-saved-list { border: 1px solid #e8dfd1; border-radius: 14px; overflow: hidden; }
.me-saved-item { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px; border: 0; border-bottom: 1px solid #ece4d8; background: #fffdf780; text-align: left; font: inherit; color: #302a24; cursor: pointer; }
.me-saved-item:last-child { border-bottom: 0; }
.me-saved-item:disabled { opacity: .55; cursor: default; }
.me-saved-symbol { flex-shrink: 0; display: grid; place-items: center; width: 36px; height: 40px; border-radius: 9px; background: #f2e7d8; color: #b58a69; }
.me-saved-symbol svg { width: 20px; height: 20px; }
.me-saved-item > span:nth-child(2) { flex: 1; min-width: 0; }
.me-saved-item strong { display: block; font-size: 14px; font-weight: 500; overflow-wrap: anywhere; }
.me-saved-item small { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin-top: 5px; font-size: 11px; line-height: 1.8; color: #918477; overflow-wrap: anywhere; }
.me-saved-item > b, .me-shortcuts b { color: #b2a18f; font-weight: 400; }
.me-collection-status { color: #918477; font-size: 12px; line-height: 1.8; }
.me-collection-retry { min-height: 44px; border: 0; background: transparent; color: #b94332; cursor: pointer; }
.me-shortcuts { margin-bottom: 20px; border-top: 1px solid #e8dfd1; }
.me-shortcuts a { display: flex; align-items: center; gap: 12px; padding: 16px 0; border-bottom: 1px solid #e8dfd1; min-height: 60px; }
.me-shortcuts svg { width: 22px; height: 22px; color: #a48669; flex-shrink: 0; }
.me-shortcuts span { flex: 1; font-size: 13px; }
.me-shortcuts small { display: block; margin-top: 5px; color: #a09386; font-size: 10px; }

/* PageView 的类型画面，意象图形不表示真实地理线形。 */
.pageview-art { position:absolute;inset:0;width:100%;height:100%;color:#f8e5b64d; }
.theme-province .feed-art { background:linear-gradient(155deg,#a28b64,#304c48 80%); }
.theme-county .feed-art { background:linear-gradient(150deg,#81906a,#354c38 85%); }
.theme-mountain .feed-art { background:linear-gradient(145deg,#879587,#203d3e 85%); }
.theme-peak .feed-art { background:linear-gradient(160deg,#829aa3,#1c344c 85%); }
.theme-canal .feed-art { background:linear-gradient(150deg,#8b9d9a,#254a53 85%); }
.theme-railway .feed-art { background:linear-gradient(155deg,#81939a,#293947 85%); }
.pageview-facts { display:flex;flex-wrap:wrap;gap:6px;margin-top:12px; }
.pageview-fact { font-size:10px;line-height:1.5;max-width:100%;color:#efe8d3b3;overflow-wrap:anywhere; }
.theme-province .feed-summary,.theme-city .feed-summary,.theme-county .feed-summary { font-family:"Songti SC",serif;font-size:16px;line-height:1.85;color:#fff2d9; }
.pageview-sources { font-size:12px;line-height:1.8; }
.pageview-sources a { color:var(--red); }
.feed-dialog .pageview-fact { color:#817567; }
.feed-body h1 { overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden; }
.feed-location { min-width:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }

/* 线路资料独立滚动，页面外仍可上滑切换。 */
.pageview-information { max-height:min(260px,29vh);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;margin-top:14px;padding:13px 14px;background:#fff9e90d;border:1px solid #fff9e91c;border-radius:12px;scrollbar-width:thin;color:#eee8dc; }
.pageview-information:focus-visible { outline:1px solid #edd395;outline-offset:2px; }
.pageview-metrics { display:flex;gap:12px;flex-wrap:wrap;padding-bottom:10px;border-bottom:1px solid #fff2; }
.pageview-metrics>div { flex:1;min-width:65px; }
.pageview-metrics small { display:block;color:#dcd7c699;font-size:10px; }
.pageview-metrics strong { display:block;font-size:16px;font-weight:500;margin-top:4px; }
.pageview-information h3 { font-size:12px;font-weight:500;color:#eddbac;margin:13px 0 7px; }
.pageview-information dl { margin:0;font-size:12px;line-height:1.65; }
.pageview-information dl>div { display:grid;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:4px 0; }
.pageview-information dt { color:#ded9c5b3; }
.pageview-information dd { margin:0;white-space:pre-line;overflow-wrap:anywhere; }
.food-characteristics h3 { margin:0 0 8px; }
.food-characteristic-text { margin:0;font-size:12px;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere; }
.food-characteristic-text + .food-characteristic-text { margin-top:8px; }
.pageview-info-note,.pageview-info-source { font-size:10px;line-height:1.6;color:#d6d0c180;margin:12px 0 0; }
.pageview-info-loading,.pageview-info-retry { font-size:11px;color:#e4d8b0;margin-top:12px; }
.pageview-info-retry { background:none;border:0;padding:0;cursor:pointer;text-align:left; }
@media(max-height:700px) { .pageview-information { max-height:22vh; }.pageview-metrics strong { font-size:14px; } }

/* 角标随文字定位，在四个页签的背景上保持相同对比度。 */
.nav-label { position: relative; }
.nav-badge { position: absolute; left: calc(100% + 2px); top: -7px; min-width: 17px; height: 17px; padding: 0 4px; box-sizing: border-box; border-radius: 10px; background: #d63d32; color: #fff; font-size: 10px; line-height: 17px; font-weight: 700; text-align: center; text-shadow: none; }

.region-media { position: absolute; inset: 0; overflow: hidden; }
.region-image { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; }
.region-image.active { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .region-image { transition: none; } }

.region-trait-label { font: inherit; font-weight: 600; font-size: var(--region-copy-size,16px); line-height: 1.6; margin: 10px 0 4px; }
.region-page-dots { position: absolute; left: 50%; bottom: calc(42px + var(--feed-nav-space)); transform: translateX(-50%); display: flex; gap: 0; max-width: calc(100% - 40px); overflow-x: auto; scrollbar-width: none; }
.region-page-dots button { display: grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; background: none; }
.region-page-dots button::before { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #fff6; box-shadow: 0 1px 3px #0005; transition: background .2s, transform .2s; }
.region-page-dots button.active::before { background: #fff; transform: scale(1.35); }
.region-page-dots button:focus-visible { outline: 1px solid #fff; border-radius: 50%; }

.feed-card .region-auto-text { padding: 12px; box-sizing: border-box; border-radius: 12px; background: var(--region-text-scrim, transparent); color: var(--page-on-dark); text-shadow: 0 1px 3px #29272355; }
.feed-card .region-auto-text:has(.region-trait-label) { background: #292723a6; }
.feed-card .region-auto-text.region-dark-text:has(.region-trait-label) { background: #f5f0e6bd; }
.feed-card .region-auto-text h1 { display: block; overflow: visible; font-size: var(--region-title-size); line-height: 1.25; margin-bottom: 12px; color: inherit; text-wrap: balance; }
.feed-card .region-trait-story .region-place-label { display: flex; align-items: center; gap: 7px; margin: 0 22px 10px 0; font-size: 12px; font-weight: 400; line-height: 1.5; opacity: .8; }
.feed-card .region-trait-story .region-place-label .region-origin-hint { flex: 0 0 auto; margin: 0; }
.feed-card .region-trait-story h1.region-trait-label { padding-right: 0; margin: 0 0 12px; font-weight: 700; line-height: 1.2; letter-spacing: .02em; white-space: nowrap; }
.feed-card .region-auto-text .feed-summary { font-size: var(--region-copy-size); line-height: 1.8; color: inherit; text-wrap: pretty; }
.feed-card .region-trait-story .feed-summary { line-height: 1.65; opacity: .84; }
.feed-card[data-page-type="product"] .region-auto-text .feed-summary { max-width: none; white-space: nowrap; text-wrap: nowrap; }
.feed-card .region-auto-text .feed-kicker { font-size: 11px; margin-bottom: 10px; color: inherit; opacity: .8; }
.feed-card .region-auto-text .pageview-facts { font-size: 10px; color: inherit; opacity: .7; }
.feed-card .region-dark-text { color: var(--page-ink); text-shadow: none; }
.feed-card .region-dark-text .pageview-fact { color: inherit; }
.food-auto-text { --food-title-color:var(--page-on-dark);--food-quote-color:var(--page-on-dark);--food-detail-color:#dfd8ce; }
.food-auto-text.region-dark-text { --food-title-color:var(--page-ink);--food-quote-color:var(--page-ink);--food-detail-color:#625a50; }
.feed-card .food-auto-text h1 { color:var(--food-title-color); }
.feed-card .food-auto-text .feed-summary { font-size:var(--region-copy-size);font-weight:600;line-height:1.85;color:var(--food-quote-color); }
.food-auto-text .pageview-information { padding:12px 0 0;margin-top:16px;background:none;border:0;border-top:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:0;max-height:none;overflow:visible;color:inherit; }
.food-auto-text .food-characteristic-text { font-size:calc(var(--region-copy-size) - 2px);font-weight:400;line-height:1.8;color:var(--food-detail-color);opacity:.88; }

.region-media ~ .feed-body .feed-kicker { display: none; }
.region-text-close { position: absolute; top: 5px; right: 5px; display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: inherit; font-size: 23px; line-height: 1; opacity: .65; }
.region-text-close:hover { opacity: 1; background: #8882; }
.region-text-close:focus-visible { outline: 1px solid currentColor; }
.region-media ~ .feed-body h1 { padding-right: 22px; }
.feed-card[data-page-type="food"] .feed-body h1 { padding-right:28px; }

.region-auto-text[data-scrollable="true"] { touch-action: pan-y; overscroll-behavior: contain; }

/* 当前区域的诗意配图覆盖整个我页，阅读与登录区域保留浅色底托。 */
.me-mode.me-has-background { position: relative; background-image: linear-gradient(#fffaf280, #fffaf290 75%, #080e0ad9 100%), var(--me-background-image); background-position: center; background-size: cover; background-repeat: no-repeat; }
.me-mode.me-has-background .me-welcome { padding: 16px; border-radius: 16px; background: #fffaf2b3; }
.me-mode.me-has-background .me-login-slot uniplat-user-login { --uniplat-user-login-background: #fffaf2ed; }
.me-mode.me-has-background .me-fingerprint { color: #fffc; text-shadow: 0 1px 3px #0008; }
.me-mode.me-has-background main { position: relative; z-index: 1; padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
.me-mode.me-has-background nav { position: absolute; inset: auto 0 0; z-index: 2; background: transparent; border: 0; }
.me-mode.me-has-background nav a { color: #fff9; border-radius: 0; }
.me-mode.me-has-background nav a[aria-current] { color: #fff; background: transparent; }
.me-mode.me-has-background nav a:focus-visible { outline-color: #fff; outline-offset: -4px; }
/* 个人页保留账号区，生活记录分成吃货与我的地图。 */
.me-page--member .me-profile { margin-bottom: 26px; }
.me-life-section { padding: 18px; margin-bottom: 18px; border: 1px solid #fff8; border-radius: 18px; background: #fffaf2c4; }
.me-life-section > h2 { margin: 0 0 18px; font-size: 18px; }
.me-life-section .me-stats { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; margin: 0; }
.me-life-section .me-stats button { border: 0; background: transparent; min-height: 84px; padding: 8px 0; color: #796b5c; }
.me-life-section .me-stats strong { font-size: 21px; color: #302a24; }
.me-home-row { display: flex; align-items: center; gap: 12px; min-height: 60px; border-bottom: 1px solid #d8cdbc80; }
.me-home-label { flex: 0 0 32px; font-size: 13px; color: #796b5c; }
.me-home-name { flex: 1; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.me-home-address { min-width: 0; min-height: 44px; border: 0; padding: 8px 0; background: transparent; color: #9f3c30; text-align: left; font-family: inherit; cursor: pointer; }
.me-home-address:focus-visible { outline: 1px solid currentColor; border-radius: 4px; }
.me-home-empty, .me-history-empty { color: #9a8c7e; }
.me-home-edit { border: 0; padding: 10px 0 10px 8px; min-height: 44px; background: transparent; color: #a34435; font-size: 12px; cursor: pointer; }
.me-history-heading { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; font-size: 13px; color: #796b5c; }
.me-history-heading small { margin-left: 5px; color: #a29384; }
.me-history-empty { font-size: 12px; margin: 3px 0 16px; }
.me-home-history { border-bottom: 1px solid #d8cdbc80; }
.me-home-history .me-home-row:last-child { border-bottom: 0; }
.me-home-note { margin: 16px 0 0; font-size: 10px; line-height: 1.7; color: #918477; }
.me-record-dialog, .me-residence-dialog { max-width: 420px; width: calc(100% - 32px); max-height: 78dvh; padding: 20px; border: 1px solid #e5d8c7; border-radius: 18px; background: #fffaf2; color: #302a24; }
.me-record-dialog::backdrop, .me-residence-dialog::backdrop { background: #13251b66; }
.me-dialog-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.me-dialog-heading h2 { margin: 0; }
.me-dialog-close { border: 0; background: transparent; color: #857569; width: 40px; height: 40px; font-size: 24px; cursor: pointer; }
.me-residence-dialog label { display: block; font-size: 12px; margin: 16px 0; color: #857569; }
.me-residence-dialog select { width: 100%; display: block; margin-top: 8px; padding: 12px 8px; border: 1px solid #d8cdbc; border-radius: 8px; background: #fff; color: #302a24; font: inherit; font-size: 14px; }
.me-home-form-actions { display: flex; justify-content: space-between; gap: 12px; }
.me-home-form-actions button { padding: 12px 18px; border: 0; border-radius: 8px; background: #bd392f; color: #fff; font: inherit; font-size: 13px; cursor: pointer; }
.me-home-form-actions [data-home-delete] { background: #f0e5d8; color: #857569; }
.me-home-form-actions button:disabled { opacity: .4; }
.me-residence-dialog [data-home-status] { font-size: 12px; color: #918477; }
.me-record-discover { display: inline-block; padding: 12px 0; border: 0; background: transparent; color: #b94332; font: inherit; font-size: 13px; cursor: pointer; }

.me-interests-label { display: block; margin: 16px 0 8px; font-size: 12px; color: #796b5c; }
.me-interests-input { display: block; width: 100%; min-height: 70px; padding: 12px; resize: vertical; border: 1px solid #d8cdbc; border-radius: 10px; background: #fffaf29c; color: #302a24; font: inherit; font-size: 13px; line-height: 1.7; }
.me-interests-input::placeholder { color: #a39586; }
.me-interests-input:focus { outline: 2px solid #bd392f66; outline-offset: 1px; }
.me-interests-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; margin-top: 8px; font-size: 10px; line-height: 1.7; color: #918477; }

.me-page--member .me-profile-info { flex: 1; }
.me-profile-signout { flex-shrink: 0; min-height: 44px; padding: 10px 0 10px 8px; border: 0; background: transparent; color: #bd392f; font: inherit; font-size: 12px; white-space: nowrap; cursor: pointer; }
.me-profile-signout:focus-visible { outline: 2px solid #bd392f; outline-offset: 3px; border-radius: 4px; }

.me-badge-layer { position: absolute; inset: 0; z-index: 0; pointer-events: none; }

.me-home-links { display: flex; flex-shrink: 0; gap: 2px; }
.me-home-link { display: flex; align-items: center; justify-content: center; width: 36px; min-height: 44px; color: #9f3c30; text-decoration: none; font-size: 9px; }
.me-home-link svg, .me-home-link img { width: 20px; height: 20px; object-fit: contain; }
.me-home-link:focus-visible { outline: 1px solid currentColor; border-radius: 6px; }
.me-home-row { gap: 8px; }

.me-home-remove { border: 0; padding: 0; background: transparent; cursor: pointer; }

.feed-dialog--corner-close > [data-feed-action="close"] { position: absolute; top: 12px; right: 12px; width: 44px; min-height: 44px; margin: 0; padding: 0; background: transparent; color: #857569; font-size: 28px; line-height: 1; }
.feed-dialog--corner-close #feed-dialog-title { padding-right: 36px; }

/* 品类页下方只留一行产品名称，完整列表在更多中展示。 */
.feed-products { position:absolute;left:20px;right:20px;bottom:calc(var(--feed-nav-space) + 14px);height:26px;display:flex;align-items:center;justify-content:flex-start;gap:0;padding:0;color:#fff5df;font-size:12px;line-height:26px; }
.feed-products a { display:flex;align-items:center;flex:0 1 auto;min-width:0;color:inherit;text-shadow:0 1px 3px #0008; }
.feed-products a span { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.feed-product-separator { flex-shrink:0;margin:0 8px;color:#fff7;font-weight:400;pointer-events:none;text-decoration:none; }
.feed-products a:hover { text-decoration:underline;text-underline-offset:3px; }
.feed-products a:focus-visible,.feed-products button:focus-visible { outline:1px solid #ffe287;outline-offset:3px;border-radius:2px; }
.feed-products button { display:flex;align-items:center;flex-shrink:0;border:0;padding:0;background:transparent;color:#ffe287;font:inherit;cursor:pointer; }
.feed-product-list { display:flex;flex-direction:column;gap:12px; }
.feed-product-list a { display:flex;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid #e5d8c7;color:#9f3c30;line-height:1.6; }
.feed-product-list small { display:block;color:#857569;font-size:12px; }

.product-media { position: absolute; inset: 0; background: #f7f1e6; }
.product-image { object-fit: contain; }
.product-page-dots { max-width: 85%; align-items: center; }
.product-page-dots button { flex-shrink: 0; }

.product-page-dots button.continuation:not(.active)::before { transform: scale(.65); opacity: .65; }
.product-page-count { margin-left: 7px; color: #ffffff73; font-size: 10px; line-height: 1; font-variant-numeric: tabular-nums; white-space: nowrap; }

[data-page-type="product"] .feed-summary:empty { display: none; }

/* 产品页的本站下单入口与规格选择底部面板。 */
.feed-purchase-bar { position:absolute;left:24px;right:24px;bottom:calc(14px + var(--feed-nav-space)); }
.feed-purchase-bar > button { width:100%;min-height:44px;border:1px solid #fff2d929;border-radius:24px;background:#a63d2d;color:#fffaf2;font:inherit;font-size:14px;font-weight:600;box-shadow:0 3px 12px #0002; }
[data-page-type="product"] .product-page-dots { bottom:calc(78px + var(--feed-nav-space)); }
.feed-dialog.feed-purchase-sheet { max-height:calc(100dvh - var(--feed-nav-space) - 28px); }
.product-purchase { margin:0; }
.purchase-eyebrow { margin:0 0 8px;font-size:12px;color:#8c7765; }
.product-purchase h2 { margin:0 32px 14px 0;font-size:23px; }
.purchase-price { display:block;margin:0;color:#aa3f2c;font-size:26px;font-weight:600;line-height:1.4; }
.purchase-selection { margin:5px 0 24px;color:#8c7765;font-size:12px; }
.product-purchase fieldset { padding:0;margin:20px 0;border:0;min-width:0; }
.product-purchase legend { margin-bottom:12px;font-size:14px;font-weight:600; }
.purchase-specs > div { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px; }
.purchase-specs button { padding:12px;border:1px solid #e2d6c6;border-radius:10px;text-align:left;background:#fffdf8;color:#544438;font:inherit;min-height:65px; }
.purchase-specs strong { display:block;font-size:13px;line-height:1.5; }
.purchase-specs small { display:block;margin-top:5px;font-size:11px;color:#8b7969; }
.purchase-specs button[aria-pressed="true"] { background:#f8e9dc;border-color:#b24b35;color:#a53d2d; }
.purchase-specs button:disabled { opacity:.45; }
.purchase-quantity-row { display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid #e9dfd2;border-bottom:1px solid #e9dfd2; }
.purchase-quantity-row > label { font-size:14px;font-weight:600; }
.purchase-stepper { display:flex;align-items:center;border:1px solid #dfd1bf;border-radius:9px;overflow:hidden; }
.purchase-stepper button { width:40px;height:40px;border:0;background:#f1e9de;color:#635243;font-size:20px; }
.purchase-stepper button:disabled { opacity:.4; }
.feed-dialog .purchase-stepper input { width:58px;height:40px;text-align:center;border:0;border-radius:0;padding:0;appearance:textfield; }
.purchase-stepper input::-webkit-inner-spin-button,.purchase-stepper input::-webkit-outer-spin-button { appearance:none; }
.purchase-address label { font-size:12px;color:#7f6c5b; }
.purchase-address { margin-top:20px; }
.purchase-address summary { padding:10px 0;font-size:14px;font-weight:600;cursor:pointer; }
.purchase-footer { position:sticky;bottom:-24px;margin:20px -24px -24px;padding:16px 24px 24px;background:#fffaf2;border-top:1px solid #e9dfd2; }
.purchase-footer > div { display:flex;justify-content:space-between;align-items:center;font-size:13px; }
.purchase-total { color:#aa3f2c;font-size:22px; }
.purchase-status { font-size:12px;line-height:1.6;color:#8d7865;margin:10px 0; }
.purchase-submit { width:100%;min-height:46px;border:0;border-radius:23px;background:#a63d2d;color:#fffaf2;font:inherit;font-size:14px;margin-top:10px; }
.purchase-submit:disabled { background:#e5dacd;color:#a49383;cursor:default; }
.order-detail dl { font-size:12px;line-height:1.6; }
.order-detail dt { color:#8d7865;margin-top:12px; }
.order-detail dd { margin:4px 0;overflow-wrap:anywhere; }
.order-cancel { display:block;width:100%;min-height:44px;margin-top:12px;border:1px solid #decbb7;border-radius:23px;background:transparent;color:#9f4a34;font:inherit;font-size:13px; }
.me-order-item { border-bottom:1px solid #e4d9cb;padding-bottom:16px; }
.me-order-list [data-me-order] { display:block;width:100%;padding:16px 0 0;border:0;background:transparent;text-align:left;font:inherit;color:#46392f; }
.me-order-list .order-cancel { width:auto;min-height:44px;padding:8px 16px;margin-top:12px;text-align:center; }
.me-order-list strong,.me-order-list small { display:block;line-height:1.6; }
.me-order-list small { margin-top:4px;color:#8d7865;font-size:12px; }
/* 定位范围选择保留当前画面，透明窗口仅绘制参考边界。 */
.location-preview { padding:0;border:0;background:transparent;color:#fff7df;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0; }
.location-preview::backdrop { background:#0d171b45; }
.location-preview-window { position:absolute;left:var(--preview-left, 0px);top:var(--preview-top, 10vh);width:var(--preview-width, 100%);height:var(--preview-height, 78vh);display:flex;flex-direction:column;pointer-events:none; }
.location-preview-window > p { text-align:center;margin:auto; }
.location-preview-map { display:block;width:100%;height:100%;min-height:0;pointer-events:auto;cursor:pointer;overflow:hidden;filter:drop-shadow(0 1px 2px #000b); }
.location-preview-map path { fill:transparent;stroke:#fff7df;stroke-width:1.5;stroke-linejoin:round; }
.location-preview-map path[data-level=province] { stroke:#f7d07f;stroke-width:2; }
.location-preview-map path[data-level=city] { stroke:#ffa876;stroke-width:2; }
.location-preview-map path[data-level=county] { stroke:#ff786c;stroke-width:2.5; }

.share-qr { display:block; width:min(224px,100%); height:auto; margin:20px auto 8px; border-radius:8px; }
.share-qr-note { text-align:center; font-size:13px; color:#857569; margin:0 0 16px; }
.feed-dialog .wechat-share-button { background:#148544; color:#fff; }
.feed-dialog .wechat-share-button:disabled { opacity:.65; cursor:wait; }
.wechat-share-status { font-size:13px; line-height:1.8; color:#46604a; margin:10px 0; }
.share-qr--wechat { outline:3px solid #148544; outline-offset:5px; }

.feed-retry.feed-retry--over-content { top:auto; bottom:calc(var(--feed-nav-space) + 64px); left:24px; width:auto; max-width:calc(100% - 104px); min-height:36px; padding:8px 12px; font-size:12px; }

.region-origin-hint { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; padding:0; margin-left:7px; border:1px solid currentColor; border-radius:50%; background:transparent; color:inherit; font:italic 13px/1 Georgia,serif; opacity:.55; vertical-align:middle; cursor:pointer; }
.region-origin-hint:hover,.region-origin-hint:focus-visible { opacity:1; }

.feed-card .name-origin-text { height:auto !important; max-height:none !important; overflow:hidden !important; display:flex; flex-direction:column; }
.name-origin-text .feed-kicker,.name-origin-text .pageview-facts { display:none; }
.name-origin-text h1 { flex:none; }
.feed-card .name-origin-text .feed-summary { flex:none; height:7.2em; min-height:0; overflow-y:auto; margin:0; touch-action:pan-y; overscroll-behavior:contain; scrollbar-width:none; cursor:grab; user-select:none; }
.name-origin-text .feed-summary:active { cursor:grabbing; }
.name-origin-line { display:block; white-space:pre; }
.name-origin-line[hidden] { display:none; }

.name-origin-text .feed-summary:not(.name-origin-revealing) { visibility:hidden; }

.name-origin-content { display:block; }
.origin-title-prefix { font-weight:400; }
.origin-title-name { font-weight:700; color:#ffe2a6; }
.region-dark-text .origin-title-name { color:#a64732; }

.feed-card[data-page-type="article"] .feed-body { top:7% !important; left:20px; bottom:auto; width:calc(100% - 104px); height:64% !important; padding:12px; box-sizing:border-box; }
.feed-card[data-page-type="article"] .feed-body h1 { font-size:26px; display:block; width:calc(100% + 64px); max-width:none; white-space:nowrap; text-wrap:nowrap; overflow:hidden; text-overflow:ellipsis; overflow-wrap:normal; flex-shrink:0; margin-bottom:24px; }
.feed-card[data-page-type="article"] .feed-summary { flex:1; height:auto; font-size:clamp(14px,2vh,16px); line-height:1.8; }
.name-origin-content p { margin:0 0 1em; }
.name-origin-content h2 { font-size:1.1em; line-height:1.6; margin:1.5em 0 .6em; }
.name-origin-content a { color:#ffe2a6; text-decoration:underline; }
.feed-card[data-page-type="article"] .feed-heading,
.feed-card[data-page-type="article"] .feed-media-note { display:none; }

.feed-card[data-page-type="article"] { background:var(--page-charcoal); color:var(--page-on-dark); }
.article-background { position:absolute; top:0; left:0; width:100%; height:auto; display:block; pointer-events:none; filter:brightness(1.2) saturate(.92); transform:translateY(var(--article-scroll-y, 0px)); mask-image:linear-gradient(#000 85%,transparent); }
.feed-card[data-page-type="article"] .feed-body h1 { color:var(--page-on-dark); }
/* 将明暗复杂的配图与阅读层分开：灰褐衬底只覆盖文字区，柔化边缘保留外围景色。 */
.feed-card[data-page-type="article"] .feed-body { isolation:isolate; background:transparent; text-shadow:0 1px 2px #211d1899; }
.feed-card[data-page-type="article"] .feed-body::before { content:""; position:absolute; inset:-20px -22px; z-index:-1; pointer-events:none; border-radius:28px; background:linear-gradient(90deg,rgba(41,35,29,.76),rgba(41,35,29,.70) 76%,rgba(41,35,29,.52)); filter:blur(18px); }
.feed-card[data-page-type="article"] .feed-summary { color:var(--page-on-dark); font-weight:400; background:transparent; border-radius:0; }
.feed-card[data-page-type="article"] .name-origin-content a { color:#dcc6aa; }
.feed-action-layer[data-page-type="article"] .feed-action { color:var(--page-on-dark); text-shadow:0 1px 3px #29272366; }
.feed-action-layer[data-page-type="article"] .feed-action svg { filter:none; }
.feed-action-layer[data-page-type="article"] .feed-action.selected { color:var(--page-accent-on-dark); }
.feed-card[data-page-type="article"] .article-read-all { color:var(--page-on-dark); border-color:#f3eee566; background:#292723e6; }
.feed-card[data-page-type="article"] .feed-art { display:none; }
.feed-card[data-page-type="article"] .feed-shade { background:linear-gradient(rgba(41,39,35,.06),transparent 30%,transparent 72%,rgba(41,39,35,.38) 94%,rgba(41,39,35,.65)); }
.article-read-all { position:absolute; left:50%; transform:translateX(-50%); bottom:calc(var(--feed-nav-space) + 54px); padding:10px 22px; border:1px solid #fff4; border-radius:24px; color:#fff2d9; background:#ffffff0a; font-size:14px; cursor:pointer; }
.article-full-text { font-size:16px; line-height:1.85; overflow-wrap:anywhere; }
.article-full-text p { margin:0 0 1em; }
.article-full-text h2 { font-size:18px; margin:1.4em 0 .6em; }
.article-full-text a { color:#e6c58d; }

.article-full-reader { position:relative; width:100%; height:100%; min-height:0; display:flex; flex-direction:column; background:var(--page-paper); color:var(--page-ink); color-scheme:light; padding:env(safe-area-inset-top) 0 0; }
.article-full-reader .article-full-text { flex:1; min-height:0; overflow-y:auto; padding:12px 28px 120px; background:var(--page-paper); scrollbar-width:none; touch-action:pan-y; overscroll-behavior:contain; cursor:grab; user-select:none; }
.article-full-reader .article-full-text::-webkit-scrollbar { display:none; }
.article-full-reader .article-full-text:active { cursor:grabbing; }
.article-reader-heading { display:flex; align-items:center; gap:8px; padding:12px 24px; flex:none; background:var(--page-paper); border-bottom:1px solid var(--page-rule); color:var(--page-ink); }
.article-reader-heading h1 { margin:0; max-width:none; min-width:0; font-size:clamp(18px,5vw,24px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.name-origin-content a.article-product,.article-full-text a.article-product { display:flex; flex-direction:row; align-items:center; gap:8px; padding:8px 9px; margin:4px 0; border:1px solid rgba(255,226,166,.28); border-radius:12px; background:rgba(255,255,255,.04); text-decoration:none; color:inherit; white-space:nowrap; min-width:0; }
.article-product-image { width:32px; height:32px; flex:none; border-radius:5px; object-fit:cover; background:rgba(255,255,255,.08); }
.article-product-image[hidden] { display:none; }
.article-product strong { font-family:system-ui,sans-serif; font-size:14px; flex:none; text-decoration:none; }
.article-product small { font-family:system-ui,sans-serif; font-size:12px; opacity:.65; min-width:0; overflow:hidden; text-overflow:ellipsis; text-decoration:none; }
.article-product:hover strong { opacity:.8; }

.article-full-text a.article-product { border-color:#e6c58d47; background:#ffffff0a; }
.related-article-hint { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; margin:0 0 0 7px; padding:3px; vertical-align:middle; visibility:hidden; border:0; background:transparent; color:inherit; opacity:.65; cursor:pointer; }
.related-article-hint svg { width:22px; height:22px; }
.related-article-hint:hover { opacity:1; }

.feed-card[data-text-phase="complete"] .related-article-hint { visibility:visible; }
/* 文章标题使用更宽的横向区域；正文仍由自己的滚动容器裁剪。 */
.feed-card[data-page-type="article"] .feed-body { overflow:visible !important; }
.feed-purchase-bar { display:flex; gap:10px; }
.feed-purchase-bar > button { flex:1; width:auto; }
.feed-purchase-bar > [data-feed-action="product-detail"] { background:#1c3028bb; }
.product-detail { position:fixed; inset:0 auto 0 50%; transform:translateX(-50%); width:100%; max-width:480px; height:100dvh; z-index:100; background:#fffaf2; color:#302b24; display:flex; flex-direction:column; padding-top:env(safe-area-inset-top); box-sizing:border-box; }
.product-detail header { display:flex; align-items:center; gap:12px; padding:8px 16px; flex:none; border-bottom:1px solid #e9dfd1; }
.product-detail-back { flex:none; }
.product-detail-scroll { flex:1; min-height:0; overflow-y:auto; scrollbar-width:none; touch-action:pan-y; overscroll-behavior:contain; cursor:grab; }
.product-detail-scroll::-webkit-scrollbar { display:none; }
.product-detail-scroll section { padding:20px; border-bottom:1px solid #e9dfd1; }
.product-detail h1 { margin:0 0 10px; font-size:26px; }
.product-detail h2 { margin:0 0 16px; font-size:17px; }
.product-detail p { font-size:13px; line-height:1.7; color:#817361; }
.product-detail-hero { min-height:100px; background:#eee6d8; }
.product-detail-hero img { display:block; width:100%; height:340px; object-fit:contain; }
.product-detail-price,.product-detail-total { color:#a63d2d; font-size:23px; }
.product-detail-specs > div { display:flex; flex-wrap:wrap; gap:8px; }
.product-detail-specs button { padding:10px 14px; border:1px solid #d7cbbb; border-radius:8px; background:transparent; color:inherit; font:inherit; font-size:14px; }
.product-detail-specs button[aria-pressed="true"] { border-color:#a63d2d; color:#a63d2d; background:#f7e9e0; }
.product-detail dl div { display:flex; gap:20px; font-size:14px; } .product-detail dd { margin:0; }
.product-detail dl div { align-items:flex-start; margin:10px 0; line-height:1.7; }
.product-detail dt { flex:0 0 80px; color:#817361; }
.product-detail dd { flex:1; min-width:0; overflow-wrap:anywhere; }
.product-detail-description > p:first-of-type { font-size:14px; color:#302b24; white-space:pre-line; }
.product-detail-description a { color:#a63d2d; font-size:13px; }
.product-detail figure { margin:0 0 18px; } .product-detail figure img { width:100%; min-height:120px; height:auto; display:block; }
.product-detail figcaption { margin-top:8px; font-size:14px; line-height:1.6; }
.product-detail footer { display:flex; align-items:center; justify-content:space-between; padding:12px 20px calc(12px + env(safe-area-inset-bottom)); border-top:1px solid #e9dfd1; background:#fffaf2; }
.product-detail-buy { min-width:140px; padding:12px 24px; border:0; border-radius:24px; background:#a63d2d; color:#fffaf2; font:inherit; }
.product-detail-buy:disabled { opacity:.4; }

.product-detail-header-title { flex:1; min-width:0; font-size:17px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-detail header > span { flex:none; font-size:12px; color:#817361; }
.feed-search-open { position:absolute; z-index:30; top:calc(12px + env(safe-area-inset-top)); right:16px; width:34px; height:34px; border:0; background:transparent; color:#fffaf2; opacity:.8; padding:5px; }
.feed-search-open svg { width:24px; height:24px; }
.pageview-search { position:fixed; inset:0 auto 0 50%; transform:translateX(-50%); width:100%; max-width:480px; height:100dvh; z-index:110; background:#fffaf2; color:#302b24; display:flex; flex-direction:column; padding-top:env(safe-area-inset-top); box-sizing:border-box; }
.pageview-search header { display:flex; align-items:center; gap:10px; padding:14px; }
.search-back { border:0; background:transparent; color:#817361; font-size:30px; }
.pageview-search form { display:flex; flex:1; gap:8px; }
.pageview-search input { min-width:0; flex:1; padding:10px; border:1px solid #ded3c3; border-radius:8px; background:transparent; font:inherit; font-size:14px; }
.pageview-search form button { border:0; background:transparent; color:#a63d2d; font:inherit; }
.search-results { overflow:auto; flex:1; padding:12px 20px; font-size:14px; }
.search-result { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 0; border:0; border-bottom:1px solid #e7ddcf; background:transparent; color:inherit; text-align:left; font:inherit; }
.search-result small { flex:none; color:#817361; }

/* 文内配图与段落一起滚动；固定占位避免图片迟到时跳动。 */
.article-figure { display:block; margin:1.25em 0; overflow:hidden; }
.article-content-image { display:block; width:100%; height:auto; border-radius:8px; }
.article-image-placeholder { display:grid; place-items:center; width:100%; aspect-ratio:3/2; border-radius:8px; background:#ffffff0a; color:inherit; font:13px/1.6 system-ui,sans-serif; }
.article-image-caption { display:block; margin-top:8px; font:12px/1.6 system-ui,sans-serif; color:inherit; opacity:.7; }
.article-image-retry { margin-top:8px; padding:8px 12px; border:1px solid #e6c58d66; border-radius:8px; background:#ffffff0a; color:inherit; font:13px/1.5 system-ui,sans-serif; cursor:pointer; }

.wechat-share-guide { position:fixed; inset:0; width:100%; max-width:none; height:100%; max-height:none; margin:0; padding:95px 28px 30px; box-sizing:border-box; border:0; background:rgba(15,30,23,.95); color:#fff; text-align:right; }
.wechat-share-guide::backdrop { background:rgba(0,0,0,.4); }
.wechat-share-guide p { line-height:1.8; }
.wechat-share-guide button { margin-top:24px; padding:12px 24px; border:1px solid #fff; border-radius:12px; background:transparent; color:#fff; }
.wechat-guide-arrow { position:absolute; top:12px; right:22px; font-size:64px; }

.mite-suggestions-feedback { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; text-align: left; }
.mite-suggestions-status { margin: 0; font-size: 12px; line-height: 1.6; color: var(--chat-accent); }
.mite-suggestions-feedback button { flex: none; border: 1px solid #fff3d92b; border-radius: 8px; padding: 7px 10px; color: #fff1db; background: #fff2dc0c; font: inherit; font-size: 12px; }

/* 同一暖色系：全文用纸色与墨色，播放用炭灰与米白。 */
.article-full-reader .article-full-text h2 { color:var(--page-ink); }
.article-full-text .article-purchase-entry,.name-origin-content .article-purchase-entry { color:#2161a6; font-style:italic; }
.article-full-reader .article-full-text a { color:var(--page-link); text-underline-offset:3px; }
.article-full-reader .article-full-text a.article-product { color:#453a2f; border-color:#d9cbbb; background:#eee5d7; }
.article-full-reader .article-product-image { background:#e4d8c7; }
.article-full-reader .article-image-placeholder { color:#756654; background:#eae2d5; }
.article-full-reader .article-image-caption { color:#756b60; opacity:1; }
.article-full-reader .article-image-retry { color:#765034; border-color:#c9b79f; background:#f8f4ec; }
.article-full-reader :focus-visible { outline:2px solid #87552f; outline-offset:3px; }
/* 正文保留键盘滚动焦点，不绘制整块容器的外框。 */
.article-full-reader .article-full-text:focus { outline:none; }

.article-mode { background:var(--page-paper); }
.article-mode > header { display:none; }
.article-mode main { padding:0; overflow:hidden; display:flex; flex-direction:column; }
.article-reader-heading h1 { flex:1; }
.article-reader-share { flex:none; min-height:42px; padding:8px 12px; border:1px solid #d9cbbb; border-radius:18px; background:transparent; color:#765034; font:inherit; font-size:13px; }
.article-share-dialog input { display:block; width:100%; padding:10px; border:1px solid #d9cbbb; border-radius:8px; background:#f5f0e6; color:#453a2f; }
.article-share-dialog p { font-size:14px; line-height:1.7; }

.mite-suggestions-feedback { justify-content:flex-end; }
.mite-suggestions-status { margin-right:auto; }
.mite-suggestions-feedback button:disabled { opacity:.5; cursor:wait; }

/* 回复统一在一个气泡内按 Markdown 排版，流式内容与历史消息共用。 */
.mite-markdown { margin-top:6px; padding:12px 14px; border:1px solid #fff3d922; border-radius:2px 14px 14px 14px; background:#fff2dc0c; font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
.mite-message .mite-markdown p { margin:0 0 .85em; padding:0; border:0; border-radius:0; background:none; font:inherit; white-space:normal; }
.mite-markdown > :first-child { margin-top:0; }
.mite-markdown > :last-child { margin-bottom:0; }
.mite-markdown h1, .mite-markdown h2, .mite-markdown h3, .mite-markdown h4, .mite-markdown h5, .mite-markdown h6 { max-width:none; margin:1.1em 0 .5em; font-size:16px; line-height:1.5; }
.mite-markdown h1 { font-size:20px; }
.mite-markdown h2 { font-size:18px; }
.mite-markdown ul, .mite-markdown ol { margin:.65em 0 1em; padding-left:1.5em; }
.mite-markdown li { margin:.3em 0; }
.mite-markdown blockquote { margin:.8em 0; padding:.25em 0 .25em 12px; border-left:3px solid var(--chat-accent); opacity:.85; }
.mite-markdown hr { margin:1.2em 0; border:0; border-top:1px solid #fff3d940; }
.mite-markdown a { color:var(--chat-accent); text-decoration:underline; text-underline-offset:3px; }
.mite-markdown pre { max-width:100%; overflow-x:auto; margin:.8em 0; padding:12px; border-radius:8px; background:#0003; white-space:pre; }
.mite-markdown code { padding:.12em .3em; border-radius:4px; background:#0002; font: .9em/1.6 ui-monospace,monospace; }
.mite-markdown pre code { padding:0; background:none; }
.mite-table-scroll { max-width:100%; overflow-x:auto; margin:1em 0; }
.mite-markdown table { border-collapse:collapse; font-size:13px; }
.mite-markdown th, .mite-markdown td { border:1px solid #fff3d940; padding:6px 10px; }
.mite-markdown th { background:#ffffff0a; }
.mite-markdown img { display:block; max-width:100%; height:auto; border-radius:8px; }

.mite-reference-card { display:flex; align-items:center; gap:10px; margin-top:8px; padding:10px; border:1px solid #fff3d92b; border-radius:12px; background:#fff2dc0c; color:inherit; text-align:left; text-decoration:none; }
.mite-reference-image { flex:none; width:56px; height:56px; border-radius:8px; object-fit:cover; background:#fff2dc12; }
.mite-reference-card > span:not(.mite-reference-arrow) { display:flex; flex:1; min-width:0; flex-direction:column; gap:4px; }
.mite-reference-card strong { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.mite-reference-arrow { flex:none; color:var(--chat-accent); }
.mite-reference-card:hover { background:#fff2dc18; }

/* 聊天内保留滚动能力，任何滚动容器都不显示滚动条。 */
.mite-chat, .mite-chat *, .chat-mode, .chat-mode * { scrollbar-width:none; -ms-overflow-style:none; }
.mite-chat::-webkit-scrollbar, .mite-chat *::-webkit-scrollbar, .chat-mode::-webkit-scrollbar, .chat-mode *::-webkit-scrollbar { display:none; width:0; height:0; }
body.chat-page { overflow:hidden; }
.chat-mode { background:#20342b; color:#fff7e8; }
.chat-mode > header, .chat-mode > nav { display:none; }
.chat-mode main { padding:0; display:flex; flex-direction:column; overflow:hidden; }
.mite-badge { background:transparent; cursor:pointer; }
.chat-route-heading { display:flex; align-items:center; gap:12px; flex:none; padding:20px; border-bottom:1px solid #fff3d922; }
.chat-route-heading img { width:32px; height:32px; display:block; }
.chat-route-heading h1 { flex:1; min-width:0; max-width:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:0; font:600 20px/1.5 system-ui,sans-serif; }
.chat-session-list, .shared-chat-messages { flex:1; min-height:0; overflow-y:auto; padding:16px 20px; overscroll-behavior:contain; }
.chat-session-row { display:flex; flex-direction:column; gap:8px; padding:18px 4px; border-bottom:1px solid #fff3d922; }
.chat-session-row strong { font-size:15px; line-height:1.6; }
.chat-session-row small, .chat-list-status { color:#d7cdbb; font-size:12px; }
.chat-list-status { padding:16px 20px; }
.chat-start-own { flex:none; display:block; margin:12px 20px calc(16px + env(safe-area-inset-bottom)); padding:14px; text-align:center; border-radius:12px; background:#e9ddc8; color:#302a24; font-size:14px; }
.shared-chat-messages { --chat-accent:#dcc8a9; }
.mite-header > .mite-badge { flex:none; width:auto; height:auto; min-height:28px; padding:5px 9px; border:1px solid #fff3d933; font:11px/1.5 system-ui,sans-serif; white-space:nowrap; }

.me-record-dialog--orders { overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; }
.me-record-dialog--orders::-webkit-scrollbar { display:none; }

/* Markdown 标题保留真实语义与级差，不影响阅读器顶栏或其他界面标题。 */
:is(.article-full-text, .name-origin-content, .mite-markdown) :is(h1,h2,h3,h4,h5,h6) { max-width:none; line-height:1.45; font-weight:700; margin:1.4em 0 .6em; white-space:normal; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h1 { font-size:1.8em; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h2 { font-size:1.5em; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h3 { font-size:1.3em; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h4 { font-size:1.15em; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h5 { font-size:1.05em; }
:is(.article-full-text, .name-origin-content, .mite-markdown) h6 { font-size:1em; }
.feed-card[data-page-type="article"] .name-origin-content h1 { width:auto; max-width:none; white-space:normal; text-wrap:wrap; overflow:visible; font-size:1.8em; margin:1.4em 0 .6em; }
.article-image-caption { text-align:center; }

.article-mode > nav { background:var(--page-paper); }
.article-reader-toolbar { flex:none; background:var(--page-paper); border-bottom:1px solid var(--page-rule); }
.article-reader-toolbar .feed-actions { position:static; display:flex; flex-direction:row; justify-content:flex-end; gap:4px; padding:6px clamp(8px,3vw,16px) 4px; }
.article-reader-toolbar .feed-action { flex:0 1 44px; min-width:36px; min-height:50px; margin:0; padding:4px 0; gap:5px; color:#756b60; text-shadow:none; font-size:11px; cursor:pointer; }
.article-reader-toolbar .feed-action svg { width:24px; height:24px; filter:none; }
.article-reader-toolbar .feed-chat-action img { width:24px; height:24px; box-shadow:none; border-color:#d9cbbb; }
.article-reader-toolbar .feed-action.selected { color:var(--page-accent); }
.article-reader-play { position:static; flex:none; align-self:center; margin:12px 0 14px; white-space:nowrap; padding:10px 22px; border:1px solid #b0a18b; border-radius:24px; background:#f5f0e6f5; color:var(--page-ink); font:inherit; font-size:14px; cursor:pointer; box-shadow:0 2px 12px #38342f12; }
.article-reader-notice { position:absolute; left:16px; right:16px; bottom:90px; padding:12px; border-radius:10px; text-align:center; background:#37312ced; color:#fffaf2; z-index:1; }
.article-interaction-dialog { color-scheme:light; }
.article-interaction-dialog form button { width:100%; min-height:44px; background:#bd392f; color:white; border:0; border-radius:8px; font:inherit; }

.chat-route-back { flex:none; width:44px; height:44px; border:0; background:none; color:inherit; font:36px/1 sans-serif; cursor:pointer; }

/* 地形图沿用区划页媒体和文字层，仅保留完整图幅。 */
.landscape-media { background:#f4f0e5; }
.landscape-media .feed-image { object-fit:contain; }
.article-pageview { display:block; cursor:pointer; }

.feed-entry-snapshot { position:fixed; z-index:90; overflow:hidden; pointer-events:none; background:var(--page-paper); }

.article-reader-sections { position:absolute; z-index:2; max-height:40%; overflow:hidden; padding:0 28px; background:var(--page-paper); pointer-events:none; font:16px/1.4 system-ui,sans-serif; }
.article-reader-sections ol { display:flex; flex-direction:column; margin:0; padding:0; list-style:none; }
.article-reader-sections li { flex:none; min-width:0; overflow-wrap:anywhere; }

.article-reader-sections[hidden] { display:none; }

/* 播放正文复用逐级吸顶，保留米白标题与暖炭灰衬底。 */
.feed-body .article-play-sections { background:var(--page-charcoal); max-height:50%; text-shadow:none; }

/* 相关PageView只占一行；空间不足的完整链接由组件隐藏。 */
.related-pageview-links { display:flex; align-items:center; white-space:nowrap; overflow:hidden; font-size:12px; line-height:26px; }
.related-pageview-item { display:flex; align-items:center; flex:none; }
.related-pageview-links a { flex:none; white-space:nowrap; color:inherit; }
.related-pageview-links .feed-product-separator { margin:0 8px; }
.article-related-links { position:relative; flex:none; margin:0 28px 12px; height:26px; color:var(--page-link); background:var(--page-paper); }

/* 轶事逐行跟读，文字块与区划共用图片留白分析、明暗配色和排版。 */
.feed-card[data-page-type="anecdote"] .feed-kicker,.feed-card[data-page-type="anecdote"] .pageview-facts { display:none; }
.feed-card .anecdote-line-text h1 { padding-right:18px; font-family:inherit; font-size:20px; line-height:1.4; margin-bottom:10px; }
.feed-card .anecdote-line-text .feed-summary { font-family:"Songti SC",serif; font-size:14px; line-height:1.7; max-width:none; overflow-y:auto; scrollbar-width:none; touch-action:pan-y; overscroll-behavior:contain; cursor:grab; user-select:none; }
.anecdote-line-content { display:block; }
.anecdote-line-content p { margin:0 0 .65em; white-space:pre-line; }
.anecdote-line-content p:last-child { margin-bottom:0; }
.feed-card[data-page-type="anecdote"] .anecdote-media .feed-image { object-fit:cover; }

/* 食品原有商品入口优先保留，相关推荐单独放在其上方。 */
.feed-product-links ~ .related-pageview-links { bottom:calc(var(--feed-nav-space) + 48px); }

/* 轶事全文先显示配图，再按作者换行逐段阅读。 */
.anecdote-reader-image{margin:0 0 1.3em}
.anecdote-reader-image .article-content-image{width:100%;height:auto;max-height:70vh;object-fit:contain}
.anecdote-reader-image .article-image-placeholder{aspect-ratio:9/16;max-height:70vh}
.anecdote-reader-image .article-image-caption{display:none}

.anecdote-source { text-align:right; font-family:"Kaiti SC", "STKaiti", "KaiTi", "楷体", serif; }

.article-product-card { position:relative; display:flex; align-items:center; gap:4px; margin:10px 0; padding:6px 8px; border:1px solid #dcc6aa55; border-radius:10px; background:#f3eee50a; }
.article-product-card a.article-product { flex:1; min-width:0; gap:6px; padding:0; margin:0; border:0; border-radius:0; background:transparent; }
.article-product-card a.article-product::after { content:''; position:absolute; inset:0; border-radius:inherit; }
.article-product-card .article-product-image { width:28px; height:28px; }
.article-product-card .article-product strong { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.article-product-card .article-product-price { flex:none; margin:0; font:12px/1.5 system-ui,sans-serif; color:inherit; white-space:nowrap; }
.article-product-actions { position:relative; z-index:1; display:flex; flex:none; gap:2px; }
.article-product-actions button { display:grid; place-items:center; flex:none; width:34px; height:36px; padding:6px; border:0; border-radius:7px; color:var(--page-on-dark); background:transparent; }
.article-product-actions button:hover { background:#f3eee51a; }
.article-product-actions button:last-child { color:var(--page-accent-on-dark); }
.article-product-actions svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.article-full-reader .article-product-card { background:#eee5d780; border-color:var(--page-rule); }
.article-full-reader .article-product-card a.article-product { background:transparent; border:0; }
.article-full-reader .article-product-actions button { color:var(--page-ink); background:transparent; }
.article-full-reader .article-product-actions button:hover { background:#38342f0d; }
.article-full-reader .article-product-actions button:last-child { color:var(--page-accent); }
.me-cart-link { display:block; min-height:44px; margin:12px 0; padding:10px 16px; border:1px solid var(--page-rule); border-radius:10px; background:var(--page-paper); color:var(--page-accent); font:inherit; font-size:14px; }
.product-commerce-dialog { position:fixed; inset:auto 0 0; width:min(480px,100%); max-width:100vw; max-height:90dvh; margin:0 auto; padding:18px 20px calc(20px + env(safe-area-inset-bottom)); border-radius:18px 18px 0 0; background:var(--page-paper); color:var(--page-ink); color-scheme:light; overscroll-behavior:contain; }
.product-commerce-dialog .commerce-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:0 0 14px; }
.commerce-heading h2 { margin:0; font-size:18px; }
.commerce-heading button { flex:none; width:44px; height:44px; border:0; background:none; color:inherit; font:28px/1 sans-serif; }
.commerce-status,.cart-note { font-size:13px; line-height:1.7; color:#756b60; }
.commerce-status:empty { display:none; }
.product-commerce-dialog .purchase-footer { position:static; margin:20px 0 0; padding:16px 0 0; background:transparent; }
.product-commerce-dialog .commerce-cart-entry { color:var(--page-accent); background:transparent; border:1px solid var(--page-rule); }
/* 购物车使用紧凑列表，商品逐行勾选，底部统一合并下单。 */
.product-commerce-dialog.commerce-cart-mode[open] { display:flex; flex-direction:column; }
.commerce-cart-mode .commerce-content { min-height:0; overflow-y:auto; }
.cart-list { border-top:1px solid var(--page-rule); }
.cart-row { display:grid; grid-template-columns:20px minmax(0,1fr) 86px 32px; align-items:center; gap:6px; min-height:66px; padding:10px 0; border-bottom:1px solid var(--page-rule); }
.cart-row > input[type="checkbox"],.cart-checkout input[type="checkbox"] { width:18px; height:18px; margin:0; accent-color:var(--page-accent); }
.cart-item-copy { min-width:0; display:flex; flex-direction:column; gap:4px; }
.cart-item-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.cart-item-copy small { color:#756b60; font-size:11px; line-height:1.5; }
.cart-stepper { display:flex; align-items:center; border:1px solid #b0a18b; border-radius:6px; overflow:hidden; }
.cart-stepper button { flex:none; width:26px; height:32px; padding:0; border:0; background:transparent; color:var(--page-ink); font:16px/1 sans-serif; }
.cart-stepper input { width:32px; min-width:0; height:32px; padding:0; border:0; border-radius:0; text-align:center; background:transparent; color:var(--page-ink); font:13px/1 system-ui,sans-serif; appearance:textfield; }
.cart-stepper input::-webkit-inner-spin-button,.cart-stepper input::-webkit-outer-spin-button { appearance:none; margin:0; }
.cart-row > button { min-height:36px; padding:0; border:0; background:transparent; color:var(--page-muted); font-size:12px; }
.cart-row button:disabled { opacity:.4; cursor:default; }
.cart-checkout { flex:none; padding-top:12px; background:var(--page-paper); }
.cart-checkout-bar { display:flex; align-items:center; gap:12px; padding-top:12px; }
.cart-checkout-bar > label { display:flex; align-items:center; gap:6px; font-size:13px; }
.cart-checkout-bar > span { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; text-align:right; }
.cart-checkout-bar strong { color:var(--page-accent); font-size:17px; }
.cart-checkout-bar small { color:var(--page-muted); font-size:11px; }
.cart-checkout-bar > button { flex:none; min-width:84px; min-height:42px; padding:10px 16px; border:0; border-radius:9px; color:white; background:var(--page-accent); font:14px/1.5 system-ui,sans-serif; }
.cart-checkout-bar > button:disabled { opacity:.45; cursor:default; }
.cart-shipping summary { color:var(--page-muted); font-size:12px; cursor:pointer; }
.cart-shipping input,.cart-shipping textarea { display:block; width:100%; margin:8px 0; padding:8px; border:1px solid var(--page-rule); border-radius:6px; background:var(--page-paper); color:var(--page-ink); font:13px/1.5 system-ui,sans-serif; }
.order-item-list { list-style:none; margin:12px 0; padding:0; }
.order-item-list li { display:flex; flex-direction:column; gap:5px; padding:10px 0; border-bottom:1px solid var(--page-rule); }
.order-item-list span { color:var(--page-muted); font-size:13px; }

/* 关联 PageView 逐层弹出；返回时保留父页面及其阅读位置。 */
.pageview-popup { position:fixed; inset:0; width:min(480px,100%); max-width:100%; height:100dvh; max-height:100dvh; margin:0 auto; padding:0; border:0; background:var(--page-paper); color:var(--page-ink); overflow:hidden; overscroll-behavior:none; --feed-nav-space:0px; }
.pageview-popup::backdrop { background:#29272399; }
.pageview-popup-content { --feed-nav-space:0px; position:relative; height:100%; min-height:0; }
/* 返回图标与实际背景反色混合，图片及阅读模式切换时同步保持深浅对比。 */
.pageview-popup-back { position:absolute; top:calc(10px + env(safe-area-inset-top)); left:12px; z-index:30; }
.pageview-popup-back,.product-detail-back { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:0; background:transparent; color:#fff; mix-blend-mode:difference; font:36px/1 system-ui,sans-serif; }
.pageview-popup .feed-search-open { display:none; }
.pageview-popup .article-full-reader { position:absolute; inset:0; padding-top:env(safe-area-inset-top); z-index:10; }
.pageview-popup .article-reader-heading { min-height:64px; padding-left:68px; }
.pageview-popup .feed-heading { padding-right:52px; }

.order-shipping { margin:16px 0; padding:12px 0; border-block:1px solid var(--page-rule); }
.order-shipping form label { display:block; margin:10px 0; font-size:13px; color:var(--page-muted); }
.order-shipping input,.order-shipping textarea { display:block; width:100%; margin-top:6px; padding:10px; border:1px solid var(--page-rule); border-radius:8px; background:var(--page-paper); color:var(--page-ink); font:14px/1.6 system-ui,sans-serif; }
.order-shipping-actions { display:flex; gap:10px; }
.order-shipping-actions > button { flex:1; margin-top:10px; }

.me-shipping-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.me-shipping-heading h2 { margin:0; }
.me-shipping-heading button,.me-shipping-list button { border:0; padding:6px 0; background:transparent; color:var(--page-accent); font:inherit; font-size:13px; line-height:1.5; }
.me-shipping-list article { padding:14px 0; border-bottom:1px solid var(--page-rule); }
.me-shipping-list article > span { margin-left:12px; font-size:13px; color:var(--page-muted); }
.me-shipping-list article p { font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.me-shipping-list article > div { display:flex; gap:20px; justify-content:flex-end; }
.me-address-default { margin-left:10px; padding:2px 6px; border-radius:4px; color:var(--page-accent); background:#b4433514; font-size:11px; font-weight:400; }
.me-shipping-dialog label { display:block; margin:12px 0; font-size:13px; color:var(--page-muted); }
.me-shipping-dialog .me-address-default-option { display:flex; align-items:center; gap:8px; }
.me-shipping-dialog input[type=checkbox] { width:18px; height:18px; margin:0; accent-color:var(--page-accent); }
.shipping-address-picker { margin:10px 0; }
.shipping-address-picker label { display:block; font-size:12px; color:var(--page-muted); }
.shipping-address-picker select { display:block; width:100%; max-width:100%; min-height:40px; margin:6px 0; padding:8px; border:1px solid var(--page-rule); border-radius:7px; background:var(--page-paper); color:var(--page-ink); font:13px/1.5 system-ui,sans-serif; }

/* 覆盖层有自己的导航出口，背景页签从布局和键盘顺序中移除。 */
.app:has(.pageview-search,.product-detail) > nav { display:none; }
.location-preview-close { position:fixed; top:calc(12px + env(safe-area-inset-top)); right:calc(100vw - var(--preview-left) - var(--preview-width) + 8px); width:44px; height:44px; z-index:2; border:0; border-radius:50%; background:var(--page-paper); color:var(--page-ink); font:28px/1 sans-serif; cursor:pointer; }
.wechat-share-guide .wechat-guide-close { position:absolute; top:calc(12px + env(safe-area-inset-top)); right:12px; width:44px; height:44px; margin:0; padding:0; border:0; background:transparent; color:inherit; font:30px/1 sans-serif; }
.wechat-share-guide .wechat-guide-arrow { top:60px; }

/* 位于页签与内容操作之间，不截获上滑或点击。 */
.feed-swipe-hint { position:absolute; z-index:1; left:50%; bottom:var(--feed-nav-space); transform:translateX(-50%); display:flex; align-items:center; justify-content:center; gap:4px; height:14px; white-space:nowrap; pointer-events:none; color:#f3eee5b3; font-size:11px; line-height:14px; text-shadow:0 1px 3px #0009; }
.feed-swipe-hint[hidden] { display:none; }
.feed-swipe-hint svg { width:12px; height:14px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; animation:feed-swipe-nudge 1.6s ease-in-out infinite; }
@keyframes feed-swipe-nudge { 0%,100% { transform:translateY(1px); } 50% { transform:translateY(-2px); } }
@media(prefers-reduced-motion:reduce) { .feed-swipe-hint svg { animation:none; } }

/* 阅读到底的翻页提示占固定行，延迟显示时不推动相关链接。 */
.article-full-reader > .feed-swipe-hint { position:static; transform:none; flex:none; height:14px; margin:0 0 4px; color:var(--page-muted); text-shadow:none; }
.article-full-reader > .feed-swipe-hint[hidden] { display:flex !important; visibility:hidden; }

/* 金句用蓝色系，与棕色标题区分；保留原有字号、字重及段落布局。 */
.feed-card[data-page-type="article"] .name-origin-content .article-emphasis { color:#a8ccef; }
.article-full-reader .article-full-text .article-emphasis { color:#2c5f8a; }
