/* AI课题 2026-10 组件与外壳。依赖 style.css 的变量。
   既有 .btn / .card / h1 不在这里改，新界面用 .ui-* 与 .t-*。 */

/* ── 14 个文字样式（Figma 文字样式，不改现站正文行高） ── */
.t-display-xl{font-family:var(--serif);font-size:56px;font-weight:700;line-height:72px;letter-spacing:-1px}
.t-display-lg{font-family:var(--serif);font-size:40px;font-weight:700;line-height:54px;letter-spacing:-0.5px}
.t-display-h5{font-family:var(--serif);font-size:30px;font-weight:700;line-height:42px}
.t-h1{font-family:var(--serif);font-size:32px;font-weight:600;line-height:44px}
.t-h2{font-family:var(--serif);font-size:26px;font-weight:600;line-height:36px}
.t-h3{font-family:var(--sans);font-size:20px;font-weight:700;line-height:30px}
.t-h4{font-family:var(--sans);font-size:17px;font-weight:500;line-height:26px}
.t-body-lg{font-family:var(--sans);font-size:17px;font-weight:400;line-height:30px}
.t-body{font-family:var(--sans);font-size:16px;font-weight:400;line-height:28px}
.t-body-sm{font-family:var(--sans);font-size:14px;font-weight:400;line-height:22px}
.t-label{font-family:var(--sans);font-size:14px;font-weight:500;line-height:20px}
.t-label-sm{font-family:var(--sans);font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px}
.t-num-lg{font-family:var(--serif);font-size:44px;font-weight:700;line-height:52px;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.t-num{font-family:var(--serif);font-size:28px;font-weight:700;line-height:36px;font-variant-numeric:tabular-nums}

.ui-icon{display:block;flex-shrink:0}

/* ── 按钮：主要 / 次要 / 文字 × 大中小 × 默认焦点禁用加载 ── */
.ui-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);
  border:1px solid transparent;border-radius:var(--radius-md);
  font-family:var(--sans);font-weight:500;text-decoration:none;cursor:pointer;
  background:transparent;color:var(--color-text-link);line-height:1;
  max-width:100%;
}
.ui-btn-primary{background:var(--color-brand-seal);color:var(--color-text-on-brand)}
.ui-btn-primary:hover{background:var(--color-brand-seal-deep);color:var(--color-text-on-brand)}
.ui-btn-secondary{background:var(--color-bg-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}
.ui-btn-secondary:hover{background:var(--color-bg-seal-tint);color:var(--color-text-primary)}
.ui-btn-text{color:var(--color-text-link)}
.ui-btn-text:hover{color:var(--color-brand-seal-deep)}
.ui-btn-lg{padding:var(--space-3) var(--space-6);font-size:17px;line-height:26px;min-height:48px}
.ui-btn-md{padding:var(--space-2) var(--space-5);font-size:15px;line-height:20px;min-height:44px}
.ui-btn-sm{padding:var(--space-1) var(--space-3);font-size:12px;line-height:18px;letter-spacing:.2px;gap:var(--space-1)}
.ui-btn-text.ui-btn-lg{padding:var(--space-3) var(--space-1)}
.ui-btn-text.ui-btn-md{padding:var(--space-2) var(--space-1)}
.ui-btn-text.ui-btn-sm{padding:var(--space-1)}
.ui-btn.is-block{width:100%}
.ui-btn:focus{outline:none}
.ui-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info)}
.ui-btn:disabled,.ui-btn.is-disabled{opacity:.4;cursor:not-allowed;pointer-events:none}
.ui-btn.is-loading{opacity:.85;cursor:progress;pointer-events:none}
.ui-spin{
  width:18px;height:18px;border-radius:50%;flex-shrink:0;
  border:2px solid currentColor;border-right-color:transparent;
  animation:ui-spin .7s linear infinite;
}
.ui-btn-sm .ui-spin{width:14px;height:14px}
@keyframes ui-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ui-spin{animation:none;border-right-color:currentColor}}

/* ── 标签 ── */
.ui-tag{
  display:inline-flex;align-items:center;padding:2px var(--space-2);
  border-radius:var(--radius-sm);font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;
  border:1px solid transparent;background:var(--color-brand-seal-soft);color:var(--color-brand-seal);
}
.ui-tag-gold{background:transparent;border-color:var(--color-brand-gold);color:var(--color-text-gold)}
.ui-tag-success{background:var(--color-status-success-soft);color:var(--color-text-success)}
.ui-tag-warning{background:var(--color-status-warning-soft);color:var(--color-text-warning)}
.ui-tag-info{background:var(--color-status-info-soft);color:var(--color-status-info)}
.ui-tag-neutral{background:var(--color-bg-sunken);color:var(--color-text-secondary)}

/* ── 卡片与条目 ── */
.ui-stat{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.ui-stat b{font-family:var(--serif);font-size:44px;font-weight:700;line-height:52px;letter-spacing:-.5px;color:var(--color-text-primary);font-variant-numeric:tabular-nums}
.ui-stat span{font-size:14px;line-height:22px;color:var(--color-text-muted)}

.ui-section{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);min-width:0}
.ui-section-copy{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
/* 小节说明放在标题下面、灰色小字：标题统一是带红竖条的宋体（见文件末「全站标题统一」） */
.ui-section-eyebrow{order:2;margin:0;font-size:14px;font-weight:400;line-height:22px;color:var(--color-text-muted)}
.ui-section-title{margin:0}
/* 改版页面卡片里的 h2（个人中心卡片标题等）不要旧版红竖标；页面标题 h1 与小节标题 .ui-section-title 照常带。 */
.rd h2:not(.ui-section-title){padding-left:0}
.rd h2:not(.ui-section-title)::before{display:none}
.ui-section-link{display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0;font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-link)}

.ui-notice,.ui-entry,.ui-value,.ui-topic,.ui-training,.ui-apply,.ui-myapply,.ui-eligibility,.ui-miniapp,.ui-continue{
  background:var(--color-bg-surface);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);
  min-width:0;max-width:100%;
}
.ui-notice,.ui-entry,.ui-topic{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6)}
.ui-entry{gap:var(--space-4)}
.ui-topic{gap:var(--space-4)}
.ui-notice-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.ui-notice time,.ui-muted{color:var(--color-text-muted);font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px}
.ui-notice h3,.ui-training h3,.ui-topic h3{margin:0;font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary)}
.ui-notice p,.ui-entry p,.ui-value p,.ui-topic p{margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-entry p,.ui-value p{font-size:16px;line-height:28px}
.ui-entry h3,.ui-value h3{margin:0;font-size:20px;font-weight:700;line-height:30px;color:var(--color-text-primary)}
.ui-icon-tile{
  width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-bg-seal-tint);
  display:flex;align-items:center;justify-content:center;color:var(--color-brand-seal);flex-shrink:0;
}
.ui-icon-tile-sm{width:44px;height:44px}

.ui-value{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-8) var(--space-6)}
.ui-value .ui-index{margin:0;font-family:var(--serif);font-size:28px;font-weight:700;line-height:36px;color:var(--color-brand-gold)}

.ui-bar{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.ui-bar-row{display:flex;justify-content:space-between;gap:var(--space-3);font-size:16px;line-height:28px;color:var(--color-text-primary)}
.ui-bar-row b{font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-secondary)}
.ui-bar-track{height:8px;border-radius:0;background:var(--color-bg-sunken);overflow:hidden}
.ui-bar-fill{display:block;height:100%;border-radius:0;background:var(--color-data-1);width:0}
.ui-bar-fill[data-tone="2"]{background:var(--color-data-2)}
.ui-bar-fill[data-tone="3"]{background:var(--color-data-3)}
.ui-bar-fill[data-tone="4"]{background:var(--color-data-4)}

.ui-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.ui-topic-meta{display:flex;flex-direction:column;gap:var(--space-1);font-size:14px;line-height:22px}
.ui-topic-meta .sub{color:var(--color-text-secondary)}
.ui-topic-meta .muted{color:var(--color-text-muted)}
.ui-split{height:1px;background:var(--color-border-default);border:0;margin:0}
.ui-topic-foot,.ui-row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
/* 卡片底部左侧说明文字较长时，右侧动作按钮不能被挤成一字一行 */
.ui-topic-foot > .ui-btn,.ui-row-between > .ui-btn,.ui-topic-foot > a:last-child{flex-shrink:0;white-space:nowrap}

.ui-training{display:flex;gap:var(--space-6);align-items:flex-start;padding:var(--space-6)}
.ui-training-date{
  width:112px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);
  padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-bg-seal-tint);text-align:center;
}
.ui-training-date .k{font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;color:var(--color-brand-seal)}
.ui-training-date .d{font-size:20px;font-weight:700;line-height:30px;color:var(--color-brand-seal-deep)}
.ui-training-date .t{font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;color:var(--color-text-muted)}
.ui-training-body{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;flex:1}

.ui-journey{display:flex;flex-direction:column;gap:var(--space-3);width:min(100%,180px)}
.ui-journey-no{
  width:44px;height:44px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;
  border:1.5px solid var(--color-border-strong);background:var(--color-bg-surface);
  font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-muted);
}
.ui-journey[data-state="current"] .ui-journey-no{border-color:var(--color-brand-seal);color:var(--color-brand-seal)}
.ui-journey[data-state="done"] .ui-journey-no{background:var(--color-brand-seal);border-color:var(--color-brand-seal);color:var(--color-text-on-brand)}
.ui-journey h3{margin:0;font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary)}
.ui-journey p{margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}

/* ── 筛选与搜索 ── */
.ui-filter{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:0 var(--space-4);border-radius:var(--radius-md);
  border:1px solid var(--color-border-strong);background:var(--color-bg-surface);
  color:var(--color-text-secondary);font-size:14px;font-weight:500;line-height:20px;text-decoration:none;
}
.ui-filter.is-on,.ui-filter[aria-pressed="true"]{background:var(--color-brand-seal);border-color:var(--color-brand-seal);color:var(--color-text-on-brand)}
.ui-filter:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info)}
.ui-search{display:flex;align-items:center;gap:var(--space-2);min-height:48px;padding:0 var(--space-3) 0 var(--space-4);
  border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);min-width:0;position:relative}
.ui-search input{
  flex:1;min-width:0;border:0;background:transparent;font:16px/28px var(--sans);color:var(--color-text-primary);padding:8px 0;
}
.ui-search input:focus{outline:none}
.ui-search:focus-within{box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info)}

/* ── 申报 ── */
.ui-apply,.ui-myapply,.ui-eligibility{border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}
.ui-apply-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.ui-apply-head h3,.ui-myapply h3,.ui-eligibility h3{margin:0;font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary)}
.ui-deadline{margin:0;font-family:var(--serif);font-size:26px;font-weight:600;line-height:36px;color:var(--color-text-primary)}
.ui-countdown{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}
.ui-countdown b{font-family:var(--serif);font-size:32px;font-weight:600;line-height:44px;color:var(--color-brand-seal)}
.ui-countdown span,.ui-apply .note{font-size:14px;line-height:22px;color:var(--color-text-muted)}
.ui-apply .note,.ui-myapply .note,.ui-eligibility .note{margin:0}
.ui-apply .body,.ui-myapply .body{margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-apply.is-closed .lead{margin:0;font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary)}
.ui-steps{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}
.ui-steps li{display:flex;gap:var(--space-3);align-items:flex-start}
.ui-step-no{
  width:28px;height:28px;border-radius:var(--radius-pill);background:var(--color-bg-seal-tint);color:var(--color-brand-seal);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:500;letter-spacing:.2px;
}
.ui-steps b{display:block;font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-primary)}
.ui-steps span{display:block;font-size:14px;line-height:22px;color:var(--color-text-muted)}
.ui-record{background:var(--color-bg-sunken);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}
.ui-record h4{margin:0;font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-primary)}
.ui-progress{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);margin:0;padding:0;list-style:none}
.ui-progress li{display:flex;align-items:center;gap:var(--space-1);font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;color:var(--color-text-muted)}
.ui-progress li.is-done,.ui-progress li.is-current{color:var(--color-text-primary)}
.ui-dot{width:10px;height:10px;border-radius:50%;background:var(--color-border-strong);flex-shrink:0}
.ui-progress .is-done .ui-dot{background:var(--color-text-success)}
.ui-progress .is-current .ui-dot{background:var(--color-brand-seal)}
.ui-progress .link{width:16px;height:1.5px;background:var(--color-border-strong)}
.ui-record .status{margin:0;font-size:14px;font-weight:500;line-height:20px;color:var(--color-brand-seal)}
/* 选路行（版式规则 V1.1）：公文目录式，不画框，行间细线；图标退成细线小图标。 */
.ui-path{
  display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-2);
  border:0;border-bottom:1px solid var(--color-border-strong);border-radius:0;background:transparent;
  color:inherit;text-decoration:none;min-height:44px;min-width:0;
}
.ui-path:hover{background:var(--color-bg-sunken)}
.ui-path:hover strong{color:var(--color-brand-seal)}
.ui-path .ui-icon-tile{background:transparent;border:1px solid var(--color-border-strong)}
.ui-path-copy{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}
.ui-path-copy .eye{font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-gold)}
.ui-path-copy strong{font-family:var(--serif);font-size:18px;font-weight:700;line-height:28px;color:var(--color-text-primary)}
.ui-path-copy span{font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-eligibility-items{display:flex;gap:var(--space-6);margin:0;padding:0;list-style:none}
.ui-eligibility.is-vertical .ui-eligibility-items{flex-direction:column}
.ui-eligibility-items li{display:flex;gap:var(--space-3);flex:1;min-width:0;color:var(--color-brand-seal)}
.ui-eligibility-items b{display:block;font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-primary)}
.ui-eligibility-items span{display:block;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-save{
  display:inline-flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);
  border-radius:var(--radius-sm);background:var(--color-bg-sunken);color:var(--color-text-muted);
  font-size:14px;font-weight:500;line-height:20px;
}
.ui-save.is-saved{color:var(--color-text-success)}
.ui-save.is-failed{background:var(--color-status-warning-soft);color:var(--color-text-warning)}
.ui-save a{color:inherit;font-weight:500}

/* ── 参与须知：分栏细线版（首页用）。不画框、不放图标，四项之间用金色竖线分开。 ── */
.ui-eligibility.is-ruled{background:transparent;border:0;border-radius:0;padding:0;gap:var(--space-4)}
.ui-eligibility.is-ruled .ui-apply-head{padding-bottom:var(--space-3);border-bottom:1px solid var(--color-text-primary)}
.ui-eligibility.is-ruled .ui-apply-head h3{font-family:var(--serif);font-size:22px;font-weight:700;line-height:1.35;padding-left:14px;position:relative}
.ui-eligibility.is-ruled .ui-apply-head h3::before{content:"";position:absolute;left:0;top:.18em;bottom:.18em;width:4px;background:var(--color-brand-seal)}
.ui-eligibility.is-ruled .ui-eligibility-items{gap:0}
.ui-eligibility.is-ruled .ui-eligibility-items li{padding:0 var(--space-5);border-left:1px solid var(--color-border-strong)}
.ui-eligibility.is-ruled .ui-eligibility-items li:first-child{padding-left:0;border-left:0}
.ui-eligibility.is-ruled .ui-eligibility-items li > .ui-icon{display:none}
.ui-eligibility.is-ruled .ui-eligibility-items b{font-family:var(--serif);font-size:17px;font-weight:700;line-height:26px;margin-bottom:var(--space-2)}
.ui-eligibility.is-ruled .ui-eligibility-items span{font-size:15px;line-height:1.7}

/* ── 公文目录式列表（首页计划近况、公示公告）：左列宋体日期，中间标题与一行摘要，右侧细箭头，行间细线。 ── */
.ui-doclist{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-border-default)}
.ui-doclist li{border-bottom:1px solid var(--color-border-default)}
.ui-doclist a{
  display:grid;grid-template-columns:112px minmax(0,1fr) auto;column-gap:var(--space-6);align-items:baseline;
  padding:var(--space-4) var(--space-2);color:inherit;text-decoration:none;min-height:44px;
}
.ui-doclist a:hover{background:var(--color-bg-sunken)}
.ui-doclist a:hover .ui-doclist-title{color:var(--color-brand-seal)}
.ui-doclist time{font-family:var(--serif);font-size:15px;line-height:26px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}
.ui-doclist-body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}
.ui-doclist-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}
.ui-doclist-title{font-family:var(--serif);font-size:17px;font-weight:700;line-height:26px;color:var(--color-text-primary)}
.ui-doclist-brief{margin:0;font-size:15px;line-height:1.7;color:var(--color-text-secondary)}
.ui-doclist-go{font-size:14px;color:var(--color-text-gold);white-space:nowrap}
@media(max-width:640px){
  /* 比文末手机点击区规则（li>a 变 inline-flex）权重高一级，保持网格。 */
  main .ui-doclist li > a{display:grid;grid-template-columns:minmax(0,1fr);row-gap:var(--space-1);padding:var(--space-3) 0}
  .ui-doclist time{font-size:13px;line-height:20px;order:-1}
  .ui-doclist-title{font-size:16px;line-height:24px}
  .ui-doclist-brief{font-size:14px;line-height:22px}
  .ui-doclist-go{display:none}
}

/* ── 立项徽记：金色 1px 细框、不倾斜、无印泥纹理，不模仿公章（与结业证书的规矩一致）。每页最多一枚。 ── */
.ui-mark{
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  padding:var(--space-4) var(--space-6);border:1px solid var(--color-brand-gold);background:var(--color-bg-surface);
  font-family:var(--serif);color:var(--color-text-gold);text-align:center;
}
.ui-mark b{font-size:22px;font-weight:700;line-height:30px;letter-spacing:.06em}
.ui-mark span{font-size:14px;line-height:20px;letter-spacing:.12em}

/* ── 小程序 ── */
.ui-qr{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);width:min(100%,160px);flex:0 0 auto;margin:0}  /* figure 默认左右 40px 外边距会把文字栏挤窄 */
.ui-qr img{width:160px;height:160px;object-fit:cover;border-radius:var(--radius-md);background:var(--color-bg-surface)}
.ui-qr figcaption{margin:0;font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;color:var(--color-text-muted);text-align:center}
.ui-miniapp{display:flex;gap:var(--space-6);align-items:center;padding:var(--space-6);border-radius:var(--radius-xl)}
.ui-miniapp:not(.is-vertical) .ui-qr{width:128px;flex:0 0 128px}
.ui-miniapp:not(.is-vertical) .ui-qr img{width:128px;height:128px}
.ui-miniapp.is-vertical{
  flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);
}
.ui-miniapp.is-vertical .ui-qr{width:120px;flex:0 0 120px}
.ui-miniapp.is-vertical .ui-qr img{width:120px;height:120px}
.ui-miniapp.is-vertical h3{text-align:center;width:100%}
.ui-miniapp-copy{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-3);min-width:0}
.ui-miniapp-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);width:100%}
.ui-miniapp-points li{display:flex;gap:var(--space-2);align-items:flex-start;min-width:0}
.ui-miniapp-points .ui-icon{color:var(--color-brand-seal);margin-top:3px}
.ui-miniapp-points span{flex:1 1 auto;min-width:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-miniapp-note{margin:0;font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-gold)}
.ui-miniapp-caption{margin:0;width:100%;text-align:center;font-size:14px;font-weight:400;line-height:22px;color:var(--color-text-muted)}
.ui-miniapp h3,.ui-continue h3{margin:0;font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary)}
.ui-miniapp p,.ui-continue p{margin:0;font-size:14px;line-height:22px;color:var(--color-text-secondary)}
.ui-sub{
  display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);
  border:1px solid var(--color-border-default);border-radius:var(--radius-md);background:var(--color-bg-surface);min-width:0;
}
.ui-sub-copy{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;flex:1}
.ui-sub-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.ui-sub-head b{font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-primary)}
.ui-sub p{margin:0;font-size:14px;line-height:22px;color:var(--color-text-muted)}
.ui-signal{
  display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);
  border-radius:var(--radius-md);background:var(--color-bg-seal-tint);color:var(--color-text-primary);
  font-size:14px;line-height:22px;min-width:0;
}
.ui-signal.is-general{background:var(--color-bg-sunken)}
.ui-continue{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}

/* ── 外壳：导航 / 页脚 / 底部标签栏 ── */
.site-head{background:var(--color-bg-surface);border-bottom:0;padding:0;box-shadow:none;position:relative;z-index:30}
/* 红头双线（版式规则 V1.1）：2px 印章红、3px 间隙、1px 金线，像红头文件的抬头线。 */
.site-head::after{content:"";display:block;height:6px;box-sizing:border-box;border-top:2px solid var(--color-brand-seal);border-bottom:1px solid var(--color-brand-gold)}
.site-head-inner{
  max-width:1200px;margin:0 auto;padding:0 16px;min-height:76px;
  display:flex;align-items:center;gap:var(--space-6);position:relative;flex-wrap:nowrap;
}
.site-head .brand{display:flex;align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;min-width:0;flex:0 1 auto;order:1}
.brand-mark{
  width:40px;height:40px;border-radius:var(--radius-md);background:var(--color-brand-seal);color:var(--color-text-on-brand);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  font-family:var(--serif);font-weight:600;font-size:18px;line-height:36px;
}
.brand-text{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.site-head .brand-main{
  font-family:var(--sans);font-size:17px;font-weight:500;line-height:26px;letter-spacing:0;color:var(--color-text-primary);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.site-head .brand-sub{
  font-size:12px;line-height:18px;letter-spacing:.2px;color:var(--color-text-muted);margin-top:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.site-head .nav{order:2;flex:1 1 auto;min-width:0}
.site-head-tools{order:3;display:flex;align-items:center;gap:var(--space-3);margin-left:0;flex:0 0 auto;flex-shrink:0}
.nav-hint{order:4}
.site-icon-btn{
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;position:relative;
  color:var(--color-text-secondary);border-radius:var(--radius-md);text-decoration:none;flex-shrink:0;
}
.site-icon-btn:hover{color:var(--color-brand-seal);background:var(--color-bg-seal-tint)}
.site-icon-btn:focus-visible,.nav-toggle:focus-visible,.nav-menu-close:focus-visible,.nav-avatar:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info)}
.nav-dot{
  position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;
  background:var(--color-brand-seal);box-shadow:0 0 0 2px var(--color-bg-surface);pointer-events:none;
}
.nav-login,.nav-apply{flex-shrink:0;white-space:nowrap}
/* 页眉「打开小程序」（2026-10-18）：只在手机上出现，桌面一律隐藏。 */
.mini-nav{position:relative;display:inline-flex;align-items:center;flex-shrink:0;margin-right:var(--space-1)}
.mini-nav[hidden],.mini-nav [hidden]{display:none!important}
.mini-nav a,.mini-nav .mini-off{display:inline-flex;align-items:center;min-height:44px;color:var(--color-text-link);font-size:14px;font-weight:600;line-height:20px;text-decoration:none;white-space:nowrap}
.mini-nav .mini-off{color:var(--color-text-secondary);cursor:pointer}
.mini-nav.is-short{margin-right:0}
.mini-nav.is-short a,.mini-nav.is-short .mini-off{font-size:13px}
.mini-bubble{position:absolute;top:calc(100% + 4px);right:-6px;z-index:60;padding:6px 10px;border-radius:var(--radius-md);background:var(--color-brand-seal);color:#fff;font-size:12px;line-height:18px;white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.mini-bubble:before{content:'';position:absolute;top:-5px;right:18px;border:5px solid transparent;border-top:0;border-bottom-color:var(--color-brand-seal)}
@media(min-width:641px){.mini-nav{display:none!important}}
.nav-avatar{
  width:32px;height:32px;border-radius:var(--radius-pill);background:var(--color-brand-seal);color:var(--color-text-on-brand);
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;text-decoration:none;
  font-size:14px;font-weight:500;line-height:20px;
}
.nav-avatar:hover{color:var(--color-text-on-brand)}
.site-head .nav{display:flex;align-items:center;padding:8px 0;min-width:0}
.nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:8px var(--space-6);min-width:0;flex:1 1 auto}
.site-head .nav-links a{
  padding:6px 0;border-radius:0;background:transparent;color:var(--color-text-secondary);
  font-size:14px;font-weight:500;line-height:20px;text-decoration:none;white-space:nowrap;
}
.site-head .nav-links a.on,.site-head .nav-links a:hover{background:transparent;color:var(--color-brand-seal)}
.site-head .nav-links a:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info);border-radius:4px}
.site-head .nav-links a:last-child{margin-left:0}
.nav-links a::before,.nav-links a::after{content:none}
.nav-menu-bar,.nav-menu-foot{display:none}
.ui-sr,.nav-toggle-name{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
body.nav-open{overflow:hidden}

.site-foot{
  background:var(--color-bg-ink);border-top:0;color:var(--color-text-on-dark-muted);
  margin-top:60px;padding:var(--space-16) 0;
}
.site-foot .wrap{max-width:1200px}
.site-foot a{color:var(--color-text-on-dark-muted)}
.site-foot a:hover{color:var(--color-text-on-brand)}
.site-foot p{color:var(--color-text-on-dark-muted);font-size:14px;line-height:22px}
.foot-top{display:flex;justify-content:space-between;gap:var(--space-10);align-items:flex-start}
.foot-about{display:flex;flex-direction:column;gap:var(--space-4);max-width:420px}
.foot-brand{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-on-brand);font-size:17px;font-weight:500;line-height:26px;text-decoration:none}
.foot-about p{margin:0}
.foot-orgs{margin:0;display:flex;flex-direction:column;gap:var(--space-2);font-size:14px;line-height:22px}
.foot-orgs div{display:flex;flex-wrap:wrap;gap:0 var(--space-3)}
.foot-orgs dt{color:var(--color-text-on-brand);font-weight:500}
.foot-orgs dd{margin:0;min-width:0}
.foot-cols{display:flex;gap:var(--space-16)}
.foot-cols h2{margin:0 0 var(--space-3);padding:0;font-family:var(--sans);font-size:14px;font-weight:500;line-height:20px;color:var(--color-text-on-brand)}
.foot-cols h2::before{display:none}
.foot-cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.foot-cols a{font-size:14px;line-height:22px}
.foot-rule{height:1px;background:var(--color-border-on-dark);border:0;margin:var(--space-10) 0 var(--space-6)}
.site-foot .foot-help{font-size:12px;line-height:18px;letter-spacing:.2px}
.tabbar{display:none}

@media(min-width:1232px){
  .site-head-inner{padding:0}
}
@media(max-width:1180px) and (min-width:641px){
  .site-head-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-3);row-gap:0;align-items:center}
  .site-head .brand{grid-column:1;grid-row:1}
  .site-head-tools{grid-column:2;grid-row:1}
  .site-head .nav{grid-column:1 / -1;grid-row:2;padding-top:0;padding-bottom:8px}
}
@media(max-width:760px){
  .nav-apply{display:none}
}
@media(max-width:640px){
  .site-head-inner{min-height:56px;padding:8px 8px 8px 16px;display:flex;flex-wrap:nowrap;gap:var(--space-2)}
  .site-head .brand{order:1;flex:1;min-width:0}
  .site-head-tools{order:2;gap:0}
  .site-head .nav{order:3}
  .brand-mark{width:32px;height:32px;font-size:14px;line-height:1}
  .site-head .brand-main{font-size:17px;line-height:26px}
  .site-icon-btn{width:44px;height:44px}
  .nav-login,.nav-apply,.nav-avatar{display:none}
  .site-head .nav{
    display:none;position:fixed;z-index:50;left:0;right:0;bottom:0;top:var(--nav-panel-top,56px);
    flex-direction:column;align-items:stretch;gap:0;padding:0;margin:0;
    background:var(--color-bg-surface);overflow:hidden;
  }
  body.nav-open .site-head .nav{display:flex}
  .nav-menu-bar{
    display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;
    padding:8px 16px;border-bottom:1px solid var(--color-border-default);
  }
  .nav-menu-title{margin:0;font-family:var(--sans);font-size:20px;font-weight:700;line-height:30px;color:var(--color-text-primary)}
  .nav-menu-close{
    width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;
    color:var(--color-text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  }
  .nav-links{
    flex:1 1 auto;flex-direction:column;align-items:stretch;gap:0;overflow:auto;
    padding:8px 16px;min-height:0;
  --nav-svg-home:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M15%2021V13C15%2012.7348%2014.8946%2012.4804%2014.7071%2012.2929C14.5196%2012.1054%2014.2652%2012%2014%2012H10C9.73478%2012%209.48043%2012.1054%209.29289%2012.2929C9.10536%2012.4804%209%2012.7348%209%2013V21'/%3E%3Cpath%20d='M3%2010C2.99993%209.70907%203.06333%209.42162%203.18579%209.15772C3.30824%208.89381%203.4868%208.6598%203.709%208.472L10.709%202.473C11.07%202.16791%2011.5274%202.00052%2012%202.00052C12.4726%202.00052%2012.93%202.16791%2013.291%202.473L20.291%208.472C20.5132%208.6598%2020.6918%208.89381%2020.8142%209.15772C20.9367%209.42162%2021.0001%209.70907%2021%2010V19C21%2019.5304%2020.7893%2020.0391%2020.4142%2020.4142C20.0391%2020.7893%2019.5304%2021%2019%2021H5C4.46957%2021%203.96086%2020.7893%203.58579%2020.4142C3.21071%2020.0391%203%2019.5304%203%2019V10Z'/%3E%3C/svg%3E");
  --nav-svg-book:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%207V21'/%3E%3Cpath%20d='M3%2018C2.73478%2018%202.48043%2017.8946%202.29289%2017.7071C2.10536%2017.5196%202%2017.2652%202%2017V4C2%203.73478%202.10536%203.48043%202.29289%203.29289C2.48043%203.10536%202.73478%203%203%203H8C9.06087%203%2010.0783%203.42143%2010.8284%204.17157C11.5786%204.92172%2012%205.93913%2012%207C12%205.93913%2012.4214%204.92172%2013.1716%204.17157C13.9217%203.42143%2014.9391%203%2016%203H21C21.2652%203%2021.5196%203.10536%2021.7071%203.29289C21.8946%203.48043%2022%203.73478%2022%204V17C22%2017.2652%2021.8946%2017.5196%2021.7071%2017.7071C21.5196%2017.8946%2021.2652%2018%2021%2018H15C14.2044%2018%2013.4413%2018.3161%2012.8787%2018.8787C12.3161%2019.4413%2012%2020.2044%2012%2021C12%2020.2044%2011.6839%2019.4413%2011.1213%2018.8787C10.5587%2018.3161%209.79565%2018%209%2018H3Z'/%3E%3C/svg%3E");
  --nav-svg-file:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M15%202H6C5.46957%202%204.96086%202.21071%204.58579%202.58579C4.21071%202.96086%204%203.46957%204%204V20C4%2020.5304%204.21071%2021.0391%204.58579%2021.4142C4.96086%2021.7893%205.46957%2022%206%2022H18C18.5304%2022%2019.0391%2021.7893%2019.4142%2021.4142C19.7893%2021.0391%2020%2020.5304%2020%2020V7L15%202Z'/%3E%3Cpath%20d='M14%202V6C14%206.53043%2014.2107%207.03914%2014.5858%207.41421C14.9609%207.78929%2015.4696%208%2016%208H20'/%3E%3Cpath%20d='M16%2013H8'/%3E%3Cpath%20d='M16%2017H8'/%3E%3Cpath%20d='M10%209H8'/%3E%3C/svg%3E");
  --nav-svg-graduation:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M21.42%2010.922C21.599%2010.843%2021.7509%2010.7133%2021.8569%2010.5488C21.9629%2010.3843%2022.0184%2010.1924%2022.0163%209.99674C22.0143%209.80108%2021.9549%209.61032%2021.8456%209.44808C21.7362%209.28584%2021.5816%209.15926%2021.401%209.084L12.83%205.18C12.5694%205.06115%2012.2864%204.99964%2012%204.99964C11.7136%204.99964%2011.4306%205.06115%2011.17%205.18L2.60001%209.08C2.42198%209.15797%202.27053%209.28614%202.16418%209.44882C2.05783%209.6115%202.00119%209.80164%202.00119%209.996C2.00119%2010.1904%202.05783%2010.3805%202.16418%2010.5432C2.27053%2010.7059%202.42198%2010.834%202.60001%2010.912L11.17%2014.82C11.4306%2014.9389%2011.7136%2015.0004%2012%2015.0004C12.2864%2015.0004%2012.5694%2014.9389%2012.83%2014.82L21.42%2010.922Z'/%3E%3Cpath%20d='M22%2010V16'/%3E%3Cpath%20d='M6%2012.5V16C6%2016.7956%206.63214%2017.5587%207.75736%2018.1213C8.88258%2018.6839%2010.4087%2019%2012%2019C13.5913%2019%2015.1174%2018.6839%2016.2426%2018.1213C17.3679%2017.5587%2018%2016.7956%2018%2016V12.5'/%3E%3C/svg%3E");
  --nav-svg-calendar:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M19%204H5C3.89543%204%203%204.89543%203%206V20C3%2021.1046%203.89543%2022%205%2022H19C20.1046%2022%2021%2021.1046%2021%2020V6C21%204.89543%2020.1046%204%2019%204Z'/%3E%3Cpath%20d='M16%202V6'/%3E%3Cpath%20d='M8%202V6'/%3E%3Cpath%20d='M3%2010H21'/%3E%3C/svg%3E");
  --nav-svg-wrench:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M14.7%206.3C14.5168%206.48693%2014.4141%206.73825%2014.4141%207C14.4141%207.26175%2014.5168%207.51307%2014.7%207.7L16.3%209.3C16.4869%209.48323%2016.7382%209.58586%2017%209.58586C17.2617%209.58586%2017.513%209.48323%2017.7%209.3L21.47%205.53C21.9728%206.64119%2022.1251%207.87923%2021.9064%209.07915C21.6878%2010.2791%2021.1087%2011.3838%2020.2463%2012.2463C19.3838%2013.1087%2018.279%2013.6878%2017.0791%2013.9065C15.8792%2014.1251%2014.6412%2013.9728%2013.53%2013.47L6.61998%2020.38C6.22215%2020.7778%205.68259%2021.0013%205.11998%2021.0013C4.55737%2021.0013%204.0178%2020.7778%203.61998%2020.38C3.22215%2019.9822%202.99866%2019.4426%202.99866%2018.88C2.99866%2018.3174%203.22215%2017.7778%203.61998%2017.38L10.53%2010.47C10.0271%209.35881%209.87489%208.12077%2010.0935%206.92085C10.3121%205.72094%2010.8913%204.61616%2011.7537%203.75372C12.6161%202.89129%2013.7209%202.31217%2014.9208%202.09354C16.1207%201.87492%2017.3588%202.02716%2018.47%202.53L14.71%206.29L14.7%206.3Z'/%3E%3C/svg%3E");
  --nav-svg-bell:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M10.268%2021C10.4435%2021.304%2010.696%2021.5565%2011%2021.732C11.3041%2021.9075%2011.6489%2021.9999%2012%2021.9999C12.3511%2021.9999%2012.6959%2021.9075%2013%2021.732C13.304%2021.5565%2013.5565%2021.304%2013.732%2021'/%3E%3Cpath%20d='M3.262%2015.326C3.13137%2015.4692%203.04516%2015.6472%203.01386%2015.8385C2.98256%2016.0298%203.00752%2016.226%203.08571%2016.4034C3.1639%2016.5807%203.29194%2016.7316%203.45426%2016.8375C3.61658%2016.9434%203.80618%2016.9999%204%2017H20C20.1938%2017.0001%2020.3834%2016.9438%2020.5459%2016.8381C20.7083%2016.7324%2020.8365%2016.5817%2020.9149%2016.4045C20.9933%2016.2273%2021.0185%2016.0311%2020.9874%2015.8398C20.9564%2015.6485%2020.8704%2015.4703%2020.74%2015.327C19.41%2013.956%2018%2012.499%2018%208C18%206.4087%2017.3679%204.88258%2016.2426%203.75736C15.1174%202.63214%2013.5913%202%2012%202C10.4087%202%208.88258%202.63214%207.75736%203.75736C6.63214%204.88258%206%206.4087%206%208C6%2012.499%204.589%2013.956%203.262%2015.326Z'/%3E%3C/svg%3E");
  --nav-svg-chevron-right:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M9%2018L15%2012L9%206'/%3E%3C/svg%3E");
  }
  .site-head .nav-links a{
    display:flex;align-items:center;gap:var(--space-3);min-height:52px;height:52px;padding:0;
    border-bottom:1px solid var(--color-border-default);border-radius:0;
    font-size:17px;font-weight:500;line-height:26px;color:var(--color-text-primary);
  }
  .site-head .nav-links a:last-child{margin-left:0}
  .site-head .nav-links a::before{
    content:"";width:20px;height:20px;flex:0 0 20px;background:currentColor;
    -webkit-mask:var(--nav-glyph) center / contain no-repeat;mask:var(--nav-glyph) center / contain no-repeat;
  }
  .site-head .nav-links a::after{
    content:"";width:16px;height:16px;margin-left:auto;flex:0 0 16px;background:currentColor;
    -webkit-mask:var(--nav-svg-chevron-right) center / contain no-repeat;mask:var(--nav-svg-chevron-right) center / contain no-repeat;
  }
  .nav-links a[href="/"]{--nav-glyph:var(--nav-svg-home)}
  .nav-links a[href="/topics"]{--nav-glyph:var(--nav-svg-book)}
  .nav-links a[href="/plan"],.nav-links a[href="/apply"]{--nav-glyph:var(--nav-svg-file)}
  .nav-links a[href="/camps"]{--nav-glyph:var(--nav-svg-graduation)}
  .nav-links a[href="/weekly"]{--nav-glyph:var(--nav-svg-calendar)}
  .nav-links a[href="/tools"]{--nav-glyph:var(--nav-svg-wrench)}
  .nav-links a[href="/ai-resource"]{--nav-glyph:var(--nav-svg-book)}
  .nav-links a[href="/announcements"]{--nav-glyph:var(--nav-svg-bell)}
  .site-head .nav-links a.on{color:var(--color-brand-seal);font-weight:500}
  .nav-menu-foot{display:flex;flex-direction:column;gap:var(--space-3);flex:0 0 auto;padding:24px 16px}
  .site-head .nav-menu-foot a.ui-btn{
    display:flex;align-items:center;justify-content:center;min-height:0;padding:12px 24px;
    border:0;border-radius:var(--radius-md);background:var(--color-brand-seal);color:var(--color-text-on-brand);
    font-size:17px;font-weight:500;line-height:26px;text-decoration:none;
  }
  .site-head .nav-menu-foot a.ui-btn:hover{background:var(--color-brand-seal-deep);color:var(--color-text-on-brand)}
  .nav-menu-mail{margin:0;font-size:14px;font-weight:400;line-height:22px;color:var(--color-text-muted)}
  .site-head .nav-menu-mail a{
    display:inline;min-height:0;padding:0;border:0;background:transparent;color:var(--color-text-muted);
    font-size:14px;font-weight:400;line-height:22px;
  }
  .site-head .nav-menu-mail a::before,.site-head .nav-menu-mail a::after{content:none}
  .nav-toggle{display:inline-flex;width:44px;height:44px;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);justify-content:center}
  body.nav-open .nav-toggle{background:transparent;color:var(--color-brand-seal);border-color:transparent}
  body.nav-open .tabbar{display:none}  /* 菜单底部的登录按钮与邮箱不被标签栏盖住 */
  .foot-top,.foot-cols,.ui-training,.ui-eligibility-items,.ui-section,.ui-miniapp:not(.is-vertical){flex-direction:column;align-items:stretch}
  .ui-miniapp.is-vertical{flex-direction:column;align-items:center}
  .ui-training-date{width:auto}
  .foot-cols{gap:var(--space-6)}
  /* 页脚手机版压缩：全站一致（原先只写在首页样式里） */
  .site-foot{margin-top:16px;padding:24px 0 16px}
  .foot-top{gap:16px}
  .foot-about{gap:8px}
  .foot-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .foot-cols h2{margin-bottom:8px}
  .foot-cols ul{gap:0}
  .site-foot a{min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere}
  .foot-cols a{display:flex}
  .foot-orgs dd{display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
  .foot-orgs dd a{min-width:0;max-width:100%}
  .site-foot .foot-rule{margin:16px 0}
  .t-display-xl{font-size:40px;line-height:52px}
  .t-h1,.ui-stat b{font-size:28px;line-height:36px}
  .tabbar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;
    height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));box-sizing:border-box;
    background:var(--color-bg-surface);border-top:1px solid var(--color-border-default);
    padding:8px 12px calc(8px + env(safe-area-inset-bottom));
    justify-content:space-between;align-items:flex-start;
  }
  body:has(.tabbar){padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}
  .tabbar a{
    flex:1 1 0;min-width:0;max-width:72px;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:2px;
    color:var(--color-text-muted);font-size:12px;font-weight:500;line-height:18px;letter-spacing:.2px;text-decoration:none;
  }
  .tabbar a.on{color:var(--color-brand-seal)}
  .tabbar a:focus-visible{outline:none;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--color-status-info);border-radius:var(--radius-md)}
  .site-head,.site-foot,.tabbar,.site-head-inner{max-width:100%}
}
@media(max-width:640px){
  /* 比随后加载的页面容器规则多一个元素权重，避免再次叠加 width 收缩。 */
  body main.wrap:has(.rd){width:100%;max-width:none;padding-inline:16px}
  html:has(.tabbar){scroll-padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 16px)}
  .site-head-tools .site-icon-btn{width:44px;flex:0 0 44px}
}
.site-foot .foot-contact{margin:16px 0 0;overflow-wrap:anywhere}

/* ── 全站标题统一（2026-10-11 Harvey 定样式；2026-10-12 按版式规则 V1.1 定字号）──
   首页首屏大标题（.t-display-xl）、增长落地页大标题（.t-display-lg）、单场培训页标题（.co-title）、
   落地页完成提示（.lp-done）之外，每页的 h1 一律 28px、各页小节标题（.ui-section-title）22px，
   宋体粗体、左侧 4px 印章红竖条；手机 24px / 20px。页面里各自的字号覆盖不再生效。
   版心统一 1200px，与顶栏、页脚同一左边缘。 */
/* 正文左右留白跟顶栏一致：宽屏 0、其余 16px，左边缘与 logo 对齐 */
body main.wrap{max-width:1200px;padding-inline:16px}
@media(min-width:1232px){body main.wrap{padding-inline:0}}
body main h1:not(.t-display-xl):not(.t-display-lg):not(.co-title):not(.lp-done),
body main h2.ui-section-title{
  font-family:var(--serif);font-size:28px;font-weight:700;line-height:1.35;letter-spacing:.02em;
  color:var(--color-text-primary);padding-left:14px;position:relative;text-align:left;text-wrap:balance}
body main h1:not(.t-display-xl):not(.t-display-lg):not(.co-title):not(.lp-done)::before,
body main h2.ui-section-title::before{
  content:"";display:block;position:absolute;left:0;top:.18em;bottom:.18em;width:4px;
  border-radius:0;background:var(--seal)}
body main h2.ui-section-title{font-size:22px}
body main .res-read-body h1{font-size:17px;padding-left:0}
body main .res-read-body h1::before{display:none}
@media(max-width:640px){
  body main h1:not(.t-display-xl):not(.t-display-lg):not(.co-title):not(.lp-done){font-size:24px}
  body main h2.ui-section-title{font-size:20px}
}

/* ── 手机点击区（2026-10-11 全站检查）──
   独立的按钮、折叠标题、导航与列表里的单个链接、卡片标题链接，在手机上至少 44px 高；
   段落和表格里的行内文字链接不在此列。 */
@media(max-width:640px){
  main :is(button,.btn,.ui-btn,.mc-button,.mo-copy,.copy-button,.tm-mini){min-height:44px;box-sizing:border-box}
  main summary,main .th summary{min-height:44px;padding-block:10px;box-sizing:border-box}
  main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select){min-height:44px;box-sizing:border-box}
  main :is(nav,li,.kv-line,.b1-back,.mc-next-heading,.th-section-head,.mc-model-label)>a,
  main :is(h2,h3,h4)>a:only-child,
  main :is(.jpk-panel,.jpk-tool-grid) a,
  main :is(.mn-page,.note,.rd-meta)>a,main a.co-crumb,
  main :is(.mc-token-link,.tm-doc,.tm-mini,.jpk-brand){display:inline-flex;align-items:center;min-height:44px}
}
