@charset "UTF-8";
/* ============================================================================
 * 词卷 V5.2 · 弹层皮肤层 22-ws-v5-overlays.css
 * ----------------------------------------------------------------------------
 * 所有弹窗 / 底部抽屉 / 菜单 / 下拉 / toast / 内联提示卡 在 V5 下的统一皮肤。
 * 规则：
 *   1. 每一条选择器都以 html.ws-v5 打头（隔离门会检查）——切回旧版这层等于不存在。
 *   2. 颜色只用 --v5-* 桥接令牌（定义在 16-ws-v5.css），不写死色值。
 *   3. 这是文档里**最后一张**样式表：它要盖过 16/18/20 里对同一弹层的零散规则。
 *      写法：前缀 html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body（5 个 class）+ 目标 + :not(#_)（借一个 id 的权重）
 *      → (1,6,2)，高于 16 号 §5 的 (1,5,3) 与 20 号的 (0,5,2)/(3,4,2)，同权重时靠「最后一张」赢。
 *   4. 手机（≤768px）上宽 ≥480 的弹窗改成底部抽屉：顶部圆角 22 + 拖把手，最高 88dvh 内滚动。
 *   5. 结构类由 23-ws-v5-overlays.js 在挂载时打上：根 [data-wsv5-overlay=modal|sheet|menu|toast]、
 *      卡 .v5-dialog(.v5-sheet) > .v5-dialog__head(.v5-dialog__icon + .v5-dialog__title + .v5-dialog__close)
 *      + .v5-dialog__body + .v5-dialog__acts；本文件只认这些类，不认旧皮肤（contact-dialog / ws-reg-card …）。
 *   6. 字阶只用 --v5-fs-*（§3 九档）；药丸 13px 是 §5 定的 chip 字号（16 号同款）。
 * 规范：release-packages/v5-design/DESIGN-V5.2.md §5（弹窗/菜单/toast/内联提示）§5.1 §5.2。
 * 层级（§5.2）：站点既有浮层都在 12000 档、手机底栏 9999、ui-polish-v4 把 body>[class*=modal] 钉在 12060，
 *   所以这里沿用同一档并保持「遮罩类 < 菜单 < toast」的相对顺序：modal/sheet 12060 · menu 12100 · toast 12200。
 * ==========================================================================*/

/* ==================== 0. 令牌 ==================== */
html.ws-v5{
  --v5-z-modal:12060;--v5-z-menu:12100;--v5-z-toast:12200;
  --v5-dlg-w:520px;
  --v5-veil-blur:4px;
}
html.ws-v5 [data-wsv5-size="sm"]{--v5-dlg-w:420px;}
html.ws-v5 [data-wsv5-size="md"]{--v5-dlg-w:520px;}
html.ws-v5 [data-wsv5-size="lg"]{--v5-dlg-w:720px;}
html.ws-v5 [data-wsv5-size="xl"]{--v5-dlg-w:1120px;}
html.ws-v5 [data-wsv5-size="auth"]{--v5-dlg-w:960px;}

/* ==================== 1. 遮罩：统一 --v5-veil + 4px 模糊，让出刘海 / Home 条 ==================== */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="modal"]:not([data-wsv5-role="page"]):not([data-wsv5-role="menu"]):not([data-wsv5-role="select"]):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="sheet"]:not([data-wsv5-role="page"]):not([data-wsv5-role="menu"]):not(#_){
  background:var(--v5-veil)!important;background-image:none!important;
  -webkit-backdrop-filter:blur(var(--v5-veil-blur))!important;backdrop-filter:blur(var(--v5-veil-blur))!important;
  padding:calc(env(safe-area-inset-top,0px) + 24px) 16px calc(env(safe-area-inset-bottom,0px) + 24px)!important;
  box-sizing:border-box!important;
  max-height:none!important;max-width:none!important;min-height:0!important;border-radius:0!important;
  overflow:auto!important;
}
/* 菜单的遮罩桌面上透明（点外面关掉即可，不压暗页面）；手机变抽屉时才压暗 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-role="menu-mask"][data-wsv5-overlay="menu"]:not(#_){background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;z-index:calc(var(--v5-z-menu) - 1)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-role="menu-mask"][data-wsv5-overlay="sheet"]:not(#_){background:var(--v5-veil)!important;-webkit-backdrop-filter:blur(var(--v5-veil-blur))!important;backdrop-filter:blur(var(--v5-veil-blur))!important;z-index:calc(var(--v5-z-menu) - 1)!important;}
/* 层级：搬到 body 末尾的两个弹层 + 桌面「全部功能」面板（原 z 2000，比所有 12000 档弹层都低） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal.plan-full-modal:not(#_){
  position:fixed!important;inset:0!important;height:100dvh!important;z-index:var(--v5-z-modal)!important;
  display:none!important;align-items:center!important;justify-content:center!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal.plan-full-modal.open:not(#_){display:flex!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal.contact-modal:not(#_){z-index:var(--v5-z-modal)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask:not(#_){z-index:var(--v5-z-modal)!important;}
/* 搬到 body 的弹层在「未打开」态一律不显示（build-gates P0：离开 #view-plan 后 index.html:6731 那条 display:none 失效，
   空壳 #planFullModal 盖住整页、#startBtn 点不到）。23 号给每个 toBody 的根打 data-wsv5-tobody；打开态只认 .on / .open / .is-open。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body > [data-wsv5-tobody]:not(.on):not(.open):not(.is-open):not(#_){display:none!important;pointer-events:none!important;}
/* 加载遮罩里的「广告位招商」：业主拍板广告只放启动加载页一行 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-ad:not(#_){display:none!important;}

/* ==================== 2. 卡片 .v5-dialog（一套皮肤盖过 contact-dialog / ws-reg-card / ws-qr / ws-card / rq / share …） ==================== */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:not(#_){
  position:relative!important;
  width:min(var(--v5-dlg-w),100%)!important;max-width:100%!important;min-width:0!important;
  max-height:100%!important;min-height:0!important;
  margin:auto!important;
  overflow:auto!important;
  background:var(--v5-panel)!important;background-image:none!important;
  color:var(--v5-ink)!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;
  box-shadow:0 24px 64px -24px var(--v5-veil),var(--v5-shadow-soft)!important;
  text-align:left!important;
  clip-path:var(--v5-hero-clip)!important;
  float:none!important;
  inset:auto!important;
}
/* 套了壳的卡：头 / 体 / 动作行三段，体内滚，动作行钉在卡底 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:has(> .v5-dialog__body):not(#_){
  display:flex!important;flex-direction:column!important;overflow:hidden!important;padding:0!important;gap:0!important;
}
/* ---- 入场与主题性格（§2.1 / §2.1.1，全部走 16 号 1.6 节令牌）----
   卡片：animation 名走 --v5-enter（星穹家族改「切角展开」v5-ov-cut-open：切角卡从压扁态张开；猫卷 v5-enter-soft 从 .96 弹到 1；
   纸墨 v5-enter-ink 墨晕（blur 3px→0）；极简 v5-enter-fade 只淡入），时长 --v5-dur-slow、曲线 --v5-ease（猫卷是弹簧 (.34,1.56,.64,1)）。
   抽屉：再叠一条 v5-ov-sheet-up 从底升起，曲线同上 → 猫卷「弹簧升起」、星穹科技曲线、纸墨 ease。
   形：卡圆角 --v5-r（星穹 12 / 猫卷 22 / 纸墨 6 / 极简 10 / 像素 0 + 台阶切角）、星穹家族的卡另用 --v5-hero-clip 切八角（其余主题该令牌 = none）。 */
@keyframes v5-ov-sheet-up{from{transform:translateY(40px)}to{transform:none}}
@keyframes v5-ov-cut-open{from{opacity:0;transform:scale(.97,.86)}to{opacity:1;transform:none}}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:not(#_){animation:var(--v5-enter) var(--v5-dur-slow) var(--v5-ease) both;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog.v5-sheet:not(#_){animation:var(--v5-enter) var(--v5-dur-slow) var(--v5-ease) both,v5-ov-sheet-up var(--v5-dur-slow) var(--v5-ease) both;}
html.ws-v5[data-theme^="supreme"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:not(.v5-sheet):not(#_){animation-name:v5-ov-cut-open;}
/* 猫卷：× 与图标全圆，抽屉把手换成一枚肉球（猫卷的 --v5-mark-done 就是肉球） */
html.ws-v5[data-theme="cute-pink"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__close:not(#_){border-radius:var(--v5-r-chip)!important;}
html.ws-v5[data-theme="cute-pink"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__icon:not(#_),
html.ws-v5[data-theme="cute-pink"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .seal:not(#_),
html.ws-v5[data-theme="cute-pink"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-seal:not(#_){position:relative!important;overflow:visible!important;border-radius:var(--v5-r-chip)!important;z-index:0!important;}
/* 猫耳只长在头像 chip 上（业主标准，D-ov-02）：弹窗功能图标 / 印章不再加 ::before/::after 猫耳，猫卷性格由圆角 22、药丸按钮、弹簧入场体现 */
html.ws-v5[data-theme="cute-pink"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet__grip:not(#_){width:20px!important;height:18px!important;border-radius:0!important;background:var(--v5-accent-line)!important;-webkit-mask:var(--v5-mark-done) center/contain no-repeat!important;mask:var(--v5-mark-done) center/contain no-repeat!important;margin-top:8px!important;}
/* 减少动态效果：只留 120ms 淡入（16 号已把 --v5-enter 切成 fade，这里把抽屉的升起也收掉） */
@media(prefers-reduced-motion:reduce){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog.v5-sheet:not(#_){animation:v5-enter-fade var(--v5-dur-fast) linear both!important;}
}
/* 底部抽屉（手机 ≤768 且设计宽度 ≥480） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="sheet"]:not([data-wsv5-role="menu"]):not([data-wsv5-role="panel"]):not([data-wsv5-role="page"]):not(#_){
  align-items:flex-end!important;justify-content:center!important;
  padding:calc(env(safe-area-inset-top,0px) + 40px) 0 0!important;overflow:hidden!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog.v5-sheet:not(#_){
  width:100%!important;max-width:none!important;margin:0!important;
  max-height:min(88dvh,100%)!important;
  border-radius:var(--v5-r) var(--v5-r) 0 0!important;border-bottom:0!important;
  padding-bottom:env(safe-area-inset-bottom,0px)!important;
  box-shadow:0 -12px 40px -8px var(--v5-veil),var(--v5-shadow-soft)!important;
  transform:none;
  clip-path:none!important;   /* 抽屉不切角（底边在屏幕边缘，切角会漏出遮罩）：圆角顶 --v5-r，猫卷 22 / 星穹 12 / 纸墨 6 */
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet__grip:not(#_){display:block!important;flex:none!important;width:36px!important;height:4px!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-line-2)!important;margin:10px auto 0!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog:not(.v5-sheet) .v5-sheet__grip:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet > .v5-dialog__head:not(#_){padding-top:8px!important;}

/* ---- 居中根修（2026-09-26 业主「很多页面不居中」）：ui-polish-apple.css:256 在 ≤768 用
   :where([class*="modal"],[class*="dialog"]){max-width:min(92vw,430px)!important} —— 本意只管弹窗本体，
   却连带命中我们自己的 .v5-dialog__head / .v5-dialog__body（类名里带 dialog）以及弹窗里 .modal-lines 等子块，
   把它们压成 92vw（390 宽的底部抽屉里只剩 359）→ 整块贴左、右边空出 30px、× 也离右边 30px。
   这里只放开 max-width（不碰它顺带加的高度/滚动），特异性故意低于 22 号各处的五连写法，那些地方要是自己写了 max-width 仍然生效 ---- */
html.ws-v5.ws-v5 :is(.v5-dialog,.auth-modal-dialog) :is([class*="modal"],[class*="dialog"]):not(#_){max-width:100%!important;}
/* ---- 头：图标 + 标题(17/600 黑体) + ×(36×36) ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head:not(#_){
  display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
  flex:none!important;margin:0!important;padding:18px 20px 12px!important;
  border:0!important;background:transparent!important;background-image:none!important;box-shadow:none!important;border-radius:0!important;
  text-align:left!important;position:relative!important;min-height:0!important;max-height:none!important;overflow:visible!important;
  width:auto!important;grid-template-columns:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head.is-bare:not(#_){padding:10px 12px 0!important;justify-content:flex-end!important;}
/* D-ov-06：没有独立标题节点的弹窗（install / 战报 / 主题预览 / 个人中心 / 难词详情 / 绑定微信 / 分享卡）——标题长在体内自带的头块里（图标+标题+说明），
   × 单独占一行会在卡顶多出 ~40px 空带。× 改为贴卡头右上（与体内第一行标题同一行），体内第一块右侧让出 × 的位置 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog > .v5-dialog__head.is-bare:not(#_){position:absolute!important;top:12px!important;right:12px!important;left:auto!important;z-index:3!important;padding:0!important;margin:0!important;width:auto!important;min-height:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body:not(#_){padding-top:20px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > :first-child:not(#hardWordModalBody):not(#wsWxBindBody):not(#_):not(#__){padding-right:40px!important;box-sizing:border-box!important;}   /* 两个 id 权重：压过 #installModal .install-download-head / #themePreviewModal .theme-preview-top 等各自写的 padding */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > :first-child > :is(h2,h3):first-of-type:not(#_){margin-top:0!important;}   /* 体内第一行标题顶到 body 的 20px 内边距，与 × 垂直居中对齐 */
/* 难词详情 / 绑定微信的第一块是整段内容的包裹层（让它右缩 40 会让下面所有分隔线、正文都短一截）→ 只让出包裹层里的第一行（标题行） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > :is(#hardWordModalBody,#wsWxBindBody) > :first-child:not(#_){padding-right:40px!important;box-sizing:border-box!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog.v5-sheet > .v5-dialog__head.is-bare:not(#_){top:22px!important;right:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog.v5-sheet > .v5-dialog__head.is-bare + .v5-dialog__body:not(#_){padding-top:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head > div:not(#_){flex:1 1 auto;min-width:0;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head > div > p:not(#_){margin:4px 0 0!important;font-size:var(--v5-fs-caption)!important;line-height:1.5!important;color:var(--v5-ink-3)!important;max-width:none!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__title:not(#_){
  flex:1 1 auto!important;min-width:0!important;margin:0!important;padding:0!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;line-height:1.3!important;
  color:var(--v5-ink)!important;letter-spacing:0!important;text-align:left!important;text-transform:none!important;text-shadow:none!important;
  overflow-wrap:anywhere;display:block!important;overflow:visible!important;   /* 手机层给它 overflow:auto，粗体首字的左侧字缘被裁掉一截（探针实测 .ws-reg-title overflow:auto） */
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__icon:not(#_){
  flex:none!important;width:36px!important;height:36px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;
  border-radius:var(--v5-r-sm)!important;border:0!important;
  display:grid!important;place-items:center!important;
  background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;
  font-size:var(--v5-fs-title)!important;line-height:1!important;font-weight:700!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__close:not(#_){
  position:static!important;float:none!important;flex:none!important;order:99!important;
  width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:none!important;
  margin:0 0 0 auto!important;padding:0!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;background-image:none!important;box-shadow:none!important;
  color:var(--v5-ink-3)!important;font:400 var(--v5-fs-section)/1 var(--cjk,inherit)!important;
  display:grid!important;place-items:center!important;cursor:pointer;
  top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;transform:none!important;z-index:auto!important;opacity:1!important;
  -webkit-appearance:none!important;appearance:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__close:hover{background:var(--v5-accent-soft)!important;color:var(--v5-ink)!important;}
/* ---- 体：内滚 ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body:not(#_){
  flex:1 1 auto!important;min-height:0!important;max-height:none!important;height:auto!important;
  overflow:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  margin:0!important;padding:4px 20px 18px!important;
  font-size:var(--v5-fs-body);line-height:1.6;color:var(--v5-ink-2);text-align:left!important;
  display:block!important;gap:0!important;width:auto!important;border:0!important;background:transparent!important;border-radius:0!important;
}
/* ---- 动作行：桌面右对齐、主按钮最右；手机全宽、主按钮在上（见 §9 手机段） ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts:not(#_){
  display:flex!important;flex-direction:row-reverse!important;flex-wrap:wrap!important;
  justify-content:flex-start!important;align-items:center!important;gap:10px!important;
  flex:none!important;margin:0!important;padding:14px 20px!important;
  border:0!important;border-top:1px solid var(--v5-line)!important;background:var(--v5-panel)!important;background-image:none!important;
  position:static!important;top:auto!important;bottom:auto!important;box-shadow:none!important;border-radius:0!important;
  grid-template-columns:none!important;width:auto!important;max-width:none!important;min-height:0!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts > div:not([hidden]):not(#_){display:contents!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts > [hidden]:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:not(#_){
  -webkit-appearance:none!important;appearance:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
  box-sizing:border-box!important;min-height:40px!important;height:auto!important;
  margin:0!important;padding:0 16px!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;
  background:transparent!important;background-image:none!important;color:var(--v5-ink)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;line-height:1.2!important;
  text-align:center!important;white-space:nowrap!important;cursor:pointer;
  box-shadow:none!important;text-decoration:none!important;letter-spacing:0!important;text-transform:none!important;
  width:auto!important;max-width:100%!important;flex:0 0 auto!important;
  clip-path:none!important;filter:none!important;transform:none!important;opacity:1;grid-column:auto!important;order:0;
  transition:background-color var(--v5-dur-fast),color var(--v5-dur-fast),border-color var(--v5-dur-fast);
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button[hidden]:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:hover{background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:disabled:not(#_){opacity:.5!important;cursor:not-allowed;}
/* 主按钮（一屏一个）：accent 填充 / on-accent 字 / 高 48 / 切角 12 / 字 15/600 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .primary:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-primary:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-onb-done-primary:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-qr-confirm-ok:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-card-btn.primary:not(#_){
  order:-1!important;
  min-height:var(--v5-btn-h-lg)!important;padding:0 22px!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;
  font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;box-shadow:var(--v5-shadow-soft)!important;
  filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--accent) 45%,transparent))!important;
}
/* 纸墨：主按钮像一枚印章——印泥色描边（内描 1px on-accent 25%），按下 --v5-press(.97) 先压后回（23 号给动作行主按钮打了 .v5-btn-primary，16 号的签名规则同时生效） */
html.ws-v5[data-theme="light"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .v5-btn-primary:not(#_),
html.ws-v5[data-theme="dark"].ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .v5-btn-primary:not(#_){box-shadow:var(--v5-shadow-soft),inset 0 0 0 1px color-mix(in srgb,var(--v5-on-accent) 25%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .primary:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-primary:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-onb-done-primary:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-qr-confirm-ok:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-card-btn.primary:hover{background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;filter:brightness(1.06) drop-shadow(0 0 calc(14px * var(--v5-glow)) color-mix(in srgb,var(--accent) 50%,transparent))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .primary:is(:active,.is-pressed),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-primary:is(:active,.is-pressed){transform:var(--v5-press)!important;}
/* 文字按钮：无边、accent 字 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ghost:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-ghost:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-onb-done-ghost:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-qr-confirm-cancel:not(#_){
  border-color:transparent!important;background:transparent!important;color:var(--v5-accent-ink)!important;
  padding:0 10px!important;min-height:36px!important;font-weight:500!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ghost:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-ghost:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-onb-done-ghost:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-qr-confirm-cancel:hover{text-decoration:underline!important;background:var(--v5-accent-soft)!important;border-color:transparent!important;}

/* ---- 体内排版：一律黑体、§3 字阶；不再有衬线大标题 ---- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body p:not(#_){margin:0 0 12px!important;max-width:none!important;font-size:var(--v5-fs-body)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body h2:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body h3:not(#_){
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;line-height:1.3!important;
  color:var(--v5-ink)!important;margin:14px 0 8px!important;padding:0!important;letter-spacing:0!important;text-align:left!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body > h2:first-child:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body > h3:first-child:not(#_){margin-top:4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body h4:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:12px 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body small:not(#_){font-size:var(--v5-fs-caption)!important;line-height:1.5!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body ul:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body ol:not(#_){margin:0 0 12px!important;padding-left:18px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body li:not(#_){font-size:var(--v5-fs-body)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body label:not(#_){font-size:var(--v5-fs-caption)!important;font-weight:600!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body textarea:not(#_){
  width:100%!important;box-sizing:border-box!important;min-height:44px!important;padding:0 12px!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;
  background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;line-height:1.4!important;outline:none!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body textarea:not(#_){min-height:96px!important;padding:10px 12px!important;line-height:1.5!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body input:focus:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body textarea:focus:not(#_){border-color:var(--v5-accent-line)!important;box-shadow:0 0 0 3px var(--v5-accent-soft)!important;}
/* 小标（kicker）统一成 eyebrow */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .achievement-kicker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-kicker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-onb-done-kicker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .contact-label:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-kicker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .menu-panel-path:not(#_){
  display:block!important;margin:0 0 6px!important;padding:0!important;border:0!important;background:transparent!important;border-radius:0!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  color:var(--v5-accent-ink)!important;line-height:1.3!important;text-align:left!important;
}
/* 英文小标和下面的中文标题说的是同一件事（PROFILE CENTER＝个人中心、SHARE REPORT＝分享学习战报）→ 不显示，避免中英重复 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-kicker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-kicker:not(#_){display:none!important;}
/* 体内还留着的印章 / 图标（没搬进头的） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .seal:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-seal:not(#_){
  width:40px!important;height:40px!important;margin:0 0 10px!important;border-radius:var(--v5-r-sm)!important;border:0!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-title)!important;font-weight:700!important;box-shadow:none!important;
}
/* 体内的次级说明框（invite-note / install-note / feature-unlock-progress / ws-reg-foot …）统一：次级面 + 12px */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .invite-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .install-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .feature-unlock-progress:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .menu-panel-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-share-source-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-wechat:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-qr-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .poster-helper:not(#_){
  margin:0 0 12px!important;padding:10px 12px!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;
  background:var(--v5-panel-2)!important;background-image:none!important;
  color:var(--v5-ink-2)!important;font-size:var(--v5-fs-caption)!important;line-height:1.55!important;text-align:left!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-foot:not(#_){margin:8px 0 0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;text-align:left!important;}
/* 体内药丸（ws-reg-chip / reminder-time-chip / hardword-detail-meta span / theme-cost-pill …）统一成 .v5-tag / .v5-chip 尺寸 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-assets:not(#_){display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:0 0 12px!important;justify-content:flex-start!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-chip:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .hardword-detail-meta span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .theme-cost-pill:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-badge:not(#_){
  display:inline-flex!important;align-items:center!important;height:22px!important;min-height:0!important;padding:0 8px!important;margin:0!important;
  border:0!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.02em!important;line-height:1!important;white-space:nowrap!important;cursor:default;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-badge:not(#_){cursor:pointer;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .reminder-time-grid:not(#_){display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin:0 0 10px!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .reminder-time-chip:not(#_){
  display:inline-flex!important;align-items:center!important;height:var(--v5-chip-h)!important;min-height:0!important;padding:0 12px!important;margin:0!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;color:var(--v5-ink-2)!important;
  font-family:var(--cjk,inherit)!important;font-size:13px!important;font-weight:500!important;line-height:1!important;cursor:pointer;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .reminder-time-chip.active:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .reminder-custom-time:not(#_){margin:0 0 4px!important;}
/* 体内的小卡（retention-soft-card / download-window-card / profile-center-panel / share-report-panel / web-share-card …）：次级面、圆角 12、无阴影 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .retention-soft-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .download-window-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-panel:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-level:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .share-report-panel:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-card:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-qr:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-cardline:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-rq-task:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-rq-weekly:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-wxbind-qr:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-onb-plan-picker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-ready:not(#_){
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;
  box-shadow:none!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .retention-soft-card b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .download-window-card b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-card b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-ready b:not(#_){display:block!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .retention-soft-card span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .download-window-card span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-card span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-qr span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-ready span:not(#_){display:block!important;font-size:var(--v5-fs-caption)!important;line-height:1.5!important;color:var(--v5-ink-3)!important;}
/* 体内的次级按钮（不在动作行里的：complete-share-ready / web-share-actions / ws-rq-claim / 商城 …） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-ready button:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-actions button:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-actions button:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-linkrow button:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-rq-fbtn:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-rq-claim:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-rq-readall:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .menu-panel-back:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .promo-nav:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsQrRefresh:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsShieldCopper:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsBuySlot:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsSlotContact:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsShieldCoins:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .profile-center-file:not(#_){
  -webkit-appearance:none!important;appearance:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  box-sizing:border-box!important;min-height:40px!important;height:auto!important;margin:0!important;padding:0 14px!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;
  background:transparent!important;background-image:none!important;color:var(--v5-ink)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;line-height:1.2!important;
  box-shadow:none!important;cursor:pointer;white-space:nowrap!important;transform:none!important;opacity:1!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-actions button:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-actions button:hover{background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;transform:none!important;}
/* R-ov-02 根因：上面这组 display:inline-flex!important 带五连 class，压过了站点的 .web-share-actions button[hidden]{display:none!important}
   → 浏览器不支持系统分享时本该藏起来的「系统分享」、没有分享图时本该藏起来的「下载分享图」照样露出来（手机上于是凑成两列 + 半宽落单）。
   站点用 hidden 属性藏起来的按钮，弹层里一律保持藏着 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog button[hidden]:not(#_){display:none!important;}
/* 体内的主按钮（每个弹层只留一个）：商城「兑换」、分享面板「复制链接」（系统分享按钮藏着时） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsShopRedeemBtn:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-actions .primary:not([hidden]):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .web-share-actions:has(.primary[hidden]) ~ .web-share-linkrow #webShareCopy:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .completion-share-actions .primary:not(#_){
  -webkit-appearance:none!important;appearance:none!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:44px!important;padding:0 18px!important;margin:0!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;
  background:var(--v5-accent)!important;background-image:none!important;color:var(--v5-on-accent)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;line-height:1.2!important;
  clip-path:var(--v5-btn-clip)!important;
  box-shadow:none!important;cursor:pointer;white-space:nowrap!important;opacity:1!important;
}
/* 体内文字链 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-sci-link:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsShopContact:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .auth-link-btn:not(#_){
  display:inline-block!important;margin:0!important;padding:6px 0!important;border:0!important;background:transparent!important;
  color:var(--v5-accent-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-caption)!important;font-weight:600!important;cursor:pointer;text-decoration:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-sci-link:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body #wsShopContact:hover{text-decoration:underline!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body a:not([class]):not(#_){color:var(--v5-accent-ink);}

/* ==================== 3. 逐个弹层的细修 ==================== */
/* --- 联系作者 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #contactModal .modal-qr:not(#_){display:block!important;width:160px!important;height:160px!important;margin:4px auto 12px!important;border-radius:var(--v5-r-sm)!important;border:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #contactModal .modal-lines:not(#_){display:flex!important;flex-direction:column!important;gap:6px!important;overflow:visible!important;font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #contactModal .modal-lines b:not(#_){color:var(--v5-ink)!important;}
/* --- 今日完成：两个 .primary 并存时（游客：注册保存 + 生成分享卡）→ 只留「注册保存」是主按钮 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #dailyDoneModal .v5-dialog__acts:has(#dailyRegisterBtn:not([hidden])) #dailyCardBtn:not(#_){
  min-height:40px!important;padding:0 16px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;
  background:transparent!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-body)!important;clip-path:none!important;filter:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #dailyDoneModal .completion-share-ready:not(#_){margin:0 0 12px!important;padding:12px 14px!important;display:block!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #dailyDoneModal .completion-share-ready-actions:not(#_){display:flex!important;flex-wrap:wrap!important;gap:8px!important;justify-content:flex-start!important;align-items:center!important;margin:10px 0 0!important;grid-template-columns:none!important;}
/* --- 分享链接：输入框 + 邀请记录 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #shareLinkModal .share-link-box:not(#_){margin:0 0 12px!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;text-overflow:ellipsis!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #shareLinkModal .share-invite-records:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
/* --- 添加到主屏幕：头（印章 + 标题 + 说明）改成一行；步骤列表改成分隔线 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-download-head:not(#_){display:flex!important;align-items:flex-start!important;gap:12px!important;padding:0 0 10px!important;margin:0!important;border:0!important;background:transparent!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-download-head h2:not(#_){margin:2px 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-download-head > .seal:not(#_){flex:none!important;align-self:flex-start!important;width:40px!important;height:40px!important;min-height:0!important;max-height:40px!important;margin:0!important;}   /* 印章被拉成 36×80 的竖条 → 固定 40 方块 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-download-head p:not(#_){margin:0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .download-status:not(#_){margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .download-window-grid:not(#_){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:0!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .download-window-card:not(#_){padding:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-steps:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #importPreviewModal .install-steps:not(#_){display:block!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-step:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #importPreviewModal .install-step:not(#_){display:block!important;padding:10px 0!important;margin:0!important;border:0!important;border-top:1px solid var(--v5-line)!important;border-radius:0!important;background:transparent!important;font-size:var(--v5-fs-caption)!important;line-height:1.55!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .install-step b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #importPreviewModal .install-step b:not(#_){display:block!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 2px!important;}
/* --- 主题预览 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top:not(#_){display:flex!important;padding-right:0!important;align-items:flex-start!important;justify-content:space-between!important;gap:12px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top h2:not(#_){margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top p:not(#_){margin:0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell:not(#_){border-radius:var(--v5-r-sm)!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell .preview-title:not(#_){font-size:var(--v5-fs-title)!important;line-height:1.3!important;text-wrap:balance;word-break:keep-all!important;} /* 「星穹至尊 · Words Scroll.词卷」在手机上会把「词/卷」拆到两行 → 字号降一档 + 平衡换行 + 中文不在词中间断 */
/* --- 协议 / 连胜规则：正文交给体去滚，不再自己限高 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #policyModal .policy-body:not(#_){max-height:none!important;overflow:visible!important;padding:0!important;margin:0!important;border:0!important;background:transparent!important;font-size:var(--v5-fs-body)!important;line-height:1.7!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #policyModal .policy-body h3:not(#_){font-size:var(--v5-fs-body-lg)!important;margin:16px 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #policyModal .policy-body h3:first-child:not(#_){margin-top:0!important;}
/* --- 个人中心：头（头像 + 小标 + 标题 + 一句） / 等级条 / 两栏面板 / 四格数字 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-head:not(#_){display:flex!important;align-items:center!important;gap:14px!important;margin:0 0 14px!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-avatar:not(#_){width:52px!important;height:52px!important;flex:none!important;border-radius:var(--v5-r-sm)!important;font-size:var(--v5-fs-section)!important;font-family:var(--cjk,inherit)!important;box-shadow:none!important;border:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-head h2:not(#_){margin:0 0 2px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-head p:not(#_){margin:0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-level:not(#_){padding:12px 14px!important;margin:0 0 14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-badge b:not(#_){font:700 var(--v5-fs-section)/1 var(--v5-tech)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-badge small:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-row b:not(#_){font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-row span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-hint:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-bar:not(#_){height:6px!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-bar i:not(#_){background:var(--v5-accent)!important;background-image:none!important;border-radius:var(--v5-r-pill)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-grid:not(#_){gap:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-panel:not(#_){padding:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-panel h3:not(#_){margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-panel > p:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin:0 0 10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-form label:not(.profile-center-file):not(#_){display:block!important;margin:8px 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-form .profile-center-file:not(#_){display:flex!important;width:100%!important;min-height:44px!important;margin:4px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal #profileCenterBody:not(#_){padding-right:0!important;padding-left:0!important;} /* 旧样式给自带滚动条留了右 6px；V5 里滚动交给 .v5-dialog__body，留着就成了左右不对称 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-form input:not(#_){margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-stats:not(#_){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(112px,1fr))!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-stat:not(#_){min-height:0!important;padding:10px 12px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-stat b:not(#_){display:block!important;font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;font-variant-numeric:tabular-nums!important;color:var(--v5-ink)!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;margin:2px 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-stat span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-stat small:not(#_){font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-mini i:not(#_){font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-mini span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-mini em:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-badge-row:not(#_){display:flex!important;flex-wrap:wrap!important;gap:6px!important;}
/* --- 菜单面板（10 个 open*Panel 共用）：搜索 + 常用入口收成两行，条目改成 52px 的行 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .v5-dialog__body:not(#_){padding-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal #menuPanelDesc:not(#_){margin:0 0 10px!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal #menuPanelDesc:empty:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-body:not(#_){overflow:visible!important;padding:0!important;max-height:none!important;min-height:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-path:not(#_){margin:0 0 8px!important;}
/* D-ov-05：类名带 panel 的三层被 ui-polish-v4.css:55 / ui-polish-apple 的 :where([class*="panel"]) 套上 0 10px 30px 软阴影 → 叠出幽灵卡边 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal :is(.menu-panel-body,.menu-panel-path,.menu-panel-grid):not(#_){box-shadow:none!important;background:transparent!important;background-image:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal :is(.menu-panel-note,.menu-panel-item,.menu-panel-tools,.menu-panel-shortcuts):not(#_){box-shadow:none!important;}   /* 同一陷阱：说明框 / 条目 / 搜索区也带 panel 字样 */
/* 第一层的路径标签只有一个词、和标题重复（「设置 / 设置」）→ 不显示；第二层起（「我的 / 我的学习」）才是有用的面包屑。23 号给单段路径打 .wsv5-ov-solo */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-path.wsv5-ov-solo:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-note.wsv5-ov-leadbr > br:first-child:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-back:not(#_){min-height:36px!important;padding:0 10px!important;margin:0 0 8px -10px!important;border:0!important;color:var(--v5-accent-ink)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-tools:not(#_){margin:0 0 10px!important;padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-search:not(#_){min-height:40px!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-search::placeholder{font-weight:500!important;color:var(--v5-ink-3)!important;}   /* M-b-14：与「全部功能」抽屉的搜索框同为 500 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-shortcuts:not(#_){display:flex!important;flex-direction:column!important;gap:8px!important;margin:0 0 12px!important;padding:0 0 12px!important;border:0!important;border-bottom:1px solid var(--v5-line)!important;background:transparent!important;border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-shortcuts > div:not(#_){display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-shortcuts b:not(#_){flex:none!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.08em!important;color:var(--v5-ink-3)!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-chiprow:not(#_){display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;}
/* M-b-14：chip 行 / 条目列表被 ui-polish 的 [class*="panel"] 塞了 15.6px 内边距 → chip 比小标题多缩进、标题到 chip 空 70px、列表整体右缩；
   小标题与 chip 行上下排（小标题在上、间距 8），和条目一律跟标题左对齐 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-shortcuts > div:not(#_){flex-direction:column!important;align-items:stretch!important;flex-wrap:nowrap!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-grid:not(#_){padding:0!important;margin-left:-10px!important;margin-right:-10px!important;}   /* 条目自带 10px（手机 8px） 内边距（悬停底色要用）→ 列表整体外扩 8，条目文字与标题左对齐 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-chiprow button:not(#_){
  display:inline-flex!important;align-items:center!important;height:var(--v5-chip-h)!important;min-height:0!important;padding:0 12px!important;margin:0!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;color:var(--v5-ink-2)!important;
  font-family:var(--cjk,inherit)!important;font-size:13px!important;font-weight:500!important;line-height:1!important;cursor:pointer;box-shadow:none!important;white-space:nowrap!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-chiprow button:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-grid:not(#_){display:flex!important;flex-direction:column!important;gap:2px!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item:not(#_){
  width:100%!important;min-height:52px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;
  margin:0!important;padding:8px 10px!important;border:0!important;border-radius:var(--v5-r-sm)!important;
  background:transparent!important;background-image:none!important;box-shadow:none!important;color:var(--v5-ink)!important;
  text-align:left!important;font-family:var(--cjk,inherit)!important;cursor:pointer;transform:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item:hover{background:var(--v5-accent-soft)!important;border-color:transparent!important;transform:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item > span:not(#_){display:block!important;min-width:0!important;flex:1 1 auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item strong:not(#_){display:block!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;line-height:1.3!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item.gold strong:not(#_){color:var(--v5-gold-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item.danger strong:not(#_){color:var(--v5m-warn-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item span span:not(#_){display:block!important;margin:2px 0 0!important;font-size:var(--v5-fs-caption)!important;font-weight:400!important;line-height:1.45!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item-path:not(#_){display:block!important;margin:2px 0 0!important;font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item .arrow:not(#_){flex:none!important;font-size:var(--v5-fs-title)!important;line-height:1!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-empty:not(#_){padding:20px 0!important;font-size:var(--v5-fs-body)!important;color:var(--v5-ink-3)!important;}
/* --- 难词详情（搬到 body 以后）：词头 22 Fraunces，四个框改成分隔线 --- */
/* 09 号星穹主题用 html body #hardWordModal :is(…,#hardWordModalClose)（两个 id 的权重）把 × 钉成绝对定位的圆环，这里用三个 id 压回头里的普通 × */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal #hardWordModalClose.v5-dialog__close:not(#_){position:static!important;top:auto!important;right:auto!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;box-shadow:none!important;color:var(--v5-ink-3)!important;z-index:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal .v5-dialog__body h2:not(#_){font-family:var(--v5-word)!important;font-size:var(--v5-fs-section)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal .hardword-detail-meta:not(#_){display:flex!important;flex-wrap:wrap!important;gap:6px!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal .hardword-detail-box:not(#_){border:0!important;border-top:1px solid var(--v5-line)!important;border-radius:0!important;padding:12px 0 0!important;margin:12px 0 0!important;background:transparent!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal .hardword-detail-box h3:not(#_){font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.08em!important;color:var(--v5-ink-3)!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #hardWordModal .hardword-detail-box p:not(#_){margin:0!important;}
/* --- 完整计划表（搬到 body 以后，#view-plan 前缀的规则全部失效，这里补齐） --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-full-head > div > p:not(#_){margin:4px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary:not(#_){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary > *:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;padding:12px!important;text-align:center!important;box-shadow:none!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary b:not(#_){display:block!important;font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;font-variant-numeric:tabular-nums!important;color:var(--v5-ink)!important;white-space:nowrap!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary span:not(#_){display:block!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-wrap:not(#_){overflow:auto!important;-webkit-overflow-scrolling:touch;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;max-height:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table:not(#_){min-width:1000px!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table th:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table td:not(#_){border-bottom:1px solid var(--v5-line)!important;height:auto!important;min-height:0!important;padding:8px 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table th:not(#_){background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table td:first-child:not(#_){background:var(--v5-panel)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table tr.today-row td:not(#_){background:var(--v5-accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-head-main:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-head-sub:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip .chip-stage:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table .muted:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip b:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip:not(#_){border-radius:var(--v5-r-sm)!important;padding:5px 7px!important;min-width:64px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip.learn:not(#_){background:color-mix(in srgb,var(--v5-warn) 14%,var(--card))!important;border-color:color-mix(in srgb,var(--v5-warn) 35%,transparent)!important;color:color-mix(in srgb,var(--v5-warn) 70%,var(--ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip.recall:not(#_){background:color-mix(in srgb,var(--v5-gold) 14%,var(--card))!important;border-color:color-mix(in srgb,var(--v5-gold) 35%,transparent)!important;color:var(--v5-gold-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip.review:not(#_){background:var(--v5-panel-2)!important;border-color:var(--v5-line)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip.total:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-note:not(#_){margin:12px 0 0!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-legend span:not(#_){border-color:var(--v5-line)!important;background:var(--v5-panel-2)!important;color:var(--v5-ink-2)!important;font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .wsv5-ov-scrollhint:not(#_){display:none;margin:0 0 6px;font-size:var(--v5-fs-eyebrow);color:var(--v5-ink-3);text-align:center;letter-spacing:.04em;}
/* --- 战报 / 分享海报：三格数字、两栏面板、海报最小字号 11 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-header:not(#_){margin:0 0 10px!important;text-align:left!important;padding-left:0!important;padding-right:0!important;padding-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-header p:not(#_){text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-sub:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-stats:not(#_){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;margin:0 0 14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat:not(#_){display:flex!important;align-items:center!important;gap:10px!important;padding:10px 12px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat i:not(#_){flex:none!important;width:32px!important;height:32px!important;border-radius:var(--v5-r-sm)!important;display:grid!important;place-items:center!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font-style:normal!important;font-size:var(--v5-fs-body)!important;font-weight:700!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat b:not(#_){display:block!important;font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;font-variant-numeric:tabular-nums!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat span:not(#_){display:block!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat small:not(#_){display:block!important;font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-grid:not(#_){gap:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-panel:not(#_){padding:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-panel-title b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .promo-share-head b:not(#_){display:block!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-panel-title span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .promo-share-head span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .promo-selected-label:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal #posterTemplateNote:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-preview-panel::before,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-footer::before{display:none!important;}
/* 海报本身是要导出成图片的「作品」，配色保留；只把最小字号抬到 11 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-poster .poster-brand small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-poster .poster-date:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .poster-stat span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .poster-progress-head:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .poster-week-title:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .poster-week-dot:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-slogan:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-link:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .qr-fallback:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-channel-icon:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-poster p:not(#_){font-size:var(--v5-fs-caption)!important;margin:0!important;max-width:none!important;color:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-poster h3:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;margin:0 0 6px!important;color:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-link:not(#_){overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;word-break:normal!important;}
/* 动作行：一行开关 + 六个渠道（微信好友是唯一主按钮） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts:not(#_){flex-direction:column!important;align-items:stretch!important;gap:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .share-auto-toggle:not(#_){display:flex!important;align-items:center!important;gap:10px!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts .share-auto-toggle b:not(#_){display:block!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts .share-auto-toggle span span:not(#_){display:block!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
/* D-ov-10：「学习完成后自动生成分享图」开关不再是 accent 实心块（一屏只许主按钮「微信好友」一个 accent 填充）——
   打开态 = accent-soft 轨道 + accent-line 描边 + accent 圆点；关闭态 = 中性 line-2 轨道 + panel 圆点 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-auto-toggle .share-auto-switch:not(#_){flex:none!important;width:40px!important;height:24px!important;box-sizing:border-box!important;border-radius:var(--v5-r-pill)!important;border:1px solid var(--v5-line-2)!important;background:var(--v5-line)!important;background-image:none!important;box-shadow:none!important;position:relative!important;transition:background-color var(--v5-dur-fast) var(--v5-ease),border-color var(--v5-dur-fast) var(--v5-ease)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-auto-toggle .share-auto-switch:not(#_)::after{left:2px!important;top:2px!important;width:18px!important;height:18px!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-panel)!important;box-shadow:0 1px 2px var(--v5-veil)!important;transition:transform var(--v5-dur-fast) var(--v5-ease),background-color var(--v5-dur-fast) var(--v5-ease)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-auto-toggle input:checked + .share-auto-switch:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-auto-toggle input:checked + .share-auto-switch:not(#_)::after{transform:translateX(16px)!important;background:var(--v5-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-auto-toggle input:focus-visible + .share-auto-switch:not(#_){box-shadow:0 0 0 3px var(--v5-accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions:not(#_){display:flex!important;flex-direction:row-reverse!important;flex-wrap:wrap!important;justify-content:flex-start!important;gap:8px!important;margin:0!important;padding:0!important;width:auto!important;grid-template-columns:none!important;}
/* 居中排查：五个次级渠道原来 3+2 两行、第二行两颗按两栏摆，和第一行对不齐 → 改成分享面板的通用样式：主按钮独占一行，下面五颗一行等分、图标在上字在下 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions.reward-actions:not(#_){display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:10px 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions > .primary.primary:not(#_){grid-column:1 / -1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions > .ghost.share-channel:not(#_){display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:6px!important;width:auto!important;min-width:0!important;min-height:0!important;height:auto!important;padding:6px 0!important;margin:0!important;border:0!important;background:transparent!important;font-size:var(--v5-fs-caption)!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions > .ghost.share-channel .share-channel-icon.share-channel-icon:not(#_){width:36px!important;height:36px!important;border-radius:var(--v5-r-chip)!important;font-size:var(--v5-fs-caption)!important;}
/* 主按钮「微信好友」：站点给 .share-channel 的字与图标写了 accent 色（accent 底 + accent 字 ≈ 1:1，inv 缺陷）→ 主按钮内一律 on-accent */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts .primary:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts .primary span:not(#_){color:var(--v5-on-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts .primary .share-channel-icon:not(#_){background:color-mix(in srgb,var(--v5-on-accent) 18%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-channel-icon:not(#_){width:20px!important;height:20px!important;border-radius:var(--v5-r-sm)!important;display:inline-grid!important;place-items:center!important;background:color-mix(in srgb,currentColor 14%,transparent)!important;font-weight:700!important;line-height:1!important;}
/* --- 通知 · 奖励抽屉（11-main.js 建）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-title:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;line-height:1.3!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-sub:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin:2px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-wallet:not(#_){padding:0 0 12px!important;gap:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-coin:not(#_){padding:10px 12px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-coin b:not(#_){font:700 var(--v5-fs-section)/1 var(--v5-tech)!important;color:var(--v5-ink)!important;font-variant-numeric:tabular-nums!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-list:not(#_){padding:0!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-task:not(#_){padding:12px 14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-tname:not(#_){font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-tdesc:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-prog:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-cc:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly p:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-rew:not(#_){display:inline-flex!important;align-items:center!important;height:22px!important;padding:0 8px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-bar:not(#_){height:6px!important;background:var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-bar i:not(#_){background:var(--v5-accent)!important;background-image:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-claim:not(#_){min-height:32px!important;padding:0 12px!important;font-size:var(--v5-fs-caption)!important;border-color:var(--v5-accent-line)!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-claim[disabled]:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-claim.claimed:not(#_){background:transparent!important;border-color:var(--v5-line)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly:not(#_){margin:12px 0 0!important;padding:14px!important;border-style:solid!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly h4:not(#_){font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly textarea:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly input:not(#_){font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-fbtn:not(#_){width:100%!important;margin:10px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-notif:not(#_){padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-notif-h:not(#_){font-size:var(--v5-fs-eyebrow)!important;letter-spacing:.08em!important;color:var(--v5-ink-3)!important;margin:10px 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-notif-h em:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-readall:not(#_){min-height:26px!important;padding:0 10px!important;border-radius:var(--v5-r-chip)!important;font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-empty:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-3)!important;}
/* --- 分享面板（04-main.js 建）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-head h2:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-head h2:not(#_){margin:0!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;line-height:1.3!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-card:not(#_){padding:14px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions:not(#_){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions .primary:not([hidden]):not(#_){grid-column:1/-1!important;}
/* 三个次按钮（复制分享文案 / 下载分享图 / 显示二维码）：电脑一行三等分；手机两栏放不下三颗 → 最后一颗占满整行，不再孤零零贴左 */
@media (min-width:769px){html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions:not(#_){grid-template-columns:repeat(3,minmax(0,1fr))!important;}}
@media (max-width:768px){html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions > button:last-child:nth-child(even):not(#_){grid-column:1/-1!important;}}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-linkrow:not(#_){display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;align-items:center!important;padding:6px 6px 6px 12px!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-linkrow input:not(#_){min-height:0!important;height:auto!important;padding:0!important;border:0!important;background:transparent!important;font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-linkrow button:not(#_){min-height:36px!important;padding:0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-qr:not(#_){padding:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-qr img:not(#_){border-radius:var(--v5-r-sm)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-note:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-metric strong:not(#_){font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-metric:not(#_){border-color:var(--v5-line)!important;background:var(--v5-panel-2)!important;border-radius:var(--v5-r-sm)!important;}
/* 主按钮独占一行；下面三个次按钮（复制链接 / 下载图片 / 生成二维码）一行三等分，不再剩一个孤零零贴左 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-actions:not(#_){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-actions .primary:not(#_){grid-column:1/-1!important;}
/* R-ov-02（§5，与 D-ov-07 动作行同一口径）：手机上两个分享弹窗的按钮组一律全宽竖排、主按钮在最上 ——
   不再出现「系统分享 | 复制分享文案」两列并排、「下载分享图」半宽贴左、「复制链接 | 下载图片 | 生成二维码」三颗挤一行 */
@media (max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-actions:not(#_){grid-template-columns:minmax(0,1fr)!important;gap:8px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions > button:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-actions > button:not(#_){grid-column:1/-1!important;width:100%!important;min-width:0!important;min-height:44px!important;margin:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .web-share-actions > .primary:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #completionShareModal .completion-share-actions > .primary:not(#_){order:-1!important;min-height:var(--v5-btn-h-lg)!important;}
}
/* --- 商城 / 成就详情（08 号建；内容全是行内样式，这里用 !important 盖）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-modal-head b:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .v5-dialog__body > div[style]:not(#_){border-color:var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;margin:0 0 10px!important;padding:14px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .v5-dialog__body > div[style] > div[style]:first-child:not(#_){font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .v5-dialog__body > div[style] > p[style]:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal #wsShopCode:not(#_){flex:1 1 auto!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-owned:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-ring-label:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-stat span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-mini span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-mini time:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-ach-new:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal time:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal em:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
/* --- 绑定手机号抽屉（站点自带的 .ws-sheet：手机是抽屉、桌面是居中卡；这里只对齐字阶与按钮）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet:not(#_){padding:10px 20px calc(20px + env(safe-area-inset-bottom,0px))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet h3:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;margin:6px 0 6px!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet p:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet label span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet input:not(#_){min-height:44px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet-msg:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet-primary:not(#_){
  width:100%!important;min-height:var(--v5-btn-h-lg)!important;margin:4px 0 0!important;border:0!important;border-radius:var(--v5-r-btn)!important;
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet-ghost:not(#_){min-height:44px!important;padding:0 12px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet-cancel:not(#_){width:100%!important;min-height:40px!important;margin:6px 0 0!important;background:transparent!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet-grab:not(#_){background:var(--v5-line-2)!important;}
/* D-ov-11：抽屉形态下 23 号补了 V5 把手 .v5-sheet__grip（猫卷是肉球），站点自带的灰杠 .ws-sheet-grab 再露出来就是两个把手叠在一起 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsBindPhoneSheet .ws-sheet.v5-sheet .ws-sheet-grab:not(#_){display:none!important;}
/* --- 绑定微信说明（样式是脚本注入的行内 <style>）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsWxBindMask .ws-wxbind-qr:not(#_){border-style:solid!important;padding:12px!important;margin:12px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsWxBindMask .ws-wxbind-qr span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsWxBindMask .ws-wxbind-qr img:not(#_){border-radius:var(--v5-r-sm)!important;border-color:var(--v5-line)!important;}
/* --- 扫码登录 / 扫码确认 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .v5-dialog__body:not(#_){text-align:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .v5-dialog__body p:not(#_){text-align:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .ws-qr-frame:not(#_){margin:4px auto 12px!important;border-radius:var(--v5-r-sm)!important;border:1px solid var(--v5-line)!important;background:var(--v5-paper)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .ws-qr-status:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;margin:0 0 10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .ws-qr-note:not(#_){text-align:center!important;margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal .ws-qr-mask:not(#_){border-radius:var(--v5-r-sm)!important;}
/* --- 忘记原因：5 个原因是同级选项 → 一排 chip（按 DOM 顺序，不反转），「跳过」是文字按钮靠右 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts:not(#_){flex-direction:row!important;justify-content:flex-start!important;gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts button:not(#_){order:0!important;flex:0 0 auto!important;width:auto!important;min-height:var(--v5-chip-h)!important;padding:0 12px!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;color:var(--v5-ink-2)!important;font-size:13px!important;font-weight:500!important;clip-path:none!important;filter:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts button:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;background:var(--v5-panel)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts .ws-reg-primary:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts #forgetReasonSkip:not(#_){margin-left:auto!important;border-color:transparent!important;background:transparent!important;color:var(--v5-accent-ink)!important;}
/* --- 战报卡预览 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-img-wrap:not(#_){margin:6px 0 10px!important;border-radius:var(--v5-r-sm)!important;overflow:hidden!important;border:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-img-wrap img:not(#_){display:block!important;width:100%!important;height:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-tip:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;margin:0!important;}
/* --- 首次闭环完成（#wsOnbDone）：计划强度选择器沿用；引导页的 5 档滑轨不动 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbDone .ws-onb-done-list:not(#_){list-style:none!important;padding:0!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbDone .ws-onb-done-list li:not(#_){display:flex!important;gap:10px!important;align-items:flex-start!important;padding:8px 0!important;border-top:1px solid var(--v5-line)!important;font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbDone .ws-onb-done-list li:first-child:not(#_){border-top:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbDone .ws-onb-done-list li > span:not(#_){flex:none!important;width:24px!important;text-align:center!important;font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnbDone .ws-onb-plan-picker:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-plan-picker:not(#_){padding:12px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-head b:not(#_){font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-head small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-head span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-summary p:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-summary div:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
/* --- 新手引导（#wsOnb，不套壳：每一步自带按钮）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .v5-dialog:not(#_){display:block!important;padding:16px 20px 20px!important;overflow:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-dots:not(#_){margin:0 0 8px!important;}
/* 目标卡：按钮默认 text-align:center，多行说明会居中而标题靠左 → 统一靠左；单数时最后一张（「先随便设置」）占满整行，不再孤零零贴左 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-goals button:not(#_){text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-goals button:last-child:nth-child(odd):not(#_){grid-column:1 / -1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-emoji:not(#_){font-size:var(--v5-fs-page)!important;margin:0 0 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb h2:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 6px!important;line-height:1.3!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb p:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-hint:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;opacity:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-next:not(#_){
  width:100%!important;min-height:var(--v5-btn-h-lg)!important;margin:8px 0 0!important;padding:0 22px!important;border:0!important;border-radius:var(--v5-r-btn)!important;
  background:var(--v5-accent)!important;background-image:none!important;color:var(--v5-on-accent)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-skip:not(#_){width:auto!important;min-height:36px!important;margin:6px 8px 0 0!important;padding:0 10px!important;border:0!important;background:transparent!important;color:var(--v5-accent-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-custom-input:not(#_){width:100%!important;box-sizing:border-box!important;min-height:120px!important;padding:10px 12px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-custom-error:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5m-warn-ink)!important;}
/* --- 加载遮罩 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .v5-dialog:not(#_){padding:20px!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;gap:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-title:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:6px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-desc:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;margin:0!important;max-width:none!important;text-align:center!important;}
/* N-ov-01：index.html 旧装饰 .wait-dialog:after 空心圆环（position:absolute、z-index:auto，最后绘制）—— V5 把对话框改成居中后正好压在「努力加载中」的「中」和「请稍等一下」的「等一」上。
   对话框自建层叠上下文，圆环沉到内容之下（仍在卡片底色之上，保留装饰），文字 / 转圈永远在圆环上面。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-dialog.v5-dialog:not(#_){isolation:isolate!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-dialog.v5-dialog:not(#_)::after{z-index:-1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-dialog.v5-dialog > .wait-spinner:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-dialog.v5-dialog > .wait-title:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #waitModal .wait-dialog.v5-dialog > .wait-desc:not(#_){position:relative!important;z-index:1!important;}
/* --- 安装版登录闸（桌面）--- */
/* 卡是两栏 grid（品牌 / 登录），1120 宽时右栏 420；两栏各自内滚，登录按钮行钉在右栏底 → 1440×900 首屏就能点到 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .v5-dialog:not(#_){padding:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(320px,420px)!important;align-items:stretch!important;max-height:calc(100dvh - 48px)!important;overflow:hidden!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-brand:not(#_){padding:32px!important;min-height:0!important;overflow:auto!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-login:not(#_){padding:28px 28px 0!important;min-height:0!important;overflow:auto!important;justify-content:flex-start!important;border-left:1px solid var(--v5-line)!important;background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .share-eyebrow:not(#_){font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.08em!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate h1:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-page)!important;font-weight:700!important;line-height:1.2!important;color:var(--v5-ink)!important;margin:6px 0 10px!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate h1 span:not(#_){font-size:inherit!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate h2:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-section)!important;font-weight:700!important;color:var(--v5-ink)!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate p:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-point:not(#_){font-size:var(--v5-fs-body)!important;line-height:1.6!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-point:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-point b:not(#_){color:var(--v5-ink)!important;font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-note:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-check:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-error:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-login label:not(#_){font-size:var(--v5-fs-caption)!important;font-weight:600!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-login input:not([type="checkbox"]):not(#_){min-height:44px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .btn-row button:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate #clientQrLoginBtn:not(#_){
  min-height:44px!important;padding:0 16px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;
  background:transparent!important;background-image:none!important;color:var(--v5-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .btn-row .primary:not(#_){
  border:0!important;border-radius:var(--v5-r-btn)!important;background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;min-height:var(--v5-btn-h-lg)!important;font-size:var(--v5-fs-body-lg)!important;
  clip-path:var(--v5-btn-clip)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-link:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-accent-ink)!important;}
/* 1440×900 下卡高 852 要内滚，主按钮「登录并启动」落在首屏外（inv 缺陷）→ 按钮行钉在卡底（sticky 在卡的滚动容器内） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .btn-row:not(#_){position:sticky!important;bottom:0!important;z-index:2!important;margin:0!important;padding:10px 0!important;background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .client-login > *:last-child:not(#_){padding-bottom:24px!important;}
@media(max-width:820px){html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #clientLoginGate .v5-dialog:not(#_){grid-template-columns:1fr!important;}}
/* --- 登录 / 注册（不套壳：站点每次 renderAuthModal 重画表单）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .v5-dialog:not(#_){padding:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-modal-frame:not(#_){flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow:auto!important;display:block!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-modal-main:not(#_){overflow:visible!important;min-height:0!important;padding:20px 24px 16px!important;gap:16px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-modal-top:not(#_){padding:14px 16px 12px 24px!important;border-bottom:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-brand h2:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;margin:0!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-brand > div > span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-brand-mark:not(#_){width:36px!important;height:36px!important;border-radius:var(--v5-r-sm)!important;font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-info-panel:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;padding:18px!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-info-panel h3:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;margin:0 0 6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-info-panel p:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink-2)!important;line-height:1.6!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-benefit b:not(#_){font-size:var(--v5-fs-body)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-benefit span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-form-panel:not(#_){border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-field > span:not(#_){font-size:var(--v5-fs-caption)!important;font-weight:600!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-field :is(input,select):not(#_){min-height:44px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-body-lg)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-field :is(input,select):focus:not(#_){border-color:var(--v5-accent-line)!important;box-shadow:0 0 0 3px var(--v5-accent-soft)!important;}
/* V7.0.0 第三轮：注册框新加的「你是从哪里知道词卷的？」下拉（#authRegHeardFrom）和输入框同一套皮：同高（高度沿用 index.html：电脑 50、手机 38 → 最小 44，和输入框一致）、同圆角、同底、同字号 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-field select:not(#_){width:100%!important;padding:0 12px!important;font-family:inherit!important;cursor:pointer!important;color-scheme:inherit;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-field select option:not(#_){background:var(--v5-panel)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-check:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-invite-hint:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-message:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-register-switch:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-divider:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-optional summary em:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-social small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-privacy-box:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-data-note:not(#_){font-size:var(--v5-fs-caption)!important;line-height:1.55!important;}
/* V7.0.0 第三轮核查 #1：提示字（报错 / PK 回跳说明）原来吃 index.html 的 --terra，桃桃猫卷上只有 2.6–2.9:1（和 9/23 同一个位置）。
   报错 = 危险色往正文色压（危险色 45% + 正文色，浅色主题变深、深色主题变亮，九个主题 ≥ 4.5）；成功 = 强调字色；说明（info，PK 回跳那句）不是报错 → 次级正文色。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-message:not(#_){color:color-mix(in srgb,var(--v5-warn) 45%,var(--v5-ink))!important;}   /* 比 --v5m-warn-ink（55%）再多压一点正文色：手机报错是浅危险色底的小框，55% 在猫卷上只有 4.56，留足余量 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-message[data-kind="success"]:not(#_){color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-message[data-kind="info"]:not(#_){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-link-btn:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-submit:not(#_){
  position:sticky!important;bottom:0!important;z-index:3!important;
  height:auto!important;min-height:var(--v5-btn-h-lg)!important;margin:4px 0 0!important;padding:0 22px!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;
  background:var(--v5-accent)!important;background-image:none!important;color:var(--v5-on-accent)!important;
  font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;
  box-shadow:none!important;filter:drop-shadow(0 0 calc(12px * var(--v5-glow)) color-mix(in srgb,var(--accent) 45%,transparent))!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-secondary-action:not(#_){min-height:44px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-social:not(#_){border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;min-height:44px!important;box-shadow:none!important;}
/* 手机登录页的「扫码登录」：旧规则把它压成 58px 宽的小方块（图标在上字在下），字压到下边框 → 改成横排药丸：图标 + 字，居中 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-social:not(#_){display:inline-flex!important;flex-direction:row!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:auto!important;min-width:148px!important;min-height:44px!important;padding:6px 18px 6px 8px!important;border-radius:var(--v5-r-btn)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-social b:not(#_){width:30px!important;height:30px!important;flex:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-social span:not(#_){display:block!important;white-space:nowrap!important;line-height:1.2!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-modal-footer:not(#_){padding:0 24px 20px!important;gap:12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-privacy-box:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-guest-card:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;background-image:none!important;box-shadow:none!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-guest-card b:not(#_){font-size:var(--v5-fs-body)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-guest-card span span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-feature-list h3:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-feature b:not(#_){font-size:var(--v5-fs-caption)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-feature span:not(#_){font-size:var(--v5-fs-eyebrow)!important;color:var(--v5-ink-3)!important;line-height:1.45!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-feature i:not(#_){font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-mode-tabs button:not(#_){font-size:var(--v5-fs-caption)!important;min-height:32px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-help:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-accent-ink)!important;}
/* --- 模式切换菜单（13 号建；桌面锚定触发器，手机变抽屉）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet[data-wsv5-overlay="menu"]:not(#_){
  position:fixed!important;z-index:var(--v5-z-menu)!important;width:300px!important;max-width:calc(100vw - 16px)!important;max-height:calc(100vh - 16px)!important;overflow:auto!important;
  margin:0!important;padding:6px!important;gap:2px!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel)!important;color:var(--v5-ink)!important;
  box-shadow:0 18px 50px -12px var(--v5-veil),var(--v5-shadow-soft)!important;animation:var(--v5-enter) var(--v5-dur) var(--v5-ease) both!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet[data-wsv5-overlay="sheet"]:not(#_){
  position:fixed!important;z-index:var(--v5-z-menu)!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;transform:none!important;
  width:100%!important;max-width:none!important;max-height:70dvh!important;overflow:auto!important;
  margin:0!important;padding:0 12px calc(12px + env(safe-area-inset-bottom,0px))!important;gap:2px!important;
  border:1px solid var(--v5-line)!important;border-bottom:0!important;border-radius:var(--v5-r) var(--v5-r) 0 0!important;background:var(--v5-panel)!important;color:var(--v5-ink)!important;
  box-shadow:0 -12px 40px -8px var(--v5-veil),var(--v5-shadow-soft)!important;animation:v5-ov-sheet-up var(--v5-dur-slow) var(--v5-ease) both!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet h4:not(#_){margin:0!important;padding:8px 10px 4px!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;letter-spacing:.08em!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt:not(#_){min-height:44px!important;padding:6px 10px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt:hover{background:var(--v5-accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt.cur:not(#_){background:var(--v5-accent-soft)!important;border:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-ic:not(#_){flex:0 0 28px!important;height:28px!important;border-radius:var(--v5-r-sm)!important;border:0!important;background:var(--v5-panel-2)!important;font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-tx b:not(#_){font-size:var(--v5-fs-body)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-tx span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
/* 第三轮核查 #6：当前项 / 悬停项是浅强调底，--v5-ink-3 在深色主题上掉到 3.7–4.4 → 换次级正文色 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt:is(.cur,:hover) .mo-tx span:not(#_){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-st:not(#_){height:22px!important;display:inline-flex!important;align-items:center!important;padding:0 8px!important;border-radius:var(--v5-r-sm)!important;font-size:var(--v5-fs-eyebrow)!important;font-weight:600!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-st.ok:not(#_){background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-opt .mo-st.todo:not(#_){background:color-mix(in srgb,var(--v5-warn) 14%,var(--card))!important;color:color-mix(in srgb,var(--v5-warn) 70%,var(--ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-manage:not(#_){margin:2px 0 0!important;min-height:40px!important;padding:0 10px!important;border:0!important;border-top:1px solid var(--v5-line)!important;border-radius:0!important;background:transparent!important;color:var(--v5-accent-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;text-align:left!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsModeSheet .ws-mode-manage:hover{background:var(--v5-accent-soft)!important;}
/* --- 全屏页：好友·排行榜 / 我的班级 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-role="page"]:not(#_){background:var(--v5-paper)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .play-top:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-head:not(#_){min-height:var(--v5-top)!important;padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px!important;border-bottom:1px solid var(--v5-line)!important;background:var(--v5-panel)!important;background-image:none!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .play-title:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-title:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .play-back:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-back:not(#_){min-width:36px!important;min-height:36px!important;padding:0 10px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-accent-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .play-back:hover,
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-back:hover{background:var(--v5-accent-soft)!important;}
/* V7.4.5 班级页两级导航：新版皮只换令牌 + 三个主题性格（基础规则在 12 号末尾；不写 !important，特异度已比 12 号高） */
html.ws-v5 #wsClassPage{--cls-bg:var(--v5-paper);--cls-track:var(--v5-panel-2);--cls-face:var(--v5-panel);--cls-soft:var(--v5-accent-soft);--cls-line:var(--v5-line);
  --cls-ink:var(--v5-accent-ink);--cls-mute:var(--v5-ink-2);--cls-r:var(--v5-r-chip,999px);--cls-r-row:var(--v5-r-sm);--cls-r-panel:var(--v5-r);}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-gtrack{gap:6px;padding:0;background:transparent}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-gtrack .ws-cls-g{padding-bottom:3px;background:var(--v5-panel-2);box-shadow:var(--px-cap);transition-timing-function:steps(2,end)}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-gtrack .ws-cls-g[aria-selected="true"]{background:var(--accent);color:var(--on-accent);box-shadow:var(--px-cap-on)}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-gtrack .ws-cls-g:active{transform:var(--v5-press)}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-g[aria-selected="true"] .tab-n.is-act{background:var(--on-accent);color:var(--accent)}
html.ws-v5[data-theme="pixel"] #wsClassPage .tab-n{font-family:var(--px-sys)}
@media (max-width:991px){html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]::after{height:3px;border-radius:0}}
html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-route .ws-cls-tab[aria-selected="true"]::before{border-radius:0}
html.ws-v5[data-theme="pixel"] #wsClassPage :is(.ws-cls-gi,.qa-svg,.gd-svg,.gd-chev){stroke-linecap:square;stroke-linejoin:miter;stroke-width:2}
html.ws-v5[data-theme="soda"] #wsClassPage .ws-cls-gtrack{background:var(--sd-glass);box-shadow:inset 0 0 0 1px var(--sd-glass-line)}
html.ws-v5[data-theme="forest"] #wsClassPage .ws-cls-gtrack .ws-cls-g[aria-selected="true"]{background:var(--accent);color:var(--on-accent);box-shadow:none}
html.ws-v5[data-theme="forest"] #wsClassPage .ws-cls-g[aria-selected="true"] .tab-n.is-act{background:var(--on-accent);color:var(--accent)}
@media (prefers-reduced-motion:reduce){html.ws-v5[data-theme="pixel"] #wsClassPage .ws-cls-gtrack .ws-cls-g:active{transform:none}}
/* 第三轮（v5-desktop 回报）：天梯范围切换 [data-ladder-scope] 在 ≥769 的主题皮（像素键帽 / 汽水气泡 / 森林书签，含选中态）写在 18 号（@media min-width:769）；
   这里原来用两个 id 的权重把它们整套压成通用药丸（森林选中态的叶绿书签被压没）→ 22 号对这几颗只管尺寸，≥769 的皮让给 18 号；≤768 18 号不生效，仍由下面的手机段给通用皮（和改前一样） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-tab:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-seg button:not([data-ladder-scope]):not(#_){
  min-height:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;padding:0 12px!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;
  background:var(--v5-panel)!important;color:var(--v5-ink-2)!important;font-family:var(--cjk,inherit)!important;font-size:13px!important;font-weight:500!important;box-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-tab.active:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-seg button:not([data-ladder-scope]).active:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-seg button[data-ladder-scope]:not(#_){min-height:var(--v5-chip-h)!important;height:var(--v5-chip-h)!important;padding-left:12px!important;font-family:var(--cjk,inherit)!important;font-size:13px!important;}
html.ws-v5 #socialPage [data-ladder-scope]{padding-right:12px!important;}   /* 权重低于 18 号的主题规则（森林书签要右内边距 20 让出燕尾） */
html.ws-v5 #socialPage [data-ladder-scope]:not(.active){font-weight:500!important;}
@media (max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-seg button[data-ladder-scope]:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;color:var(--v5-ink-2)!important;font-weight:500!important;box-shadow:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-seg button[data-ladder-scope].active:not(#_){background:var(--v5-accent-soft)!important;border-color:var(--v5-accent-line)!important;color:var(--v5-accent-ink)!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-myrank:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-myrank b:not(#_){font:700 var(--v5-fs-section)/1 var(--v5-tech)!important;color:var(--v5-ink)!important;}
/* 第三轮核查 #10：390 宽下「我的排名」被挤成「我的排 / 名」、「超过 90% 学习者」把「者」单独折下去。
   标签永远不折行；数字那半句只在空格处断（keep-all，不在词中间断）；手机宽度改成上下两行：标签在上当眉题，数字占满一整行 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage #socialMyRank>span:first-child:not(#_){flex:none!important;white-space:nowrap!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage #socialMyRank>span:last-child:not(#_){min-width:0!important;word-break:keep-all!important;}
@media (max-width:560px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage #socialMyRank.social-myrank:not(#_){flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage #socialMyRank>span:first-child:not(#_){font-size:var(--v5-fs-caption)!important;font-weight:600!important;color:var(--v5-ink-2)!important;line-height:1.2!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-lv:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage em:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage small:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage em:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsEmptyCreate:not(#_){
  display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:var(--v5-btn-h)!important;padding:0 18px!important;margin:10px 0 0!important;
  border:0!important;border-radius:var(--v5-r-btn)!important;background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;text-decoration:none!important;
}
/* --- 「全部功能」面板（17 号建）：桌面去切角 / 角标，入口改成 34px 药丸；手机去掉快捷键提示、药丸同尺寸 --- */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-panel:not(#_){
    clip-path:var(--v5-hero-clip)!important;border-radius:var(--v5-r)!important;border:1px solid var(--v5-line)!important;
    background:var(--v5-panel)!important;background-image:none!important;box-shadow:0 24px 64px -24px var(--v5-veil),var(--v5-shadow-soft)!important;
    width:min(1120px,calc(100vw - 32px))!important;max-height:calc(100vh - 48px)!important;--v5-cut:12px;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-panel::before,
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-panel::after{display:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-ph:not(#_){padding:18px 20px 12px!important;gap:12px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-ph h2:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;font-weight:600!important;}
  /* 21 号给面板补的 ×（.v5m-px）在桌面也在：按 §5 的 36×36 × 走 section 档字号 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .v5m-px:not(#_){font-size:var(--v5-fs-section)!important;line-height:1!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search:not(#_){height:40px!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;box-shadow:inset 0 0 0 1px var(--v5-line)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search input:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-search kbd:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;box-shadow:inset 0 0 0 1px var(--v5-line)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pbody:not(#_){padding:0 20px 20px!important;gap:16px 18px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup:not(#_){display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-content:flex-start!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup h3:not(#_){flex:1 1 100%!important;margin:0 0 4px!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-caption)!important;font-weight:600!important;letter-spacing:.08em!important;color:var(--v5-accent-ink)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup h3::before{display:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button:not(#_){
    display:inline-flex!important;align-items:center!important;gap:6px!important;width:auto!important;height:var(--v5-chip-h)!important;min-height:0!important;padding:0 12px!important;margin:0!important;
    border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-chip)!important;background:var(--v5-panel)!important;box-shadow:none!important;
    color:var(--v5-ink-2)!important;font-family:var(--cjk,inherit)!important;font-size:13px!important;font-weight:500!important;white-space:nowrap!important;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button:hover{border-color:var(--v5-accent-line)!important;color:var(--v5-ink)!important;background:var(--v5-panel)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button small:not(#_){margin:0 0 0 2px!important;font:500 var(--v5-fs-caption)/1 var(--v5-tech)!important;color:var(--v5-ink-3)!important;letter-spacing:.04em!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button[data-wsv5-key="清空重置"]:not(#_){color:var(--v5m-warn-ink)!important;}
}
@media(max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button small:not(#_){display:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button:not(#_){height:var(--v5-chip-h)!important;min-height:var(--v5-chip-h)!important;padding:0 12px!important;border-radius:var(--v5-r-chip)!important;font-size:13px!important;font-weight:500!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-ph h2:not(#_){font-size:var(--v5-fs-title)!important;font-weight:600!important;}
}
/* --- 课堂幻灯片大图（lectures.js 建；IIFE 内不可自动打开，只给遮罩与 ×）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-lect-modal:not(#_){background:var(--v5-veil)!important;-webkit-backdrop-filter:blur(var(--v5-veil-blur))!important;backdrop-filter:blur(var(--v5-veil-blur))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-lect-modal-close:not(#_){width:36px!important;height:36px!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel)!important;color:var(--v5-ink)!important;font-size:var(--v5-fs-section)!important;}
/* V6.9.0 验收修：卡片 .ws-lect-modal-box 现在才是 .v5-dialog（23 号补了 card），它带 overflow:auto，原来挂在卡外（top:-14px / right:-6px）的 × 会被裁掉 → 收进卡内右上角；大图保持白底圆角，卡本身不再切角 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-lect-modal-box.v5-dialog:not(#_){padding:12px!important;clip-path:none!important;width:auto!important;max-width:min(var(--v5-dlg-w),100%)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-lect-modal-box.v5-dialog .ws-lect-modal-close:not(#_){right:8px!important;top:8px!important;z-index:2!important;box-shadow:var(--v5-shadow-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .ws-lect-modal-box.v5-dialog img:not(#_){max-height:min(84vh,calc(100dvh - 120px))!important;}
/* --- 下拉（原生 select 只能改盒子）--- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-select:not(#_){
  height:var(--v5-chip-h)!important;min-height:0!important;padding:0 10px!important;box-sizing:border-box!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background-color:var(--v5-panel)!important;color:var(--v5-ink)!important;
  font-family:var(--cjk,inherit)!important;font-size:13px!important;font-weight:500!important;box-shadow:none!important;cursor:pointer;
}

/* --- 字阶收口（§3「禁止第 10 种字号」）：v5-overlays 探针（fontDetail）逐个抓到的站点旧字号，压回九档 --- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-device-phone:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-tab:not(#_){font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-eye:not(#_){font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-copy h1:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-page)!important;font-weight:700!important;line-height:1.2!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-copy p:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-logo-card strong:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-logo-card span:not(#_){font-size:var(--v5-fs-eyebrow)!important;letter-spacing:.08em!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-text-link:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-social span:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-note span:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-social b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .mobile-auth-note b:not(#_){font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary .sv:not(#_){font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;font-variant-numeric:tabular-nums!important;color:var(--v5-ink)!important;margin:0 0 4px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary .sk:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .promo-index:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-poster .poster-brand b:not(#_){font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementUnlockModal .achievement-medal-core:not(#_){font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-tag:not(#_){font-size:var(--v5-fs-eyebrow)!important;line-height:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog .ws-onb-plan-rail button b:not(#_){font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb #wsOnbClose:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .g-emoji:not(#_){font-size:var(--v5-fs-section)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .g-name:not(#_){font-size:var(--v5-fs-body-lg)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-notif-item b:not(#_){font-size:var(--v5-fs-body)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-muted:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsJoinBtn:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsCreateOpen:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsDemoBtn:not(#_){font-size:var(--v5-fs-body)!important;}
/* 「创建一个班级」「先看演示班」两个按钮：原来一长一短贴左、上下挤在一起 → 等分一行（窄屏各占一行），中间留 10px */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsCreateBox:has(> #wsClsCreateOpen):not(#_){display:flex!important;flex-wrap:wrap!important;gap:10px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage #wsClsCreateBox > :is(#wsClsCreateOpen,#wsClsDemoBtn):not(#_){flex:1 1 200px!important;margin:0!important;justify-content:center!important;text-align:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-lb-note span:not(#_){font-size:var(--v5-fs-caption)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-name:not(#_){font-size:var(--v5-fs-body)!important;}
/* 商城卡里的购买按钮：单颗（买词书位 / 联系作者）占满整行；保护卡两种付法等分一行 —— 不再一长一短贴左 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal :is(#wsBuySlot,#wsSlotContact):not(#_){display:flex!important;width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal :is(#wsShieldCoins,#wsShieldCopper):not(#_){flex:1 1 0!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-balance:not(#_){gap:8px!important;margin:0 0 12px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-balance > div:not(#_){border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;background:var(--v5-panel-2)!important;padding:10px 8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-balance span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-balance b:not(#_){font:700 var(--v5-fs-section)/1.1 var(--v5-tech)!important;font-variant-numeric:tabular-nums!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-item b:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .v5-dialog__body > div[style] b:not(#_){font-size:var(--v5-fs-body-lg)!important;}
/* V7.0.x 业主截图「少个气泡」：卷轴币不够的「1999 卷轴币 · 兑换」（.mobile-shop-buy.disabled）只剩一行灰字没有药丸底 ——
   09 号 #ws-theme-readability-v417 的 body :is(.locked,[disabled],.disabled,…) 把所有 .disabled 的底刷成「面板 82%」（≈ 行底色，气泡隐形）、字压成 faint、box-shadow:none。
   新版改成弱一级的药丸：浅强调底 + 强调色字（往正文色压 18%，纸墨浅原 4.55 太贴线）+ 一圈细描边；形状（圆角 / 内边距 / 字号）与买得起的那颗一样，但不是实心主键，一眼能看出「还差币」。像素主题有自己的一套（见 P4），这里排除 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:not([data-theme="pixel"]) body #mobileAchievementModal .mobile-shop-buy.disabled:not(#_):not(#_){background:var(--v5-accent-soft)!important;color:color-mix(in srgb,var(--v5-accent-ink) 82%,var(--v5-ink))!important;box-shadow:inset 0 0 0 1px var(--v5-accent-line)!important;opacity:1!important;filter:none!important;cursor:default!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad em:not(#_){font-size:var(--v5-fs-title)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad small u:not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad i:not(#_){font-size:var(--v5-fs-eyebrow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal #themePreviewName:not(#_){font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-page)!important;font-weight:700!important;letter-spacing:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell b:not(#_){font-size:var(--v5-fs-section)!important;font-family:var(--v5-tech)!important;}

/* ==================== 4. 内联提示卡（绑定手机号 #wsPhoneNudge → .v5-notice，永远不 fixed） ==================== */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge.v5-notice:not(#_){
  display:none!important;position:static!important;opacity:1!important;pointer-events:auto!important;transform:none!important;transition:none!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;grid-template-columns:none!important;
  width:auto!important;max-width:none!important;margin:0 0 16px!important;padding:14px 16px!important;
  background:var(--v5-panel)!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;box-shadow:none!important;
  align-items:flex-start!important;gap:12px!important;z-index:auto!important;visibility:visible!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge.v5-notice.on:not(#_){display:flex!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-notice-slot:empty{display:none;}
/* 提示卡的家 = 当前页面内容顶部（23 号 .wsv5-ov-nslot 跟着 .view.active 走）；卡没打开时这个位不占地；
   「我的」页自带完整的「绑定手机号」卡 → 这一页不再显示提示卡（D-dstar-15 一个入口一个家） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-nslot:not(#_){display:block!important;grid-column:1/-1!important;width:auto!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;animation:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-nslot:not(:has(#wsPhoneNudge.on)):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-nslot[data-view="view-account"]:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-nslot.wsv5-ov-gap #wsPhoneNudge.v5-notice:not(#_){margin-bottom:0!important;}   /* 父容器自带 gap 时不再叠加下边距 */
/* R-01：开机后才打开的提示卡先挂起（位不占地），等下一次进页 / 用户空闲 3 秒再显示，绝不在用户操作途中把整页往下顶（23 号控制） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-nslot.wsv5-ov-pend:not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__body:not(#_){flex:1 1 auto!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__acts:not(#_){display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;margin:10px 0 0!important;grid-column:auto!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__acts button:not(#_){width:auto!important;font-family:var(--cjk,inherit)!important;}
/* 「去绑定」：提示卡现在出现在各页内容顶部，页面自己已有唯一的 accent 主按钮（§2 一屏最多一个 accent 填充）→ 这里用 accent-soft 色调按钮
   （≤14% 底 + accent 字 + 1px accent-line），形状仍走主按钮令牌（星穹切角 / 猫卷药丸 / 纸墨方角），不发光、不扫光 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wpn-primary:not(#_){
  min-height:40px!important;padding:0 16px!important;border:1px solid var(--v5-accent-line)!important;border-radius:var(--v5-r-btn)!important;background:var(--v5-accent-soft)!important;background-image:none!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;
  clip-path:var(--v5-btn-clip)!important;filter:none!important;box-shadow:none!important;animation:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wpn-primary:not(#_)::after{display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wpn-primary:hover:not(#_){background:color-mix(in srgb,var(--v5-accent) 22%,transparent)!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wpn-later:not(#_){min-height:40px!important;padding:0 12px!important;border:0!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-accent-ink)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wsv5-ov-nclose:not(#_){flex:none!important;width:32px!important;height:32px!important;min-height:0!important;margin:-4px -6px 0 0!important;padding:0!important;border:0!important;background:transparent!important;color:var(--v5-ink-3)!important;font-size:var(--v5-fs-title)!important;line-height:1!important;border-radius:var(--v5-r-sm)!important;cursor:pointer;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wsv5-ov-nclose:hover:not(#_){background:var(--v5-accent-soft)!important;color:var(--v5-ink)!important;}
/* 手机（§5：主按钮全宽在上）：图标 + 标题/正文占满一行（× 留右上），动作行另起一行全宽竖排 —— 主「去绑定」在上、「以后再说」在下 */
@media(max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge.v5-notice:not(#_){flex-wrap:wrap!important;padding:14px!important;gap:10px 12px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__body:not(#_){flex:1 1 0!important;order:1!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__icon:not(#_){order:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wsv5-ov-nclose:not(#_){order:2!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__acts:not(#_){order:3!important;flex:1 1 100%!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important;margin:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .v5-notice__acts button:not(#_){width:100%!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPhoneNudge .wpn-primary:not(#_){min-height:44px!important;}
}

/* ==================== 5. toast ==================== */
/* 分享机会提示 #sharePromptNudge：站点写的 position:fixed 被 ui-polish-v4 的 body>*{position:relative} 压掉，盒子落到文档底 —— 抬回来，做成小提示卡 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge:not(#_){
  position:fixed!important;left:50%!important;right:auto!important;top:auto!important;bottom:24px!important;transform:translateX(-50%)!important;
  z-index:var(--v5-z-toast)!important;width:min(360px,calc(100vw - 32px))!important;box-sizing:border-box!important;
  display:grid!important;gap:6px!important;margin:0!important;padding:14px 16px!important;
  border:1px solid var(--v5-line)!important;border-radius:var(--v5-r)!important;background:var(--v5-panel)!important;background-image:none!important;color:var(--v5-ink)!important;
  box-shadow:0 18px 50px -12px var(--v5-veil),var(--v5-shadow-soft)!important;animation:var(--v5-enter) var(--v5-dur) var(--v5-ease) both!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge[hidden]:not(#_){display:none!important;}
@media(max-width:768px){html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge:not(#_){bottom:calc(56px + env(safe-area-inset-bottom,0px) + 12px)!important;}}   /* 手机：让出底栏（§5 toast 在底栏上方 12px） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge b:not(#_){font-size:var(--v5-fs-body-lg)!important;font-weight:600!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge > span:not(#_){font-size:var(--v5-fs-caption)!important;color:var(--v5-ink-3)!important;line-height:1.5!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge .share-prompt-nudge-actions:not(#_){display:flex!important;gap:8px!important;justify-content:flex-end!important;margin:6px 0 0!important;grid-template-columns:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge button:not(#_){min-height:40px!important;padding:0 14px!important;border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-sm)!important;background:transparent!important;color:var(--v5-ink)!important;font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:600!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #sharePromptNudge button.primary:not(#_){border:0!important;border-radius:var(--v5-r-btn)!important;background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;clip-path:var(--v5-btn-clip)!important;}
/* #toast：ink 底 + paper 字、高 40、圆角 999，普通与庆祝同一皮肤；位置沿用站点（学习页在顶部避开判分键） */
@media(min-width:769px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #toast#toast#toast:not(#_){
    min-height:40px!important;height:auto!important;padding:0 16px!important;box-sizing:border-box!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    border:0!important;border-radius:var(--v5-r-chip)!important;
    background:var(--v5-ink)!important;background-image:none!important;color:var(--v5-paper)!important;
    font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;line-height:1.3!important;
    box-shadow:0 8px 24px -4px var(--v5-veil)!important;width:max-content!important;min-width:0!important;max-width:calc(100vw - 32px)!important;white-space:normal!important;text-align:center!important;transition:opacity var(--v5-dur-fast) var(--v5-ease),transform var(--v5-dur-fast) var(--v5-ease)!important;
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;animation:none!important;
  }
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body:not(:has(#study.on)) #toast#toast#toast:not(#_){bottom:24px!important;top:auto!important;pointer-events:none!important;}
  /* toast 永不接点击（站点原样 index.html:2074 就是 pointer-events:none，toast 上也没有任何可点的东西）：
     隐藏态 opacity:0 仍在原位会截走底栏「词库」/ 首页主按钮（M-a-01）；可见态在有弹窗时移到顶部，又会盖住整页登录的 ×（mob-light authModal close.hit=#toast） */
}
@media(max-width:768px){
  /* 手机学习页的提示条由 20 号（通栏顶部横幅）负责，这里只管学习页以外 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body:not(:has(#study.on)) #toast#toast#toast:not(#_){
    min-height:40px!important;height:auto!important;padding:0 16px!important;box-sizing:border-box!important;
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    border:0!important;border-radius:var(--v5-r-chip)!important;
    background:var(--v5-ink)!important;background-image:none!important;color:var(--v5-paper)!important;
    font-family:var(--cjk,inherit)!important;font-size:var(--v5-fs-body)!important;font-weight:500!important;line-height:1.3!important;
    box-shadow:0 8px 24px -4px var(--v5-veil)!important;width:max-content!important;min-width:0!important;max-width:calc(100vw - 32px)!important;white-space:normal!important;text-align:center!important;transition:opacity var(--v5-dur-fast) var(--v5-ease),transform var(--v5-dur-fast) var(--v5-ease)!important;
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;animation:none!important;
    bottom:calc(56px + env(safe-area-inset-bottom,0px) + 12px)!important;top:auto!important;pointer-events:none!important;
  }
  /* 同上：toast 永不接点击（M-a-01） */
  /* 有弹窗 / 抽屉打开时底栏已被盖住，toast 改到顶部（让出抽屉的动作行） */
  /* V7.4.0 性能（A8）：原来是 body:has([data-wsv5-overlay="sheet"|"modal"]:is(.on,.open,.is-open)):not(:has(#study.on))，
     锚在 body 上的 :has 让任何 DOM 小变动都重配整棵树；现在 23 号在它已有的 body 观察器里算好写成 body.ws-sheet-open（抽屉或弹窗开着），
     学习页那半句读 21 号写的 body.ws-studying（= #study.on）。特异度补到与原来相同（重复类 + :not(#_)）。 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.ws-sheet-open.ws-sheet-open:not(.ws-studying):not(#_) #toast#toast#toast:not(#_){top:calc(env(safe-area-inset-top,0px) + 2px)!important;bottom:auto!important;}
}

/* ==================== 6. 手机（≤768）：卡内边距 16、动作行全宽竖排（主按钮在上）、登录页整页 ==================== */
@media(max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head:not(#_){padding:14px 16px 10px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__head.is-bare:not(#_){padding:8px 8px 0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet > .v5-dialog__head:not(#_){padding-top:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body:not(#_){padding:2px 16px 16px!important;}
  /* D-ov-07（§5）：手机动作行全宽竖排、主按钮在上（主按钮 order:-1）；次按钮也全宽，不再两两并排 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts:not(#_){flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;justify-content:flex-start!important;gap:4px!important;padding:12px 16px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:not(#_){flex:none!important;width:100%!important;min-height:44px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts :is(.ghost,.ws-reg-ghost,.ws-onb-done-ghost,.ws-qr-confirm-cancel):not(#_){min-height:40px!important;}
  /* 「忘了原因」是一排快选 chip（不是动作按钮），保持横排换行 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts:not(#_){flex-direction:row!important;flex-wrap:wrap!important;align-items:center!important;gap:8px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .primary:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-reg-primary:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-onb-done-primary:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-qr-confirm-ok:not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts .ws-card-btn.primary:not(#_){flex:1 1 100%!important;width:100%!important;min-height:var(--v5-btn-h-lg)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #dailyDoneModal .v5-dialog__acts:has(#dailyRegisterBtn:not([hidden])) #dailyCardBtn:not(#_){min-height:44px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #forgetReasonModal .v5-dialog__acts button:not(#_){flex:0 0 auto!important;min-height:var(--v5-chip-h)!important;width:auto!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions:not(#_){flex-direction:row!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions button:not(#_){flex:1 1 30%!important;min-width:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-dialog__acts > .reward-actions .primary:not(#_){flex:1 1 100%!important;}
  /* 表格：横向滚动 + 提示行 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table:not(#_){min-width:880px!important;}
  /* D-ov-04：新学批次胶囊「30词 · 当天回忆」比胶囊宽、文字画到边框外 → 胶囊内文字允许在空格处折行（keep-all：不把「当天回忆」拆成「当天 / 回忆」）、胶囊不超过格宽；
     表头「日期 / 真实日历」不许被折成「真实日 / 历」 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip:not(#_){max-width:100%!important;box-sizing:border-box!important;min-width:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-chip :is(b,small,.chip-stage):not(#_){white-space:normal!important;overflow-wrap:break-word!important;word-break:keep-all!important;min-width:0!important;max-width:100%!important;text-align:center!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table th :is(.plan-head-main,.plan-head-sub):not(#_){white-space:nowrap!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .plan-table :is(th,td):first-child:not(#_){min-width:64px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .wsv5-ov-scrollhint:not(#_){display:block;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary:not(#_){grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary > *:not(#_){padding:10px 6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal .schedule-summary .sv:not(#_){font-size:var(--v5-fs-title)!important;}
  /* 个人中心 / 战报：单列 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .profile-center-grid:not(#_){grid-template-columns:1fr!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-report-stats:not(#_){grid-template-columns:1fr!important;gap:6px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .achievement-stat:not(#_){padding:8px 10px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #installModal .download-window-grid:not(#_){grid-template-columns:1fr!important;}
  /* 菜单面板：条目更紧 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-item:not(#_){min-height:48px!important;padding:6px 8px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #menuPanelModal .menu-panel-grid:not(#_){margin-left:-8px!important;margin-right:-8px!important;}
  /* 登录 / 注册：整页（站点 body.mobile-auth-active），不要遮罩内边距；主按钮 52 高钉在底部 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal.auth-modal:not(#_){padding:0!important;background:var(--v5-paper)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .v5-dialog:not(#_){width:100%!important;max-width:none!important;height:100dvh!important;max-height:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;clip-path:none!important;animation:none!important;background:var(--v5-paper)!important;overflow:auto!important;display:block!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-modal-frame:not(#_){overflow:visible!important;display:block!important;padding:calc(env(safe-area-inset-top,0px) + 8px) 16px calc(env(safe-area-inset-bottom,0px) + 16px)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-modal-main:not(#_){padding:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-modal-top:not(#_){padding:0 0 8px!important;border:0!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-submit:not(#_){min-height:var(--v5-btn-h-lg)!important;bottom:calc(env(safe-area-inset-bottom,0px) + 8px)!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-modal-form:not(#_){border:0!important;border-radius:0!important;background:transparent!important;padding:0!important;box-shadow:none!important;gap:10px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal .auth-modal-footer:not(#_){padding:12px 0 0!important;}
  /* 第三轮顺带根修：ui-polish-apple 在 ≤768 给所有类名带 modal 的块 max-height:calc(100dvh − 36px − 底部安全区)!important（:where 零权重但带 !important）；
     整页登录 / 注册里 .auth-modal-main 内容 860 高被压成 774、overflow 又是 visible → 多出的 86px（「注册保存游客进度」说明的下半句、「已有账号？返回登录」）
     压在下面的隐私说明框上，字叠字。整页本身就在滚（.v5-dialog overflow:auto），这几块不需要限高 */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal :is(.auth-modal-main,.auth-form-panel,.auth-modal-form,.auth-modal-footer):not(#_){max-height:none!important;}
  /* D-ov-12：整页登录的关闭键在右上（§5 右上是 ✕），站点用 ::before 画的向左「‹」放在右边方向语义反了 →
     V5 下不画箭头，直接露出按钮自带的「×」文字（与其它弹窗的 × 同款：400 / section 档 / 36×36） */
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal #authModalClose.v5-dialog__close:not(#_){font:400 var(--v5-fs-section)/1 var(--cjk,inherit)!important;width:36px!important;height:36px!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal #authModalClose.v5-dialog__close::before{content:none!important;display:none!important;}
}

/* ==================== V7.0.0 · 主题预览价格药丸折行 / 小字底线 ====================
   ① 没解锁的主题价格药丸很长（像素街机「单词 PK 铂金解锁 · 或 1999 卷轴币」）：窄手机上它和标题说明挤在同一行，
      把左边的标题 + 说明压成 68px 宽的一根窄条（说明折成 13 行）。改成可折行：文字块至少 220px，放不下药丸就整颗换到下一行（× 不动，不会被盖）。
   ② 弹层里还剩几处 11px 的字（任何字 ≥ 12px）：注册框的品牌眉题 / 勾选框文字 / 小勾、注册挽留框的资产药丸、新手引导目标说明、个人中心等级章的「LV.」、分享面板的邀请阶梯。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top:not(#_):not(#_){flex-wrap:wrap!important;row-gap:8px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top > div:first-child:not(#_):not(#_){flex:1 1 220px!important;min-width:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-top > .theme-cost-pill:not(#_):not(#_){flex:0 1 auto!important;max-width:100%!important;height:auto!important;min-height:22px!important;white-space:normal!important;text-align:left!important;line-height:1.35!important;padding-top:3px!important;padding-bottom:3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__body .ws-reg-chip:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal :is(.mobile-auth-logo-card span,.auth-check span,.mobile-auth-note i):not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-goals .g-desc:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal .pc-lv-badge small:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad :is(.ws-ilad-stops li span,small u,i):not(#_):not(#_){font-size:var(--v5-fs-caption)!important;}

/* ==================== V7.0.0 · 平板宽度（769–1099，新版电脑缩窄版）弹层配合 ====================
   769–1099 起新版改用「电脑布局的缩窄版」（左侧窄图标栏 + 单栏内容，16/17 号）。弹层本身按视口居中、盖在侧栏之上（遮罩 z 12060 > 侧栏），
   七个主题 × 820 / 1024 / 1099 实测：主题预览、商城、设置类菜单弹窗、分享卡、成就战报、完整计划表、个人中心都不溢出、× 不压价格。
   只有两处要补：①「全部功能」面板在 820 宽排成四栏，每栏 ~180px，最长那颗「V5 新版用得怎么样 · 说一句」冲出面板右缘被裁 → 这一段宽度允许药丸折行；
   ② 分享卡预览：× 压在预览框右上角，预览图又被「体内第一个块右让 40px」+ 旧层给类名带 card 的块的百分比内边距挤偏（框里左上空一圈、右侧空一条）
      → 预览框内边距归零、图铺满框，整块预览下移到 × 下面（所有宽度）。
   V7.0.0 第二轮（核查 #1）：上面这条让图按体宽铺满后，竖长的战报卡在 1280×720 / 390×844 高出体区，卡底的二维码和下面那行
      「扫卡上二维码即可注册…」要滚动才看得到 → 体区改成竖向弹性盒：图框可收缩（min-height:0），图按剩余高度等比缩放（最高 = 剩余高度），
      说明行不收缩；整张卡 + 说明永远在一屏里，× 仍在图框上方。
      （弹窗高度是 max-height 撑出来的、不是定值，百分比高度解不出来 → 图的最高高度按视口减去弹窗其余部分：电脑 250px；手机抽屉 392px + 刘海 / Home 条。） */
@media (min-width:769px) and (max-width:1099px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-mask .wsv5-pgroup button:not(#_):not(#_){max-width:100%!important;height:auto!important;min-height:var(--v5-chip-h)!important;padding-top:6px!important;padding-bottom:6px!important;white-space:normal!important;text-align:left!important;line-height:1.3!important;}
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-dialog.v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body:not(#_){padding-top:56px!important;display:flex!important;flex-direction:column!important;align-items:center!important;min-height:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-dialog.v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > .ws-card-img-wrap:not(#_):not(#__):not(#___):not(#____){padding:0!important;margin-top:0!important;flex:0 1 auto!important;min-height:0!important;width:100%!important;display:block!important;border:0!important;border-radius:0!important;background:transparent!important;overflow:visible!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-dialog.v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > .ws-card-img-wrap img:not(#_):not(#__){display:block!important;margin:0 auto!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:max(180px,calc(100dvh - 250px))!important;box-sizing:border-box!important;border:1px solid var(--v5-line)!important;border-radius:var(--v5-r-sm)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-dialog.v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > .ws-card-tip:not(#_){flex:none!important;align-self:stretch!important;}
@media (max-width:768px){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsCardModal .ws-card-dialog.v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > .ws-card-img-wrap img:not(#_):not(#__):not(#___){max-height:max(160px,calc(100dvh - 392px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)))!important;}
}

/* >>> PIXEL-V7 像素街机（V7.0.0）>>> */
/* ============================================================================
 * P. 像素街机 pixel（V7.0.0）· 弹层皮肤（所有宽度）
 * 弹窗 = 台阶切角面板 + 3px 亮描边 + 底边 1P 厚度；入场像老游戏逐行刷出（v5px-dlg：动画只改 --v5p-dlg-clip，
 * 因为 clip-path 本身带 !important，关键帧直接改 clip-path 会被压掉）；× = 切角小方块；主按钮 = 洋红街机键；toast = 黄底深字像素条。
 * 令牌 / 素材在 20 号文件末尾「P0」（--v5p-*；像素字体与素材令牌对所有主题都定义，给「主题预览」里的像素卡用）。
 * 主题预览 / 设置主题卡 / 商城里的像素街机卡：不管当前站点是什么主题都要长成「迷你街机屏」→ 这几条按 data-preview-theme / data-settings-theme 限定。
 * ==========================================================================*/
@keyframes v5px-dlg{0%{--v5p-dlg-clip:inset(0 0 100% 0)}20%{--v5p-dlg-clip:inset(0 0 66% 0)}40%{--v5p-dlg-clip:inset(0 0 33% 0)}60%,100%{--v5p-dlg-clip:var(--v5p-clip)}}
@keyframes v5px-dlg-top{0%{--v5p-dlg-clip:inset(0 0 100% 0)}20%{--v5p-dlg-clip:inset(0 0 66% 0)}40%{--v5p-dlg-clip:inset(0 0 33% 0)}60%,100%{--v5p-dlg-clip:var(--v5p-clip-top)}}

/* ---------- P1. 卡 / 抽屉 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog:not(.v5m-allsheet):not(#_):not(#_){
  --v5p-dlg-clip:var(--v5p-clip);
  border:0!important;border-radius:0!important;clip-path:var(--v5p-dlg-clip)!important;
  background:var(--v5p-cn-hi),var(--v5-panel)!important;
  box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line)!important;
  animation:v5px-dlg 240ms linear both;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog.v5-sheet:not(.v5m-allsheet):not(#_):not(#_){
  --v5p-dlg-clip:var(--v5p-clip-top);
  background:var(--v5p-cn-top),var(--v5-panel)!important;
  box-shadow:inset 3px 0 0 var(--line-strong),inset -3px 0 0 var(--line-strong),inset 0 3px 0 var(--line-strong)!important;
  animation:v5px-dlg-top 240ms linear both;
}
/* 动作行不再铺底色（否则盖住卡的 inset 描边）；头下一条 3px 分隔 = 像素窗口的标题栏 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts:not(#_):not(#_){background:transparent!important;border-top:3px solid var(--line)!important;padding-bottom:17px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog:has(> .v5-dialog__body) > .v5-dialog__head:not(.is-bare):not(#_):not(#_){box-shadow:inset 0 -3px 0 var(--line)!important;padding-bottom:14px!important;margin:0 3px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-sheet__grip:not(#_):not(#_){width:36px!important;height:6px!important;border-radius:0!important;background:repeating-linear-gradient(90deg,var(--line-strong) 0 6px,transparent 6px 9px)!important;}
/* × = 切角小方块 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__close:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .wsv5-ov-nclose:not(#_):not(#_){
  border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-hi),var(--card-strong)!important;box-shadow:var(--v5p-ring-hi)!important;
  color:var(--v5-ink)!important;font-family:var(--v5p-font)!important;font-weight:700!important;transition:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__close:hover:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .wsv5-ov-nclose:hover:not(#_):not(#_){background:var(--v5p-cn-acc),var(--accent-soft)!important;box-shadow:inset 0 0 0 3px var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__close:is(:active,.is-pressed):not(#_):not(#_){transform:translateY(3px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__icon:not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-acc),var(--accent-soft)!important;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--accent) 55%,var(--accent-soft))!important;}

/* ---------- P2. 动作行按键 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts button:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;
  background:var(--v5p-cn-hi),var(--card-strong)!important;color:var(--v5-ink)!important;
  box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line-strong)!important;padding-bottom:3px!important;font-weight:700!important;transition:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts button:hover:not(#_):not(#_){background:var(--v5p-cn-hi),color-mix(in srgb,var(--card-strong) 92%,var(--ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts button:is(:active,.is-pressed):not(#_):not(#_){transform:translateY(3px)!important;box-shadow:var(--v5p-ring-hi),inset 0 -3px 0 var(--line-strong)!important;padding-bottom:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary):not(#_):not(#_){
  background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;filter:none!important;
  box-shadow:var(--v5p-side),var(--v5p-hi)!important;font-weight:800!important;letter-spacing:.06em!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary):hover:not(#_):not(#_){background:color-mix(in srgb,var(--accent) 92%,var(--ink))!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary):is(:active,.is-pressed):not(#_):not(#_){box-shadow:var(--v5p-side-down),var(--v5p-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts :is(.ghost,.ws-reg-ghost,.ws-onb-done-ghost,.ws-qr-confirm-cancel):not(#_):not(#_){background:transparent!important;box-shadow:none!important;clip-path:none!important;color:var(--v5-accent-ink)!important;font-weight:700!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__acts :is(.ghost,.ws-reg-ghost,.ws-onb-done-ghost,.ws-qr-confirm-cancel):is(:active,.is-pressed):not(#_):not(#_){transform:none!important;}

/* ---------- P3. 体内零件：输入框 / 药丸 / 分隔 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog :is(input[type="text"],input[type="tel"],input[type="email"],input[type="password"],input[type="number"],input:not([type]),textarea):not(.wsv5-search *):not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--paper-2)!important;box-shadow:var(--v5p-ring)!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog :is(input,textarea):focus:not(.wsv5-search *):not(#_):not(#_){box-shadow:inset 0 0 0 3px var(--cyan)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #authModal .v5-dialog .auth-field select:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--paper-2)!important;box-shadow:var(--v5p-ring)!important;color:var(--v5-ink)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #authModal .v5-dialog .auth-field select:focus:not(#_):not(#_){box-shadow:inset 0 0 0 3px var(--cyan)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog .theme-cost-pill:not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;font-family:var(--v5p-sys)!important;}

/* ---------- P4. 商城（#mobileAchievementModal）：余额 = 街机 HUD、卷轴币带像素金币、兑换键 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .v5-dialog__body > div[style]:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--card-strong)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance:not(#_):not(#_){gap:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance>div:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--card-strong)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance b:not(#_):not(#_){font-weight:400!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance>div:nth-child(2) b:not(#_):not(#_){display:inline-flex!important;align-items:center!important;gap:6px!important;color:var(--amber)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance>div:nth-child(2) b:not(#_):not(#_)::before{content:""!important;display:block!important;flex:none!important;width:15px!important;height:15px!important;background:var(--v5p-coin) center/100% 100% no-repeat!important;image-rendering:pixelated;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal :is(.mobile-shop-buy,#wsShopRedeemBtn,#wsBuySlot,#wsShieldCoins):not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;
  box-shadow:var(--v5p-side),var(--v5p-hi)!important;padding:12px 16px 15px!important;font-family:var(--v5p-sys)!important;font-weight:700!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal :is(.mobile-shop-buy,#wsShopRedeemBtn,#wsBuySlot,#wsShieldCoins):is(:active,.is-pressed):not(#_):not(#_){transform:translateY(3px)!important;box-shadow:var(--v5p-side-down),var(--v5p-hi)!important;}
/* 买不起的那颗（.disabled）：次级键（卡面 + 四角铆钉 + 3px 描边圈），不是洋红主键。上面那条 :is(.mobile-shop-buy,#wsShopRedeemBtn,…) 按参数里最重的 #id 计特异性，比这条多一个 id → 这条一直输、买不起也显示成主键；多一个 :not(#_) 才压得住 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-buy.disabled:not(#_):not(#_):not(#_){cursor:default!important;background:var(--v5p-cn-hi),var(--card-strong)!important;color:var(--v5-ink-3)!important;box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line-strong)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal :is(#wsShieldCopper,#wsSlotContact):not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-hi),var(--card-strong)!important;box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line-strong)!important;padding:12px 16px 15px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-item:not(#_):not(#_){border-radius:0!important;border-width:0 0 3px!important;border-color:var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-owned:not(#_):not(#_){font-weight:700!important;color:var(--ok)!important;}
/* 成就详情里的小卡 / 进度条（同一个弹层的「成就」形态） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-ach-bar:not(#_):not(#_){height:9px!important;border-radius:0!important;background:color-mix(in srgb,var(--line) 70%,var(--paper-2))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-ach-bar i:not(#_):not(#_){border-radius:0!important;background:var(--v5p-exp)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal :is(.mobile-ach-badge,.mobile-ach-list-icon):not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;}

/* ---------- P5. 成就解锁 / 规则 / 完成弹窗：徽章 = 金色像素框，列表条目 = 像素块 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #achievementUnlockModal .achievement-unlock-item:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #achievementUnlockModal .achievement-unlock-list>*:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-gold),var(--card-strong)!important;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--amber) 55%,var(--card-strong))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #achievementUnlockModal :is(.achievement-medal,.achievement-unlock-medal,.achievement-medal-core):not(#_):not(#_){border-radius:0!important;filter:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #achievementUnlockModal .v5-dialog__title:not(#_):not(#_)::before{content:"UNLOCKED!"!important;display:block!important;margin:0 0 8px!important;font:400 16px/1.2 var(--v5p-disp)!important;letter-spacing:0!important;color:var(--amber)!important;-webkit-font-smoothing:none;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#policyModal,#dailyDoneModal,#sparkBreakModal) .v5-dialog__body :is(li,.policy-item,.rule-item):not(#_):not(#_){border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#policyModal,#dailyDoneModal,#sparkBreakModal,#shareLinkModal) .v5-dialog__body b:not(#_):not(#_){font-family:var(--v5p-sys)!important;}

/* ---------- P6. 菜单 / 全部功能面板（桌面卡形态） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-menu:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-hi),var(--v5-panel)!important;box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-menu .v5-menu__item:not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-menu .v5-menu__item:hover:not(#_):not(#_){background:var(--accent-soft)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-search:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--paper-2)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-search:focus-within:not(#_):not(#_){box-shadow:inset 0 0 0 3px var(--cyan)!important;background:var(--v5p-cn-cyan),var(--paper-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-search input:focus:not(#_):not(#_){outline:none!important;box-shadow:none!important;background:transparent!important;clip-path:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-pgroup button:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--card-strong)!important;box-shadow:var(--v5p-ring),inset 0 -3px 0 var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-pgroup button:hover:not(#_):not(#_){background:var(--v5p-cn-acc),var(--accent-soft)!important;box-shadow:inset 0 0 0 3px var(--accent),inset 0 -3px 0 var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-mask .wsv5-pgroup button kbd:not(#_):not(#_){border-radius:0!important;font-family:var(--v5p-sys)!important;}

/* ---------- P7. 绑定手机号提示卡（内联，出现在各页顶部）：面板 + 次按键（页面自己的主按钮才是洋红键） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge.v5-notice:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--v5-panel)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .v5-notice__icon:not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--accent) 55%,var(--accent-soft))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .wpn-primary:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-acc),var(--card-strong)!important;color:var(--v5-accent-ink)!important;
  box-shadow:inset 0 0 0 3px var(--accent),inset 0 -6px 0 color-mix(in srgb,var(--accent) 45%,var(--paper-2))!important;padding-bottom:3px!important;font-weight:800!important;transition:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .wpn-primary:is(:active,.is-pressed):not(#_):not(#_){transform:translateY(3px)!important;box-shadow:inset 0 0 0 3px var(--accent),inset 0 -3px 0 color-mix(in srgb,var(--accent) 45%,var(--paper-2))!important;padding-bottom:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPhoneNudge .wpn-later:not(#_):not(#_){font-weight:700!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #sharePromptNudge:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-hi),var(--v5-panel)!important;box-shadow:var(--v5p-ring-hi),inset 0 -6px 0 var(--line)!important;animation:v5px-dlg 240ms linear both!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #sharePromptNudge button:not(#_):not(#_){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-hi),var(--card-strong)!important;box-shadow:var(--v5p-ring-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #sharePromptNudge button.primary:not(#_):not(#_){background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;box-shadow:var(--v5p-side),var(--v5p-hi)!important;}

/* ---------- P8. toast：黄底深字的像素条（游戏里的「获得物品」提示） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #toast#toast#toast:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #toast#toast#toast.toast--celebrate:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;
  background:var(--amber)!important;background-image:none!important;color:var(--paper)!important;-webkit-text-fill-color:currentColor!important;
  box-shadow:inset 0 -3px 0 color-mix(in srgb,var(--amber) 55%,var(--paper-2)),inset 0 3px 0 color-mix(in srgb,var(--ink) 35%,transparent)!important;
  font-weight:700!important;text-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #toast#toast#toast:not(#_):not(#_) *{color:inherit!important;}

/* ---------- P9. 迷你街机屏：主题预览（任何站点主题下预览像素街机都长这样） ---------- */
/* 预览卡本体：深底 + 点阵 + 3px 描边 + 台阶切角；原来的手绘猫 SVG 与装饰圆环收起，换成像素猫卷头 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"]:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;
  box-shadow:inset 0 0 0 3px var(--preview-line,var(--v5-line))!important;padding:18px 18px 21px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"]:not(#_):not(#_)::after{
  content:""!important;display:block!important;position:absolute!important;right:18px!important;top:15px!important;left:auto!important;bottom:auto!important;
  width:64px!important;height:56px!important;border:0!important;border-radius:0!important;opacity:1!important;
  background:var(--v5p-cat-idle) center/100% 100% no-repeat!important;image-rendering:pixelated;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-cat:not(#_):not(#_){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-title:not(#_):not(#_){
  padding-right:78px!important;margin:4px 0 16px!important;font-family:var(--v5p-font)!important;font-size:var(--v5-fs-section)!important;line-height:1.35!important;font-weight:700!important;
  color:var(--preview-ink,var(--v5-ink))!important;text-shadow:none!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-row:not(#_):not(#_){gap:6px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-stat:not(#_):not(#_){
  border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--preview-card,var(--v5-panel))!important;
  box-shadow:inset 0 0 0 3px var(--preview-line,var(--v5-line)),inset 0 -6px 0 var(--preview-line,var(--v5-line))!important;padding:10px 6px 12px!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-stat b:not(#_):not(#_){font-family:var(--v5p-num)!important;font-weight:400!important;font-size:16px!important;line-height:1.25!important;letter-spacing:0!important;-webkit-font-smoothing:none;color:var(--preview-accent,var(--v5-accent))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-stat:nth-child(2) b:not(#_):not(#_){color:var(--preview-terra,var(--v5-accent))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-stat span:not(#_):not(#_){color:var(--preview-soft,var(--v5-ink-2))!important;font-size:12px!important;}
/* 三色像素条：洋红（你）/ 青（对手）/ 金（金币）分格 —— 颜色写在 data-URI 里（%23） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-line:not(#_):not(#_){height:12px!important;border-radius:0!important;background:var(--preview-line,var(--v5-line))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #themePreviewModal .theme-preview-shell[data-preview-theme="pixel"] .preview-line i:not(#_):not(#_){
  width:100%!important;border-radius:0!important;image-rendering:pixelated;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='36' height='12' shape-rendering='crispEdges'><rect x='0' y='0' width='9' height='12' fill='%23FF4FA3'/><rect x='12' y='0' width='9' height='12' fill='%233FE0FF'/><rect x='24' y='0' width='9' height='12' fill='%23FFD447'/></svg>") 0 0/36px 12px repeat-x!important;
}
/* 设置里的主题卡缩略图（桌面「外观与主题」/ 手机主题抽屉）：加一颗像素猫头 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .settings-theme-card[data-settings-theme="pixel"] .settings-theme-preview:not(#_):not(#_){position:relative!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;image-rendering:pixelated;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .settings-theme-card[data-settings-theme="pixel"] .settings-theme-preview:not(#_):not(#_)::after{
  content:""!important;display:block!important;position:absolute!important;left:50%!important;top:8%!important;width:32px!important;height:28px!important;margin-left:-16px!important;
  background:var(--v5p-cat-idle) center/100% 100% no-repeat!important;image-rendering:pixelated;
}
/* 商城列表里还没买的像素街机：名字前一颗像素猫头 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-item:has(> [data-shop-theme="pixel"]) .mobile-shop-item-copy b:not(#_):not(#_){display:flex!important;align-items:center!important;gap:8px!important;} /* 块级 flex：猫头在名字左边，小字「至尊 · 主题皮肤」换到下一行（inline-flex 会让小字跟在名字后面挤成一行） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-item:has(> [data-shop-theme="pixel"]) .mobile-shop-item-copy b:not(#_):not(#_)::before{content:""!important;display:block!important;flex:none!important;width:24px!important;height:21px!important;background:var(--v5p-cat-idle) center/100% 100% no-repeat!important;image-rendering:pixelated;}

/* 个人中心的等级章：圆形渐变发光 → 台阶切角的洋红方块章 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #profileCenterModal .pc-lv-badge:not(#_):not(#_){border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5-accent)!important;background-image:none!important;box-shadow:var(--v5p-side),var(--v5p-hi)!important;filter:none!important;color:var(--v5-on-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #profileCenterModal .pc-lv-badge :is(b,small):not(#_):not(#_){color:var(--v5-on-accent)!important;text-shadow:none!important;}

/* ---------- P10. 数字字体（V7.0.0 业主口径）：≥16px 的数字 = Press Start 2P（--v5p-num，16 号、字重 400）；<16px 的数字与中文 = 系统字；Pixelify 只给英文单词 ---------- */
/* 弹层里所有 var(--v5-tech) 的数字（16 号把它设成了 Pixelify）先回系统字；大数字下面逐条升 Press Start 2P */
html.ws-v5[data-theme="pixel"] :is([data-wsv5-overlay],.wsv5-mask,#socialPage,#wsClassPage){--v5-tech:var(--v5p-sys);}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-coin b:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #mobileAchievementModal .mobile-shop-balance b:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #achievementModal .achievement-stat b:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #completionShareModal .completion-share-metric strong:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage .social-myrank b:not(#_):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #profileCenterModal .pc-lv-badge b:not(#_):not(#_){font-family:var(--v5p-num)!important;font-size:16px!important;font-weight:400!important;line-height:1.25!important;letter-spacing:0!important;-webkit-font-smoothing:none;font-variant-numeric:normal!important;}
/* 完整计划表的三格日期（「10 月 13 日」）放不下 8×8 街机字 → 15px 系统字 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #planFullModal .schedule-summary :is(b,.sv):not(#_):not(#_){font-family:var(--v5p-sys)!important;font-size:var(--v5-fs-body-lg)!important;}

@media(prefers-reduced-motion:reduce){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #sharePromptNudge:not(#_):not(#_){animation:none!important;}
}
/* <<< PIXEL-V7 像素街机 <<< */

/* >>> V7-PK2 单词 PK 第二批 · 名片 / 排行榜徽章（V7.0.0）>>> */
/* ============================================================================
 * K. 单词 PK 名片 #wsPkCard（所有宽度）+ 排行榜里的段位徽章 + 天梯页头（V7-CONTRACT.md §8 / R2 §B）
 * DOM 在 04 号（wsPkEnsureCard：#wsPkCard 是遮罩，卡是 .ws-pk-card__panel）；23 号把卡套成 .v5-dialog、× 进卡头 → 主题的弹窗皮（像素切角、
 * 汽水 22 圆角、森林叠页…）自动生效，这里只排版名片内容。
 * 坑：名片里每个节点的类名都带「card」（ws-pk-card__*），ui-polish-apple 的 [class*="card"] 会给它们套圆角 / 内边距 / 底色 / 阴影
 * → 先统一清零，再逐个写。徽章十色 / 尺寸在 28 号，主题形状在 16 号 11.2。
 * ==========================================================================*/
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body [class*="ws-pk-card__"]:not(#_){border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0!important;margin:0!important;min-height:0!important;width:auto!important;max-width:100%!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .ws-pk-card__panel.v5-dialog:not(#_){width:min(360px,calc(100vw - 32px))!important;max-width:360px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .ws-pk-card__panel.v5-dialog>.v5-dialog__body:not(#_){display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important;gap:0!important;padding-top:24px!important;}   /* 第三轮核查 #9：原来 4px，头像顶到卡边（像素 3px 描边几乎贴住）；× 在右上 12px、头像居中，两者横向不重叠 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__avatar:not(#_):not(#__){
  display:flex!important;align-items:center!important;justify-content:center!important;grid-template-columns:none!important;flex:none!important;width:64px!important;height:64px!important;margin:0 0 10px!important;overflow:hidden!important;
  border-radius:50%!important;background:var(--v5-accent-soft)!important;box-shadow:inset 0 0 0 1px var(--v5-accent-line)!important;
  color:var(--v5-accent-ink)!important;font:700 26px/1 var(--cjk)!important;
}
/* 22 号 2 节「无标题卡体内第一个块右让 40px 给 ×」会落到头像上（头像是体内第一个块）→ 名片是居中排版、× 在卡头，头像不用让 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog > .v5-dialog__head.is-bare + .v5-dialog__body > .ws-pk-card__avatar:first-child:not(#_):not(#__):not(#___):not(#____){padding:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .ws-pk-card__avatar img:not(#_){width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;border-radius:inherit!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__name:not(#_):not(#__){font:700 var(--v5-fs-title)/1.35 var(--cjk)!important;color:var(--v5-ink)!important;overflow-wrap:anywhere!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__lv:not(#_):not(#__){display:inline-block!important;margin:0 0 0 4px!important;padding:3px 8px!important;border-radius:var(--v5-r-pill)!important;background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;font:600 var(--v5-fs-caption)/1.2 var(--v5-tech)!important;vertical-align:2px!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__me:not(#_):not(#__){font:500 var(--v5-fs-body)/1.35 var(--cjk)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__meta:not(#_):not(#__){margin:6px 0 0!important;font:400 var(--v5-fs-caption)/1.6 var(--cjk)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body :is(.ws-pk-card__rank,.ws-pk-card__peak):not(#_):not(#__){display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:8px!important;width:100%!important;margin:12px 0 0!important;font:500 var(--v5-fs-body)/1.4 var(--cjk)!important;color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__rank:not(#_):not(#__){margin-top:16px!important;padding-top:14px!important;border-top:1px solid var(--v5-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body :is(.ws-pk-card__peak,.ws-pk-card__foot,.ws-pk-card__meta):empty:not(#_):not(#__){display:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__foot:not(#_):not(#__){width:100%!important;margin:16px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__btn:not(#_):not(#__){
  display:inline-flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-height:44px!important;padding:0 16px!important;
  border:1px solid var(--v5-line-2)!important;border-radius:var(--v5-r-btn)!important;background:transparent!important;color:var(--v5-ink)!important;font:600 var(--v5-fs-body)/1 var(--cjk)!important;cursor:pointer;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .v5-dialog__body .ws-pk-card__btn:is(:active,.is-pressed):not(#_):not(#__){transform:var(--v5-press)!important;background:var(--v5-accent-soft)!important;}
/* 徽章：名片 / 排行榜 / 天梯里都不要 28 号给的左外边距；字的行高放回 normal（28 号 line-height:1 让中文在药丸里偏上 2–3px） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsPkCard,#socialPage) .ws-pk-badge :is(.ws-pk-badge__name,.ws-pk-badge__div){line-height:normal!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsPkCard .ws-pk-badge{margin:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsPkCard,#socialPage) .ws-pk-badge:not(.is-placing){background:color-mix(in srgb,var(--pk-c) 14%,var(--v5-panel))!important;}   /* 深色主题下 28 号 20% 的段位色底让墨字掉到 4.2 */
/* 按主题：头像跟着各自性格换形；像素的药丸徽章改方章、星穹切角、森林木牌下沿 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPkCard .v5-dialog__body .ws-pk-card__avatar:not(#_):not(#__){border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn-acc),var(--accent-soft)!important;box-shadow:inset 0 0 0 3px var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPkCard .v5-dialog__body :is(.ws-pk-card__lv,.ws-pk-card__btn):not(#_):not(#__){border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPkCard .v5-dialog__body .ws-pk-card__btn:not(#_):not(#__){border:0!important;clip-path:var(--v5p-clip)!important;box-shadow:var(--v5p-ring),inset 0 -3px 0 var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsPkCard .v5-dialog__body .ws-pk-card__rank:not(#_):not(#__){border-top:3px dashed var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(#wsPkCard,#socialPage) .ws-pk-badge{border-radius:0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="supreme"] body :is(#wsPkCard,#socialPage) .ws-pk-badge{border-radius:0!important;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body :is(#wsPkCard,#socialPage) .ws-pk-badge{border-radius:4px!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pk-c) 55%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--wood-deep) 30%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #wsPkCard .v5-dialog__body .ws-pk-card__avatar:not(#_):not(#__){border-radius:10px!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #wsPkCard .v5-dialog__body .ws-pk-card__avatar:not(#_):not(#__){background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1.5px var(--sd-ring),var(--sd-hi)!important;}
/* 像素：天梯页头「第 7 名」里的数字走街机字（22 号 P 节 .social-myrank b），街机字的空格有 1em 宽 → 收窄字距 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage #wsPkLadderHead b:not(#_):not(#_):not(#_){word-spacing:-.6em!important;}
/* <<< V7-PK2 <<< */

/* >>> V7-R2 弹层对比度收尾 + 像素件补齐（V7.0.0 第二轮）>>> */
/* ============================================================================
 * C. 弹层对比度收尾（第二轮核查 #4：九个主题逐个弹层实测 < 4.5:1 的字，全部改到「次要文字 / 强调色当字 / 金字 / 危险色当字」四个令牌上）
 *    令牌口径：--v5-ink-2 次要文字；--v5-accent-ink 强调色当字；--v5-gold-ink 金字；--v5m-warn-ink 危险色当字（20 号定义）。
 *    主题色（--accent / --terra / --amber）只做填充，不当字；徽章 / 角标这种「字在色块上」的一律「深底浅字」或「浅底深字」配对写。
 * ==========================================================================*/
/* 战报海报预览（#achievementModal）：海报是要导出成图片的「作品」，纸色底 + 深色字是它自己的配色。
   深色主题下旧层把海报底换成了半透明、字却跟着主题变浅（标题 1.0–1.4:1、数字白字压在白底上）→ 海报在所有深色主题里固定用纸色海报。
   这几个 rgb() 是导出图的固定纸色（与 04 号 wsBattleCardSVG 的 #FCF8F0 / #2A2118 同一套），不是主题色，所以不走 --v5-* 令牌。 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster:not(#_):not(#__){
  background:radial-gradient(circle at 18% 0,rgba(255,255,255,.92),transparent 44%),linear-gradient(160deg,rgb(255 250 242),rgb(239 229 211))!important;color:rgb(45 36 30)!important;border-color:rgba(43,37,31,.14)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster.has-template:not(#_):not(#__){background-image:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,248,236,.82)),var(--share-template-image)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster :is(h3,.poster-brand b,.poster-stat b,#posterProgressText,.poster-week-title):not(#_):not(#__){color:rgb(45 36 30)!important;-webkit-text-fill-color:rgb(45 36 30)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster :is(p,.poster-stat span,.poster-progress-head,#posterProgressLabel,.achievement-slogan,.poster-week-dot,.poster-week-dot>span):not(#_):not(#__){color:rgb(90 77 66)!important;-webkit-text-fill-color:rgb(90 77 66)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster :is(.poster-brand small,.poster-date,.achievement-link,.qr-fallback):not(#_):not(#__){color:rgb(106 90 77)!important;-webkit-text-fill-color:rgb(106 90 77)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster .poster-stat:not(#_):not(#__){background:rgba(255,255,255,.7)!important;border-color:rgba(43,37,31,.10)!important;box-shadow:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="dark"],[data-theme="minimal-dark"],[data-theme="supreme"],[data-theme="pixel"]) body #achievementModal .share-report-poster .poster-progress-bar:not(#_):not(#__){background:rgba(43,37,31,.10)!important;}
/* 战报：渠道小圆标（微 / 圈 / Q / 链…）与「已选 1/8」 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .share-channel-icon:not(#_):not(#__){background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .v5-btn-primary .share-channel-icon:not(#_):not(#__),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .primary .share-channel-icon:not(#_):not(#__){background:transparent!important;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--v5-on-accent) 70%,transparent)!important;color:var(--v5-on-accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal .promo-option .promo-index:not(#_):not(#__){background:color-mix(in srgb,var(--v5-ink) 78%,transparent)!important;color:var(--v5-paper)!important;}   /* 模板缩略图上的序号：旧层把字染成墨色、底还是 62% 黑 → 1.1:1 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #achievementModal :is(#promoSelectedLabel,.promo-selected-label,#posterTemplateNote,.share-report-panel-title span,.promo-share-head span):not(#_):not(#__){color:var(--v5-ink-2)!important;}
/* 完整计划表：表头小字 / 手机横滑提示（23 号注入） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #planFullModal :is(.plan-head-sub,.muted):not(#_):not(#__),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-scrollhint:not(#_):not(#__){color:var(--v5-ink-2)!important;}
/* 新手引导 / 首次闭环：目标说明、计划强度五档（推荐 / 慎选 角标、档名、每日词数） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsOnb .ws-onb-goals .g-desc:not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) .ws-onb-plan-tag:not(.warn):not(#_):not(#__){background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) .ws-onb-plan-tag.warn:not(#_):not(#__){background:color-mix(in srgb,var(--v5-warn) 10%,var(--v5-panel))!important;background-image:none!important;color:color-mix(in srgb,var(--v5-warn) 45%,var(--v5-ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) [data-onb-plan-intensity] small:not(#_):not(#__),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) :is(.ws-onb-plan-summary>div,.ws-onb-plan-summary-text,.ws-onb-plan-head>span):not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) [data-onb-plan-intensity] b:not(#_):not(#__){color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) [data-onb-plan-intensity].active b:not(#_):not(#__),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsOnb,#wsOnbDone) :is(#wsOnbPlanLevel,.ws-onb-plan-level-text):not(#_):not(#__){color:var(--v5-accent-ink)!important;}
/* 通知 · 奖励抽屉：未读角标（原来 --terra 底白字，星穹 1.70 / 星河夜卷 1.83）→ 危险色当字的深浅反相配对；「+20 卷轴币」行内写的 --accent 当字 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-notif-h em:not(#_):not(#__){background:var(--v5m-warn-ink)!important;color:var(--v5-paper)!important;font-weight:700!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsRqMask .ws-rq-weekly h4 span[style]:not(#_):not(#__){color:var(--v5-accent-ink)!important;}
/* 好友 · 排行榜：前三名名次（金色当字 1.84–2.55）、字母头像、说明行、连胜小字、「去打一局」 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-rank.top:not(#_):not(#__){color:color-mix(in srgb,var(--v5-gold-ink) 82%,var(--v5-ink))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-avatar:not(#_):not(#__){background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
/* 第三轮核查 #10：「我」那一行整行就是浅强调底，头像也是浅强调底 → 圆看不出来。这一行的头像改成面板底 + 强调色描边圈 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage :is(.ws-pk-ladder__row[data-me="1"],.social-row.me) .social-avatar:not(#_):not(#__){background:var(--v5-panel)!important;box-shadow:inset 0 0 0 1.5px var(--v5-accent-line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage :is(.social-lb-note span,.social-name small,.social-row small,.social-id-card .lbl):not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #socialPage .social-cta-btn:not(#_):not(#__){background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;border-color:transparent!important;}
/* 班级 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-muted:not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsClassPage .ws-cls-btn.acc:not(#_):not(#__){background:var(--v5-accent)!important;color:var(--v5-on-accent)!important;border-color:transparent!important;}
/* 商城：主题行的一句卖点 / 档位小字 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #mobileAchievementModal .mobile-shop-item-copy small:not(#_):not(#__){color:var(--v5-ink-2)!important;}
/* 邀请阶梯（分享面板里）：小字、「已邀 0」、提示、「已领取」 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad small:not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #webSharePanelModal .ws-ilad :is(.ws-ilad-top em,.ws-ilad-top>span,.ws-ilad-next,.ws-ilad-done,i):not(#_):not(#__){color:var(--v5-accent-ink)!important;}
/* 第三轮核查 #2：还没达成的档位原来整列 opacity .55（「值 999 币」的 <u> 再 ×.75），九个主题都掉到 1.8–4.0。
   新版不再压透明度：「没达成」= 去色图标 + 次级字色，「下一档 / 已达成」仍是强调色 —— 分享面板和「我的」页账号卡里的同一条阶梯一起管 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#webSharePanelModal,#view-account) .ws-ilad-stops li:not(#_):not(#__){opacity:1!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#webSharePanelModal,#view-account) .ws-ilad-stops li:not(.ws-ilad-done):not(.ws-ilad-next) :is(span,small):not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#webSharePanelModal,#view-account) .ws-ilad-stops li u:not(#_):not(#__){opacity:1!important;color:var(--v5-ink-2)!important;}
/* 商务合作的邮箱、扫码登录 / 确认里的强调字、扫码提示 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #contactModal a:not(#_):not(#__){color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(#wsQrLoginModal,#wsQrConfirmModal) b:not(#_):not(#__){color:var(--v5-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #wsQrLoginModal :is(#wsQrHint,.ws-qr-hint):not(#_):not(#__){color:var(--v5-ink-2)!important;}
/* 登录 / 注册：四个权益小图标、协议链接、当前页签 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal :is(.auth-benefit,.mobile-auth-note,.auth-guest-card,.mobile-auth-feature)>i:not(#_):not(#__){background:var(--v5-accent-soft)!important;color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal .auth-text-link:not(#_):not(#__){color:var(--v5-accent-ink)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal details summary em:not(#_):not(#__){color:var(--v5-ink-2)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #authModal :is(.auth-tab,.mobile-auth-mode-tabs>button).active:not(#_):not(#__){color:var(--v5-accent-ink)!important;}
/* 个人中心：字母头像 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body #profileCenterModal #profileCenterAvatarPreview:not(#_):not(#__){color:var(--v5-accent-ink)!important;}

/* ============================================================================
 * P11. 像素街机：「通知 · 奖励」抽屉与「好友 · 排行榜」页的像素件（第一轮遗留：原来还是圆角通用皮）
 *      卡 = 台阶切角 + 3px 描边（--v5p-clip / --v5p-ring）；角标 = 方块；进度 = 分格 EXP；头像 = 切角方块。
 * ==========================================================================*/
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask :is(.ws-rq-notif-item,.ws-rq-task,.ws-rq-weekly,.ws-rq-coin):not(#_):not(#__){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--v5-panel-2)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-notif-item.act:not(#_):not(#__){background:var(--v5p-cn-acc),var(--v5-panel-2)!important;box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--accent) 60%,var(--line))!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-notif-h em:not(#_):not(#__){border-radius:0!important;min-width:18px!important;height:18px!important;box-shadow:0 0 0 3px var(--v5-panel)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-rew:not(#_):not(#__){border-radius:0!important;clip-path:var(--v5p-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-bar:not(#_):not(#__){height:12px!important;padding:3px!important;box-sizing:border-box!important;border-radius:0!important;background:var(--paper-2)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask .ws-rq-bar>*:not(#_):not(#__){border-radius:0!important;background:var(--v5p-exp)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #wsRqMask :is(.ws-rq-claim,.ws-rq-fbtn,.ws-rq-readall):not(#_):not(#__){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;box-shadow:var(--v5p-ring),inset 0 -3px 0 var(--line)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage :is(.social-row,.social-lb-note,.social-myrank,.social-id-card,.social-add input,.social-empty):not(#_):not(#__){border:0!important;border-radius:0!important;clip-path:var(--v5p-clip)!important;background:var(--v5p-cn),var(--v5-panel)!important;box-shadow:var(--v5p-ring)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage .social-row.me:not(#_):not(#__){background:var(--v5p-cn-acc),var(--v5-accent-soft)!important;box-shadow:inset 0 0 0 3px var(--accent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage .social-avatar:not(#_):not(#__){border-radius:0!important;clip-path:var(--v5p-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage :is(.social-lv,.social-mini-btn,.social-id-copy,#socialSearchBtn,.social-cta-btn):not(#_):not(#__){border-radius:0!important;clip-path:var(--v5p-clip)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage .social-gap:not(#_):not(#__){letter-spacing:.3em!important;}
/* 像素：「第 1」名次里的数字走街机字，街机字空格 1em 宽 → 收窄 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body #socialPage .social-myrank b:not(#_):not(#__):not(#___){word-spacing:-.6em!important;}
/* <<< V7-R2 <<< */

/* >>> SODA-FOREST-V7 海盐汽水 / 森林书屋 · 弹层（V7.0.0，所有宽度）>>> */
/* ============================================================================
 * S / F. 弹层皮肤（DESIGN-SODA-FOREST.md §3.6，不挂 media）。卡的圆角 / 入场走 16 号旋钮（汽水 18 浮起 / 森林 10 纸页）。
 *  汽水：卡 22 圆角 + 上沿玻璃高光；× = 圆玻璃钮；抽屉把手 = 一串三颗泡；toast = 墨蓝胶囊 + 前面一颗泡；主键 = 汽水泡胶囊；次键 = 玻璃胶囊。
 *  森林：卡 12 圆角 + 两层叠页；× = 圆木钮；抽屉把手 = 顶边一枚小书签；toast = 胡桃木牌奶白字 + 前面一片叶；主键 = 叶绿木牌；次键 = 原木牌。
 *  减少动态效果：22 号已有的 .v5-dialog 统一淡入条目覆盖这两个主题，无需另写。
 * ==========================================================================*/
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-dialog:not(.v5m-allsheet):not(#_):not(#_){border-radius:22px!important;box-shadow:var(--sd-hi),0 24px 64px -24px var(--v5-veil),var(--v5-shadow)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-dialog.v5-sheet:not(.v5m-allsheet):not(#_):not(#_){border-radius:22px 22px 0 0!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog:not(.v5m-allsheet):not(#_):not(#_){border-radius:12px!important;box-shadow:var(--fs-pages),0 24px 64px -28px var(--v5-veil)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog.v5-sheet:not(.v5m-allsheet):not(#_):not(#_){border-radius:12px 12px 0 0!important;box-shadow:0 -1px 0 var(--line),0 -3px 0 -1px var(--card-strong),0 -4px 0 -1px var(--line-strong)!important;}
/* × */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-dialog__close:not(#_):not(#_){border:0!important;border-radius:50%!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog__close:not(#_):not(#_){border:0!important;border-radius:50%!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:inset 0 -2px 0 var(--fs-wood-edge)!important;}
/* 抽屉把手：汽水 = 三颗泡；森林 = 顶边一枚叶绿小书签 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-sheet__grip:not(#_):not(#_){width:34px!important;height:8px!important;border-radius:0!important;
  background:radial-gradient(circle,var(--sd-ring) 0 2.6px,transparent 3px) 0 50%/11.3px 8px repeat-x!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-sheet__grip:not(#_):not(#_){width:18px!important;height:14px!important;border-radius:0!important;margin-top:-1px!important;
  background:var(--accent)!important;clip-path:var(--fs-tail-clip)!important;}
/* 动作行主键 / 次键（弹层里的 .v5-btn-primary 一律同配方；16 号组件规则权重不够压过 22 号第 2 节） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-dialog :is(.v5-btn-primary,.v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary)):not(#_):not(#_){
  border:0!important;border-radius:999px!important;clip-path:none!important;filter:none!important;background:var(--sd-gloss),var(--v5-accent)!important;color:var(--v5-on-accent)!important;box-shadow:var(--sd-key)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .v5-dialog .v5-dialog__acts .v5-btn:not(.v5-btn-primary):not(#_):not(#_){border:0!important;border-radius:999px!important;background:var(--sd-glass)!important;color:var(--v5-ink)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog :is(.v5-btn-primary,.v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary)):not(#_):not(#_){
  border:0!important;border-radius:8px!important;clip-path:none!important;filter:none!important;background:var(--fs-grain-on),var(--v5-accent)!important;color:var(--v5-on-accent)!important;box-shadow:var(--fs-key)!important;
}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog :is(.v5-btn-primary,.v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary)):not(#_):not(#_):is(:active,.is-pressed){transform:translateY(1px)!important;box-shadow:var(--fs-key-down)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .v5-dialog .v5-dialog__acts .v5-btn:not(.v5-btn-primary):not(#_):not(#_){border:0!important;border-radius:8px!important;background:var(--fs-grain),var(--fs-wood-face)!important;color:var(--v5-ink)!important;box-shadow:var(--fs-plank)!important;}
/* toast：汽水墨蓝胶囊 + 前面一颗泡；森林胡桃木牌 + 一片叶（手机上 toast 的 display 在 20 号学习页那条，这里补 inline-flex 让前面的小件和字同一行） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #toast#toast#toast:not(#_){border-radius:999px!important;background:var(--ink)!important;color:var(--paper)!important;display:inline-flex!important;align-items:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #toast#toast#toast:not(#_)::before{content:""!important;flex:none!important;width:10px!important;height:10px!important;margin-right:8px!important;border-radius:50%!important;background:none!important;box-shadow:inset 0 0 0 1.5px var(--sd-ring)!important;-webkit-mask:none!important;mask:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #toast#toast#toast:not(#_){border-radius:8px!important;background:var(--fs-grain-on),var(--wood-deep)!important;color:var(--on-accent)!important;box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--wood-deep) 70%,var(--ink))!important;display:inline-flex!important;align-items:center!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #toast#toast#toast:not(#_)::before{content:""!important;flex:none!important;width:14px!important;height:14px!important;margin-right:8px!important;background:var(--leaf)!important;border:0!important;border-radius:0!important;box-shadow:none!important;-webkit-mask:var(--fs-leaf) center/contain no-repeat!important;mask:var(--fs-leaf) center/contain no-repeat!important;}
/* 商城（#mobileAchievementModal）：余额格 = 玻璃格 / 原木格；兑换键同主键 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #mobileAchievementModal .v5-dialog__body > div[style]:not(#_):not(#_){border:0!important;border-radius:18px!important;background:var(--sd-glass)!important;box-shadow:inset 0 0 0 1px var(--sd-glass-line),var(--sd-hi)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #mobileAchievementModal .v5-dialog__body > div[style]:not(#_):not(#_){border:0!important;border-radius:10px!important;background:var(--fs-grain),var(--fs-wood-face)!important;box-shadow:var(--fs-plank)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body #mobileAchievementModal #wsShopRedeemBtn:not(#_):not(#_){border:0!important;border-radius:999px!important;background:var(--sd-gloss),var(--v5-accent)!important;color:var(--v5-on-accent)!important;box-shadow:var(--sd-key)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body #mobileAchievementModal #wsShopRedeemBtn:not(#_):not(#_){border:0!important;border-radius:8px!important;background:var(--fs-grain-on),var(--v5-accent)!important;color:var(--v5-on-accent)!important;box-shadow:var(--fs-key)!important;}
/* 「全部功能」面板（桌面卡形态 / 手机抽屉）：搜索框 = 玻璃槽 / 木槽 */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="soda"] body .wsv5-mask .wsv5-search:not(#_):not(#_){border:0!important;border-radius:999px!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--ink) 10%,transparent)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="forest"] body .wsv5-mask .wsv5-search:not(#_):not(#_){border:0!important;border-radius:8px!important;background:var(--paper-2)!important;box-shadow:inset 0 1px 2px color-mix(in srgb,var(--wood-deep) 22%,transparent)!important;}
@media(prefers-reduced-motion:reduce){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5:is([data-theme="soda"],[data-theme="forest"]) body .v5-dialog:not(#_):not(#_){animation-duration:.12s!important;}
}
/* <<< SODA-FOREST-V7 <<< */

/* >>> TWM-V709 >>> */
/* ============================================================================
 * 7. 弹层开合动效 / 遮罩压暗 / 抽屉拖拽关闭 / 按下态（V7.0.9 TWM；release-packages/v709/BRIEF.md）
 * ----------------------------------------------------------------------------
 *  · 开：遮罩（根）opacity 淡入（纯合成层），卡照旧走 --v5-enter（16 号 1.6 节）；只在打开态（.on/.open/.is-open）挂，
 *    不用 fill 把站点靠 opacity 收起的遮罩（#wsBindPhoneSheet 一类）撑成常亮。
 *  · 关：23 号在摘 .on 那一刻给根打 .wsv5-ov-closing（380ms 后摘）：display 维持打开时的值（--v5-ov-disp 由 23 号在打开时读一次）、
 *    pointer-events:none、遮罩淡出；卡按主题退场 --v5-ov-exit：星穹切角收拢 / 猫卷缩回 / 纸墨墨晕散去 / 极简淡出 /
 *    像素逐行擦掉（只改 --v5p-dlg-clip，同入场）/ 汽水先浮一下再沉 / 森林像一页纸翻过去；抽屉一律滑回屏幕底。
 *  · 拖：抽屉跟手 = 23 号只写 --v5-ov-y（transform 在这里）；遮罩按距离变淡 --v5-ov-drag；松手弹回 --v5-ease（猫卷弹簧）或甩出 --v5-ease-in。
 *  · 按下态：本文件所有 :active 已改写成 :is(:active,.is-pressed)（21 号手感引擎在 pointerdown 那一帧加）。
 *  · 只动 transform / opacity（纸墨的墨晕是 filter，与 16 号入场同款；像素只改 clip 变量）；prefers-reduced-motion 下全关。
 * ==========================================================================*/
@keyframes v5-ov-veil-in{from{opacity:0}to{opacity:1}}
@keyframes v5-ov-veil-out{from{opacity:1}to{opacity:0}}
@keyframes v5-ov-out-tech{to{opacity:0;transform:translateY(8px)}}
@keyframes v5-ov-cut-close{to{opacity:0;transform:scale(.97,.86)}}
@keyframes v5-ov-out-soft{to{opacity:0;transform:scale(.94)}}
@keyframes v5-ov-out-ink{to{opacity:0;filter:blur(3px)}}
@keyframes v5-ov-out-fade{to{opacity:0}}
@keyframes v5-ov-out-float{0%{transform:none}35%{transform:translateY(-4px)}100%{opacity:0;transform:translateY(16px)}}
@keyframes v5-ov-out-page{to{opacity:0;transform:perspective(1200px) rotateX(-6deg) translateY(8px)}}
@keyframes v5-ov-sheet-down{to{transform:translateY(100%)}}
@keyframes v5px-dlg-out{0%{--v5p-dlg-clip:var(--v5p-clip)}25%{--v5p-dlg-clip:inset(0 0 33% 0)}50%{--v5p-dlg-clip:inset(0 0 66% 0)}75%,100%{--v5p-dlg-clip:inset(0 0 100% 0)}}
@keyframes v5px-dlg-out-top{0%{--v5p-dlg-clip:var(--v5p-clip-top)}25%{--v5p-dlg-clip:inset(33% 0 0 0)}50%{--v5p-dlg-clip:inset(66% 0 0 0)}75%,100%{--v5p-dlg-clip:inset(100% 0 0 0)}}
html.ws-v5{--v5-ov-exit:v5-ov-out-tech;--v5-ov-exit-sheet:v5-ov-sheet-down;--v5-ov-veil-ease:var(--v5-ease);}
html.ws-v5[data-theme="supreme"]{--v5-ov-exit:v5-ov-cut-close;}
html.ws-v5[data-theme="cute-pink"]{--v5-ov-exit:v5-ov-out-soft;}
html.ws-v5[data-theme="light"],html.ws-v5[data-theme="dark"]{--v5-ov-exit:v5-ov-out-ink;}
html.ws-v5[data-theme="minimal-light"],html.ws-v5[data-theme="minimal-dark"]{--v5-ov-exit:v5-ov-out-fade;--v5-ov-exit-sheet:v5-ov-out-fade;}
html.ws-v5[data-theme="soda"]{--v5-ov-exit:v5-ov-out-float;}
html.ws-v5[data-theme="forest"]{--v5-ov-exit:v5-ov-out-page;}
html.ws-v5[data-theme="pixel"]{--v5-ov-exit:v5px-dlg-out;--v5-ov-exit-sheet:v5px-dlg-out-top;--v5-ov-veil-ease:steps(2,end);}

/* ---------- 7.1 开：遮罩淡入（只在打开态；整页 / 菜单 / 下拉 / 菜单遮罩 / 加载遮罩不做；整页登录不做） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="modal"]:is(.on,.open,.is-open):not([data-wsv5-role="page"]):not([data-wsv5-role="menu"]):not([data-wsv5-role="select"]):not([data-wsv5-role="menu-mask"]):not([data-wsv5-role="wait"]):not(#_),
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="sheet"]:is(.on,.open,.is-open):not([data-wsv5-role="page"]):not([data-wsv5-role="menu"]):not([data-wsv5-role="menu-mask"]):not(#_){animation:v5-ov-veil-in var(--v5-dur) var(--v5-ov-veil-ease) both;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body.mobile-auth-active #authModal.auth-modal:not(#_):not(#_){animation:none!important;}

/* ---------- 7.2 关：根维持显示 + 淡出，卡按主题退场；抽屉滑回屏幕底 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-closing:not(#_):not(#_):not(#_){display:var(--v5-ov-disp,flex)!important;pointer-events:none!important;animation:v5-ov-veil-out var(--v5-dur) var(--v5-ease-in) both!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-closing .v5-dialog:not(.v5-sheet):not(.v5m-allsheet):not(#_):not(#_):not(#_){animation:var(--v5-ov-exit) var(--v5-dur) var(--v5-ease-in) both!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-closing :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet):not(#_):not(#_):not(#_){animation:var(--v5-ov-exit-sheet) var(--v5-dur) var(--v5-ease-in) both!important;}
/* 像素街机的卡：clip 变量退场（入场 v5px-dlg 同款做法） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .wsv5-ov-closing .v5-dialog:not(#_):not(#_):not(#_){--v5p-dlg-clip:var(--v5p-clip);}

/* ---------- 7.3 拖：跟手 / 弹回 / 甩出；遮罩按距离变淡 ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet,.v5m-sheet):is(.wsv5-ov-drag,.wsv5-ov-snap,.wsv5-ov-flung):not(#_):not(#_):not(#_){transform:translateY(var(--v5-ov-y,0px))!important;animation:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet,.v5m-sheet).wsv5-ov-drag:not(#_):not(#_):not(#_){transition:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet,.v5m-sheet).wsv5-ov-snap:not(#_):not(#_):not(#_){transition:transform var(--v5-dur-slow) var(--v5-ease)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet,.v5m-sheet).wsv5-ov-flung:not(#_):not(#_):not(#_){transition:transform var(--v5-dur) var(--v5-ease-in)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-dragging:not(#_):not(#_):not(#_){
  background:color-mix(in srgb,var(--v5-veil) calc(100% * var(--v5-ov-drag,1)),transparent)!important;
  -webkit-backdrop-filter:blur(calc(var(--v5-veil-blur) * var(--v5-ov-drag,1)))!important;backdrop-filter:blur(calc(var(--v5-veil-blur) * var(--v5-ov-drag,1)))!important;
  transition:none!important;
}
/* 把手 / 卡头是拖拽的把手：横向可以滚，纵向交给 23 号（体内滚到顶再往下拖也接管） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet > :is(.v5-sheet__grip,.v5-dialog__head):not(#_){touch-action:pan-x!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-sheet__grip:not(#_){transition:background-color var(--v5-dur-fast),transform var(--v5-dur-fast) var(--v5-ease)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-drag > .v5-sheet__grip:not(#_){background:var(--v5-accent-line)!important;transform:scaleX(1.25)!important;}

/* ---------- 7.4 按下态补齐：× / 动作行按钮 / 菜单项（原来只有 hover） ---------- */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__close:not(#_){transition:background-color var(--v5-dur-fast),color var(--v5-dur-fast),transform var(--v5-dur) var(--v5-ease)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__close:is(:active,.is-pressed):not(#_){background:var(--v5-accent-soft)!important;color:var(--v5-ink)!important;transform:scale(.9)!important;transition-duration:var(--v5-dur-fast)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:not(#_){transition:background-color var(--v5-dur-fast),color var(--v5-dur-fast),border-color var(--v5-dur-fast),transform var(--v5-dur) var(--v5-ease);}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts button:is(:active,.is-pressed):not(#_){transform:var(--v5-press)!important;background:var(--v5-accent-soft)!important;transition-duration:var(--v5-dur-fast)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog__acts :is(.primary,.ws-reg-primary,.ws-onb-done-primary,.ws-qr-confirm-ok,.ws-card-btn.primary):is(:active,.is-pressed):not(#_){background:var(--v5-accent)!important;filter:brightness(.94)!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .v5-dialog :is(.v5-menu__item,.menu-panel-item,.ws-pk-card__btn,.wpn-primary,.wpn-later):is(:active,.is-pressed):not(#_){transform:var(--v5-press)!important;}
/* 像素：按下 = 3px 下沉（已有 P1/P2 的 :active 规则，这里只把过渡关掉） */
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body :is(.v5-dialog__close,.v5-dialog__acts button):not(#_):not(#_){transition:none!important;}
html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5[data-theme="pixel"] body .v5-dialog__close:is(:active,.is-pressed):not(#_):not(#_){transform:translateY(3px)!important;background:var(--v5p-cn-acc),var(--accent-soft)!important;}

/* ---------- 7.5 减少动态效果：不淡入淡出、关闭即消失、拖拽不弹 ---------- */
@media(prefers-reduced-motion:reduce){
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="modal"]:not(#_):not(#_):not(#_),
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body [data-wsv5-overlay="sheet"]:not(#_):not(#_):not(#_){animation:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .wsv5-ov-closing:not(#_):not(#_):not(#_){display:none!important;animation:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body :is(.v5-dialog.v5-sheet,.wsv5-panel.v5m-allsheet,.v5m-sheet):is(.wsv5-ov-snap,.wsv5-ov-flung):not(#_):not(#_):not(#_){transition:none!important;}
  html.ws-v5.ws-v5.ws-v5.ws-v5.ws-v5 body .is-pressed:not(#_){transform:none!important;}
}
/* <<< TWM-V709 <<< */
