/**
 * OfferHub 栏目共用语义令牌 + Open Props 子集（sizes / borders / shadows）
 * 来源：https://github.com/argyleink/open-props （MIT）
 * 更新 vendor：npm run vendor:open-props
 */

@import "./vendor/open-props/sizes.min.css";
@import "./vendor/open-props/borders.min.css";
@import "./vendor/open-props/shadows.min.css";

/**
 * 语义层：硕博 / 本科 Hub 共用（品牌色仍在各 *-hub.css）
 * 注：--oh-* 挂在 body 上，供子树继承；勿在 :root 引用尚未定义的 --oh-*
 */
body.oh-grad-page,
body.oh-bach-page {
  /* Ant Design 5 screen tokens（https://ant.design/components/grid-cn） */
  --oh-screen-xs-max: 575.98px;
  --oh-screen-sm: 576px;
  --oh-screen-md: 768px;
  --oh-screen-lg: 992px;
  --oh-screen-xl: 1200px;
  --oh-screen-xxl: 1600px;
  --oh-screen-below-lg: 991.98px;

  /* 圆角：v0 目标统一 14px（Open Props --radius-3 为 1rem≈16px，暂用手动值） */
  --oh-radius-md: 14px;
  --oh-radius-sm: var(--radius-2, 5px);
  --oh-radius-pill: var(--radius-round, 999px);

  /* 阴影：试用 Open Props 刻度，卡片默认 shadow-3 */
  --oh-shadow-card: var(--shadow-3);
  --oh-shadow-card-hover: var(--shadow-4);

  /* 间距：与现有 padding 接近的刻度（逐步替换 magic number） */
  --oh-space-1: var(--size-2);
  --oh-space-2: var(--size-3);
  --oh-space-3: var(--size-4);
  --oh-space-4: var(--size-5);
}

/**
 * Ant Design 5 视觉刻度（仅 CSS，无 antd 组件）+ OfferHub 红白品牌
 * 参考：https://ant.design/docs/react/customize-theme-cn
 */
body.oh-grad-page {
  --oh-ant-color-primary: var(--grad-accent, #b91c1c);
  --oh-ant-color-primary-hover: var(--grad-accent-hover, #991b1b);
  --oh-ant-color-primary-active: #7f1d1d;
  --oh-ant-color-text: rgba(0, 0, 0, 0.88);
  --oh-ant-color-text-secondary: rgba(0, 0, 0, 0.65);
  --oh-ant-color-text-tertiary: rgba(0, 0, 0, 0.45);
  --oh-ant-color-border: #d9d9d9;
  --oh-ant-color-border-secondary: #f0f0f0;
  --oh-ant-color-bg-layout: #f5f5f5;
  --oh-ant-color-bg-container: #ffffff;
  --oh-ant-color-fill-secondary: rgba(0, 0, 0, 0.06);
  --oh-ant-border-radius: 6px;
  --oh-ant-border-radius-lg: 8px;
  --oh-ant-control-height: 32px;
  --oh-ant-control-height-lg: 40px;
  --oh-ant-font-size: 14px;
  --oh-ant-font-size-sm: 12px;
  --oh-ant-font-size-lg: 16px;
  --oh-ant-line-height: 1.5714285714285714;
  --oh-ant-motion-duration: 0.2s;
  --oh-ant-box-shadow-secondary: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
    0 3px 6px -4px rgba(0, 0, 0, 0.12),
    0 9px 28px 8px rgba(0, 0, 0, 0.05);
  --oh-ant-focus-ring: 0 0 0 2px rgba(185, 28, 28, 0.12);
  --oh-ant-font-size-heading-5: 16px;
  --oh-ant-line-height-heading-5: 24px;
  --oh-ant-font-size-body: 14px;
  --oh-ant-line-height-body: 22px;
  --oh-ant-font-size-caption: 12px;
  --oh-ant-line-height-caption: 20px;
  --oh-ant-font-weight-strong: 600;
  --oh-ant-font-weight-normal: 400;
}

/**
 * 本科 Explore 与硕博列表视觉一致（主色用 OfferHub 红，非 --bach-green）
 */
body.oh-bach-page {
  --oh-ant-color-primary: #b91c1c;
  --oh-ant-color-primary-hover: #991b1b;
  --oh-ant-color-primary-active: #7f1d1d;
  --oh-ant-color-text: rgba(0, 0, 0, 0.88);
  --oh-ant-color-text-secondary: rgba(0, 0, 0, 0.65);
  --oh-ant-color-text-tertiary: rgba(0, 0, 0, 0.45);
  --oh-ant-color-border: #d9d9d9;
  --oh-ant-color-border-secondary: #f0f0f0;
  --oh-ant-color-bg-layout: #f5f5f5;
  --oh-ant-color-bg-container: #ffffff;
  --oh-ant-color-fill-secondary: rgba(0, 0, 0, 0.06);
  --oh-ant-border-radius: 6px;
  --oh-ant-border-radius-lg: 8px;
  --oh-ant-control-height: 32px;
  --oh-ant-control-height-lg: 40px;
  --oh-ant-font-size: 14px;
  --oh-ant-font-size-sm: 12px;
  --oh-ant-font-size-lg: 16px;
  --oh-ant-line-height: 1.5714285714285714;
  --oh-ant-motion-duration: 0.2s;
  --oh-ant-box-shadow-secondary: 0 6px 16px 0 rgba(0, 0, 0, 0.08),
    0 3px 6px -4px rgba(0, 0, 0, 0.12),
    0 9px 28px 8px rgba(0, 0, 0, 0.05);
  --oh-ant-focus-ring: 0 0 0 2px rgba(185, 28, 28, 0.12);

  /* Typography（对齐 Ant Design 5 刻度，https://ant.design/docs/spec/font-cn） */
  --oh-ant-font-size-heading-5: 16px;
  --oh-ant-line-height-heading-5: 24px;
  --oh-ant-font-size-body: 14px;
  --oh-ant-line-height-body: 22px;
  --oh-ant-font-size-caption: 12px;
  --oh-ant-line-height-caption: 20px;
  --oh-ant-font-weight-strong: 600;
  --oh-ant-font-weight-normal: 400;
}
