/* ============================================================
   MTYP 桥接层 — 2026-07-17
   作用：不改任何模板 DOM，把既有 30+ 套 *-btn 家族、杂色标题、
   四套顶栏、点名截断问题收敛到统一 Tokens。
   加载顺序要求：四个基座中【最后一个】样式文件（在 tokens/components 之后）。
   约定：
   - 只声明"皮肤"属性（颜色/圆角/边框/字体），不声明尺寸与盒模型 → 布局不动。
   - mtyp-ui-refresh.css 保持加载（其布局规则继续生效）；本文件靠
     "加载顺序更晚 + 特异度不低于它"覆盖其皮肤规则。
   - 刻意不选中 .rounded（它在 base.html 里是按钮基类陷阱，动它会波及非按钮元素）。
   ============================================================ */

/* ---------- 1. 四套顶栏同肤（主站 mega-nav / 视频台 / 复现台 / landing）---------- */
.sidebar,
body[data-shell="video"] .local-topbar,
body[data-service="paper-reproduction-engine"] .site-header,
body.mtyp-public-landing .topbar{
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid var(--m-line)!important;
  box-shadow:0 8px 26px rgba(15,23,42,.05)!important;
}

/* ---------- 2. 按钮家族收口 ----------
   命中规则：class 列表中存在以 -btn 结尾的 token（[class$="-btn"] 或 [class*="-btn "]），
   外加 .btn 与 6 个已确认的中缀变体（ci-btn-*、ml-btn-*）。
   经 2026-07-17 全量扫描：不存在 -btn-group / -btns 等容器类，无误伤面。
   只限内容区（.main-content / .local-main / .app-main），确保不波及顶栏内部控件。 */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn,
    .ci-btn-soft,.ci-btn-primary,.ci-btn-green,
    .ml-btn-primary,.ml-btn-secondary,.ml-btn-danger){
  border-radius:var(--m-radius-ctl)!important;
  font-family:var(--m-font);
  font-weight:800;
}

/* 2a. 主操作修饰符 → 品牌实心（每屏应 ≤1，W2 逐页核对） */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.primary,.ci-btn-primary,.ml-btn-primary){
  background:var(--m-primary)!important;
  border-color:var(--m-primary)!important;
  color:#fff!important;
}
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.primary,.ci-btn-primary,.ml-btn-primary):hover{
  background:var(--m-primary-hover)!important;
  border-color:var(--m-primary-hover)!important;
}

/* 2b. 危险修饰符 → 白底红描边 */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.danger,.red,.ml-btn-danger){
  background:var(--m-card)!important;
  border:1px solid var(--m-danger)!important;
  color:var(--m-danger)!important;
}

/* 2c. soft/ghost 修饰符 → 行内级（无框无底） */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.ghost,.soft,.ci-btn-soft){
  background:transparent!important;
  border-color:transparent!important;
  color:var(--m-muted)!important;
}
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.ghost,.soft,.ci-btn-soft):hover{
  background:var(--m-soft)!important;
  color:var(--m-ink)!important;
}

/* 2d. 彩色修饰符语义收敛：
   green → 成功描边；amber/coral/gold → 警示描边；
   blue/accent/teal/purple → 去彩，回常规白底（颜色不再承载按钮层级） */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.green,.ci-btn-green){
  background:var(--m-card)!important;border:1px solid var(--m-success-line)!important;color:var(--m-success-ink)!important;
}
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.amber,.coral,.gold,.orange,.warn){
  background:var(--m-card)!important;border:1px solid var(--m-warning-line)!important;color:var(--m-warning-ink)!important;
}
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.blue,.accent,.teal,.purple){
  background:var(--m-card)!important;border:1px solid var(--m-line)!important;color:var(--m-ink)!important;
}

/* 2e. 小尺寸修饰符只统一字号（不动高度/内边距 → 布局不动） */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is([class$="-btn"],[class*="-btn "],.btn):is(.sm,.small,.tiny){
  font-size:.8rem;
}

/* ---------- 3. 标题收敛（对应"大标题+解释文字非常多元"）---------- */
/* 3a. 内容区所有 h1（含 37 个裸 h1 与各彩色 h1）统一为页大标题规格 */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main) h1{
  font-size:1.55rem!important;
  font-weight:800!important;
  color:var(--m-ink)!important;
  background:none!important;
  -webkit-text-fill-color:currentColor;
  white-space:normal!important;
}
/* 3b. 10 个页面私有标题类并入同一规格 */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main)
:is(.site-title,.v2-title,.tl-title,.rr-title,.gaw-title,.pay-title,.vault-title,.seq-title,.legacy-title,.detail-title){
  font-size:1.55rem!important;font-weight:800!important;color:var(--m-ink)!important;background:none!important;
}
/* 3c. 例外：公开内容库主标题允许更大 */
body[data-page="site"] .main-content .site-title{font-size:2.1rem!important}
/* 3d. 紧跟 h1 的解释文字统一为副标题规格（一行说清，永不截断） */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main) h1+p{
  font-size:.95rem!important;
  color:var(--m-muted)!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
/* The shared page-title banner is the only authenticated-workbench h1 that
   intentionally uses reversed text. Keep this after the generic h1 bridge. */
:is(body[data-ui-refresh] .main-content,
    body[data-shell="video"] .local-main,
    body[data-service="paper-reproduction-engine"] .app-main) .std-gradient-hero h1{
  color:#fff!important;
  background:none!important;
  -webkit-text-fill-color:#fff!important;
  font-size:30px!important;
  font-weight:900!important;
  line-height:1.25!important;
  letter-spacing:0!important;
  text-align:center!important;
}
@media(max-width:700px){
  :is(body[data-ui-refresh] .main-content,
      body[data-shell="video"] .local-main,
      body[data-service="paper-reproduction-engine"] .app-main) .std-gradient-hero h1{
    font-size:23px!important;
  }
}

/* ---------- 4. 渐变横幅页头降级为白底（渐变只保留给 landing hero 与全局主 CTA）---------- */
body[data-ui-refresh] .main-content .lpw-page-title,
body[data-ui-refresh] .main-content .video-create-title,
body[data-shell="video"] .local-main .video-create-title{
  background:var(--m-card)!important;
  color:var(--m-ink)!important;
  border:1px solid var(--m-line)!important;
  border-radius:var(--m-radius-card)!important;
  box-shadow:var(--m-shadow)!important;
}
body[data-ui-refresh] .main-content .lpw-page-title h1,
body[data-ui-refresh] .main-content .video-create-title h1{color:var(--m-ink)!important}
body[data-ui-refresh] .main-content .lpw-page-title p,
body[data-ui-refresh] .main-content .video-create-title p{color:var(--m-muted)!important}

/* ---------- 5. 截断点名修复（对应"文字显示不全"）---------- */
body[data-ui-refresh] .nav-account .account-card{max-width:14rem!important}          /* 原 10.5rem，中文昵称被截 */
body[data-ui-refresh] .module-source-strip .module-source-chip b{max-width:none!important} /* 原 190px */
body[data-ui-refresh] .nav-badge{max-width:none!important}                            /* 原 3.4rem */
body[data-shell="video"] .local-brand span{                                            /* 视频台副标被省略号 */
  white-space:normal!important;overflow:visible!important;text-overflow:clip!important;
}
