/* ============================================================
   工资条统计系统 —— 主题样式
   风格：浅色 + 紫蓝渐变｜大圆角卡片｜柔光阴影｜彩色柔和图标底
   ============================================================ */

:root{
  /* 主色（紫蓝渐变系） */
  --brand:#7c5cfc;
  --brand-2:#a78bfa;
  --brand-3:#6366f1;
  --brand-soft:#f1edff;
  --brand-soft-2:#ede9fe;
  --brand-ink:#5b3fd6;

  /* 文字 */
  --ink:#1f2340;
  --ink-2:#3d4160;
  --muted:#8b90ad;
  --muted-2:#a5a9c0;

  /* 线条与背景 */
  --line:#eceaf6;
  --line-2:#e3e0f2;
  --bg:#f7f6fd;
  --surface:#ffffff;
  --surface-2:#fbfaff;

  /* 语义色 */
  --ok:#10b981;
  --ok-soft:#e7f9f1;
  --warn:#f59e0b;
  --warn-soft:#fff6e6;
  --danger:#f43f5e;
  --danger-soft:#ffeef1;
  --info:#3b82f6;
  --info-soft:#ecf4ff;

  /* 图标彩色底（参考图的柔和马卡龙色） */
  --ic-purple:#f1edff;  --ic-purple-fg:#7c5cfc;
  --ic-pink:#ffeef5;    --ic-pink-fg:#ec4899;
  --ic-green:#e7f9f1;   --ic-green-fg:#10b981;
  --ic-amber:#fff6e6;   --ic-amber-fg:#f59e0b;
  --ic-blue:#ecf4ff;    --ic-blue-fg:#3b82f6;
  --ic-teal:#e6faf8;    --ic-teal-fg:#14b8a6;
  --ic-red:#ffeef1;     --ic-red-fg:#f43f5e;

  --radius:18px;
  --radius-sm:12px;
  --radius-lg:24px;
  --shadow:0 2px 10px rgba(88,73,158,.06);
  --shadow-md:0 6px 22px rgba(88,73,158,.09);
  --shadow-lg:0 14px 40px rgba(88,73,158,.13);
  --shadow-brand:0 10px 26px rgba(124,92,252,.32);
}

*{box-sizing:border-box}
body{margin:0}

.app-body{
  font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue","Hiragino Sans GB",Arial,sans-serif;
  color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 520px at 12% -8%, #f3efff 0%, rgba(243,239,255,0) 62%),
    radial-gradient(900px 480px at 88% 4%, #eef2ff 0%, rgba(238,242,255,0) 58%),
    linear-gradient(180deg,#faf9ff 0%, var(--bg) 42%, #f6f6fc 100%);
  background-attachment:fixed;
}

/* ============ 侧边栏（浅色白底） ============ */
.app-sidebar{
  width:242px;min-height:100vh;background:var(--surface);color:var(--ink-2);
  display:flex;flex-direction:column;position:sticky;top:0;flex:0 0 242px;
  border-right:1px solid var(--line);
  box-shadow:1px 0 0 rgba(124,92,252,.02);
}
.sidebar-brand{
  display:flex;align-items:center;gap:12px;padding:20px 18px 16px;
}
.brand-icon{
  width:42px;height:42px;border-radius:14px;display:grid;place-items:center;
  background:linear-gradient(135deg,#a78bfa,#7c5cfc 55%,#6366f1);color:#fff;font-size:20px;
  box-shadow:var(--shadow-brand);
}
.brand-title{font-weight:800;color:var(--ink);font-size:15.5px;letter-spacing:.2px}
.brand-sub{font-size:11px;color:var(--muted-2);font-weight:500;letter-spacing:.4px}

.sidebar-nav{flex:1;padding:6px 12px 14px;overflow-y:auto}
.nav-section{
  font-size:11px;color:var(--muted-2);padding:16px 12px 7px;
  letter-spacing:.8px;font-weight:700;
}
.nav-item{
  display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:12px;
  color:var(--ink-2);text-decoration:none;margin-bottom:3px;
  transition:.18s cubic-bezier(.4,0,.2,1);font-size:13.5px;font-weight:500;
}
.nav-item i{font-size:16px;width:20px;text-align:center;color:var(--muted);transition:.18s}
.nav-item:hover{background:var(--brand-soft);color:var(--brand-ink)}
.nav-item:hover i{color:var(--brand)}
.nav-item.active{
  background:linear-gradient(135deg,#f3efff,#eae3ff);color:var(--brand-ink);
  font-weight:700;
  box-shadow:inset 0 0 0 1px rgba(124,92,252,.13);
}
.nav-item.active i{color:var(--brand)}
.nav-item.active::before{
  content:"";position:absolute;margin-left:-13px;width:3px;height:18px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,#a78bfa,#7c5cfc);
}
.nav-item{position:relative}

.sidebar-foot{
  padding:14px 16px 16px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--muted-2);line-height:1.7;
}
.sidebar-foot i{color:var(--brand-2)}
.sidebar-foot a{color:var(--brand)!important}

/* ============ 顶栏 ============ */
.app-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.app-topbar{
  height:64px;background:rgba(255,255,255,.82);backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;padding:0 24px;position:sticky;top:0;z-index:20;
}
.topbar-title{font-weight:800;font-size:16.5px;letter-spacing:-.2px;color:var(--ink)}
.badge-soft{
  background:var(--brand-soft);color:var(--brand-ink);border-radius:999px;
  padding:6px 13px;font-size:12px;font-weight:600;border:1px solid rgba(124,92,252,.1);
}
.btn-soft{
  background:var(--brand-soft);border:1px solid rgba(124,92,252,.1);border-radius:999px;
  padding:5px 6px 5px 6px;display:flex;align-items:center;gap:8px;font-size:13px;
  color:var(--ink-2);font-weight:600;transition:.18s;
}
.btn-soft:hover{background:var(--brand-soft-2);color:var(--brand-ink)}

/* 页面内柔和按钮（继承 Bootstrap .btn 尺寸，仅换配色） */
.btn.btn-soft{
  background:var(--brand-soft);border:1px solid rgba(124,92,252,.16);color:var(--brand-ink);
  border-radius:11px;padding:7px 15px;font-weight:600;font-size:14px;
  display:inline-flex;align-items:center;gap:7px;transition:.18s;line-height:1.5;
}
.btn.btn-soft:hover{background:var(--brand-soft-2);color:var(--brand-ink);border-color:rgba(124,92,252,.3)}
.btn.btn-soft.btn-sm{padding:4px 11px;font-size:12.5px;border-radius:9px}
.btn.btn-soft-danger{
  background:var(--danger-soft);border:1px solid rgba(244,63,94,.16);color:#e11d48;
  border-radius:9px;padding:4px 9px;font-weight:600;font-size:12.5px;
  display:inline-flex;align-items:center;gap:5px;transition:.18s;
}
.btn.btn-soft-danger:hover{background:#ffe0e6;color:#be123c}

/* 品牌化语义文字色 */
.t-primary{color:var(--brand)!important}
.t-danger {color:var(--danger)!important}
.t-success{color:var(--ok)!important}
.t-warning{color:var(--warn)!important}
.avatar{
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,#a78bfa,#7c5cfc);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:13px;
  box-shadow:0 3px 10px rgba(124,92,252,.28);
}

/* ============ 内容 ============ */
.app-content{flex:1;padding:24px 26px}
.app-footer{
  padding:16px 26px;color:var(--muted-2);font-size:12px;
  border-top:1px solid var(--line);background:rgba(255,255,255,.6);
}

/* ============ 卡片 ============ */
.cardx{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.cardx.p-3,.cardx.p-lg-4{transition:.22s}
.cardx:hover{box-shadow:var(--shadow-md)}

.stat-card{
  background:var(--surface);border-radius:var(--radius);padding:20px;
  border:1px solid var(--line);box-shadow:var(--shadow);
  display:flex;align-items:center;gap:15px;transition:.22s cubic-bezier(.4,0,.2,1);
}
.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.stat-ico{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  font-size:23px;flex:0 0 52px;
}
/* 参考图的柔和彩色底 + 同色图标 */
.stat-ico.blue  {background:var(--ic-blue);  color:var(--ic-blue-fg)}
.stat-ico.green {background:var(--ic-green); color:var(--ic-green-fg)}
.stat-ico.orange{background:var(--ic-amber); color:var(--ic-amber-fg)}
.stat-ico.amber {background:var(--ic-amber); color:var(--ic-amber-fg)}
.stat-ico.purple{background:var(--ic-purple);color:var(--ic-purple-fg)}
.stat-ico.red   {background:var(--ic-red);   color:var(--ic-red-fg)}
.stat-ico.teal  {background:var(--ic-teal);  color:var(--ic-teal-fg)}
.stat-ico.pink  {background:var(--ic-pink);  color:var(--ic-pink-fg)}

.stat-label{font-size:12.5px;color:var(--muted);font-weight:500}
.stat-value{font-size:23px;font-weight:800;letter-spacing:-.6px;line-height:1.25;color:var(--ink)}
.stat-sub{font-size:11.5px;color:var(--muted-2);margin-top:2px}

/* ============ 快捷入口 ============ */
.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.quick-btn{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 16px;text-align:center;text-decoration:none;color:var(--ink);
  display:block;transition:.22s cubic-bezier(.4,0,.2,1);
}
.quick-btn:hover{
  border-color:rgba(124,92,252,.28);color:var(--brand-ink);
  transform:translateY(-4px);box-shadow:var(--shadow-md);
}
.quick-btn .qb-ico{
  width:56px;height:56px;margin:0 auto 13px;border-radius:18px;display:grid;place-items:center;
  font-size:25px;
}
.quick-btn .qb-title{font-weight:700;font-size:14.5px}
.quick-btn .qb-desc{font-size:12px;color:var(--muted);margin-top:4px}
/* 柔和彩色底 */
.qb-blue  {background:var(--ic-blue);  color:var(--ic-blue-fg)}
.qb-green {background:var(--ic-green); color:var(--ic-green-fg)}
.qb-orange{background:var(--ic-amber); color:var(--ic-amber-fg)}
.qb-purple{background:var(--ic-purple);color:var(--ic-purple-fg)}
.qb-red   {background:var(--ic-red);   color:var(--ic-red-fg)}
.qb-teal  {background:var(--ic-teal);  color:var(--ic-teal-fg)}
.qb-pink  {background:var(--ic-pink);  color:var(--ic-pink-fg)}

/* ============ 表格 ============ */
.tbl-wrap{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  overflow:auto;box-shadow:var(--shadow);
}
table.tbl{border-collapse:separate;border-spacing:0;width:100%;font-size:13px;white-space:nowrap}
table.tbl th,table.tbl td{border-right:1px solid #eeecf7;border-bottom:1px solid #eeecf7;padding:8px 10px}
table.tbl thead th{
  background:linear-gradient(135deg,#7c5cfc,#6366f1);color:#fff;font-weight:600;text-align:center;
  position:sticky;top:0;z-index:3;font-size:12px;border-right:1px solid rgba(255,255,255,.16);
}
table.tbl thead tr:nth-child(2) th{background:#8b6ffd}
table.tbl thead tr:nth-child(3) th{background:var(--brand-soft-2);color:var(--brand-ink);font-weight:600}
table.tbl tbody td{background:var(--surface)}
table.tbl tbody tr:nth-child(even) td{background:var(--surface-2)}
table.tbl tbody tr:hover td{background:var(--brand-soft)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td.center,th.center{text-align:center}
.col-sticky{
  position:sticky;left:0;background:var(--surface);z-index:2;
  border-right:2px solid var(--line-2)!important;
}
thead .col-sticky{z-index:4}
tbody tr:nth-child(even) td.col-sticky{background:var(--surface-2)}

/* 录入表格里的输入框 */
.cell-input{
  border:1px solid transparent;border-radius:8px;width:100%;padding:5px 7px;
  background:transparent;text-align:right;font-size:13px;transition:.15s;color:var(--ink);
}
.cell-input:hover{border-color:var(--line-2);background:#fff}
.cell-input:focus{
  border-color:var(--brand-2);outline:none;background:#fff;
  box-shadow:0 0 0 3px rgba(124,92,252,.14);
}
.cell-input.txt{text-align:center}
/* 工资月份列（姓名前一列）：居中、稍紧凑 */
.cell-input.period-input{text-align:center;font-size:12.5px;color:var(--brand-ink);font-weight:600}
.cell-input.period-input::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer}
.calc-cell{background:#f6f5fd;color:var(--ink-2);font-weight:600;text-align:right;padding:8px 10px}
.total-cell{background:transparent}
.is-total{background:transparent}

/* 详情工资条 */
.slip-wrap{
  background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);
  overflow:hidden;box-shadow:var(--shadow-md);
}
.slip-head{
  background:linear-gradient(120deg,#7c5cfc 0%,#8b6ffd 45%,#6366f1 100%);
  color:#fff;padding:22px 24px;display:flex;flex-wrap:wrap;gap:20px;align-items:center;
  position:relative;overflow:hidden;
}
.slip-head::after{
  content:"";position:absolute;right:-40px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,.09);
}
.slip-head .sh-name{font-size:21px;font-weight:800;letter-spacing:-.3px}
.slip-head .sh-item{font-size:12.5px;opacity:.92}
.slip-group-title{
  background:var(--brand-soft);color:var(--brand-ink);font-weight:700;padding:8px 14px;
  border-left:4px solid var(--brand);font-size:13px;
}
.kv{display:flex;justify-content:space-between;padding:8px 14px;border-bottom:1px dashed #f0eef8;font-size:13px}
.kv span:first-child{color:var(--muted)}
.kv b{font-variant-numeric:tabular-nums;color:var(--ink)}

/* ============ 按钮 ============ */
.btn{border-radius:11px;font-weight:600;transition:.18s}
.btn-primary{background:linear-gradient(135deg,#7c5cfc,#6366f1);border-color:transparent;box-shadow:0 4px 12px rgba(124,92,252,.24)}
.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,#6d4df5,#5457e8);border-color:transparent;box-shadow:0 6px 18px rgba(124,92,252,.34)}
.btn-primary:active{background:linear-gradient(135deg,#5f3fe8,#4a4dd8)!important}
.btn-outline-primary{color:var(--brand);border-color:rgba(124,92,252,.35);background:#fff}
.btn-outline-primary:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}
.btn-light{background:#f4f3fa;border-color:transparent;color:var(--ink-2)}
.btn-light:hover{background:#eceaf6;color:var(--ink)}
.btn-outline-secondary{color:var(--muted);border-color:var(--line-2)}
.btn-outline-secondary:hover{background:#f6f5fd;color:var(--ink-2);border-color:var(--brand-2)}
.btn-success{background:linear-gradient(135deg,#10b981,#059669);border-color:transparent}
.btn-danger{background:linear-gradient(135deg,#f43f5e,#e11d48);border-color:transparent}
.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:transparent;color:#fff}
.btn-group-round .btn{border-radius:11px}

/* ============ 表单控件 ============ */
.form-control,.form-select{
  border-radius:11px;border-color:var(--line-2);padding:8px 12px;font-size:13.5px;
  color:var(--ink);background-color:#fbfaff;transition:.18s;
}
.form-control:focus,.form-select:focus{
  border-color:var(--brand-2);background:#fff;
  box-shadow:0 0 0 3.5px rgba(124,92,252,.13);
}
.form-control::placeholder{color:var(--muted-2)}
.form-label{font-size:12.5px;color:var(--ink-2);margin-bottom:6px}
.input-group-text{
  background:var(--brand-soft);border-color:var(--line-2);color:var(--brand-ink);border-radius:11px;
}
.form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}
.form-check-input:focus{border-color:var(--brand-2);box-shadow:0 0 0 3px rgba(124,92,252,.14)}

/* ============ 上传区 ============ */
.upload-zone{
  border:2px dashed #ddd6fe;border-radius:var(--radius-lg);background:linear-gradient(180deg,#fdfcff,#f8f6ff);
  padding:34px;text-align:center;transition:.22s;cursor:pointer;
}
.upload-zone:hover,.upload-zone.drag{
  border-color:var(--brand-2);background:var(--brand-soft);
  box-shadow:0 0 0 6px rgba(124,92,252,.06);
}
.upload-zone .uz-ico{font-size:42px;color:var(--brand-2)}

/* ============ 登录页 ============ */
.login-body{
  min-height:100vh;margin:0;
  background:
    radial-gradient(900px 520px at 18% 8%, #efeaff 0%, rgba(239,234,255,0) 60%),
    radial-gradient(800px 480px at 84% 92%, #e8edff 0%, rgba(232,237,255,0) 58%),
    linear-gradient(140deg,#faf9ff 0%,#f3f1fd 45%,#eef1fe 100%);
  display:flex;align-items:center;justify-content:center;padding:28px;
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB",Arial,sans-serif;
  color:var(--ink);-webkit-font-smoothing:antialiased;
}
.login-wrap{width:100%;max-width:940px}
.login-card{
  background:var(--surface);border-radius:26px;overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--shadow-lg);
}
.login-side{
  background:linear-gradient(155deg,#7c5cfc 0%,#6d4df5 42%,#5b3fd6 100%);
  color:#fff;display:flex;align-items:center;justify-content:center;
  padding:44px 34px;min-height:100%;position:relative;overflow:hidden;
}
.login-side::before{
  content:"";position:absolute;left:-70px;bottom:-90px;width:260px;height:260px;border-radius:50%;
  background:rgba(255,255,255,.08);
}
.login-side::after{
  content:"";position:absolute;right:-50px;top:-70px;width:200px;height:200px;border-radius:50%;
  background:rgba(255,255,255,.07);
}
.login-side-inner{width:100%;position:relative;z-index:1}
.login-logo{
  width:60px;height:60px;border-radius:19px;background:rgba(255,255,255,.18);
  display:grid;place-items:center;font-size:29px;border:1px solid rgba(255,255,255,.22);
}
.login-slogan{font-size:13px;opacity:.9;line-height:1.9}
.login-points{list-style:none;padding:0;margin-top:24px;font-size:13px}
.login-points li{padding:7px 0;opacity:.96}
.login-points i{color:#c7f9dc;margin-right:9px}
.login-form-side{display:flex;align-items:center}
.login-tip{
  background:var(--brand-soft);border-radius:14px;padding:12px 14px;font-size:12px;
  color:var(--brand-ink);border:1px solid rgba(124,92,252,.1);
}

/* ============ 其他 ============ */
.section-title{
  font-size:15px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:9px;
  color:var(--ink);letter-spacing:-.2px;
}
.section-title i{color:var(--brand);font-size:16px}
.empty{text-align:center;padding:48px 20px;color:var(--muted)}
.empty i{font-size:46px;color:#ddd6fe;display:block;margin-bottom:12px}
.pill{display:inline-block;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:600}
.pill-blue{background:var(--brand-soft);color:var(--brand-ink)}
.pill-green{background:var(--ok-soft);color:#059669}
.pill-red{background:var(--danger-soft);color:#e11d48}
.pill-gray{background:#f4f3fa;color:var(--ink-2)}
.pill-purple{background:var(--ic-purple);color:var(--ic-purple-fg)}
.pill-amber{background:var(--ic-amber);color:var(--ic-amber-fg)}
.table-nowrap td,.table-nowrap th{white-space:nowrap}
.scroll-x{overflow-x:auto}
.legend-dot{width:10px;height:10px;border-radius:4px;display:inline-block;margin-right:6px}

/* 提示条 */
.alert{border-radius:14px;border:none;font-size:13.5px;padding:13px 16px}
.alert-info{background:var(--info-soft);color:#1d4ed8}
.alert-warning{background:var(--warn-soft);color:#b45309}
.alert-danger{background:var(--danger-soft);color:#be123c}
.alert-success{background:var(--ok-soft);color:#047857}
.alert-light{background:#f6f5fd;color:var(--ink-2)}

/* 分页 */
.pagination .page-link{
  border:none;border-radius:10px!important;margin:0 3px;color:var(--muted);
  font-weight:600;padding:6px 11px;background:transparent;
}
.pagination .page-link:hover{background:var(--brand-soft);color:var(--brand-ink)}
.pagination .page-item.active .page-link{
  background:linear-gradient(135deg,#7c5cfc,#6366f1);color:#fff;
  box-shadow:0 4px 12px rgba(124,92,252,.28);
}
.pagination .page-item.disabled .page-link{background:transparent;color:#cdd0e0}

/* 下拉菜单 */
.dropdown-menu{
  border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-md);
  padding:7px;font-size:13.5px;
}
.dropdown-item{border-radius:10px;padding:8px 12px;color:var(--ink-2);transition:.15s}
.dropdown-item:hover{background:var(--brand-soft);color:var(--brand-ink)}
.dropdown-divider{border-color:var(--line);margin:5px 4px}
.dropdown-item-text{color:var(--muted);font-size:12px}

/* 模态框 */
.modal-content{border:none;border-radius:20px;box-shadow:var(--shadow-lg);overflow:hidden}
.modal-header{border-bottom:1px solid var(--line);padding:16px 20px;background:var(--surface-2)}
.modal-title{font-weight:800;font-size:15.5px;color:var(--ink)}
.modal-body{padding:20px}
.modal-footer{border-top:1px solid var(--line);padding:14px 20px;background:var(--surface-2)}

/* Bootstrap 表格（少量页面使用） */
.table{border-color:var(--line-2);font-size:13px;margin-bottom:0}
.table>thead>tr>th{
  background:var(--brand-soft);color:var(--brand-ink);font-weight:700;
  border-color:var(--line-2);font-size:12.5px;
}
.table>tbody>tr>td{border-color:var(--line);vertical-align:middle}
.table-hover>tbody>tr:hover>*{background:var(--brand-soft)}
.table-light>thead>tr>th,.table-light>tr>th{background:#f6f5fd;color:var(--ink-2)}

/* 滚动条 */
.app-sidebar ::-webkit-scrollbar,.sidebar-nav::-webkit-scrollbar,
.tbl-wrap::-webkit-scrollbar,.scroll-x::-webkit-scrollbar,.app-content::-webkit-scrollbar{
  width:9px;height:9px;
}
.app-sidebar ::-webkit-scrollbar-thumb,.sidebar-nav::-webkit-scrollbar-thumb,
.tbl-wrap::-webkit-scrollbar-thumb,.scroll-x::-webkit-scrollbar-thumb,.app-content::-webkit-scrollbar-thumb{
  background:#e0dcf2;border-radius:6px;border:2px solid transparent;background-clip:content-box;
}
.app-sidebar ::-webkit-scrollbar-thumb:hover,.tbl-wrap::-webkit-scrollbar-thumb:hover{
  background:#cdc6ea;background-clip:content-box;
}
.app-sidebar ::-webkit-scrollbar-track,.tbl-wrap::-webkit-scrollbar-track{background:transparent}

/* 文字语义色（统一为低饱和的品牌化色值） */
.text-primary{color:var(--brand)!important}
.text-success{color:#059669!important}
.text-danger{color:#e11d48!important}
.text-warning{color:#d97706!important}
.text-muted{color:var(--muted)!important}
.text-info{color:var(--info)!important}

/* 徽标 */
.badge{border-radius:8px;font-weight:600;padding:5px 9px;font-size:11.5px}
.text-bg-secondary{background:var(--brand-soft)!important;color:var(--brand-ink)!important}

/* 行内间距微调 */
hr{border-color:var(--line);opacity:1}
.text-white-50{color:rgba(139,144,173,.85)!important}

@media (max-width:991.98px){
  .app-sidebar{
    position:fixed;left:-250px;z-index:1050;transition:left .26s cubic-bezier(.4,0,.2,1);
    box-shadow:var(--shadow-lg);
  }
  .app-sidebar.show{left:0}
  .app-content{padding:18px 16px}
  .app-topbar{padding:0 16px}
}
