/* ============================================================
   Cdnfly 控制台主题皮肤
   与官网前台统一的 azure 蓝设计语言。
   纯覆盖式：只改颜色、圆角、间距与字体，不改动任何页面模板与 JS 逻辑。

   加载顺序：layui.css → 本文件 → (运行时动态插入) admin.css / login.css
   因此需要压过后两者的规则统一加 body 前缀提升优先级。
   ============================================================ */

:root {
  --cf-accent:      #0A6ED1;
  --cf-accent-ink:  #085BAD;
  --cf-accent-soft: #E3F0FC;
  --cf-ink:         #15222C;
  --cf-ink-2:       #51636F;
  --cf-ink-3:       #7E8F9B;
  --cf-line:        #E1E9EF;
  --cf-bg:          #F3F7FA;
  --cf-surface-2:   #EDF3F9;
  --cf-side:        #15222C;
  --cf-side-deep:   #101A22;
  --cf-good:        #178A4C;  --cf-good-soft: #E3F4EA;
  --cf-warn:        #B97A0F;  --cf-warn-soft: #FFF3DC;
  --cf-bad:         #C94848;  --cf-bad-soft:  #FBEAEA;
  --cf-shadow:      0 1px 2px rgba(21,34,44,.05), 0 6px 18px rgba(21,34,44,.06);
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
               "Microsoft YaHei", "Noto Sans SC", "Helvetica Neue", Arial, sans-serif;
  color: var(--cf-ink);
}

/* ============================================================
   1. 外壳：侧栏 / 顶栏 / 内容区
   ============================================================ */

.layui-side, .layui-side .layui-side-scroll { background-color: var(--cf-side) !important; }

/* logo 区：盾牌图标 + 名称 */
.layui-layout-admin .layui-logo {
  background-color: var(--cf-side-deep) !important;
  display: flex; align-items: center; gap: 9px;
  padding: 0 18px !important;
}
.layui-layout-admin .layui-logo span {
  color: #fff; font-weight: 700; font-size: 16px; letter-spacing: .3px;
}
.cf-logo-mark { flex: none; display: block; }
/* 侧栏收起时只留图标 */
.layadmin-side-shrink .layui-logo span { display: none; }
.layadmin-side-shrink .layui-logo { justify-content: center; padding: 0 !important; }

/* ---- 自定义侧栏菜单（不再使用 layui nav 组件，避免其绝对定位图标与固定行高） ----
   DOM 契约仍由 layout.html 保留，admin.js 的 hash(side) 选中态逻辑照常工作。 */
.cf-menu { margin-top: 50px; width: 220px; padding: 6px 0 24px; }
.cf-menu li { list-style: none; }

/* 复位 layui.css 对 .layui-nav-child 的样式。
   该类名必须保留（admin.js 靠它定位子菜单），但 layui 把它设成了
   display:none + position:absolute 的浮层，且给 dd.layui-this 上了绿底。 */
.cf-menu .layui-nav-child {
  display: block !important;
  position: static !important;
  top: auto; left: auto;
  min-width: 0;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  background: none !important;
  line-height: normal;
  white-space: normal;
  z-index: auto;
}
.cf-menu dd {
  position: relative;
  margin: 0;
  background: none !important;
}
.cf-menu dd.layui-this { background: none !important; }
.cf-menu dd.layui-this:after { display: none; }

/* 分组小标题（原本是可折叠父级，现在只作标签） */
.cf-menu .cf-group-label {
  margin: 0;
  padding: 18px 18px 6px;
  font-size: 11.5px;
  letter-spacing: 2px;
  color: #5F7280;
  font-weight: 500;
  white-space: nowrap;
}
.cf-menu > li:first-child .cf-group-label { padding-top: 10px; }

/* 菜单条目（一级无子项，或二级项）。
   同时列出 .layui-nav-child a 变体，压过 layui.css 的 a{color:#333} 与 hover 灰底 */
.cf-menu a,
.cf-menu .layui-nav-child a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  margin: 2px 10px;
  border-radius: 8px;
  color: #9FB0BC;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  transition: background-color .15s, color .15s;
}
.cf-menu a .layui-icon {
  flex: none;
  font-size: 15px;
  opacity: .8;
  line-height: 1;
}
.cf-menu a:hover,
.cf-menu .layui-nav-child a:hover { background-color: rgba(255,255,255,.08) !important; color: #fff !important; }

/* 选中态（类名由 admin.js 打上） */
.cf-menu .layui-this > a,
.cf-menu .layui-nav-child dd.layui-this > a {
  background-color: var(--cf-accent) !important;
  color: #fff !important;
  font-weight: 600;
}
.cf-menu .layui-this > a .layui-icon,
.cf-menu .layui-nav-child dd.layui-this > a .layui-icon { opacity: 1; }

/* 三级菜单（后端目前不产出，留作兼容） */
.cf-menu dd .layui-nav-child a { padding-left: 34px; font-size: 13.5px; }

/* 侧栏收起（60px）：隐藏分组标题与文字，只留图标 */
.layadmin-side-shrink .cf-menu { width: 60px; }
.layadmin-side-shrink .cf-menu .cf-group-label { display: none; }
.layadmin-side-shrink .cf-menu a {
  justify-content: center;
  padding: 10px 0;
  margin: 2px 8px;
}
.layadmin-side-shrink .cf-menu a span { display: none; }
.layadmin-side-shrink .cf-menu a .layui-icon { font-size: 17px; }

/* 顶栏 */
.layui-layout-admin .layui-header { background-color: #fff; border-bottom: 1px solid var(--cf-line); }
.layui-header .layui-nav .layui-this:after, .layui-header .layui-nav-bar { background-color: var(--cf-accent) !important; }

/* 内容区底色 */
.layui-layout-admin .layui-body, .layadmin-tabsbody-item { background-color: var(--cf-bg); }

/* 面包屑头部条（27 个列表页共用） */
body .layadmin-header { border-bottom: 1px solid var(--cf-line); box-shadow: none; }
body .layadmin-header .layui-breadcrumb { border-top: 0; }
body .layadmin-header .layui-breadcrumb a cite { color: var(--cf-ink); font-weight: 600; }
body .layadmin-header .layui-breadcrumb a:not(:last-child) cite { color: var(--cf-ink-3); font-weight: 400; }

/* ============================================================
   2. 卡片
   ============================================================ */

.layui-card {
  border-radius: 12px;
  box-shadow: var(--cf-shadow);
  border: 1px solid var(--cf-line);
}
body .layui-card-header {
  font-weight: 600;
  font-size: 15px;
  color: var(--cf-ink);
  border-bottom: 1px solid var(--cf-line);
  border-radius: 12px 12px 0 0;
}

/* ============================================================
   3. 按钮
   ============================================================ */

.layui-btn { border-radius: 8px; font-weight: 500; }
.layui-btn-sm { border-radius: 7px; }
.layui-btn-xs { border-radius: 6px; }

/* layui 默认绿 + normal 蓝 → 统一主题蓝 */
.layui-btn:not(.layui-btn-primary):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled) {
  background-color: var(--cf-accent);
}
.layui-btn:not(.layui-btn-primary):not(.layui-btn-warm):not(.layui-btn-danger):not(.layui-btn-disabled):hover {
  background-color: var(--cf-accent-ink);
  opacity: 1;
}
body .layui-btn-primary {
  background-color: #fff !important;
  border-color: var(--cf-line) !important;
  color: var(--cf-ink-2) !important;
}
body .layui-btn-primary:hover { border-color: var(--cf-accent) !important; color: var(--cf-accent) !important; }

/* ---- 统一 layui 的多套按钮配色到三档语义 ----
   普通操作(蓝) / 警示操作(琥珀) / 危险操作(红)，其余一律归入普通操作。 */

/* 普通：默认绿、normal 蓝、bg-blue、bg-green → 主题蓝 */
body .layui-btn.layui-bg-blue,
body .layui-btn.layui-bg-green,
body .layui-btn.layui-bg-cyan,
body .layui-btn.layui-btn-normal {
  background-color: var(--cf-accent) !important;
  color: #fff !important;
}
body .layui-btn.layui-bg-blue:hover,
body .layui-btn.layui-bg-green:hover,
body .layui-btn.layui-bg-cyan:hover,
body .layui-btn.layui-btn-normal:hover { background-color: var(--cf-accent-ink) !important; }

/* 警示：bg-orange、btn-warm → 收敛后的琥珀（原 #FFB800 过艳） */
body .layui-btn.layui-bg-orange,
body .layui-btn.layui-btn-warm {
  background-color: #D9922B !important;
  color: #fff !important;
}
body .layui-btn.layui-bg-orange:hover,
body .layui-btn.layui-btn-warm:hover { background-color: #C07F1F !important; }

/* 危险：btn-danger、bg-red → 设计稿红 */
body .layui-btn.layui-btn-danger,
body .layui-btn.layui-bg-red {
  background-color: var(--cf-bad) !important;
  color: #fff !important;
}
body .layui-btn.layui-btn-danger:hover,
body .layui-btn.layui-bg-red:hover { background-color: #B33C3C !important; }

/* ---- 表格行内的操作按钮：改为柔和色片，避免整列跳色 ---- */
body .layui-table td .layui-btn,
body .layui-table-body td .layui-btn {
  background-color: var(--cf-accent-soft) !important;
  color: var(--cf-accent-ink) !important;
  border: 1px solid transparent !important;
  box-shadow: none;
  font-weight: 600;
}
body .layui-table td .layui-btn:hover,
body .layui-table-body td .layui-btn:hover { background-color: #CFE4F8 !important; }

body .layui-table td .layui-btn.layui-btn-primary,
body .layui-table-body td .layui-btn.layui-btn-primary {
  background-color: var(--cf-surface-2) !important;
  color: var(--cf-ink-2) !important;
}
body .layui-table td .layui-btn.layui-btn-primary:hover,
body .layui-table-body td .layui-btn.layui-btn-primary:hover {
  background-color: #E2EAF1 !important; color: var(--cf-ink) !important;
}

body .layui-table td .layui-btn.layui-bg-orange,
body .layui-table td .layui-btn.layui-btn-warm,
body .layui-table-body td .layui-btn.layui-bg-orange,
body .layui-table-body td .layui-btn.layui-btn-warm {
  background-color: var(--cf-warn-soft) !important;
  color: var(--cf-warn) !important;
}
body .layui-table td .layui-btn.layui-bg-orange:hover,
body .layui-table td .layui-btn.layui-btn-warm:hover,
body .layui-table-body td .layui-btn.layui-bg-orange:hover,
body .layui-table-body td .layui-btn.layui-btn-warm:hover { background-color: #FBE8C4 !important; }

body .layui-table td .layui-btn.layui-btn-danger,
body .layui-table-body td .layui-btn.layui-btn-danger {
  background-color: var(--cf-bad-soft) !important;
  color: var(--cf-bad) !important;
}
body .layui-table td .layui-btn.layui-btn-danger:hover,
body .layui-table-body td .layui-btn.layui-btn-danger:hover { background-color: #F7DADA !important; }

/* 表格工具条上的按钮保持实色主按钮（如「增加套餐」） */
body .layui-table-tool .layui-btn,
body .layui-btn-container .layui-btn {
  background-color: var(--cf-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
}
body .layui-table-tool .layui-btn:hover,
body .layui-btn-container .layui-btn:hover { background-color: var(--cf-accent-ink) !important; }

/* ============================================================
   4. 表单控件
   ============================================================ */

body .layui-input, body .layui-textarea, body .layui-select { border-radius: 8px; border-color: var(--cf-line); }
body .layui-input:focus, body .layui-textarea:focus {
  border-color: var(--cf-accent) !important;
  box-shadow: 0 0 0 3px var(--cf-accent-soft);
}
body .layui-form-danger:focus { border-color: #FF5722 !important; box-shadow: 0 0 0 3px #FFE7E0; }
.layui-form-label { color: var(--cf-ink-2); }

.layui-form-checked[lay-skin="primary"] i { border-color: var(--cf-accent) !important; background-color: var(--cf-accent); }
.layui-form-checkbox[lay-skin="primary"]:hover i { border-color: var(--cf-accent); }

/* 默认皮肤复选框（渲染成按钮样式，layui 用青绿 #5FB878）→ 主题蓝 */
body .layui-form-checked,
body .layui-form-checked:hover { border-color: var(--cf-accent) !important; }
body .layui-form-checked:not([lay-skin]) span,
body .layui-form-checked:not([lay-skin]):hover span {
  background-color: var(--cf-accent) !important;
}
body .layui-form-checked:not([lay-skin]) i,
body .layui-form-checked:not([lay-skin]):hover i { color: var(--cf-accent) !important; }
body .layui-form-checkbox:not([lay-skin]) { border-radius: 8px; }
body .layui-form-checkbox:not([lay-skin]) span { border-radius: 7px 0 0 7px; }

/* 默认皮肤单选框 */
body .layui-form-radioed > i, body .layui-form-radio > i:hover { color: var(--cf-accent) !important; }
.layui-form-radio > i:hover, .layui-form-radioed > i { color: var(--cf-accent); }
.layui-form-onswitch { border-color: var(--cf-accent); background-color: var(--cf-accent); }
.layui-form-switch { border-radius: 999px; }

body .layui-form-select dl { border-radius: 10px; border-color: var(--cf-line); box-shadow: var(--cf-shadow); }
.layui-form-select dl dd.layui-this { background-color: var(--cf-accent-soft); color: var(--cf-accent); }
.layui-form-select dl dd:hover { background-color: var(--cf-surface-2); }

/* ============================================================
   5. 表格
   ============================================================ */

.layui-table-view { border-radius: 10px; overflow: hidden; border-color: var(--cf-line); }
body .layui-table th {
  background-color: var(--cf-surface-2);
  color: var(--cf-ink-2);
  font-weight: 600;
  font-size: 13px;
}
body .layui-table td, body .layui-table th { border-color: var(--cf-line); }
body .layui-table tbody tr:hover, body .layui-table-hover { background-color: #F8FBFD; }
.layui-table-tool { background-color: #fff; border-color: var(--cf-line); }
.layui-table-page { border-color: var(--cf-line); }
/* 数字列对齐 */
.layui-table td { font-variant-numeric: tabular-nums; }

/* ============================================================
   6. 徽标（状态）
   ============================================================ */

.layui-badge, .layui-badge-rim {
  border-radius: 999px;
  padding: 0 10px;
  font-weight: 600;
  height: 20px;
  line-height: 20px;
}
/* layui 语义色 → 设计稿的柔和胶囊配色 */
body .layui-badge.layui-bg-green  { background-color: var(--cf-good-soft) !important; color: var(--cf-good) !important; }
body .layui-badge.layui-bg-orange { background-color: var(--cf-warn-soft) !important; color: var(--cf-warn) !important; }
body .layui-badge.layui-bg-red,
body .layui-badge:not([class*="layui-bg-"]) { background-color: var(--cf-bad-soft) !important; color: var(--cf-bad) !important; }
body .layui-badge.layui-bg-blue,
body .layui-badge.layui-bg-cyan   { background-color: var(--cf-accent-soft) !important; color: var(--cf-accent-ink) !important; }
body .layui-badge.layui-bg-gray   { background-color: var(--cf-surface-2) !important; color: var(--cf-ink-3) !important; }

/* 页面里用图标表示的是/否状态 */
body .layui-icon-ok-circle { color: var(--cf-good); }
body .layui-icon-close-fill { color: var(--cf-ink-3); }

/* ============================================================
   7. 选项卡 / 分页 / 弹层
   ============================================================ */

.layui-tab-brief > .layui-tab-title .layui-this { color: var(--cf-accent); font-weight: 600; }
.layui-tab-brief > .layui-tab-title .layui-this:after { border-bottom-color: var(--cf-accent); border-width: 2px; }
.layui-tab-title { border-bottom-color: var(--cf-line); }

body .layui-laypage a, body .layui-laypage span {
  border-radius: 7px; margin: 0 3px; border-color: var(--cf-line);
}
body .layui-laypage a:hover { color: var(--cf-accent); }
body .layui-laypage .layui-laypage-curr { border-color: transparent; background: none; }
body .layui-laypage .layui-laypage-curr .layui-laypage-em {
  background-color: var(--cf-accent); border-radius: 7px; left: 3px; right: 3px;
}

.layui-layer { border-radius: 12px !important; overflow: hidden; }
.layui-layer-title {
  background-color: var(--cf-surface-2) !important;
  border-bottom-color: var(--cf-line) !important;
  color: var(--cf-ink) !important;
  font-weight: 600;
}
.layui-layer-btn .layui-layer-btn0 {
  border-color: var(--cf-accent) !important;
  background-color: var(--cf-accent) !important;
  border-radius: 7px;
}
.layui-layer-btn a { border-radius: 7px; }

/* layer 的成功/失败图标来自雪碧图 icon.png（layui 青绿 #5FB878，与配色不搭），
   用内联 SVG 替换成设计体系的语义色。尺寸沿用 layui 的 30x30。 */
body .layui-layer-dialog .layui-layer-ico.layui-layer-ico1 {
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A6ED1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5 L11 15.5 L16.5 9.5'/%3E%3C/svg%3E") no-repeat center / 26px 26px !important;
}
body .layui-layer-dialog .layui-layer-ico.layui-layer-ico2 {
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C94848' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15 9 L9 15 M9 9 L15 15'/%3E%3C/svg%3E") no-repeat center / 26px 26px !important;
}
body .layui-layer-dialog .layui-layer-ico.layui-layer-ico3 {
  background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A6ED1' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9.5 A2.6 2.6 0 1 1 12 13 V14.5'/%3E%3Ccircle cx='12' cy='17.5' r='.6' fill='%230A6ED1'/%3E%3C/svg%3E") no-repeat center / 26px 26px !important;
}

.layui-laydate .layui-this { background-color: var(--cf-accent) !important; }
.layui-laydate-footer span:hover, .layui-laydate-header i:hover, .layui-laydate-header span:hover { color: var(--cf-accent); }
.layui-laydate, .layui-laydate-main { border-radius: 10px; }

.layui-progress-bar { background-color: var(--cf-accent); }

/* ============================================================
   8. 登录 / 注册 / 找回密码（独立页）
   ============================================================ */

body.layui-layout-body, .layadmin-user-login { background-color: var(--cf-bg); }
.layadmin-user-login { padding: 80px 0; }
.layadmin-user-login-main { width: 400px; }
.layadmin-user-login-box.layadmin-user-login-body {
  background-color: #fff;
  border: 1px solid var(--cf-line);
  border-radius: 14px;
  box-shadow: var(--cf-shadow);
  padding: 28px 30px 24px;
}
.layadmin-user-login-header h2 { font-weight: 700 !important; font-size: 24px !important; color: var(--cf-ink) !important; }
.layadmin-user-login-header p { color: var(--cf-ink-3); }
.layadmin-user-login-body .layui-form-item .layui-input { height: 42px; line-height: 42px; }
.layadmin-user-login-icon { line-height: 40px !important; color: var(--cf-ink-3) !important; }
.layadmin-user-login-body .layui-btn-fluid { height: 42px; line-height: 42px; font-size: 15px; }
/* admin.css 用 .layadmin-link{color:#029789!important} 写死了绿色，
   且它在本文件之后动态加载，需用更高权重压过 */
body a.layadmin-link,
body .layadmin-user-login-other a.layadmin-link,
body .layadmin-user-jump-change.layadmin-link { color: var(--cf-ink-2) !important; }
body a.layadmin-link:hover,
body .layadmin-user-login-other a.layadmin-link:hover,
body .layadmin-user-jump-change.layadmin-link:hover { color: var(--cf-accent) !important; opacity: 1; }
.layadmin-user-login-footer { color: var(--cf-ink-3); }

/* ============================================================
   9. 覆盖动态加载的 admin.css / 页面内联 <style> 中的旧配色
   （这两者插入顺序在本文件之后，需靠 body 前缀或 !important 压过）
   ============================================================ */

body .layui-card-header .layui-a-tips,
body .layuiadmin-card-team li a:hover,
body .layuiadmin-card-status dd div a { color: var(--cf-accent); }
body .layuiadmin-badge { background-color: var(--cf-accent); }
body .layuiadmin-page-table td span.third { color: var(--cf-good); }
body .layadmin-setTheme-color li:hover:after { border-color: var(--cf-accent); }
body .layadmin-backlog-body p cite { color: var(--cf-accent); }
body .layadmin-list li a:hover { color: var(--cf-accent); }
body .layuiadmin-card-text .layui-text-top i { color: var(--cf-accent); }
body .layuiadmin-card-team .layui-team-img { background-color: var(--cf-accent); }
body .layuiadmin-card-link button:hover { color: var(--cf-accent); }
body .layadmin-tips .layui-text { border-top-color: var(--cf-accent); }
body .layadmin-tips h1 { color: var(--cf-accent); }
body .layadmin-homepage-pad-ver a:hover { background: var(--cf-accent); }
body .layadmin-backlog-body { background-color: var(--cf-surface-2); border-radius: 10px; }

/* 快捷方式图标块（account / balance 等页面沿用） */
body .layadmin-shortcut li .layui-icon {
  background-color: var(--cf-surface-2);
  color: var(--cf-accent);
  border-radius: 10px;
}
body .layadmin-shortcut li:hover .layui-icon { background-color: var(--cf-accent-soft); }
body .layadmin-shortcut li cite { color: var(--cf-ink-2); }

/* 页面内联样式里的旧配色 */
body .small-title { color: var(--cf-ink); }
body .thin-gray { color: var(--cf-ink-3) !important; }
body .custom-icon { color: var(--cf-accent) !important; border-color: var(--cf-line) !important; }
body .title2 { color: var(--cf-ink-3); }
body .layui-elem-quote { border-left-color: var(--cf-accent); background-color: var(--cf-surface-2); border-radius: 0 8px 8px 0; }

/* 元素上的 style="color:#009688 / #5bb9fe" 等硬编码（内联样式只能用 !important 压过） */
body [style*="#009688"], body [style*="#5bb9fe"], body [style*="#5FB878"] { color: var(--cf-accent) !important; }

/* ============================================================
   10. 设计稿新增：统计瓦片 / 状态胶囊工具类
   （供 .layui-card 拼装使用，页面可选择性引用）
   ============================================================ */

.cf-stat {
  background: #fff; border: 1px solid var(--cf-line); border-radius: 12px;
  padding: 16px 18px 14px; box-shadow: var(--cf-shadow);
}
.cf-stat .cf-lbl { font-size: 12.5px; color: var(--cf-ink-3); }
.cf-stat .cf-val { font-size: 26px; font-weight: 700; font-variant-numeric: tabular-nums; margin: 2px 0; letter-spacing: .3px; }
.cf-stat .cf-sub { font-size: 12px; color: var(--cf-ink-3); }
.cf-stat .cf-sub .cf-up { color: var(--cf-good); font-weight: 600; }
.cf-stat .cf-sub .cf-down { color: var(--cf-warn); font-weight: 600; }

.cf-pill {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 12px; font-weight: 600; border-radius: 999px; padding: 2px 10px;
}
.cf-pill i { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
.cf-pill.ok   { background: var(--cf-good-soft); color: var(--cf-good); }   .cf-pill.ok i   { background: var(--cf-good); }
.cf-pill.info { background: var(--cf-accent-soft); color: var(--cf-accent-ink); } .cf-pill.info i { background: var(--cf-accent); }
.cf-pill.warn { background: var(--cf-warn-soft); color: var(--cf-warn); }   .cf-pill.warn i { background: var(--cf-warn); }
.cf-pill.bad  { background: var(--cf-bad-soft); color: var(--cf-bad); }     .cf-pill.bad i  { background: var(--cf-bad); }

/* ============================================================
   11. 兜底清扫：layui 全套 CSS 里剩余的旧配色
   （对 layui.css / laydate / layer 全量扫描 #009688 #5FB878 #01AAED
     #1E9FFF 后，逐条覆盖前面章节尚未涉及的选择器）
   ============================================================ */

/* 文字链接与面包屑 */
body .layui-breadcrumb a:hover { color: var(--cf-accent) !important; }
body .layui-text a:not(.layui-btn) { color: var(--cf-accent); }
body .layui-table-cell .layui-table-link { color: var(--cf-accent); }

/* 按钮补充态 */
body .layui-btn-checked { background-color: var(--cf-accent) !important; }
body .layui-btn-group .layui-btn-primary:hover { color: var(--cf-accent); border-color: var(--cf-accent); }
body .layui-transfer-active .layui-btn { background-color: var(--cf-accent) !important; }

/* 表格编辑态 / 分页输入框 */
body .layui-table-edit:focus { border-color: var(--cf-accent) !important; }
body .layui-laypage input:focus,
body .layui-laypage select:focus { border-color: var(--cf-accent) !important; }

/* 选项卡的「更多」浮层 */
body .layui-tab-brief > .layui-tab-more li.layui-this:after { border-color: var(--cf-accent); }
body .layui-tab-card > .layui-tab-more .layui-this { background-color: var(--cf-accent-soft); color: var(--cf-accent); }

/* 时间线 / 引用块 / 滑块 */
body .layui-timeline-axis { color: var(--cf-accent); }
body .layui-slider-input-btn i:hover { color: var(--cf-accent); }

/* 文件上传拖拽区 */
body .layui-upload-drag .layui-icon { color: var(--cf-accent); }
body .layui-upload-drag[lay-over] { border-color: var(--cf-accent); }

/* 日期选择器补充 */
body .layui-laydate-footer span[lay-type="date"] { color: var(--cf-accent); }
body .laydate-day-mark::after { background-color: var(--cf-accent); }
body .laydate-theme-molv .layui-laydate-header { background-color: var(--cf-accent); }
body .laydate-theme-grid .laydate-selected,
body .laydate-theme-grid .laydate-selected:hover { background-color: var(--cf-accent-soft) !important; color: var(--cf-accent-ink) !important; }
