:root {
  --folio-paper: var(--v3-paper);
  --folio-paper-2: var(--v3-paper);
  --folio-sheet: var(--v3-sheet);
  --folio-wash: var(--v3-sheet);
  --folio-ink: var(--v3-ink);
  --folio-ink-2: var(--v3-stone);
  --folio-rule: var(--v3-line);
  --folio-rule-strong: var(--v3-line-strong);
  /* 旧「印章红」在旧页面上大量用于报错文字和未读红点（26 处以上），映射到新版危险红，含义不丢 */
  --folio-seal: var(--v3-danger);
  --folio-blue: var(--v3-brand-soft);
  --folio-yellow: var(--v3-brand-soft);
  --folio-rose: var(--v3-brand-soft);
  --folio-green: var(--v3-brand-soft);
  --folio-chartreuse: var(--v3-tint);
  --folio-lilac: var(--v3-tint);
  --folio-orange: var(--v3-action);
  --folio-radius: var(--v3-radius-md);
  --folio-radius-pill: var(--v3-radius-pill);
  --paper: var(--v3-paper);
  --paper2: var(--v3-paper);
  --ink: var(--v3-ink);
  --ink2: var(--v3-stone);
  --rule: var(--v3-line);
  --coral: var(--v3-danger);
  color-scheme: light;
}

html, body {
  background-color: var(--v3-paper);
  color: var(--v3-ink);
  font-family: var(--v3-font);
}

body {
  background-image: radial-gradient(1100px 380px at 22% -80px, rgba(77,175,254,.12), transparent 62%), radial-gradient(800px 320px at 95% -60px, rgba(182,219,254,.22), transparent 60%);
  background-repeat: no-repeat;
  -webkit-font-smoothing: antialiased;
}

/* 旧 folio-theme.css 里从邮箱验证页抽出来的 body{padding:48px 16px} 没限定页面、套到了所有页面；换成新版的页面不要它 */
body.v3-page { padding: 0; }
/* 旧 folio-theme.css 给 main > section 加了 !important 的上下 112–148px 留白（首页旧版留下的），换成新版的页面不要 */
body.v3-page main:not(.studio-page) > section:not(.home-hero):not(#cta) { padding-top: 0 !important; padding-bottom: 0 !important; }

button, input, select, textarea { font-family: var(--v3-font); }
textarea { resize: none; }
html, body, body *, dialog { scrollbar-width: none; }
html::-webkit-scrollbar, body::-webkit-scrollbar, body *::-webkit-scrollbar, dialog::-webkit-scrollbar { display: none; }
::selection { background: var(--v3-tint); color: var(--v3-ink); }
/* 聚焦环画在元素里面，不会被带滚动的父元素裁掉。
   旧 folio-theme.css 的 button/a/input:focus-visible 是 1px「印章红」外扩 3px（印章红现映射为危险红），
   特异度比单写 :focus-visible 高，所以这里带上元素名再压一次 */
:focus-visible,
html :is(a, button, input, textarea, select, summary, [tabindex]):focus-visible { outline: 2px solid var(--v3-brand); outline-offset: -2px; }

.serif-title, .serif-display, .serif-small, .num-serif, .font-sans, .zh,
:lang(zh), :lang(en) { font-family: var(--v3-font) !important; }
.font-sans { letter-spacing: normal !important; }
/* 等宽字（安装命令、记录编号、代码）要压过上面那条对每个元素生效的 :lang 规则 */
.font-mono, .font-mono *,
:is(code, pre, kbd, samp):lang(zh), :is(code, pre, kbd, samp):lang(en) { font-family: var(--v3-font-mono) !important; }
.num-serif { font-variant-numeric: tabular-nums; }

.btn-coral, .btn-ink {
  border: 1px solid var(--v3-brand-soft) !important;
  border-radius: var(--v3-radius-md) !important;
  background: var(--v3-tint) !important;
  color: var(--v3-action) !important;
  box-shadow: none !important;
}
.btn-coral:hover, .btn-ink:hover {
  border-color: var(--v3-brand) !important;
  background: var(--v3-brand-soft) !important;
  color: var(--v3-action-press) !important;
}
.btn-coral:disabled, .btn-ink:disabled {
  border-color: transparent !important;
  background: var(--v3-sheet) !important;
  color: var(--v3-smoke) !important;
}

/* GEO：仅服务端写入的临时正文使用；createRoot 渲染后随节点一起移除。
   外栏参照 work/v3/work.css、legal/v3/legal.css 的 1200px / 24px，
   顶部补导航总高（72px 内容 + 1px 边线）；正文沿用 v3 的 15px 字号。
   不隐藏正文、不加淡入；所有选择器都限定在 .v3-pre 内。 */
.v3-pre {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px;
  min-width: 0;
  min-height: 60vh;
  margin: 0 auto;
  padding: calc(var(--folio-nav-h, 73px) + 28px) 24px 64px;
  color: var(--v3-ink);
  font-family: var(--v3-font);
  font-size: var(--v3-text-body);
  line-height: 1.9;
  overflow-wrap: anywhere;
}
.v3-pre *, .v3-pre *::before, .v3-pre *::after { box-sizing: border-box; min-width: 0; }
/* 压过旧主题 main > section 的 folio-rise，避免临时正文自己再播放入场。 */
.v3-pre, .v3-pre * { animation: none; transition: none; }
.v3-pre h1 {
  margin: 0 0 16px;
  font-size: min(var(--v3-text-heading), 30px);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0;
  color: var(--v3-ink);
}
.v3-pre h2 {
  margin: 0 0 12px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0;
  color: var(--v3-ink);
}
.v3-pre p { max-width: 760px; margin: 0 0 12px; }
.v3-pre .v3-pre-meta { margin-bottom: 20px; font-size: var(--v3-text-small); color: var(--v3-stone); }
.v3-pre a { color: var(--v3-action); text-decoration: none; }
.v3-pre a:hover { color: var(--v3-action-hover); text-decoration: underline; }
.v3-pre a:focus-visible { outline: 2px solid var(--v3-brand); outline-offset: -2px; }
.v3-pre .v3-pre-crumbs { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 20px; font-size: var(--v3-text-small); color: var(--v3-stone); }
.v3-pre .v3-pre-facts { display: grid; grid-template-columns: minmax(0, 120px) minmax(0, 1fr); gap: 8px 20px; max-width: 760px; margin: 20px 0; }
.v3-pre .v3-pre-facts dt { color: var(--v3-stone); }
.v3-pre .v3-pre-facts dd { margin: 0; }
.v3-pre .v3-pre-sec { margin: 28px 0 0; padding: 0; }
.v3-pre .v3-pre-list { margin: 0; padding: 0; list-style: none; }
.v3-pre .v3-pre-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 20px; padding: 12px 0; border-bottom: 1px solid var(--v3-line); }
.v3-pre .v3-pre-list li > a { flex: 1 1 240px; }
.v3-pre .v3-pre-list li > span { max-width: 100%; font-size: var(--v3-text-small); color: var(--v3-stone); }
@media (max-width: 640px) {
  .v3-pre { padding-right: 16px; padding-left: 16px; }
  .v3-pre .v3-pre-facts { grid-template-columns: minmax(0, 80px) minmax(0, 1fr); gap: 8px 12px; }
}
/* 按页面类型（后端 data-page）把标题摆到真实页面的位置，慢网速下接管时不跳。 */
/* 首页：期号 + 标题两行居中，取值同 src/v3/home.css 的首屏标题（40px / 300 / 50px，导航下 39px）。 */
.v3-pre[data-page="home"] { padding-top: calc(var(--folio-nav-h, 73px) + 39px); }
.v3-pre .v3-pre-hero { margin: 0 0 48px; text-align: center; }
.v3-pre .v3-pre-hero .v3-pre-issue,
.v3-pre .v3-pre-hero h1 { max-width: none; margin: 0; font-size: 40px; font-weight: 300; line-height: 50px; color: var(--v3-ink); }
/* 作品页：同 work/v3/work.css 的「1fr + 400px / 44px」两栏；左侧是与图片区同色同尺寸的底块，正文在右栏。 */
.v3-pre[data-page="work"] { position: relative; padding-top: calc(var(--folio-nav-h, 73px) + 20px); }
.v3-pre[data-page="work"] .v3-pre-crumbs { min-height: 25px; margin-bottom: 0; }
.v3-pre[data-page="work"]::before { content: ""; position: absolute; top: calc(var(--folio-nav-h, 73px) + 78px); left: 24px; width: calc(100% - 492px); aspect-ratio: 1; border-radius: var(--v3-radius-md); background: #F4F7FA; }
.v3-pre[data-page="work"] > :not(.v3-pre-crumbs) { width: 400px; max-width: 400px; margin-left: auto; }
.v3-pre[data-page="work"] h1 { margin-top: 63px; font-size: 28px; line-height: 35px; }
@media (max-width: 1000px) {
  .v3-pre[data-page="work"]::before { width: calc(100% - 48px); max-height: 640px; }
  .v3-pre[data-page="work"] > :not(.v3-pre-crumbs) { width: auto; max-width: none; margin-left: 0; }
  .v3-pre[data-page="work"] h1 { margin-top: calc(min(100vw - 48px, 640px) + 165px); }
}
@media (max-width: 640px) {
  .v3-pre[data-page="work"]::before { left: 16px; width: calc(100% - 32px); }
  .v3-pre[data-page="work"] h1 { margin-top: calc(100vw - 32px + 165px); }
}
/* 召集详情（电脑宽度）：标题在「返回召集」和状态行下方。 */
@media (min-width: 1001px) { .v3-pre[data-page="summon-detail"] h1 { margin-top: 44px; } }
