/**
 * Design Tokens — 宠物医院管理系统
 * 全站设计变量单一来源（在 theme.css 之前加载）
 */

:root {
  /* ── 主色 & 语义色 ── */
  --color-primary: #0a73c3;
  --color-primary-hover: #055aa7;
  --color-primary-subtle: #e9f4ff;
  --color-primary-muted: #bfdbfe;
  --color-accent: #14b8a6;
  --color-accent-warm: #f59e0b;
  --color-accent-warm-subtle: #fffbeb;

  --color-success: #15803d;
  --color-success-bg: #dcfce7;
  --color-success-border: #86efac;

  --color-warning: #b45309;
  --color-warning-bg: #fef3c7;
  --color-warning-border: #fcd34d;

  /* AI 待审（医生一眼识别 · 需核对，勿与主色蓝/成功绿混用） */
  --color-ai-review: #b45309;
  --color-ai-review-text: #78350f;
  --color-ai-review-bg: #fffbeb;
  --color-ai-review-bg-strong: #fef3c7;
  --color-ai-review-border: #fcd34d;
  --color-ai-review-border-strong: #f59e0b;

  --color-danger: #b91c1c;
  --color-danger-bg: #fee2e2;
  --color-danger-border: #fca5a5;

  /* ── 中性灰阶 ── */
  --color-neutral-50: #f8fafc;
  --color-neutral-100: #f1f5f9;
  --color-neutral-200: #e2e8f0;
  --color-neutral-300: #cbd5e1;
  --color-neutral-400: #94a3b8;
  --color-neutral-500: #64748b;
  --color-neutral-600: #475569;
  --color-neutral-700: #334155;
  --color-neutral-800: #1e293b;
  --color-neutral-900: #0f172a;

  /* ── 表面 & 文字（同族浅彩：底略深、字略深，提对比）── */
  --surface-bg: #e8eef4;
  --surface-bg-alt: #e6f0ed;

  /* ── 统一布局外壳（方案 A：全模块共用，对齐客户受理）── */
  --shell-bg: #e8eef5;
  --shell-bg-alt: #f0f4f8;
  --surface-card: #ffffff;
  --surface-muted: #f1f5f9;
  --surface-elevated: #ffffff;
  --text-primary: var(--color-neutral-800);
  --text-secondary: var(--color-neutral-600);
  --text-tertiary: var(--color-neutral-500);
  --text-on-primary: #ffffff;
  --border-default: #c5d4e0;
  --border-subtle: #d7e3ec;
  --border-focus: var(--color-primary);
  --fn-line: var(--border-default);

  /* ── 功能点缀色（邻色低饱和，用于图标/细条/数字）── */
  --fn-amber: #9a6414;
  --fn-orange: #9a5530;
  --fn-sky: #1d5a86;
  --fn-indigo: #3d5a96;
  --fn-teal: #0f6b60;
  --fn-rose: #9a3d4c;
  --fn-violet: #48647f;
  --fn-coral: #964555;
  --fn-mint: #1f7368;
  --fn-slate: #334155;

  /* ── 大模块氛围色：前后台统一为客户受理蓝 ── */
  --mod-workbench: var(--color-primary);
  --mod-customer: var(--color-primary);
  --mod-retail: var(--color-primary);
  --mod-platform: var(--color-primary);
  --mod-lab: var(--color-primary);
  --mod-imaging: var(--color-primary);
  --mod-pharmacy: var(--color-primary);
  --mod-analytics: var(--color-primary);
  --mod-system: var(--color-primary);
  --mod-accent: var(--color-primary);
  --mod-shell: var(--shell-bg);
  --mod-shell-alt: var(--shell-bg-alt);

  /* ── 间距（8px 基准）── */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;

  /* ── 圆角 ── */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  /* ── 阴影（轻拟物三层）── */
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 3px rgba(15, 23, 42, 0.06);
  --shadow-md: 0 2px 8px rgba(15, 23, 42, 0.06), 0 4px 16px rgba(15, 23, 42, 0.08);
  --shadow-lg: 0 4px 16px rgba(15, 23, 42, 0.08), 0 8px 32px rgba(15, 23, 42, 0.12);
  --shadow-hover: 0 4px 12px rgba(10, 115, 195, 0.12), 0 2px 6px rgba(15, 23, 42, 0.06);

  /* ── 字体阶梯 ── */
  --text-xs: 12px;
  --text-sm: 13px;
  --text-base: 14px;
  --text-lg: 16px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --font-normal: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;

  /* ── 交互 ── */
  --transition-fast: 150ms ease;
  --transition-normal: 200ms ease;
  --focus-ring: 0 0 0 2px rgba(10, 115, 195, 0.15);

  /* ── 布局（业务页铺满可用宽度；个别阅读型页面可自行加回限制）── */
  --content-max-width: none;
  --control-height: 28px;
  --date-input-width: 132px;

  /* ── 壳层密度（先保证一屏能看见主内容，再谈留白）── */
  --sidebar-width: 148px;
  --sidebar-collapsed-width: 56px;
  --header-height: 52px;
  --content-pad-x: 8px;
  --content-pad-y: 6px;
  --form-row-gap: 6px;
  --form-col-gap: 14px;
  --nav-item-pad-x: 8px;

  /* ── 兼容旧变量（theme / components 渐进迁移）── */
  --brand-primary: var(--color-primary);
  --brand-primary-dark: var(--color-primary-hover);
  --brand-accent: var(--color-accent);
  --brand-warm: var(--color-accent-warm);
  --border-soft: var(--border-default);
}
/* ===== Icon Tokens ===== */
:root {
  /* 尺寸阶梯 —— 对应不同场景 */
  --icon-xs: 14px;   /* 表格内状态图标 */
  --icon-sm: 16px;   /* 按钮内图标、列表项 */
  --icon-md: 20px;   /* 导航栏、侧边栏 */
  --icon-lg: 24px;   /* 空状态、大卡片主图标 */

  /* 统一 stroke-width（Lucide 默认 2，别让 Cursor 乱改） */
  --icon-stroke: 2;

  /* 颜色：默认继承文字色，语义色复用你已有的 token */
  /* currentColor 即可，不用单独定义 */
}

/* 基础 icon 类 —— 所有 SVG 图标挂这个类 */
.icon {
  width: var(--icon-sm);
  height: var(--icon-sm);
  stroke-width: var(--icon-stroke);
  color: currentColor;
  flex-shrink: 0;
}

/* 场景尺寸速记 */
.icon--xs  { width: var(--icon-xs);  height: var(--icon-xs); }
.icon--sm  { width: var(--icon-sm);  height: var(--icon-sm); }
.icon--md  { width: var(--icon-md);  height: var(--icon-md); }
.icon--lg  { width: var(--icon-lg);  height: var(--icon-lg); }

/* 图标 + 文字 间距（按钮/菜单里用） */
.icon-text-gap {
  gap: 6px;   /* 按钮内 */
}
.icon-text-gap--tight {
  gap: 4px;   /* 表格/列表内 */
}

/* 仅图标的紧凑搜索按钮（弹窗 / 工具栏） */
.icon-search-btn,
.retail-template-search-btn,
.pro-template-search-btn,
.copy-other-prescription-search-btn,
.transfer-pet-search-btn,
.retail-search-btn,
.pharm-search-btn,
.lab-search-btn,
.img-search-btn,
.dc-search-btn,
.pf-search-btn,
.wb-search-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--text-primary, #374151);
  flex-shrink: 0;
  line-height: 1;
}

.icon-search-btn .icon,
.retail-template-search-btn .icon,
.pro-template-search-btn .icon,
.copy-other-prescription-search-btn .icon,
.transfer-pet-search-btn .icon,
.retail-search-btn .icon,
.pharm-search-btn .icon,
.lab-search-btn .icon,
.img-search-btn .icon,
.dc-search-btn .icon,
.pf-search-btn .icon,
.wb-search-btn .icon {
  display: block;
  pointer-events: none;
}

.icon-search-btn:hover,
.retail-template-search-btn:hover,
.pro-template-search-btn:hover,
.copy-other-prescription-search-btn:hover,
.transfer-pet-search-btn:hover,
.retail-search-btn:hover,
.pharm-search-btn:hover,
.lab-search-btn:hover,
.img-search-btn:hover,
.dc-search-btn:hover,
.pf-search-btn:hover,
.wb-search-btn:hover {
  color: var(--color-primary, #0a73c3);
  border-color: var(--color-primary-muted, #93c5fd);
}

/* 统一关闭按钮（Modal / Drawer / Tag） */
.icon-btn-close,
.modal-close-btn,
.pro-record-close-btn,
.follow-up-plan-close-btn,
.record-print-close-btn,
.medical-doc-close-btn,
.pet-label-print-close-btn,
.img-entry-close-btn,
.img-template-close-btn,
.login-store-modal-close,
.owner-modal-close,
.image-lightbox-close,
.caller-id-popup-close,
.copy-other-prescription-winbtn,
.register-inpatient-winbtn,
.record-print-viewer-winbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.icon-btn-close:hover,
.modal-close-btn:hover,
.pro-record-close-btn:hover,
.follow-up-plan-close-btn:hover,
.record-print-close-btn:hover,
.medical-doc-close-btn:hover,
.pet-label-print-close-btn:hover,
.img-entry-close-btn:hover,
.img-template-close-btn:hover,
.login-store-modal-close:hover,
.owner-modal-close:hover,
.image-lightbox-close:hover,
.caller-id-popup-close:hover,
.copy-other-prescription-winbtn:hover,
.register-inpatient-winbtn:hover,
.record-print-viewer-winbtn:hover {
  background: var(--color-neutral-100);
  color: var(--text-primary);
}

/* 紧凑型文字/图标按钮 — 覆盖 main.css button 默认 padding，保证垂直居中 */
.pro-mini-btn,
.pro-icon-btn,
.retail-template-mini-btn,
.edit-customer-mini-btn,
.admin-report-filter-mini-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
  font-family: inherit;
  line-height: 1;
  white-space: nowrap;
}

.pro-mini-btn .icon,
.pro-icon-btn .icon {
  display: block;
  flex-shrink: 0;
  width: var(--icon-sm);
  height: var(--icon-sm);
  pointer-events: none;
}

/* 圆形符号按钮 — +/- 等字符居中 */
.pro-diagnosis-minus,
.pro-diagnosis-plus,
.pro-treatment-plan-add-btn,
.pro-treatment-more-add-btn,
.lab-fill-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 0;
  font-family: inherit;
  font-weight: 600;
  line-height: 1;
  flex-shrink: 0;
}

/* Unicode 减号常偏上，做光学微调 */
.pro-diagnosis-minus {
  padding-bottom: 1px;
}