/* 主题层：把 Bootstrap 设计令牌映射到本平台品牌。
   加载顺序：bootstrap.min.css → theme.css → base.css → components.css → widgets.css → grid.css → accounts.css
   注意：base.css 之后加载，所以这里用 --bs-* 自有变量，组件色值统一引用平台令牌。 */
:root,
[data-bs-theme="light"] {
  --bs-primary: #1d54bb;
  --bs-primary-rgb: 29, 84, 187;
  --bs-link-color: #1d54bb;
  --bs-link-hover-color: #163f92;
  --bs-body-color: #17212f;
  --bs-body-bg: #f3f6fa;
  --bs-secondary-color: #4b5a70;
  --bs-tertiary-color: #7b8a9e;
  --bs-border-color: #dde3ec;
  --bs-border-radius: 4px;
  --bs-border-radius-sm: 3px;
  --bs-border-radius-lg: 6px;
  --bs-font-sans-serif: "Avenir Next", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --bs-body-font-size: .875rem;
  --bs-body-line-height: 1.65;
  --bs-focus-ring-color: rgba(29, 84, 187, .25);
  --bs-btn-border-radius: 3px;
  --bs-btn-border-radius-sm: 3px;
  --bs-btn-font-size: .875rem;
}

/* P10：深色下同步 Bootstrap 令牌（由顶栏按钮写入的 data-theme 驱动） */
:root[data-theme="dark"] {
  --bs-primary: #6b9bff;
  --bs-primary-rgb: 107, 155, 255;
  --bs-link-color: #6b9bff;
  --bs-link-hover-color: #8bb0ff;
  --bs-body-color: #e7eef8;
  --bs-body-bg: #0e1622;
  --bs-secondary-color: #a9b9cf;
  --bs-tertiary-color: #788ba5;
  --bs-border-color: #29374c;
  color-scheme: dark;
}

/* ---- Bootstrap 组件品牌精修 ---- */
.btn:focus-visible, .form-control:focus, .form-select:focus,
.form-check-input:focus, .nav-link:focus-visible {
  box-shadow: 0 0 0 3px rgba(29, 84, 187, .18);
  border-color: var(--primary);
}
a:hover { text-decoration-color: currentColor; text-decoration-thickness: 1px; }

.btn { border-color: var(--border-strong); background: var(--surface); color: var(--text); font-weight: 500; letter-spacing: .005em; }
.btn:hover { border-color: var(--primary); color: var(--primary); background: var(--surface); }
.btn-primary {
  --bs-btn-bg: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--primary-hover);
  --bs-btn-hover-border-color: var(--primary-hover);
  --bs-btn-active-bg: var(--primary-hover);
  --bs-btn-active-border-color: var(--primary-hover);
  --bs-btn-disabled-bg: var(--primary);
  --bs-btn-disabled-border-color: var(--primary);
  --bs-btn-color: var(--surface-2);
  --bs-btn-hover-color: var(--surface-2);
  --bs-btn-active-color: var(--surface-2);
}
.btn-outline-primary {
  --bs-btn-color: var(--primary);
  --bs-btn-border-color: var(--primary);
  --bs-btn-hover-bg: var(--primary);
  --bs-btn-hover-border-color: var(--primary);
  --bs-btn-active-bg: var(--primary-hover);
  --bs-btn-active-border-color: var(--primary-hover);
}
.btn-danger { background: transparent; border-color: var(--danger); color: var(--danger); }
.btn-danger:hover, .btn-danger:focus-visible { background: var(--danger-soft); border-color: var(--danger); color: var(--danger); }
.btn-ghost { background: transparent; border-color: transparent; color: var(--text-2); }
.btn-ghost:hover { background: var(--fill); border-color: transparent; color: var(--text); }
.btn-sm { --bs-btn-padding-y: .15rem; --bs-btn-padding-x: .6rem; --bs-btn-font-size: .8125rem; }
.btn-lg { --bs-btn-padding-y: .45rem; --bs-btn-padding-x: 1.2rem; --bs-btn-font-size: .9375rem; }
.btn-icon { display: inline-grid; place-items: center; padding: 0; width: 26px; height: 26px; background: transparent; border-color: transparent; color: var(--text-3); }
.btn-icon .icon { width: 13px; height: 13px; vertical-align: 0; }
.btn-icon:hover { color: var(--danger); background: var(--danger-soft); border-color: transparent; }
.btn-block { display: block; width: 100%; margin-top: var(--sp-4); }

.table { --bs-table-hover-bg: var(--hover); --bs-table-border-color: var(--border); }
.table thead th { color: var(--text-2); font-weight: 600; }
.badge.bg-primary { background-color: var(--primary) !important; }
.badge.bg-success { background-color: var(--success) !important; }
.badge.bg-warning { background-color: var(--warning) !important; }
.badge.bg-danger { background-color: var(--danger) !important; }
