/* ================================================================
   虾算算 · v12.53 纸面皮肤层(在 style.css 之后加载; v12.53.2 起色盘变量已并入 style.css :root, 本文件只留纸面专属规则)
   方向(docs/LAYOUT-RESEARCH-2026-09-19.md §八): 大学城的纸, 主站的密度, 同一只虾
   语言: 宣纸底位图 / 撕边纸卡(border-image 9-slice, 与大学城 .paper 同一套位图) /
         深棕细线 / 矿物色盘(赭红唯一强调) / 柔投影 / 毛笔字只给 Logo + 一级标题
   铁律(README #4): 正本 EVAL §4.1 + IP-CHARACTER-CARD v1.2; 硬黑边 3.5px + 硬投影 5px 6px 0 全部退出
   ================================================================ */
/* ---------- 纸底: 真位图平铺 + 顶部一抹亮, 波点退出 ---------- */
body { background: var(--cream) var(--bg-src) center top / 512px auto repeat; }
body::before { background-image: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.45), transparent 60%); background-size: auto; }

/* ---------- 纸卡: 所有白贴纸卡 → 撕边纸(9-slice) ---------- */
.panel, .today-stack, .xia-home-card, .red-home-card, .first-cta-card, .rec-item, .today-mini, .fu-card, .upsell-card, .redeem-item, .share-link-box, .cross-rec, .pwa-faq, .me-card, .qs-card, .hh-card {
  border: 22px solid transparent; border-image: var(--paper-src) 52 fill / 22px stretch;
  border-radius: 0; background: none; box-shadow: none;
  filter: drop-shadow(0 4px 7px rgba(58,51,48,.16));
  transform: none;
}
.panel { padding: 4px 0 2px; margin-bottom: 10px; }
.panel.result-block { border: 22px solid transparent; border-image: var(--paper-src) 52 fill / 22px stretch; background: none; box-shadow: none; }
.panel.result-block::before { display: none; }       /* CSS 假纸纹退出, 位图是真纸 */
.today-stack { overflow: visible; margin-bottom: 8px; }
.today-stack .daily-inner.drawn { background: rgba(184,68,44,.06); }
.today-stack .daily-card:not(:empty) + .tm-horo-wide { border-top: 1px dashed var(--xz-line-soft); }
.today-mini { padding: 4px 2px; }
.xia-home-card { grid-template-columns: 1fr 118px; overflow: visible; }   /* v12.53.5 缩略图换横版水彩小景(377×256), 列宽 96→118 */
/* v12.53.3 基表给 img 定宽 132px(含 360 断点 104px), 而纸卡列宽 96px → 校园地图溢出到卡外; 改为吃满列宽、等比缩放、垂直居中 */
.xia-home-card .xhc-img { width: 100%; height: auto; max-height: 96px; min-height: 0; align-self: center; border-left: 0; background: none; object-fit: contain; padding: 0; }
.xia-home-card .xhc-img.ph { padding: 10px; }
.xia-home-card .xhc-txt { padding: 8px 6px 8px 10px; }
.xia-home-card .xhc-txt b { font-size: 15px; letter-spacing: -.2px; }   /* 「虾虾大学城 · 华南理工大学」在 390 宽下不折行 */
.xia-home-card .xhc-go, .red-home-card .xhc-go { background: none; border: 1.2px solid var(--xz-red); color: var(--xz-red); border-radius: 3px; }
.red-home-card { margin: 10px 0 8px; }
.red-home-card .rhc-seal { background: var(--xz-red); border: 0; color: #fff6e8; box-shadow: none; border-radius: 4px; }
.first-cta-card { margin: 6px 0 8px; padding: 4px 26px 4px 2px; }
.first-cta-card > img { filter: none; }
.rec-item { margin-bottom: 4px; }
.rec-item:active, .today-mini:active, .xia-home-card:active, .red-home-card:active { transform: translateY(1px); box-shadow: none; }

/* ---------- 文字: 一级标题毛笔; 其余正文; 硬阴影退出 ---------- */
h1.page-title, .banner h1, .topbar .bar-title { font-family: var(--font-brush); font-weight: 400; letter-spacing: 3px; color: var(--xz-line); }
h1.page-title { font-size: 34px; }
.topbar .bar-title { font-size: 28px; }
.page-sub { font-weight: 500; color: var(--ink-soft); }
.slogan span { background: none; color: var(--ink-soft); font-weight: 500; letter-spacing: 3px; border-bottom: 1px solid var(--xz-line-soft); padding: 0 6px 2px; border-radius: 0; transform: none; box-shadow: none; }
.en-line { display: none; }
.logo .logo-img { filter: none; width: 232px; }
.sec-title { color: var(--ink-soft); font-weight: 600; letter-spacing: 2px; margin: 14px 0 8px; }
.sec-title::before, .sec-title::after { height: 1px; border-radius: 0; background: var(--xz-line-soft); }
.topbar .back { background: none; border: 1.2px solid var(--xz-line-soft); box-shadow: none; color: var(--xz-line); }
.topbar .back:active { transform: translateY(1px); box-shadow: none; }
.topbar .bar-icon { filter: none; }
.page-intro { font-weight: 500; }
.disclaimer, .site-footer { color: var(--ink-faint); }
.site-footer a { color: var(--ink-soft); }

/* ---------- 按钮: 主=朱砂笔触位图, 次=空心棕线; 回弹退出 ---------- */
.btn { border: 1.2px solid var(--xz-line); border-radius: 4px; color: var(--xz-line); background: none; text-shadow: none; font-weight: 700; letter-spacing: 1.5px; box-shadow: none; font-size: 16px; padding: 11px 22px; transition: transform .08s, opacity .08s; }
.btn:active { transform: translateY(1px); opacity: .85; }
.btn-primary, .btn-purple, .btn-green { border-color: transparent; color: #fff6e8; background: var(--cta-src) center / 100% 100% no-repeat; box-shadow: none; text-shadow: 0 1px 1px rgba(90,30,10,.3); }
.btn-primary:active, .btn-purple:active, .btn-green:active { box-shadow: none; }
.btn-sm { border-width: 1.2px; font-size: 13.5px; padding: 6px 14px; }
.btn-sm.btn-primary, .btn-sm.btn-purple, .btn-sm.btn-green { box-shadow: none; }
.btn:disabled { opacity: .5; }
.chip, .fu-chip, .rd-chip { background: var(--pill-src) center / 100% 100% no-repeat; border: 0; box-shadow: none; color: var(--xz-line); font-weight: 600; border-radius: 0; padding: 8px 15px; }
.chip:active, .fu-chip:active { transform: translateY(1px); box-shadow: none; }
.chip.chip-new { color: var(--xz-red); }
.tag { border: 1.2px solid var(--xz-line-soft); box-shadow: none; color: var(--xz-line); background: none; font-weight: 700; border-radius: 3px; padding: 2px 9px; }
.tag-gold, .tag-red, .tag-green, .tag-gray, .tag-purple { background: none; color: var(--xz-line); }
.tag-red { border-color: var(--xz-red); color: var(--xz-red); }
.tag-green { border-color: var(--xz-green); color: var(--xz-green); }
.tag-purple { border-color: var(--xz-indigo); color: var(--xz-indigo); }

/* ---------- 表单 ---------- */
.field label { font-weight: 600; }
.field input, .field select, .field textarea { border: 1.2px solid var(--xz-line-soft); border-radius: 4px; background: rgba(255,255,255,.55); box-shadow: none; }
.field input:focus, .field select:focus, .field textarea:focus { box-shadow: 0 0 0 2px rgba(184,68,44,.18); border-color: var(--xz-red); }

/* ---------- 首页三大卡: 方块 → 横条纸卡(art-E) ---------- */
.home-grid.grid-3 { grid-template-columns: 1fr; gap: 6px; }
.home-grid { gap: 6px 8px; }
.home-grid .mod-card:nth-child(odd), .home-grid .mod-card:nth-child(even) { transform: none; }
.mod-card { border: 22px solid transparent; border-image: var(--paper-src) 52 fill / 22px stretch; border-radius: 0; background: none; color: var(--xz-line); box-shadow: none; filter: drop-shadow(0 4px 7px rgba(58,51,48,.16)); padding: 0 4px; text-align: left; }
.mod-card:active { transform: translateY(1px); box-shadow: none; }
.grid-3 .mod-card { display: grid; grid-template-columns: 56px 1fr auto; align-items: center; column-gap: 12px; min-height: 60px; }
.grid-3 .mod-card .m-icon { width: 56px; height: 56px; margin: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.grid-3 .mod-card .m-icon .m-img { width: 52px; height: 52px; filter: none; }
.grid-3 .mod-card .m-name { font-family: var(--font-brush); font-weight: 400; font-size: 30px; text-shadow: none; letter-spacing: 2px; color: var(--xz-line); line-height: 1; }
.grid-3 .mod-card .m-sub { display: block; font-size: 14px; color: var(--ink-soft); opacity: 1; margin: 0; font-weight: 500; white-space: nowrap; }
.mod-card .m-badge { position: static; display: inline-block; vertical-align: middle; margin-left: 8px; background: none; color: var(--xz-red); border: 1px solid var(--xz-red); border-radius: 3px; box-shadow: none; padding: 0 5px; font-size: 10px; font-weight: 700; letter-spacing: 1px; transform: none; animation: none; }
.grid-3 .mod-card .m-badge { font-family: var(--font-body); }
.grid-3 .mod-card .m-name { white-space: nowrap; }
/* v12.53.3 窄屏(≤375: SE/mini/安卓 360): 三大卡毛笔字 30px + HOT 角标 + 副题挤不下 → 缩字 + 副题让位 */
@media (max-width: 375px) {
  .grid-3 .mod-card { grid-template-columns: 48px 1fr auto; column-gap: 8px; }
  .grid-3 .mod-card .m-icon { width: 48px; height: 48px; } .grid-3 .mod-card .m-icon .m-img { width: 44px; height: 44px; }
  .grid-3 .mod-card .m-name { font-size: 25px; letter-spacing: 1px; } .grid-3 .mod-card .m-sub { font-size: 12.5px; }
}
@media (max-width: 340px) { .grid-3 .mod-card .m-sub { display: none; } .grid-3 .mod-card .m-name { font-size: 24px; } }
/* 我和 TA 两卡 */
.home-grid:not(.grid-3) .mod-card { display: grid; grid-template-columns: 44px 1fr; align-items: center; column-gap: 6px; min-height: 56px; }
.home-grid:not(.grid-3) { gap: 8px; }
.home-grid:not(.grid-3) .mod-card .m-icon { width: 44px; height: 44px; margin: 0; background: none; border: 0; box-shadow: none; }
.home-grid:not(.grid-3) .mod-card .m-icon .m-img { width: 40px; height: 40px; filter: none; }
.home-grid:not(.grid-3) .mod-card .m-name { font-size: 16px; font-weight: 700; text-shadow: none; letter-spacing: 0; color: var(--xz-line); white-space: nowrap; }  /* v12.53.3 「红线合拍/星盘合盘」四字在 390 宽两列下折行 → 去字距不折行 */
.home-grid:not(.grid-3) .mod-card .m-sub { display: none; }
.adv-fold summary { color: var(--ink-soft); font-weight: 600; }

/* ---------- 黄历一行: 纸条 ---------- */
.almanac { border: 14px solid transparent; border-image: var(--strip-src) 40 fill / 14px stretch; margin: 0 0 10px; padding: 0 6px; gap: 12px; filter: drop-shadow(0 3px 5px rgba(58,51,48,.14)); }
.alm-date b { font-family: var(--font-body); font-weight: 800; color: var(--xz-line); font-size: 16px; }
.alm-row { font-weight: 700; letter-spacing: 1.5px; }
.alm-seal { border-radius: 50%; width: 22px; height: 22px; font-size: 12.5px; }
.alm-seal.yi { background: var(--xz-red); } .alm-seal.ji { background: var(--xz-indigo); }
.alm-gift { background: none; border: 1.2px solid var(--xz-line-soft); box-shadow: none; transform: none; }
.alm-gift:active { transform: scale(.94); box-shadow: none; }

/* ---------- 底栏: 胶囊 → 纸条 + 朱砂笔点下划 ---------- */
.nav { bottom: 0; left: 0; right: 0; transform: none; width: 100%; max-width: none; border: 0; border-radius: 0; box-shadow: none; padding: 6px 0 calc(10px + env(safe-area-inset-bottom));
  background: var(--strip-src) center / 100% 100% no-repeat; filter: drop-shadow(0 -2px 6px rgba(58,51,48,.14)); }
@media (min-width: 520px) { .nav { left: 50%; transform: translateX(-50%); width: 480px; } }
.nav { padding-left: 10%; padding-right: 10%; }             /* v12.53.5 首页/我的两项贴边太远(拇指区外缘) → 三项向内收, 间距仍均分 */
.nav a { border: 0; border-radius: 0; color: var(--ink-faint); font-weight: 600; position: relative; padding: 6px 0 6px; line-height: 1.3; }
.nav a.active { background: none; color: var(--xz-red); border-color: transparent; transform: none; box-shadow: none; }
.nav a.active::after { content: ''; position: absolute; left: 50%; bottom: 2px; width: 42px; height: 6px; transform: translateX(-50%); background: var(--dab-src) center / 100% 100% no-repeat; }
.nav a .nav-img { filter: grayscale(.9) opacity(.55); width: 28px; height: 28px; object-fit: contain; margin: 0 auto 2px; }   /* 三图统一 256 画布/224 内容盒(v12.53.5 重出), 等宽等高 → 视觉等大 */
.nav a.active .nav-img { filter: none; }
.nav a .nav-img.nav-mark { width: 28px; }
#app { padding-bottom: 88px; }

/* ---------- 我的页 / 记录页 ---------- */
.me-tile { background: none; border: 0; box-shadow: none; }
.me-tile:active { transform: scale(.96); box-shadow: none; }
.me-tile img { filter: none; }
.me-tile span { font-weight: 600; }
.rec-item.rec-starred { border-image-source: var(--paper-src); }
.rec-empty img { filter: none; }

/* ---------- 加载/提示 ---------- */
.zen-loading img, .rite-loading img, .ai-done img, .result-emoji, .emoji-inline, .xp-emo { filter: none; }
.fu-zone { background: rgba(255,255,255,.35); border: 1px dashed var(--xz-line-soft); border-radius: 4px; }
.fu-head img, .deep-head img, .ai-head img { filter: none; }

/* ---------- 大学城入口图 ---------- */
.xhc-img.mascot-tier { filter: none; }
/* 签到卡内层白底退出(纸卡本身是纸) */
.daily-inner, .today-stack .daily-inner { background: none; border: 0; box-shadow: none; }
.today-stack .tm-horo-wide { background: none; }

/* ================================================================
   第二段 · 全量清扫: style.css 里剩余 41 处硬黑边 / 53 处硬投影选择器逐个换纸面
   规则: 选中态 = 藤黄纸片胶囊或朱砂空心; 容器 = 淡白纸(半透)+1.2px 棕线; 投影一律柔
   ================================================================ */
/* 分段选择(牌阵/城市/记录筛选) */
.seg .seg-item { background: rgba(255,255,255,.45); border: 1.2px solid var(--xz-line-soft); color: var(--ink-soft); border-radius: 4px; font-weight: 600; }
.seg .seg-item.on { background: var(--pill-src) center / 100% 100% no-repeat; border-color: transparent; color: var(--xz-red); box-shadow: none; transform: none; font-weight: 700; }
.st-panel .seg-item.st-back { border-style: dashed; }
.st-trig, .st-trig.st-set { background: rgba(255,255,255,.55); border: 1.2px solid var(--xz-line-soft); box-shadow: none; border-radius: 4px; }
.st-trig:active { transform: none; box-shadow: none; }
.st-panel { background: var(--xz-paper-2); border: 1.2px solid var(--xz-line-soft); box-shadow: var(--xz-shadow); border-radius: 5px; }
/* 内嵌小容器 */
.pillar, .qian-poem, .loshu .cell, .wuxing-bar .wx, .zw-grid, .share-link-box, .hp-event-card, .acct-stat, .grade-pill, .event-done, .daily-ask, .fu-input, .cross-rec, .upsell-card, .redeem-item, .fu-card { border: 1.2px solid var(--xz-line-soft); box-shadow: none; background: rgba(255,255,255,.42); border-radius: 4px; }
.pillar .p-label, .pillar .p-ss { color: var(--ink-faint); font-weight: 600; }
.pillar .p-gz { color: var(--xz-line); font-weight: 700; }
.qian-poem { font-family: var(--font-brush); font-weight: 400; color: var(--xz-line); border-left: 0; border-right: 0; border-radius: 0; background: none; }
.zw-grid { background: var(--xz-line-soft); gap: 1px; border-radius: 3px; }
.loshu .cell.miss { opacity: .45; }
.loshu .cell .n { color: var(--xz-line); font-weight: 700; }
.lifepath-ball { border: 1.2px solid var(--xz-line); box-shadow: none; background: var(--xz-paper-2); color: var(--xz-red); }
.ai-box { background: rgba(255,255,255,.35); border: 1px dashed var(--xz-line-soft); border-radius: 4px; transform: none; box-shadow: none; }
.ai-box .ai-head { color: var(--xz-line); font-weight: 700; }
.ai-content .md-ul li::before { background: var(--xz-red); border: 0; }
.grade-pill { color: var(--xz-line); }
.streak-chip { background: var(--xz-red); box-shadow: none; }
.hero .jelly, .hero .h-tag, .hero-btn .hb-ic, .hero-btn .hb-label { border-color: var(--xz-line-soft); box-shadow: none; }
.hero-btn.hb-dot::after { border-color: var(--xz-paper); }
.hp-close { background: none; border: 1.2px solid var(--xz-line-soft); box-shadow: none; color: var(--xz-line); }
.err-toast { background: var(--xz-paper-2); border: 1.2px solid var(--xz-red); color: var(--xz-red); box-shadow: var(--xz-shadow); border-radius: 4px;
  /* v12.53.4 顶部 toast 在首页整块盖住 Logo、其它页盖住标题(召回文案 2.6s) → 移到底栏上方(MD3 snackbar 位, 拇指区, 不压品牌/标题) */
  top: auto; bottom: calc(84px + env(safe-area-inset-bottom)); max-width: calc(100% - 48px); text-align: center; line-height: 1.5; animation: rise-up .25s ease-out; }
@keyframes rise-up { from { opacity: 0; transform: translate(-50%, 10px); } to { opacity: 1; transform: translate(-50%, 0); } }
body.xia-mode .err-toast { bottom: calc(96px + env(safe-area-inset-bottom)); }
.fu-send { background: var(--xz-red); border: 0; box-shadow: none; border-radius: 4px; color: #fff6e8; }
.fu-send:active { transform: translateY(1px); box-shadow: none; }
.fu-input:focus { border-color: var(--xz-red); }
.rel-fill-chip { background: none; border: 1.2px solid var(--xz-red); color: var(--xz-red); box-shadow: none; border-radius: 4px; }
.btn-blue { background: var(--cta-src) center / 100% 100% no-repeat; border-color: transparent; color: #fff6e8; box-shadow: none; }
.btn-blue:active, .btn-sm.btn-blue { box-shadow: none; }
.daily-ask:active { transform: none; box-shadow: none; }
.rite-loading { box-shadow: none; }
/* 商店/排行/记录 tab */
.shop-tab { border: 0; border-radius: 0; color: var(--ink-faint); }
.shop-tab.on { background: none; border: 0; box-shadow: none; color: var(--xz-red); position: relative; }
.shop-tab.on::after { content: ''; position: absolute; left: 50%; bottom: 0; width: 34px; height: 5px; transform: translateX(-50%); background: var(--dab-src) center / 100% 100% no-repeat; }
.rk-tab { border: 1.2px solid var(--xz-line-soft); background: rgba(255,255,255,.45); box-shadow: none; border-radius: 4px; color: var(--ink-soft); font-weight: 600; }
.rk-tab.on { background: var(--pill-src) center / 100% 100% no-repeat; border-color: transparent; color: var(--xz-red); }
/* 模块卡角标(非首页) */
.mod-card .m-icon { background: none; border: 0; box-shadow: none; }
/* 塔罗牌 */
.tarot-card { filter: drop-shadow(0 4px 8px rgba(58,51,48,.22)); }
.tarot-card img, .tarot-card .tc-img { border: 1px solid var(--xz-line-soft); border-radius: 6px; box-shadow: none; }
/* 白底容器统一半透纸 */
.panel .panel, .sub-panel, .inner-card { background: rgba(255,255,255,.4); border: 1.2px solid var(--xz-line-soft); border-radius: 4px; box-shadow: none; }
/* 记录页星标/筛选 */
.rec-item .rec-type { font-weight: 700; color: var(--xz-line); }
.rec-item .rec-icon img { filter: none; }
/* 我的页 */
.me-card, .acct-card { padding: 4px 2px; }
.member-card-ic { filter: none; }
.btn-wechat { background: var(--xz-green); border: 0; color: #fff6e8; box-shadow: none; }
.btn-wechat .wx-ic { filter: none; }
/* 模态/弹层 */
.hp, .home-pop, .modal-box, .sheet, .share-pop { background: var(--xz-paper-2); border: 1.2px solid var(--xz-line-soft); box-shadow: 0 8px 24px rgba(58,51,48,.22); border-radius: 6px; }
.hp-head { border-bottom: 1px solid var(--xz-line-soft); }
/* 复核第 2 轮(8 页截图) */
.btn-orange { background: var(--cta-src) center / 100% 100% no-repeat; border-color: transparent; color: #fff6e8; box-shadow: none; }
.btn-orange:active { box-shadow: none; }
.shop-tabs { background: none; border: 0; box-shadow: none; padding: 4px 0; border-bottom: 1px solid var(--xz-line-soft); border-radius: 0; }
.shop-tab img { filter: none; }
.nav a span { display: none; }                     /* 旧 emoji 文字图标残留 */
.nav a { font-size: 12px; }
.today-mini .tm-arrow { color: var(--ink-faint); }
.first-cta-card .fc-close { background: none; border: 0; color: var(--ink-faint); box-shadow: none; }
.wx-ic { display: none; }
.rec-empty { padding: 6px 0; }
/* 复核第 3 轮: 红线合拍 tab / 高校榜提示卡 / 超市商品卡 / 微信引导 / 赛季横幅 / 底栏文字 */
.hh-tab { border: 1.2px solid var(--xz-line-soft); background: rgba(255,255,255,.45); color: var(--ink-soft); box-shadow: none; border-radius: 4px; font-weight: 600; }
.hh-tab.on { background: var(--pill-src) center / 100% 100% no-repeat; border-color: transparent; color: var(--xz-red); font-weight: 700; }
.rk-mine { border: 1px dashed var(--xz-line-soft); background: rgba(255,255,255,.4); box-shadow: none; border-radius: 4px; }
.rk-mine b { color: var(--xz-line); }
.frame-card, .back-card, .rite-loading, .av-cell, .redeem-item { background: rgba(255,255,255,.42); border: 1.2px solid var(--xz-line-soft); box-shadow: none; border-radius: 5px; }
.frame-card.on, .back-card.on, .av-cell.on { border-color: var(--xz-red); box-shadow: 0 0 0 2px rgba(184,68,44,.15); }
.back-thumb { border: 1px solid var(--xz-line-soft); }
.wx-guide-body { background: var(--xz-paper-2); border: 1.2px solid var(--xz-line-soft); box-shadow: 0 8px 24px rgba(58,51,48,.22); border-radius: 6px; }
.season-banner { background: var(--xz-indigo); border: 0; border-radius: 4px; }
.btn-member, .frame-card.r-member .frame-rarity { background: var(--xz-gamboge); color: var(--xz-line); }
.member-plan { border: 1.2px solid var(--xz-line-soft); box-shadow: none; background: rgba(255,255,255,.42); border-radius: 5px; }
.member-plan.sel, .member-plan.on { border-color: var(--xz-red); border-width: 1.6px; background: rgba(184,68,44,.06); box-shadow: none; }   /* v12.53.5 JS 用 .sel, 皮肤层原写 .on 没命中 → 选中态一直是 v7 黄渐变+硬投影 */
.member-plan.hot { background: rgba(255,255,255,.42); }
.member-plan.sel::after { background: var(--xz-red); color: #fff6e8; border-radius: 3px; }
.member-card.on { background: none; }
.member-head-badge, .member-plan-badge { border-radius: 3px; }
/* 记录页 chips(筛选)在纸底上不用白底 */
.records-filter .chip, .rec-filter .chip { padding: 7px 13px; }
.rk-period button { border: 1.2px solid var(--xz-line-soft); background: rgba(255,255,255,.45); color: var(--ink-soft); border-radius: 4px; font-weight: 600; }
.rk-period button.on { background: var(--xz-red); border-color: var(--xz-red); color: #fff6e8; }
.rk-row .rk-val { color: var(--xz-red); }   /* v12.53.5 原写 .rk-score/.rk-pts 不存在, 真类名 .rk-val */
/* 复核第 4 轮: SSR 壳 / 分享弹层 / 榜单校徽 / 深色残留 */
.ssr-shell a { color: var(--xz-indigo); font-weight: 600; }
.share-mask { background: rgba(58,51,48,.55); }
.share-pop img { border: 1px solid var(--xz-line-soft); border-radius: 6px; box-shadow: 0 8px 24px rgba(58,51,48,.25); }
.share-url { background: rgba(255,255,255,.5); border: 1px dashed var(--xz-line-soft); border-radius: 4px; color: var(--xz-indigo); }
.rk-row .rk-badge, .rk-row .sch-ic { filter: saturate(.55) sepia(.25); border-radius: 4px; box-shadow: none; }
.rk-row .rk-score { color: var(--xz-red); }
#xss-splash { background: var(--cream) var(--bg-src) center top / 512px auto repeat; }
.splash-txt { color: var(--ink-soft); }
.rk-badge:not(.tier-fx) { border: 1.2px solid var(--xz-line); border-radius: 4px; background: rgba(255,255,255,.5); color: var(--xz-line); text-shadow: none; font-family: var(--font-brush); font-weight: 400; font-size: 20px; }
.rk-dfc { background: none; border: 1px solid var(--xz-red); color: var(--xz-red); border-radius: 3px; }
/* 复核第 5 轮: 今日签分数胶囊; 求灵签 ghost(btn-sm 硬底边已在基表源头删除) */
.btn-gray { background: none; border-color: var(--xz-line-soft); color: var(--ink-soft); box-shadow: none; }
.daily-inner.drawn .daily-score { background: none; border: 1.2px solid var(--xz-red); color: var(--xz-red); border-radius: 3px; font-weight: 700; }
.daily-ask, .btn-ghost { background: none; border: 1.2px solid var(--xz-line); color: var(--xz-line); box-shadow: none; }
.daily-inner .daily-lv { color: var(--xz-red); }
/* 我的页顶卡: 两颗档案键改次级空心, 不再朱砂实心抢主角; 收窄防溢出 */
.me-side-btns { max-width: 40%; gap: 6px; }
.me-side-btns .btn { background: none; border: 1.2px solid var(--xz-line-soft); color: var(--xz-line); text-shadow: none; padding: 4px 8px; font-size: 11.5px; }
.me-side-btns .me-btn-dot { color: var(--xz-red); }
.me-uid { background: none; border: 1px solid var(--xz-line-soft); border-radius: 3px; color: var(--ink-soft); }
.member-card, .member-card.on { background: none; border-image-source: var(--paper-src); }
.me-sstat { background: rgba(255,255,255,.4); border: 1px solid var(--xz-line-soft); border-radius: 4px; box-shadow: none; }
/* 我的页红点/角标 */
.me-tile .dot, .me-tile .badge { background: var(--xz-red); }

/* ---------- v12.53.4 UX 复核: 点击热区 ≥ 40×36(WCAG 2.5.8 / iOS HIG 44pt 建议), 只扩热区不改视觉 ---------- */
.first-cta-card .fc-close { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; top: 0; right: 0; }
.rec-star { width: 44px; height: 44px; margin: -5px; }
.hh-me-edit { min-height: 32px; padding: 4px 14px; }
.legal-links a, .disclaimer a { display: inline-block; padding: 8px 6px; }
.me-side-btns .btn { min-height: 36px; }
.shop-tab { min-height: 44px; }
.announce-link { display: inline-block; padding: 4px 4px; }
/* <12px 辅助字整体抬到 12px 底线(测测 50% 用户晚 7 点后打开 → 夜间小字更吃力) */
.m-badge, .member-plan-badge, .chip-new::after { font-size: 10.5px; }
.rec-time, .disclaimer, .me-uid, .streak-chip, .hint small { font-size: 12px; }
.shop-tab { font-size: 12.5px; }
.member-plan small { font-size: 12px; }
/* .announce-link 被页内(纸底)复用作行内动作链接 → 页内用赭红下划线; 公告条(深底)内保持藤黄 */
.announce-link { color: var(--xz-red); text-decoration-color: rgba(184,68,44,.5); }
.announce-marquee .announce-link { color: #f0c86a; }
.site-footer a { display: inline-block; padding: 8px 4px; }
.alm-gift::after { content: ''; position: absolute; inset: -7px; }   /* 28px 圆钮视觉不变, 热区扩到 42px */
.first-cta-card .fc-go, .daily-card .btn-sm { min-height: 36px; }
/* 我的页头卡 ≤360: 昵称「审…」被两侧按钮挤成一个字 → 档案双键换行到头像下方一行两列 */
@media (max-width: 360px) {
  .me-head { flex-wrap: wrap; }
  .me-side-btns { flex-direction: row; max-width: none; width: 100%; order: 3; }
  .me-side-btns .btn { flex: 1; }
}
/* 五行计数条: 皮肤层 .wuxing-bar .wx 的 border 简写会盖掉基表左色条 → 这里补回 */
.wuxing-bar .wx { border-left-width: 4px; }
.wuxing-bar .wx-木 { border-left-color: var(--mint); } .wuxing-bar .wx-火 { border-left-color: var(--coral); } .wuxing-bar .wx-土 { border-left-color: var(--sunny-lo); }
.wuxing-bar .wx-金 { border-left-color: var(--sunny); } .wuxing-bar .wx-水 { border-left-color: var(--grape); }
.wuxing-bar .wx.wx-none { color: var(--coral); border-color: var(--coral); background: rgba(184,68,44,.06); }

/* ---------- v12.54 A1 标签卡弹层(tagcard.js): 尺寸切换 + 预览 ---------- */
.tag-pop { max-width: 360px; padding: 12px 12px 14px; }
.tag-seg { display: flex; gap: 6px; margin-bottom: 10px; border: 1.2px solid var(--xz-line-soft); border-radius: 4px; padding: 3px; background: rgba(255,255,255,.35); }
.tag-seg button { flex: 1; border: 0; background: none; font: 600 13.5px var(--font-body, var(--font-display)); color: var(--ink-soft); padding: 8px 0; border-radius: 3px; letter-spacing: .5px; min-height: 36px; }
.tag-seg button.on { background: var(--xz-red); color: #fff6e8; }
.tag-img-wrap { display: flex; justify-content: center; }
.tag-img-wrap img { display: block; width: 100%; max-height: min(58vh, 460px); object-fit: contain; border: 1px solid var(--xz-line-soft); border-radius: 6px; box-shadow: 0 8px 24px rgba(58,51,48,.25); background: var(--xz-paper-2); }
.tag-img-wrap.tall img { width: auto; }
.tag-hint { text-align: center; margin: 8px 0 0; font-size: 12.5px; }
.tag-pop .share-btns { margin-top: 10px; }
/* 结果页首屏「存图」主按钮: 与 AI 解读并排, 保证首屏可见 */
.tag-cta-row { display: flex; gap: 8px; margin-top: 10px; }
.tag-cta-row .btn { flex: 1; }
.daily-acts { display: flex; flex-direction: column; gap: 5px; flex: none; align-items: stretch; }
.daily-acts .daily-ask { font-size: 11.5px; min-height: 30px; padding: 4px 9px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; }
.daily-acts .daily-tag { border-color: var(--xz-red); color: var(--xz-red); }
.daily-acts .daily-tag .btn-emoji { width: 14px; height: 14px; }
/* ---------- v12.54 A3 黄历行「今日欧气值」大数字 ---------- */
.almanac { gap: 10px; }
.alm-ouqi { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; border: 0; background: none; padding: 2px 6px; min-width: 52px; min-height: 40px; cursor: pointer; -webkit-tap-highlight-color: transparent; position: relative; font-family: inherit; }
.alm-ouqi b { font-family: var(--font-display); font-weight: 900; font-size: 26px; letter-spacing: -.5px; color: var(--xz-red); font-variant-numeric: tabular-nums; }
.alm-ouqi small { font-size: 9.5px; color: var(--ink-faint); letter-spacing: 1px; margin-top: 1px; }
.alm-ouqi[data-tier="good"] b { color: var(--xz-birch); }
.alm-ouqi[data-tier="mid"] b { color: var(--xz-indigo); }
.alm-ouqi[data-tier="low"] b, .alm-ouqi[data-tier="bad"] b { color: var(--ink-soft); }
.alm-ouqi::after { content: ''; position: absolute; right: -2px; top: 4px; width: 6px; height: 6px; border-radius: 50%; background: var(--xz-red); opacity: 0; }
.alm-ouqi.personal::after { opacity: .9; }   /* 叠了档案 → 小红点提示「这是你的分」 */
.alm-ouqi:active { transform: scale(.94); }
@media (max-width: 360px) { .almanac { gap: 7px; } .alm-row { letter-spacing: 1px; font-size: 14px; } .alm-ouqi b { font-size: 23px; } }
/* ---------- v12.54 A2 试算后软提示条(底栏上方滑入) ---------- */
.trial-nudge { position: fixed; left: 10px; right: 10px; bottom: calc(66px + env(safe-area-inset-bottom)); z-index: 998; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 22px solid transparent; border-image: var(--paper-src) 52 fill / 22px stretch; filter: drop-shadow(0 6px 14px rgba(58,51,48,.22)); transform: translateY(120%); opacity: 0; transition: transform .32s cubic-bezier(.2,.8,.2,1), opacity .3s; max-width: 480px; margin: 0 auto; }
.trial-nudge.in { transform: none; opacity: 1; }
.trial-nudge > img { width: 44px; height: 44px; flex: none; }
.trial-nudge .tn-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.trial-nudge .tn-txt b { font-size: 14px; color: var(--ink); }
.trial-nudge .tn-txt small { font-size: 11.5px; color: var(--ink-faint); margin-top: 2px; }
.trial-nudge .btn { flex: none; padding: 8px 12px; font-size: 13px; letter-spacing: .5px; white-space: nowrap; min-height: 36px; }
.trial-nudge .tn-x { position: absolute; top: -14px; right: -12px; width: 36px; height: 36px; border: 0; background: none; color: var(--ink-faint); font-size: 20px; line-height: 1; cursor: pointer; }

/* v12.54 A4: 首页「问一件事」快捷 chip 行 — 左侧毛笔小标 + 横向可滚 pill, 右缘纸色渐隐提示还有更多 */
.ask-quick { display: flex; align-items: center; gap: 10px; margin: 0 2px 12px; min-width: 0; }
.ask-quick .aq-label { flex: none; font: 400 17px var(--font-brush, var(--font-display)); color: var(--red); letter-spacing: 1px; line-height: 1; padding-right: 8px; position: relative; }
.ask-quick .aq-label::after { content: ''; position: absolute; right: 0; top: 15%; height: 70%; width: 1px; background: repeating-linear-gradient(to bottom, var(--xz-line-soft) 0 3px, transparent 3px 6px); }
.ask-quick .aq-scroll { position: relative; flex: 1; min-width: 0; }
.ask-quick .aq-scroll::after { content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 28px; pointer-events: none; background: linear-gradient(to right, transparent, var(--cream)); }
.ask-quick .aq-chips { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 4px 26px 4px 2px; -webkit-overflow-scrolling: touch; }
.ask-quick .aq-chips::-webkit-scrollbar { display: none; }
.ask-quick .aq-chip { flex: none; font-size: 13.5px; padding: 6px 12px; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.ask-quick .aq-chip:active { transform: rotate(-1.5deg) scale(.97); }
.ask-quick .aq-chip .chip-img { width: 17px; height: 17px; vertical-align: middle; }
input.aq-filled { background: rgba(184,68,44,.08); transition: background .6s; }
