/* ============================================================================
   有课法考 · 全站唯一排印规范（single source of truth）
   依据：outputs/dsh-closeout-review-20260913/当前新版全站排印与页面衔接整改方案.md §5.1 / §5.2 / §6
   机制：本文件由公共壳在 </head> 末尾统一注入，全站仅此一份，不在各模块目录复制。
   本批范围：T0 公共顶栏 / 侧栏 / 底栏 / 移动导航 / 登录外壳。
   后续各组按角色接入时只引用本文件的变量与角色类，不再各自写临时字号。
   —— 禁止事项（方案 §8.C）：不使用 * 通配改字号、不做整页 zoom/transform、
      不机械减 px、不为生效堆 !important。
   ============================================================================ */

:root {
  /* 字族：与现网实际命中一致（实测 Noto Sans SC），未真实提供者不写进首位 */
  --yk-font-ui: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;

  /* 字号角色（默认 16px 根字号；手机在小屏覆盖） */
  --yk-type-page: 1.75rem;      /* 28 页面主标题 */
  --yk-type-section: 1.25rem;   /* 20 一级板块 */
  --yk-type-card: 1.125rem;     /* 18 二级卡片 */
  --yk-type-item: 1rem;         /* 16 列表项/三级 */
  --yk-type-nav: 1rem;          /* 16 侧栏栏目 */
  --yk-type-question: 1.125rem; /* 18 题干 */
  --yk-type-body: 1rem;         /* 16 正文/选项/解析 */
  --yk-type-control: 1rem;      /* 16 按钮 */
  --yk-type-dense: .875rem;     /* 14 工具栏/密集表格 */
  --yk-type-meta: .875rem;      /* 14 辅助说明/面包屑/状态 */
  --yk-type-micro: .75rem;      /* 12 极次要元数据 */
  --yk-type-tabbar: .75rem;     /* 12 手机底部导航标签 */
  --yk-type-kpi: 2rem;          /* 32 指标数字 */

  --yk-line-heading: 1.35;
  --yk-line-ui: 1.5;
  --yk-line-reading: 1.75;
  --yk-line-tabbar: 1.25;

  /* 字重收敛到 400/500/600/700（现网存在 520/800 等合成值） */
  --yk-weight-body: 400;
  --yk-weight-nav: 500;
  --yk-weight-nav-on: 600;
  --yk-weight-title: 600;
  --yk-weight-page: 700;
  --yk-weight-kpi: 700;

  /* 颜色角色（不把整段正文染成品牌色） */
  --yk-ink-title: #12333d;
  --yk-ink-body: #2b4149;
  --yk-ink-meta: #6b8391;
  --yk-ink-brand: #0b7775;

  /* 间距角色（方案 §6） */
  --yk-gap-title: 14px;   /* 标题下 12—16 */
  --yk-gap-section: 24px; /* 一级板块间 24 */
  --yk-gap-card: 18px;    /* 卡片内 16—20 */
  --yk-gap-list: 10px;    /* 紧密列表 8—12 */
}

@media (max-width: 767px) {
  :root {
    --yk-type-page: 1.5rem;      /* 24 */
    --yk-type-section: 1.125rem; /* 18 */
    --yk-type-card: 1.0625rem;   /* 17 */
    --yk-type-question: 1.0625rem;
    --yk-type-kpi: 1.75rem;      /* 28 */
  }
}

/* ---------------------------------------------------------------------------
   T0 公共壳（顶栏 / 侧栏 / 底栏 / 移动导航 / 登录外壳）
   作用域限定在 .yk-shell 与登录外壳内；不波及 DOCX iframe、课件画面、
   编辑器中的保真原件与学员既有富文本。
   --------------------------------------------------------------------------- */
.yk-shell { font-family: var(--yk-font-ui); }

/* 顶栏 */
.yk-shell header.yk-header .yk-brand b {
  /* 品牌名属展示域，§5.1 角色表未定义该角色，因此不擅自改字号：
     保持原有 26px 比例，仅做有依据的字重收敛（800 -> 700，§5.2 要求收敛到 400/500/600/700）。 */
  font-size: 1.625rem;                /* 26px，与原值一致 */
  font-weight: var(--yk-weight-page);
  line-height: var(--yk-line-heading);
}
.yk-shell header.yk-header .yk-brand-tagline {
  font-size: var(--yk-type-meta);     /* 15 -> 14，取消临时值 */
  font-weight: var(--yk-weight-body);
  line-height: var(--yk-line-ui);
}
.yk-shell header.yk-header .yk-header-link,
.yk-shell .yk-public-nav a {
  font-size: var(--yk-type-nav);      /* 14 -> 16，栏目文字与侧栏同级 */
  font-weight: var(--yk-weight-nav);
  line-height: var(--yk-line-ui);
}
.yk-shell header.yk-header .yk-header-link.is-on,
.yk-shell .yk-public-nav a.is-on { font-weight: var(--yk-weight-nav-on); }
.yk-shell header.yk-header .yk-account {
  font-size: var(--yk-type-meta);
  font-weight: var(--yk-weight-body);
  line-height: var(--yk-line-ui);
}

/* 侧栏栏目：16 / 500，选中 600，行高 1.5 */
.yk-shell aside.yk-sidebar a {
  font-size: var(--yk-type-nav);
  font-weight: var(--yk-weight-nav);  /* 520 -> 500 */
  line-height: var(--yk-line-ui);     /* 19.2px(1.2) -> 24px(1.5) */
}
.yk-shell aside.yk-sidebar a[aria-current="page"],
.yk-shell aside.yk-sidebar a.is-on,
.yk-shell aside.yk-sidebar a.on { font-weight: var(--yk-weight-nav-on); }
.yk-shell aside.yk-sidebar h2,
.yk-shell aside.yk-sidebar .yk-sidebar-title {
  font-size: var(--yk-type-micro);
  font-weight: var(--yk-weight-nav);
  line-height: var(--yk-line-ui);
}

/* 页脚 */
.yk-shell .yk-app-footer,
.yk-shell .yk-app-footer a {
  font-size: var(--yk-type-meta);     /* 13 -> 14 */
  font-weight: var(--yk-weight-body);
  line-height: var(--yk-line-ui);
}

/* 移动导航：12 / 500，选中 600，行高 1.25 */
.yk-shell .yk-mobile-nav a,
.yk-shell nav.yk-mobile-nav a {
  font-size: var(--yk-type-tabbar);   /* 16 -> 12，方案 §5.1 明确 */
  font-weight: var(--yk-weight-nav);  /* 520 -> 500 */
  line-height: var(--yk-line-tabbar);
}
.yk-shell .yk-mobile-nav a[aria-current="page"],
.yk-shell .yk-mobile-nav a.is-on,
.yk-shell .yk-mobile-nav a.on { font-weight: var(--yk-weight-nav-on); }

/* 登录外壳（方案 §8.E：登录页不能当教师页验收，但它自身也须合规） */
body.login h1, body.login h2, body.login p, body.login label,
body.login input, body.login button {
  font-family: var(--yk-font-ui);
}
body.login h1 {
  font-size: var(--yk-type-page);
  font-weight: var(--yk-weight-page);
  line-height: var(--yk-line-heading);
}
body.login h2 {
  font-size: var(--yk-type-section);
  font-weight: var(--yk-weight-title);
  line-height: var(--yk-line-ui);
}
body.login p, body.login label, body.login input {
  font-size: var(--yk-type-body);
  line-height: var(--yk-line-reading);
}
body.login button {
  font-size: var(--yk-type-control);
  font-weight: var(--yk-weight-title);
  line-height: var(--yk-line-ui);
}

/* Unified functional page heading, first main h1 only; DOCX body typography is preserved. */
body.yk-shell main h1[data-yk-page-title]{font-family:var(--yk-font-ui);font-size:var(--yk-type-page);font-weight:var(--yk-weight-page);line-height:var(--yk-line-heading);color:var(--yk-ink-title);margin-top:0;margin-bottom:12px;letter-spacing:0}
.yk-shell .qa58.qa-thread .qa-thread-title h1[data-yk-page-title]{font-size:var(--yk-type-page);color:var(--yk-ink-title);margin-bottom:12px}
