/* _palette.css — 硬修云 全新深青浅色令牌（规范源 docs/design-tokens.md 的 WEB 镜像）
   必须在 /css/theme.css 之后引入，以覆盖旧 :root 令牌。删除本引用即可整体回退.
   结构：① 新 --color-* 令牌 ② 旧 --primary-* 与 --success-* 软映射到新值 */

:root {
  /* ----- 品牌主色 天蓝 Sky ----- */
  --color-primary: #0EA5E9;
  --color-primary-hover: #0284C7;
  --color-primary-strong: #0369A1;
  --color-primary-deep: #075985;
  --color-primary-soft: #E0F2FE;
  --color-primary-soft-hover: #BAE6FD;
  --color-primary-subtle: #F0F9FF;
  --color-primary-border: #BAE6FD;
  --color-primary-contrast: #FFFFFF;
  --gradient-primary: linear-gradient(135deg, #0EA5E9 0%, #0369A1 100%);
  --gradient-primary-soft: linear-gradient(135deg, #E0F2FE, #BAE6FD);

  /* ----- 语义色 ----- */
  --color-success: #15803D;
  --color-success-strong: #14532D;
  --color-success-soft: #E7F4EB;
  --color-success-border: #B3E0C6;
  --color-success-contrast: #FFFFFF;
  --color-warning: #D97706;
  --color-warning-strong: #92400E;
  --color-warning-soft: #FDF3E3;
  --color-warning-border: #F0D9AD;
  --color-warning-contrast: #FFFFFF;
  --color-danger: #DC2626;
  --color-danger-strong: #991B1B;
  --color-danger-soft: #FDEEEE;
  --color-danger-border: #F2B8B8;
  --color-danger-contrast: #FFFFFF;
  --color-info: #2563EB;
  --color-info-strong: #1E40AF;
  --color-info-soft: #E9F1FE;
  --color-info-border: #BFD0F7;
  --color-info-contrast: #FFFFFF;

  /* ----- KPI 渐变 ----- */
  --gradient-success: linear-gradient(135deg, #15803D, #0F6B32);
  --gradient-warning: linear-gradient(135deg, #F59E0B, #B45309);
  --gradient-danger: linear-gradient(135deg, #EF4444, #B91C1C);
  --gradient-info: linear-gradient(135deg, #38BDF8, #2563EB);
  --gradient-slate: linear-gradient(135deg, #64748B, #334155);

  /* ----- 中性冷灰 ----- */
  --color-bg: #F4F6F8;
  --color-surface: #FFFFFF;
  --color-surface-muted: #FAFBFC;
  --color-surface-strong: #F1F4F7;
  --color-border: #E4E8EE;
  --color-border-strong: #CFD6DF;
  --color-divider: #EEF1F5;
  --color-text: #1B2330;
  --color-text-secondary: #5B6472;
  --color-text-muted: #8A93A4;
  --color-text-disabled: #BFC6D0;
  --color-text-inverse: #FFFFFF;
  --color-bg-gradient: linear-gradient(180deg, #EEF1F5 0%, #F4F6F8 60%, #F4F6F8 100%);

  /* ----- 侧边栏 / 玻璃 ----- */
  --sidebar-a: #0369A1;
  --sidebar-b: #075985;
  --color-sidebar-a: #0369A1;
  --color-sidebar-b: #075985;
  --color-sidebar-gradient: linear-gradient(180deg, #0369A1 0%, #075985 100%);
  --color-sidebar-text: rgba(255, 255, 255, .92);
  --color-sidebar-text-muted: rgba(255, 255, 255, .65);
  --color-sidebar-active: rgba(255, 255, 255, .16);
  --color-sidebar-active-border: rgba(255, 255, 255, .55);
  --color-glass: rgba(255, 255, 255, .72);
  --color-glass-strong: rgba(255, 255, 255, .88);
  --color-glass-border: rgba(255, 255, 255, .60);
  --color-glass-blur: blur(18px) saturate(160%);
  --color-overlay: rgba(15, 23, 42, .48);

  /* ----- 圆角 ----- */
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 20px;
  --radius-full: 9999px;

  /* ----- 阴影 ----- */
  --shadow-sm: 0 1px 2px rgba(20, 30, 40, .06);
  --shadow-md: 0 4px 12px rgba(20, 30, 40, .08);
  --shadow-lg: 0 12px 32px rgba(20, 30, 40, .12);
  --shadow-card: 0 1px 3px rgba(20, 30, 40, .04), 0 4px 14px rgba(20, 30, 40, .06);
  --color-focus-ring: 0 0 0 3px rgba(14, 165, 233, .18);

  /* ----- 间距 ----- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;

  --duration-fast: 150ms;
  --duration-med: 200ms;
  --ease: cubic-bezier(.2, .8, .2, 1);
}

/* ===== 旧名 → 新名 软映射（旧用法 var(--primary-color) 等自动继承新色） ===== */
:root {
  --primary-lightest: var(--color-primary-soft);
  --primary-lighter: #38BDF8;
  --primary-bg-color: var(--color-primary-subtle);
  --primary-light: #38BDF8;
  --primary-color: var(--color-primary);
  --primary-dark: var(--color-primary-strong);
  --primary-darker: var(--color-primary-deep);
  --primary-darkest: var(--color-primary-deep);
  --primary-grad: var(--gradient-primary);
  --ring-focus: var(--color-focus-ring);

  --success-color: var(--color-success);
  --success-light: var(--color-success-soft);
  --success-dark: var(--color-success-strong);
  --danger-color: var(--color-danger);
  --danger-light: var(--color-danger-soft);
  --danger-dark: var(--color-danger-strong);
  --warning-color: var(--color-warning);
  --warning-light: var(--color-warning-soft);
  --warning-dark: var(--color-warning-strong);
  --info-color: var(--color-info);
  --info-light: var(--color-info-soft);
  --info-dark: var(--color-info-strong);

  --text-color: var(--color-text);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-muted);
  --text-disabled: var(--color-text-disabled);

  --bg-color: var(--color-bg);
  --bg-grad: var(--color-bg-gradient);
  --card-bg: rgba(255, 255, 255, .9);
  --card-bg-solid: var(--color-surface);
  --border-color: var(--color-border);

  --glass-bg: var(--color-glass);
  --glass-bg-strong: var(--color-glass-strong);
  --glass-border: var(--color-glass-border);
  --glass-blur: var(--color-glass-blur);
  --glass-blur-strong: blur(26px) saturate(170%);

  --sidebar-bg-start: var(--color-sidebar-a);
  --sidebar-bg-end: var(--color-sidebar-b);
  --sidebar-glass: var(--color-sidebar-gradient);
  --sidebar-text: var(--color-sidebar-text);
  --sidebar-text-hover: #fff;
}

/* ===== 布局规格化（契约见 docs/design-tokens.md）：统一核心组件的圆角/描边/阴影 ===== */
body .modal {
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
}

body .modal-header,
body .modal-body,
body .modal-footer {
  background: var(--color-surface);
}

body .card,
body .chart-card,
body .tech-card,
body .ak-card,
body .stat-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

body .card:hover,
body .chart-card:hover,
body .tech-card:hover {
  box-shadow: var(--shadow-md);
}

body .table-wrapper,
body .data-table {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  overflow: hidden;
}

body .table th {
  background: var(--color-surface-muted);
  color: var(--color-text-secondary);
}

body .table tr:hover td,
body .data-table tr:hover td {
  background: var(--color-surface-strong);
}

body .status-tag,
body .tag,
body .badge {
  border-radius: var(--radius-full);
}

body .status-pending {
  background: var(--color-warning-soft);
  color: var(--color-warning-strong);
}

body .status-progress {
  background: var(--color-info-soft);
  color: var(--color-info-strong);
}

body .status-done {
  background: var(--color-success-soft);
  color: var(--color-success-strong);
}

body .empty,
body .empty-state {
  text-align: center;
  color: var(--color-text-muted);
}

body .pagination .page-btn {
  border-color: var(--color-border);
  color: var(--color-text-secondary);
}

body .pagination .page-btn.active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-primary-contrast);
}

body .form-field input:focus,
body .form-field select:focus,
body .form-field textarea:focus {
  border-color: var(--color-primary);
  box-shadow: var(--color-focus-ring);
}

body .btn-form-save {
  background: #0EA5E9;
  box-shadow: 0 2px 8px rgba(14, 165, 233, .25);
}

body .btn-form-save:hover:not(:disabled) {
  background: #0284C7;
  box-shadow: 0 4px 14px rgba(2, 132, 199, .4);
}

/* ===== WEB 统一：所有实色按钮天蓝底白字（theme.css 存在多份 .btn-* 定义，此后置块兜底覆盖） ===== */
body .btn-primary,
body .btn-success,
body .btn-info,
body .btn-warning,
body .btn-danger,
body .btn-overview-active,
body .btn-form-save,
body .btn.btn-active,
body .pagination .btn.active {
  background: #0EA5E9 !important;
  color: #fff !important;
  border: none !important;
}

body .btn-primary:hover,
body .btn-success:hover,
body .btn-info:hover,
body .btn-warning:hover,
body .btn-danger:hover {
  background: #0284C7 !important;
}

/* ===== 布局统一：操作区 按钮/搜索框/下拉 等高管齐、垂直居中、间距一致 ===== */
body .filter-bar,
body .search-bar,
body .page-toolbar,
body .toolbar-bar,
body .quick-bar {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}

body .filter-bar button,
body .search-bar button,
body .page-toolbar button,
body .toolbar-bar button,
body .quick-bar button,
body .filter-bar .btn,
body .search-bar .btn,
body .page-toolbar .btn,
body .toolbar-bar .btn,
body .quick-bar .btn {
  height: 34px !important;
  padding: 0 14px !important;
  line-height: 20px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body .filter-bar input,
body .filter-bar select,
body .search-bar input,
body .search-bar select,
body .page-toolbar input,
body .page-toolbar select,
body .toolbar-bar input,
body .toolbar-bar select,
body .quick-bar input,
body .quick-bar select {
  height: 34px !important;
  box-sizing: border-box !important;
  line-height: 20px !important;
  vertical-align: middle !important;
}

body .filter-bar input,
body .search-bar input,
body .page-toolbar input,
body .toolbar-bar input,
body .quick-bar input {
  padding: 0 11px !important;
}

body .filter-bar select,
body .search-bar select,
body .page-toolbar select,
body .toolbar-bar select,
body .quick-bar select {
  padding: 0 26px 0 11px !important;
}

body .search-input-wrap {
  display: flex !important;
  align-items: center !important;
}

body .search-input-wrap .mi-search {
  display: block;
  flex-shrink: 0;
}

/* 操作条内 label+控件 横向等高，避免 label 竖排把控件顶离与按钮对齐线 */
body .search-bar .form-group,
body .filter-bar .form-group,
body .page-toolbar .form-group,
body .toolbar-bar .form-group,
body .quick-bar .form-group {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin: 0 !important;
}

body .search-bar .form-group label,
body .filter-bar .form-group label,
body .page-toolbar .form-group label,
body .toolbar-bar .form-group label,
body .quick-bar .form-group label {
  margin: 0 !important;
  white-space: nowrap !important;
  font-size: 14px !important;
  line-height: 1 !important;
  color: var(--color-text-secondary, #5B6472) !important;
}

/* 页头只有操作按钮时保持右对齐 */
body .page-header .actions:first-child:last-child {
  margin-left: auto;
}

/* ===== 选项卡激活态：天蓝（覆盖 theme.css 末段通用 tab 规则对激活态的白底/深青压制） ===== */
body .nav-pills a.active,
body .nav-pills a.router-link-active,
body .nav-pills a.on,
body .tab-nav button.active,
body .tab-nav button.on,
body .page-tabs button.active,
body .erp-tabs .tab-btn.active,
body .erp-tabs .tab-btn.on,
body .erp-tabs>.btn.btn-primary,
body .tab-btn.active,
body .tab-btn.on,
body [role="tablist"] a.active,
body [role="tablist"] button.active,
body [aria-selected="true"] {
  background: #0EA5E9 !important;
  background-image: none !important;
  color: #fff !important;
  border-color: #0EA5E9 !important;
  box-shadow: 0 4px 12px rgba(14, 165, 233, .30) !important;
  font-weight: 700 !important;
}