/* ---------- 全局变量（Ant Design / ele-admin-pro 调色板） ---------- */
:root{
  --c-primary:#1d94ff;
  --c-primary-hover:#40a9ff;
  --c-primary-active:#096dd9;
  --c-primary-bg:#e6f4ff;
  /* AI:opt-2026-09-03-PRIMARY-LIGHT 全站选中/激活浅底引用 --c-primary-light 但未定义,各页内联
     fallback 分裂成 #e6f0ff / #e8f4ff 两套致深浅不一;补定义=官方主色浅底,一处生效统一激活底色。 */
  --c-primary-light:#e6f4ff;
  --c-success:#52c41a;
  --c-warning:#faad14;
  --c-danger:#ff4d4f;
  --c-info:#1d94ff;

  --c-text:rgba(0,0,0,.88);
  /* AI:opt-2026-09-03-TEXT1-ALIAS 全站 300+ 处引用 --c-text-1 但从未定义(theme 仅有 --c-text),
     致 .pro-table-title/.byg-list-card-title/.byg-stat-card 等标题 color 声明失效、被迫继承父色。
     补别名=--c-text 主文字色,一处生效全站,让本应深色的标题恢复设计值,零回归。 */
  --c-text-1:rgba(0,0,0,.88);
  --c-text-2:rgba(0,0,0,.65);
  --c-text-3:rgba(0,0,0,.45);
  --c-text-4:rgba(0,0,0,.25);

  --c-bg:#fff;
  /* AI:opt-2026-05-21-LIGHT-THEME 内容区背景偏冷淡灰(对齐 ant-design-pro) */
  --c-bg-layout:#f5f7fa;
  --c-bg-hover:rgba(0,0,0,.04);

  --c-border:#d9d9d9;
  --c-border-2:#eef0f3;

  /* 表格(全局统一可复用,默认值=现行视觉,零回归;各页改一处全站生效) */
  --c-table-head-bg:#fafbfc;
  --c-table-row-hover:#e6f4ff;

  --r-base:6px;
  --r-sm:4px;
  --r-lg:8px;

  --sd-base:0 2px 8px rgba(0,0,0,.08);
  --sd-lg:0 8px 24px rgba(0,0,0,.12);

  --h-input:32px;
  --h-input-lg:40px;
  --h-input-sm:24px;

  /* layout */
  --sider-w:180px; /* AI:opt-2026-07-21-UI4FIX ①侧栏缩窄 208→180(用户指定"有点宽") */
  --sider-w-collapsed:76px;
  --header-h:48px;
  --tabs-h:40px;
  --footer-h:36px;

  /* AI:opt-2026-05-21-LIGHT-THEME 侧栏改浅色(参考 ant-design-pro / arco / element-plus 后台简约科技风)
     AI:opt-2026-05-21-LIGHT-TINT 加深底色让侧栏有"墙"感(原 #fafbfc 太接近白) */
  /* AI:opt-2026-09-01-SIDER-WHITE 参考图(搬运工/搬运工后台)纯白侧栏:白底+浅灰 hover,层次更干净 */
  --sider-bg:#ffffff;
  --sider-bg-sub:#f7f9fc;
  --sider-border:#eef0f4;
  --sider-text:rgba(0,0,0,.75);
  --sider-text-2:rgba(0,0,0,.5);
  --sider-text-active:#1d94ff;
  --sider-active-bg:#e8f3ff;
  --sider-hover-bg:#f4f6fa;
  --sider-active-bar:#1d94ff;

  /* 顶栏/标签 浅色精细化 */
  --header-shadow:0 1px 4px rgba(0,21,41,.04);
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.5715;
  color:var(--c-text);background:var(--c-bg-layout);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
a{color:var(--c-primary);text-decoration:none;background:transparent;outline:0;cursor:pointer;transition:color .2s;}
a:hover{color:var(--c-primary-hover);}
h1,h2,h3,h4,h5,h6,p,ul,ol,figure{margin:0;padding:0;}
ul,ol{list-style:none;}
img{vertical-align:middle;}
button,input,textarea,select{font:inherit;color:inherit;}
button{cursor:pointer;background:none;border:0;padding:0;}
input,textarea,select{outline:0;}
[hidden]{display:none !important;}

/* ---------- 工具类 ---------- */
.byg-flex{display:flex;}
.byg-flex-center{display:flex;align-items:center;justify-content:center;}
.byg-flex-between{display:flex;align-items:center;justify-content:space-between;}
.byg-flex-1{flex:1;min-width:0;}
.byg-pull-right{float:right;}
.byg-mr-8{margin-right:8px;}
.byg-mr-12{margin-right:12px;}
.byg-ml-8{margin-left:8px;}
.byg-mt-8{margin-top:8px;}
.byg-mt-12{margin-top:12px;}
.byg-mt-16{margin-top:16px;}
.byg-mb-8{margin-bottom:8px;}
.byg-mb-12{margin-bottom:12px;}
.byg-mb-16{margin-bottom:16px;}
.byg-text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.byg-text-muted{color:var(--c-text-3);}
.byg-text-success{color:var(--c-success);}
.byg-text-danger{color:var(--c-danger);}
.byg-text-warning{color:var(--c-warning);}
.byg-text-primary{color:var(--c-primary);}
.byg-bg-white{background:#fff;}

/* ---------- 通用加载 ---------- */
.byg-spin{
  width:24px;height:24px;border:2px solid var(--c-primary-bg);
  border-top-color:var(--c-primary);border-radius:50%;
  animation:byg-spin 1s linear infinite;
}
.byg-spin-sm{width:16px;height:16px;border-width:2px;}
.byg-spin-lg{width:40px;height:40px;border-width:3px;}
@keyframes byg-spin{to{transform:rotate(360deg);}}

/* 滚动条美化 */
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:4px;}
::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.35);}
::-webkit-scrollbar-track{background:transparent;}
