/* ============================================================
 * shared/ui.css  第四轮共用层 (阶段 0, 10-23)
 *  规则逐条取自 design/full/_ui.py 的 UI_CSS, 类名/数值一致, 只做三处适配真站:
 *   1) token: 平面图的 --ink/--ink2/--ink3/--line/--line2/--fill/--dark/--warn 真站原来没有, 在这里定义(paper 对齐 shell.css 米白, ink 给对应值);
 *      平面图的 --card/--gold/--bg2 与真站同名不同义(真站 --gold 是深棕文字色), 所以改用 --u-card/--u-gold/--u-bg2, 不动真站 token
 *   2) 层级: 真站 tabbar=40 / .modal-bg=100 / toast=200, 弹层 110/111, toast 210 (平面图里 20/21/40 会被底栏盖住)
 *   3) 末尾追加: 真站弹层壳 .modal-bg.u-bg (复用真站的返回键/焦点/遮挡逻辑), 按钮重置, 弹层入场动画
 *  引入: <link rel="stylesheet" href="../shared/ui.css">  (在 shell.css 之后)
 * ============================================================ */
:root,html[data-theme="paper"]{--ink:#151311;--ink2:#58524A;--ink3:#6C665D;--line:rgba(21,19,17,.08);--line2:rgba(21,19,17,.18);--fill:rgba(60,40,20,.065);--dark:#1A1815;--warn:#A8382B;--u-card:var(--card2);--u-gold:#B8955A;--u-bg2:#EDE8DF;--u-on-ink:#F6F1E8}
html[data-theme="ink"]{--ink:#ECEAE3;--ink2:#C9C7BF;--ink3:#A3A8B6;--line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.22);--fill:rgba(255,255,255,.07);--dark:#242A3B;--warn:#EFA298;--u-card:var(--card);--u-gold:#CBB283;--u-bg2:#10131A;--u-on-ink:#15120A}
html[data-theme="ink"] .u-sheet{background:var(--card2);box-shadow:0 -10px 30px -12px rgba(0,0,0,.7),0 -1px 0 var(--line2)}
html[data-theme="ink"] .u-btn.dis{background:#3A4156;color:#8C93A5}
html[data-theme="ink"] .u-btnd{color:#15120A}
html[data-theme="ink"] .u-tabs span.on,html[data-theme="ink"] .u-time span.on small{color:var(--u-on-ink)}
html[data-theme="ink"] .u-time span.on small{opacity:.7}
html[data-theme="ink"] .u-ask{color:#CBB283}
html[data-theme="ink"] .u-more,html[data-theme="ink"] .u-chips span.lock:after,html[data-theme="ink"] .u-time span.lock i,html[data-theme="ink"] .u-tag.up{color:#CBB283}

/* 10-23: --bg2 与页面底同色, 放在页底上的胶囊/分段看不出底 -> 胶囊类改用半透明 --fill, 白卡和象牙底上都看得见 */
/* 图标统一 1.5 线宽 */
.u-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
/* 底部弹层 */
.u-scrim{position:fixed;inset:0;background:rgba(21,19,17,.42);z-index:110}
.u-sheet{position:fixed;left:0;right:0;bottom:0;height:620px;max-height:620px;display:flex;flex-direction:column;background:var(--bg);border-radius:26px 26px 0 0;z-index:111;padding:8px 18px 22px;overflow:hidden;box-shadow:0 -10px 30px -12px rgba(0,0,0,.35)}
/* 10-22 大王: 拉起来的弹层高度要一样 -> 只两档: 默认 620px(详情/解读), .half 360px(短菜单/确认/客服); 内容多就在弹层里滚, 内容少底部留白, 不许按内容长短变高 */
.u-sheet.half{height:360px;max-height:360px}
.u-sheet>.u-shead{flex:none}
.u-sb{flex:1;min-height:0;overflow:hidden}
.u-grab{width:38px;height:4px;border-radius:2px;background:rgba(21,19,17,.18);margin:0 auto 10px}
.u-shead{display:flex;align-items:flex-start;gap:8px;min-height:40px}
.u-shead .t{flex:1;min-width:0}
.u-shead .k{font-size:11.5px;color:var(--ink3);line-height:1.4}
.u-shead h2{font-family:var(--serif);font-weight:700;font-size:19px;line-height:1.35}
.u-x{width:34px;height:34px;border-radius:50%;background:var(--u-card);display:grid;place-items:center;flex:none;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.u-x svg{width:12px;height:12px;stroke:var(--ink);stroke-width:1.5;fill:none}
.u-ask{height:34px;border-radius:17px;background:var(--dark);color:#E2C690;display:inline-flex;align-items:center;gap:5px;padding:0 11px 0 6px;font-size:12px;flex:none;white-space:nowrap}
.u-ask svg{width:22px;height:22px}
.u-ask.done:before{content:"";width:12px;height:12px;margin-left:4px;background:no-repeat center/12px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.2 2.2 4.8-5' fill='none' stroke='%23E2C690' stroke-width='1.6'/%3E%3C/svg%3E")}
.u-card{background:var(--u-card);border-radius:20px;padding:12px 14px;margin-top:10px;box-shadow:0 1px 0 rgba(21,19,17,.04),0 10px 22px -16px rgba(60,40,20,.45)}
.u-card.in{border-radius:14px}
/* 结论块: 小标签 -> 衬线结论 -> 灰字 <=3 行 -> 展开 */
.u-blk .lab{font-size:11.5px;color:var(--ink3)}
.u-blk .cl{font-family:var(--serif);font-weight:700;font-size:15px;line-height:1.5;margin-top:3px}
.u-blk p{font-size:13px;line-height:1.6;color:var(--ink2);margin-top:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.u-more{font-size:12px;color:#8A6E43;margin-top:6px;display:inline-flex;align-items:center;gap:3px}
/* 一级页签: 黑胶囊, 等宽; >=6 个横滑 */
.u-tabs{display:flex;gap:6px}
.u-tabs span{flex:1;height:34px;border-radius:17px;border:1px solid var(--line2);display:grid;place-items:center;font-size:13px;color:var(--ink2);white-space:nowrap;padding:0 8px}
.u-tabs span.on{background:var(--ink);border-color:var(--ink);color:var(--u-on-ink);font-weight:500}
.u-tabs span sup{font-size:11px;color:var(--ink3);margin-left:3px;vertical-align:0}
.u-tabs.scroll{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent)}
.u-tabs.scroll span{flex:none;min-width:64px}
/* 二级页签: 文字 + 下划线 */
.u-sub{display:flex;gap:20px;height:36px;align-items:stretch;border-bottom:1px solid var(--line);overflow:hidden}
.u-sub span{display:flex;align-items:center;font-size:14px;color:var(--ink3);white-space:nowrap;position:relative}
.u-sub span.on{color:var(--ink);font-weight:600}
.u-sub span.on:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--ink);border-radius:1px}
/* 卡片右上角分段(视图切换, 不算一层页签) */
.u-seg{display:inline-flex;background:var(--fill);border-radius:14px;padding:2px;gap:2px}
.u-seg span{height:24px;border-radius:12px;padding:0 10px;display:grid;place-items:center;font-size:var(--fs-body);color:var(--ink2)}
.u-seg span.on{background:var(--u-card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* 选项胶囊: 点了就生效, 不要「好了」 */
.u-chips{display:flex;flex-wrap:wrap;gap:6px}
.u-chips span{height:36px;border-radius:18px;padding:0 14px;display:grid;place-items:center;font-size:13px;color:var(--ink2);background:var(--fill)}
.u-chips span.on{background:var(--ink);color:var(--u-on-ink);font-weight:600}
.u-chips span.lock{color:var(--ink3)}
.u-chips span.lock:after{content:"会员";color:#8A6E43;border:1px solid rgba(184,149,90,.6);border-radius:7px;padding:0 4px;margin-left:5px;line-height:14px;font-size:11px}
/* 时间条: 页签下方横滑, 一下换天/周/月 */
.u-time{display:flex;gap:6px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);padding:0 4px}
.u-time span{flex:none;min-width:50px;height:46px;border-radius:14px;background:var(--u-card);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12.5px;color:var(--ink2);gap:1px}
.u-time span small{font-size:11px;color:var(--ink3);font-variant-numeric:tabular-nums}
.u-time span.on{background:var(--ink);color:var(--u-on-ink);font-weight:600}.u-time span.on small{color:#CFC6B6}
.u-time span.lock{color:var(--ink3)}
.u-time span.lock i{font-style:normal;font-size:11px;color:#8A6E43}
/* 档案头像条: 首页和模块头卡同一个 */
.u-ppl{display:flex;gap:6px;align-items:center}
.u-ppl i{width:30px;height:30px;border-radius:50%;background:var(--u-bg2);display:grid;place-items:center;font-style:normal;font-family:var(--serif);font-weight:700;font-size:13px;color:var(--ink2)}
.u-ppl i.on{background:var(--dark);color:#E2C690;box-shadow:0 0 0 1.5px var(--u-gold)}
/* 按钮 */
.u-btn{height:52px;border-radius:26px;background:var(--ink);color:var(--u-on-ink);display:grid;place-items:center;font-size:15px;font-weight:600;letter-spacing:.06em}
.u-btn.dis{background:#CFC8BC;color:var(--u-on-ink)}
.u-btn2{height:44px;border-radius:22px;border:1px solid var(--line2);background:transparent;display:grid;place-items:center;font-size:14px;font-weight:500;color:var(--ink)}
.u-btnd{height:52px;border-radius:26px;background:var(--warn);color:var(--u-on-ink);display:grid;place-items:center;font-size:15px;font-weight:600}
.u-row2{display:flex;gap:10px}.u-row2>*{flex:1}.u-row2>.u-btn{flex:1.6}
/* 状态标签: 顺=金 紧=红 平=灰 */
.u-tag{height:20px;border-radius:10px;padding:0 7px;display:inline-flex;align-items:center;font-size:11px;border:1px solid var(--line2);color:var(--ink3);white-space:nowrap}
.u-tag.up{border-color:rgba(184,149,90,.7);color:#8A6E43}
.u-tag.dn{border-color:rgba(168,56,43,.55);color:var(--warn)}
/* 罗盘悬浮钮 */
.u-fab{position:fixed;right:18px;bottom:80px;width:52px;height:52px;border-radius:50%;background:var(--dark);display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(0,0,0,.55);z-index:15}
.u-fab svg{width:30px;height:30px}
/* 模块顶栏 */
.u-nav{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 18px}
.u-nav h1{font-family:var(--serif);font-weight:700;font-size:18px;letter-spacing:.06em}
.u-nav .cb{width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center}
/* 轻提示: 代替「知道了」弹窗 */
.u-toast{position:fixed;left:50%;transform:translateX(-50%);top:62px;height:34px;border-radius:17px;background:var(--dark);color:var(--u-on-ink);padding:0 6px 0 14px;display:flex;align-items:center;gap:10px;font-size:12.5px;z-index:210;white-space:nowrap;box-shadow:0 10px 24px -12px rgba(0,0,0,.6)}
.u-toast b{height:24px;border-radius:12px;background:rgba(255,255,255,.12);padding:0 10px;display:grid;place-items:center;font-weight:500;color:#E2C690}
/* 原地锁定态(会员): 不弹窗 */
.u-lock{border-radius:20px;background:var(--u-card);padding:18px 16px;text-align:center}
.u-lock b{font-family:var(--serif);font-size:15px;display:block}
.u-lock p{font-size:var(--fs-body);color:var(--ink2);margin-top:5px;line-height:1.6}
.u-lock .u-tag{margin-top:8px}
/* 空状态 */
.u-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:calc(844px * .4 - 140px)}
.u-empty h3{font-family:var(--serif);font-weight:700;font-size:16px;margin-top:14px}
.u-empty p{font-size:13px;color:var(--ink2);line-height:1.6;margin-top:6px;max-width:280px}
.u-empty .u-btn,.u-empty .u-btn2{margin-top:20px;align-self:stretch}
/* 数字 */
.num,.u-num{font-family:'Inter',var(--sans);font-variant-numeric:tabular-nums}
/* 10-23 高级感: 分隔线统一 0.08 / 0.5px (#6). 各区自己写的 `1px solid var(--line)` 一律换成 `.5px solid var(--line)` */
.u-sub{border-bottom:.5px solid var(--line)}
.u-hr{height:0;border-top:.5px solid var(--line);margin:10px 0}

/* 弹层里的卡不再叠阴影 (#1): 弹层自己有阴影 */
.u-sheet .u-card{box-shadow:none}

/* 金色链接退成墨色 (#4): 金色留给标识、当前头像、每屏一处重点 */
.u-more{color:var(--ink2)}

/* 安静版的「顺」标签: 用在每行都有一个标签的列表页 (B06 B20 B42 D42-D46) */
.u-tag.q{border-color:var(--line2);color:var(--ink)}
/* 「本月 / 当前」这一处强调 */
.u-tag.now{border-color:var(--ink);color:var(--ink);font-weight:600}

/* 关键词胶囊 (X3): 全站只这一种, 加上 u-tag, 每屏最多两种胶囊 */
.u-kw{height:22px;border-radius:999px;padding:0 8px;background:var(--fill);display:inline-flex;align-items:center;font-size:11.5px;color:var(--ink2);white-space:nowrap}
.u-kw.b{color:var(--ink);font-weight:600}
.u-kw.r{color:var(--warn)}

/* 选中卡 / 当前行 (X4) */
.u-pick{box-shadow:inset 0 0 0 1.5px var(--ink)}
.u-cur{background:var(--fill)}

/* 大数字 (X5): 只改字体、字重、等宽, 字号保留各处原值 */
.u-big{font-family:'Inter',var(--sans);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em}
.u-big small,.u-big .unit{font-weight:400;color:var(--ink3);margin-left:2px}

/* 二级页签放不下就横滑 (D53-D55, 对应 FIX_R4 #10 ③) */
.u-sub.scroll{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 16px),transparent)}
.u-sub.scroll span{flex:none}

/* 圆角收成三档 (X10): 卡里的灰底小盒一律 14 */
.u-box{background:var(--fill);border-radius:14px;padding:10px 12px}

/* ---------- 以下是真站适配 (平面图里没有) ---------- */
.u-sheet,.u-x,.u-ask{font-family:var(--sans);color:var(--ink)}
.u-x,.u-ask{border:0;padding:0;cursor:pointer;font:inherit;font-size:12px}
.u-x{padding:0}
.u-ask{padding:0 11px 0 6px;color:#E2C690}
.u-tabs span,.u-sub span,.u-seg span,.u-chips span,.u-time span{cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none}
.u-tabs span:focus-visible,.u-sub span:focus-visible,.u-seg span:focus-visible,.u-chips span:focus-visible,.u-time span:focus-visible,.u-x:focus-visible,.u-ask:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
/* 真站弹层壳: 复用 .modal-bg 的 on/返回键/遮挡逻辑 */
.modal-bg.u-bg{background:rgba(21,19,17,.42);align-items:flex-end;justify-content:center;z-index:110;opacity:0;transition:opacity .22s ease}
.modal-bg.u-bg.show{opacity:1}
.modal-bg.u-bg>.u-sheet{position:absolute;left:0;right:0;margin:0 auto;max-width:640px;height:min(620px,calc(100dvh - 24px));max-height:min(620px,calc(100dvh - 24px));padding-bottom:calc(22px + var(--safe-b,0px));transform:translateY(100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);outline:0;z-index:111}
.modal-bg.u-bg>.u-sheet.half{height:min(360px,calc(100dvh - 24px));max-height:min(360px,calc(100dvh - 24px))}
.modal-bg.u-bg.show>.u-sheet{transform:none}
.modal-bg.u-bg>.u-sheet.drag{transition:none}
@media (min-width:640px){.modal-bg.u-bg{align-items:flex-end}}
.u-sb,.u-sb.sc{overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}   /* 真站: 内容超出可下滑, 数据不许被截掉 */
.u-sb::-webkit-scrollbar{display:none}
.u-toast{max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .2s}
.u-toast.show{opacity:1}
.u-toast b{cursor:pointer;flex:none}
@media (prefers-reduced-motion:reduce){.modal-bg.u-bg,.modal-bg.u-bg>.u-sheet,.u-toast{transition:none}}
.u-chips span.lock{display:inline-flex;align-items:center;justify-content:center}

/* ===== 收尾 (10-23 fin): 全站统一顶栏 —— 圆形返回钮 + 圆形/胶囊操作钮 (原 ui-module.css 版本上移到全站) ===== */
html body .topbar .in { padding: 0 18px; grid-template-columns: 1fr auto 1fr; }
html body .topbar .act { gap: 8px; align-items: center; }
html body .topbar .iconbtn.cb { width: 34px !important; height: 34px !important; min-width: 34px !important; min-height: 34px !important; padding: 0 !important; border-radius: 50%; border: .5px solid var(--line2); display: inline-grid; place-items: center; font-size: 14px !important; color: var(--ink) !important; background: transparent; position: relative; }
html body .topbar .iconbtn.cb svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
html body .topbar .iconbtn.pill { height: 34px !important; min-height: 34px !important; min-width: 0 !important; padding: 0 14px !important; border-radius: 17px; border: .5px solid var(--line2); font-size: 13px !important; color: var(--ink) !important; background: transparent; white-space: nowrap; }
html body .topbar .ttl { font-family: var(--serif); font-weight: 700; font-size: 18px; letter-spacing: .12em; }
/* 圆钮点击热区: 视觉 34px, 点击区外扩到 44px, 不用 ::after 以免和别的规则冲突 */
html body .topbar .iconbtn.cb::before, html body .topbar .iconbtn.pill::before { content: ''; position: absolute; inset: -5px; }
html body .topbar .iconbtn.pill { position: relative; }

/* 分享弹层 (shared/share.js, 平面图 A52) */
.sh-pv{background:var(--fill,#EDE7DC);border-radius:20px;padding:14px 0;display:grid;place-items:center}
.sh-pv img{height:min(300px,38vh);width:auto;max-width:78%;border-radius:12px;display:block;box-shadow:0 8px 22px -10px rgba(60,44,22,.35)}
.sh-note{margin:10px 2px 12px;font-size:11.5px;line-height:1.6;color:var(--ink3);text-align:center}
.sh-btns .u-btn[role=button],.sh-btns .u-btn2[role=button]{cursor:pointer}

/* ===================== 10-27 审美优化 (帝师审美审计 AESTHETIC_AUDIT.md) =====================
   判断: 第四轮平面图的结构(站长定稿)不动; 把改造前真站的「纸感/暖」带回来:
   ① 近黑 #151311/#1A1815 → 暖墨 #2A2521: 直接改 paper 的 --ink(正文墨色+所有实心块一起变, 改造前正文/选中态就是 --text #2B2926); 对比度仍 >12:1
   ② 一屏里只留一个实心选中块: 二级日期条选中改「白底 + 墨线」
   ③ 头卡/首页运势卡 = 暖纸渐变 + 0.5px 描边 + 柔阴影(改造前 --hero-grad 的质感)
   ④ 未选中胶囊/圆钮的 1px 灰框减半, 不再满屏线框
   只改 paper 主题的颜色; ink 主题只继承结构类改动(描边/阴影走变量) */
:root,html[data-theme="paper"]{--ink:#2A2521;--u-solid:#2A2521;--dark:#2A2521;--u-hair:rgba(60,40,20,.10);--u-paper:linear-gradient(160deg,#FFFFFF 0%,#FCF9F4 55%,#F6F0E6 100%);--u-sh:0 0 0 .5px rgba(60,40,20,.07),0 1px 0 rgba(255,255,255,.8) inset,0 12px 26px -20px rgba(60,40,20,.55)}
html[data-theme="ink"]{--u-solid:var(--ink);--u-hair:rgba(255,255,255,.10);--u-paper:var(--card2);--u-sh:0 0 0 .5px rgba(255,255,255,.06),0 12px 26px -18px rgba(0,0,0,.6)}
/* ① 实心块统一暖墨 */
html:not([data-theme="ink"]) body .u-tabs span.on,html:not([data-theme="ink"]) body .subtabs button.on{background:var(--u-solid);border-color:var(--u-solid)}
html:not([data-theme="ink"]) body .u-chips span.on,html:not([data-theme="ink"]) body .u-btn:not(.dis),html:not([data-theme="ink"]) body .u-sheet .mb .yrchips button.now{background:var(--u-solid)}
html:not([data-theme="ink"]) body .u-sub span.on:after{background:var(--u-solid)}
html:not([data-theme="ink"]) body .cmp-fab{background:var(--u-solid)!important;box-shadow:0 8px 20px -8px rgba(43,38,34,.55),0 0 0 .5px rgba(0,0,0,.06)!important}
html:not([data-theme="ink"]) body .cmp-menu,html:not([data-theme="ink"]) body .cmp-menu::after{background:var(--u-solid)}
html:not([data-theme="ink"]) body .hc > svg:first-child > circle:first-child{fill:var(--u-solid)}
/* ② 二级日期条: 选中 = 白底墨线, 让一级页签成为唯一实心块 */
html body .u-time span{background:rgba(255,255,255,.55);box-shadow:0 0 0 .5px var(--u-hair)}
html body .u-time span.on{background:var(--u-card);color:var(--ink);box-shadow:0 0 0 1px rgba(176,138,74,.55),0 6px 14px -10px rgba(60,40,20,.35)}
html body .u-time span.on small{color:var(--ink2)!important;opacity:1!important}
html[data-theme="ink"] body .u-time span{background:var(--card)}
html[data-theme="ink"] body .u-time span.on{background:var(--card2)}
/* ④ 未选中胶囊/圆钮: 框减半 + 一点纸面底 */
html body .u-tabs span:not(.on),html body .subtabs button:not(.on){border-color:var(--u-hair);background:rgba(255,255,255,.5)}
html[data-theme="ink"] body .u-tabs span:not(.on),html[data-theme="ink"] body .subtabs button:not(.on){background:transparent}
html body .topbar .iconbtn.cb,html body .u-nav .cb{border-color:var(--u-hair)!important;background:rgba(255,255,255,.55)}
html[data-theme="ink"] body .topbar .iconbtn.cb,html[data-theme="ink"] body .u-nav .cb{background:transparent}
/* ③ 头卡: 暖纸 */
html body .hc{background:var(--u-paper);box-shadow:var(--u-sh)}
html body .u-card{box-shadow:var(--u-sh)}
/* 状态标签/胶囊的金色只留给「字」, 框用淡金 */
html body .u-tag.up{border-color:rgba(184,149,90,.45)}
/* 10-27 审美优化 · D 区头卡(12个月/印证/合盘)与 B 区 .hc 同一张暖纸; 内容大卡同一阴影 */
html body .tl-hero,html body .x-hero,html body .m-hero{background:var(--u-paper);box-shadow:var(--u-sh)}
html body .tl-card,html body .pcard,html body .dcard{box-shadow:var(--u-sh)}
/* 合盘: 关系胶囊(恋人/夫妻…)是「选项」不是页签 → 选中改白底墨线, 下面一排视图页签保留唯一实心块 */
html body .u-tabs.relrow span.on{background:var(--u-card);color:var(--ink);border-color:transparent;box-shadow:0 0 0 1.5px var(--u-solid);font-weight:600}
html[data-theme="ink"] body .u-tabs.relrow span.on{background:var(--card2)}
