/* 2026-09-25：由内联 style 属性提取的工具类。
   背景：严格 CSP（style-src 'self'）下，HTML 里的 style="…" 属性与 JS 里 innerHTML 拼的 style
   都会被浏览器拦掉；CSSOM（el.style.x = …）不受影响，所以显隐/宽度这类动态写入照旧可用。
   ⚠️ 这里的类一律**不加 !important** —— 全站大量显隐是 JS 用 el.style.display 覆盖的，
      加了 !important 会让那些切换失效。*/

/* ── 友链信息图标（页脚，移动端可见）原：cursor:pointer;font-size:0.7rem;color:var(--text-secondary) ── */
.u-friend-info { cursor: pointer; font-size: .7rem; color: var(--text-secondary); }
/* ── 标题旁小图标 原：border-radius:4px;vertical-align:-4px ── */
.u-img-inline { border-radius: 4px; vertical-align: -4px; }
/* ── 文章卡片缩略图 原：width:100%;height:190px;object-fit:cover ── */
.u-card-thumb { width: 100%; height: 190px; object-fit: cover; }
/* ── 页脚运行时间数字等宽（防止每秒跳动时抖动）原：font-variant-numeric:tabular-nums ── */
.u-tnum { font-variant-numeric: tabular-nums; }
/* ── 通用小工具 ── */
.u-fs-07 { font-size: .7rem; }
.u-hidden { display: none; }                 /* 不能用 d-none：后者带 !important，会挡住 JS 的 CSSOM 覆盖 */
.u-text-primary { color: var(--text-primary); }
.u-accent-red { color: var(--accent-red); }
.u-muted { color: #9aa5b1; }
.u-toc { background: var(--bg-secondary, #161b22); }
.u-mw-500 { max-width: 500px; margin: 0 auto; }
.u-mw-600 { max-width: 600px; margin: 0 auto; line-height: 2; }
.u-mw-640 { max-width: 640px; }
.u-support-hero { font-size: 4rem; margin-bottom: 1rem; }
.u-search-hint { cursor: default; justify-content: center; color: #f0f6fc; }
/* ── 导航「赞赏支持」图标强调色 原：color:#f85149!important ── */
.nav-link .nav-icon-support { color: #f85149 !important; }
/* 提高优先级的原因：style.v21.css 里 `.bi, [class^="bi-"]… { color: … !important }` 与本类同优先级，
   靠加载顺序取胜；原内联 style 带 !important 是最顶级，搬到类名后必须加一级选择器才压得住。 */

/* ── 标签云字号：原 style="font-size:{0.8 + min(count/10, 0.8)}rem"
      PHP 侧改为 (int)round($size*10) 取类名；实测原值只有 1.1~1.6rem，全是 0.1 的整数倍，所以零损失 ── */
.u-fs-8 { font-size: .8rem; } .u-fs-9 { font-size: .9rem; } .u-fs-10 { font-size: 1rem; }
.u-fs-11 { font-size: 1.1rem; } .u-fs-12 { font-size: 1.2rem; } .u-fs-13 { font-size: 1.3rem; }
.u-fs-14 { font-size: 1.4rem; } .u-fs-15 { font-size: 1.5rem; } .u-fs-16 { font-size: 1.6rem; }

/* ── GitHub 热门页语言色点：原 style="background:<?= lang_color($lang) ?>"
      色表来自 public/github-hot.php 的 lang_color()（静态 19 条），此处按同一色值落成属性选择器。
      增删语言时请同步改这里与 lang_color()。 ── */
[data-lang] { background: #f0f6fc; }
[data-lang="Python"] { background: #3572A5; }
[data-lang="JavaScript"] { background: #f1e05a; }
[data-lang="TypeScript"] { background: #3178c6; }
[data-lang="Go"] { background: #00ADD8; }
[data-lang="Rust"] { background: #dea584; }
[data-lang="Java"] { background: #b07219; }
[data-lang="Kotlin"] { background: #A97BFF; }
[data-lang="C"] { background: #555555; }
[data-lang="C++"] { background: #f34b7d; }
[data-lang="C#"] { background: #178600; }
[data-lang="PHP"] { background: #4F5D95; }
[data-lang="Swift"] { background: #F05138; }
[data-lang="Ruby"] { background: #701516; }
[data-lang="Shell"] { background: #89e051; }
[data-lang="Vue"] { background: #41b883; }
[data-lang="HTML"] { background: #e34c26; }
[data-lang="CSS"] { background: #563d7c; }
[data-lang="SCSS"] { background: #c6538c; }
[data-lang="Markdown"] { background: #083fa1; }

/* ── 毛玻璃调参面板（glass-panel.js 动态构建，仅在 URL 带 ?glass 时出现）
      容器本身用 el.style.cssText（CSSOM，不受 CSP 限制）设置，保持原样；这里只替 innerHTML 里的内联样式 ── */
.gtune-title { font-weight: 700; margin-bottom: 2px; }
.gtune-sub { color: #8b949e; font-size: 12px; margin-bottom: 8px; }
.gtune-range { width: 100%; }
.gtune-row { display: flex; justify-content: space-between; align-items: baseline; margin: 6px 0 10px; }
.gtune-val { color: #58a6ff; font-size: 16px; }
.gtune-def { color: #8b949e; font-size: 12px; }
.gtune-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.gtune-btn { padding: 5px 8px; border-radius: 7px; border: 1px solid #30363d; background: #21262d; color: #e6edf3; cursor: pointer; }
.gtune-btn-save { flex: 1; border-color: #238636; background: #238636; color: #fff; }
.gtune-msg { color: #8b949e; font-size: 12px; margin-top: 8px; min-height: 16px; }
