/* ============================================================================
   pub-globals.css —— 从 Blazor 时代的 wwwroot/Ph/Pub.css(93KB / 719 条规则)抽取的
   【仍被 Nuxt 前台真实命中】的 14 条(2026-08-23,方法与 mud/radzen-globals 同源:
   浏览器内逐规则 querySelector 匹配,矩阵 = 8 页 × light/dark × 1440/390 双视口;
   .ck* / .ejs* 编辑器规则与 @keyframes 无条件保留 —— 编辑器只在登录态出现,匿名矩阵测不到)。
   等价性已实测:替换后同矩阵计算样式 0 差异(方法见 PR #2211)。

   ⚠ 这里的每条都是承重的,别当遗留清理:
     - :root / [data-bs-theme=dark] 变量块:phoenix/mud/rz/ck 变量覆盖,theme.min.css 与
       ckeditor5.css 在消费(如 --phoenix-body-bg 页面底色、--ck-color-* 编辑器配色)。
     - body { overflow-x:hidden }:全站横向溢出的最后防线。
     - b,strong,button { font-weight:800 }:全站粗体字重基线(拿掉 strong 退 700、按钮退 400)。
     - h1~h6/.h* { line-height:2 }:内容标题行高基线(拿掉频道「关于」等正文标题当场变密)。
     - figure { width:100%; text-align:center }:EditorJS 图片块居中。
     - @keyframes wc-nav-loading-slide:导航加载条动画,动画名在别处消费。
     - .ck-powered-by 隐藏 / #components-reconnect-modal:后者是 Blazor 重连遮罩残留,
       与前者同条规则顺带保留,无害。
   ⚠ 原 /Ph/Pub.css 文件仍留在 wwwroot(eZeroCore PageLayout.cs 死码路径与历史外链可能引用),
     只是前台不再加载;要物理删除须先清 PageLayout(独立立项)。
   ⚠ 本文件经 nuxt.config.ts 的 wwwrootAsset() 挂内容哈希,改动即换 URL,无 CF 边缘滞留。
   ============================================================================ */

:root { --phoenix-body-color: #000; --phoenix-body-font-size: 16px; --darkreader-bg--mud-palette-overlay-dark: rgb(255 255 255 / 0%); --mud-appbar-height: 200px; --mud-default-borderradius: 5px; --mud-zindex-snackbar: 9999; --bs-gray-100: #f7f8f9; --bs-gray-200: #eff2f6; --bs-gray-300: #eef0f2; --bs-gray-400: #e1e4e6; --bs-gray-500: #a1a1a8; --bs-gray-600: #676a79; --bs-gray-700: #29292e; --bs-gray-800: #14191e; --bs-gray-900: #0f0f10; --bs-light: #202227; --phoenix-theme-control-toggle-bg: var(--rz-info-lighter); --phoenix-table-bg: transparent; --rz-grid-cell-padding: 0.36rem 0.5rem; --rz-pager-numeric-button-color: var(--bs-gray-900); --rz-pager-summary-color: var(--bs-gray-900); --rz-grid-header-color: var(--bs-gray-900); --rz-pager-back-button-color: var(--bs-gray-900); --rz-pager-back-button-background-color: var(--bs-gray-100); --rz-grid-frozen-cell-background-color: var(--bs-gray-200); --rz-datatable-border: var(--bs-gray-400); --phoenix-pagination-active-bg: #3874ff; --phoenix-gutter-y: 0; --phoenix-navbar-top-height: 1rem; --rz-pager-padding: 0.2rem 0.3rem; --rz-pager-first-button-margin: 0; --rz-grid-header-font-size: 13px; --rz-grid-header-cell-padding: 0.5rem 0; --chart-lighter: #f8f8f8; --container-max-width: 1050px; --stk-Red: #FF4C4C; --stk-Green: #3AFF45; --mud-typography-default-family: var(--phoenix-body-font-family); --phoenix-body-bg: #e3e6ed; --phoenix-body-line-height: 2; --wc-black: #e9e9e9; --rz-input-background-color: var(--phoenix-emphasis-bg); --rz-input-hover-background-color: var(--phoenix-emphasis-bg-rgb); --rz-input-focus-background-color: var(--phoenix-emphasis-bg-rgb); --rz-input-value-color: #000; --rz-editor-content-background-color: var(--phoenix-emphasis-bg-rgb); --rz-editor-toolbar-background-color: var(--phoenix-emphasis-bg-rgb); --rz-editor-button-background-color: var(--phoenix-emphasis-bg-rgb); --rz-tabs-tab-selected-color: var(--phoenix-emphasis-color); --rz-tabs-background-color: var(--phoenix-emphasis-bg); --rz-text-title-color: var(--phoenix-emphasis-color); --ck-color-panel-background: var(--phoenix-emphasis-bg); --ck-color-base-background: var(--phoenix-emphasis-bg); --ck-color-text: var(--phoenix-emphasis-color); --ck-color-tooltip-text: #fff; --ck-color-button-default-hover-background: var(--phoenix-body-highlight-bg); --ck-color-button-on-hover-background: var(--phoenix-body-highlight-bg); --ck-color-button-on-background: var(--phoenix-body-highlight-bg); --ck-color-button-default-active-background: var(--phoenix-body-highlight-bg); --ck-color-button-on-active-background: var(--phoenix-body-highlight-bg); --ck-color-split-button-hover-background: var(--phoenix-body-highlight-bg); --mud-typography-body1-size: var(--phoenix-body-font-size) !important; --phoenix-nav-link-font-size: var(--phoenix-body-font-size) !important; --mud-palette-surface: var(--phoenix-body-bg) !important; --mud-palette-success-text: #000 !important; --mud-zindex-dialog: 1600 !important; --mud-zindex-popover: 1650 !important; --mud-palette-text-primary: var(--phoenix-secondary-color) !important; --phoenix-body-font-family: Roboto, Helvetica, Arial, "sans-serif" !important; --rz-grid-frozen-cell-border: #fff !important; --mud-palette-divider: var(--phoenix-secondary) !important; }

[data-bs-theme="dark"] { --phoenix-body-bg: #0f111a; --bs-gray-100: #313235; --bs-gray-200: #464950; --bs-gray-300: #5f5f68; --bs-gray-400: #a1a1a8; --bs-gray-500: #bfc0c9; --bs-gray-600: #c5c6cc; --bs-gray-700: #ffffffb3; --bs-gray-800: #fffffff9; --bs-gray-900: #fff; --bs-light: #202227; --chart-lighter: #285093; --phoenix-emphasis-color: #fff; --phoenix-theme-control-toggle-bg: #000; --phoenix-table-bg: rgb(0 0 0 / 1); --rz-grid-frozen-cell-background-color: var(--phoenix-navbar-top-menu-bg-color); --rz-datatable-border: var(--bs-gray-100); --phoenix-body-color: #c8cddb; --phoenix-theme-control-toggle-color: var(--phoenix-success); --wc-black: #000; --rz-input-value-color: #fff; --rz-grid-frozen-cell-border: var(--phoenix-tertiary-color) !important; }

[data-bs-theme="dark"] .ck-reset_all :not(.ck-reset_all-excluded *) { color: var(--phoenix-emphasis-color); }

body { overflow-x: hidden; background: none; }

b, strong, button { font-weight: 800; }

a:hover { text-decoration: none; }

figure { width: 100%; text-align: center; }

.ck .ck-content { min-height: 500px; }

.form-label { color: var(--bs-gray-800); font-size: 13px; font-weight: 700; }

.ContentTitle, .form-label { text-transform: capitalize !important; }

h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { line-height: 2; }

@keyframes slide-up {
  0% { transform: translateY(100%); }
  100% { transform: translateY(0px); }
}

.ck-powered-by, #components-reconnect-modal div { display: none !important; }

@keyframes wc-nav-loading-slide {
  0% { transform: scaleX(0); transform-origin: left center; }
  50% { transform: scaleX(1); transform-origin: left center; }
  50.01% { transform-origin: right center; }
  100% { transform: scaleX(0); transform-origin: right center; }
}
