/* base.css —— 布局骨架 + 公文体套件 + 进度页脚 + x-cloak
 * 皮肤由 surface.css / platform.css / secret.css / factory.css 提供；
 * 禁态由 forbidden.css 在运行时叠加（body.body-forbidden）。
 */

:root {
  --ink: #222;
  --paper: #fff;
  --rule: #c9c9c9;
  --stamp: #cc0000;
  --measure: 46rem;
  --serif: "Songti SC", "SimSun", "Noto Serif CJK SC", "Source Han Serif SC", Georgia, serif;
  --sans: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.9;
  background: var(--paper);
  color: var(--ink);
}

/* Alpine 组件初始化前隐藏（base.md §7） */
[x-cloak] { display: none !important; }

/* ── 顶栏：固定视口顶部，不随页面滚动；背景必须不透明 ── */
header.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: inherit;
  border-bottom: 1px solid var(--rule);
  padding: .5rem 1rem;
}

header.site-header .brand {
  margin: 0 0 .25rem;
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: .04em;
}

header.site-header nav.nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .9rem;
  font-family: var(--sans);
  font-size: .9rem;
}

header.site-header nav.nav a { text-decoration: none; }
header.site-header nav.nav a:hover { text-decoration: underline; }

/* 顶栏检索框（全站固定组件；placeholder 只写字段名） */
form#search-form {
  display: flex;
  gap: .4rem;
  align-items: center;
  margin: .4rem 0 0;
  font-family: var(--sans);
  font-size: .85rem;
}

form#search-form input[type="text"] {
  flex: 0 1 14rem;
  padding: .2rem .4rem;
}

/* ── 正文容器 ── */
main {
  display: block;
  max-width: var(--measure);
  margin: 0 auto;
  padding: 1.5rem 1rem 3rem;
}

h1 { font-size: 1.5rem; line-height: 1.5; }
h2 { font-size: 1.15rem; line-height: 1.6; }
h3 { font-size: 1rem; }

a { color: inherit; }

/* ── 公文体套件（GDD §8：立卷要素与版式） ── */
.sheet,
.document {
  background: var(--paper);
  border: 1px solid var(--rule);
  padding: 2rem 2.25rem;
  margin: 0 0 1.5rem;
}

.document > p,
.sheet > p { text-indent: 2em; }

.doc-head {
  text-align: center;
  border-bottom: 1px solid var(--rule);
  padding-bottom: .75rem;
  margin-bottom: 1.25rem;
}

.doc-head h1 { margin: 0 0 .25rem; }
.doc-no,
.doc-date {
  font-family: var(--sans);
  font-size: .85rem;
  text-indent: 0;
  margin: .15rem 0;
}

/* 红色套头与印章 */
.stamp {
  display: inline-block;
  border: 3px double var(--stamp);
  color: var(--stamp);
  padding: .35rem .8rem;
  transform: rotate(-10deg);
  opacity: .8;
  font-family: var(--sans);
  font-weight: 700;
}

/* 复印件旋转水印 */
.copy-watermark {
  position: relative;
  overflow: hidden;
}
.copy-watermark::after {
  content: "复印件";
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(-24deg);
  font-family: var(--sans);
  font-size: 3.5rem;
  letter-spacing: .3em;
  opacity: .06;
  pointer-events: none;
}

/* 公文尾语 */
.doc-tail { text-indent: 0; text-align: right; font-family: var(--sans); font-size: .9rem; }
.blank-tail { text-indent: 0; color: #8a8a8a; }

/* ── 门禁表单 ── */
.gate-block { margin: 0 0 1.5rem; }

form.gate {
  display: block;
  max-width: 24rem;
  border: 1px solid var(--rule);
  padding: 1rem 1.25rem;
}

form.gate label {
  display: block;
  font-family: var(--sans);
  font-size: .85rem;
  margin: .6rem 0 .15rem;
}

form.gate input {
  width: 100%;
  padding: .35rem .5rem;
  font-family: var(--sans);
  font-size: .95rem;
}

.btn {
  display: inline-block;
  margin-top: .9rem;
  padding: .35rem 1.1rem;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  font-family: var(--sans);
  font-size: .9rem;
  text-decoration: none;
  cursor: pointer;
}

.gate-error {
  color: var(--stamp);
  font-family: var(--sans);
  font-size: .88rem;
  text-indent: 0;
}

/* ── 锁定提示（受保护页未授权时） ── */
.locked { border: 1px dashed var(--rule); padding: 1.5rem; }

/* ── 检索结果行 ── */
.catalog table { width: 100%; border-collapse: collapse; }
.catalog th,
.catalog td {
  border: 1px solid var(--rule);
  padding: .4rem .6rem;
  text-align: left;
  font-size: .92rem;
}
.denied { font-family: var(--sans); font-size: .85rem; }

/* ── 黑场 ── */
.blackout {
  position: fixed;
  inset: 0;
  z-index: 50;
  background: #000;
  color: #d20a0a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--sans);
  letter-spacing: .2em;
}

/* ── 显影与隐藏文本（secret 层用，基座先给结构） ── */
.reveal { opacity: 0; transition: opacity .6s; }
.reveal.shown { opacity: 1; }

.hidden-text {
  background: #000;
  color: #000;
  user-select: text;
}
.hidden-text::selection { color: #f00; background: #333; }

.handwrite { font-family: "Caveat", "Kaiti SC", "STKaiti", cursive; color: #d20a0a; }

.blurred { filter: blur(6px); user-select: none; }

.spacer { height: 180px; }

/* ── 页脚与进度号 ── */
footer {
  border-top: 1px solid var(--rule);
  padding: 1rem;
  font-family: var(--sans);
  font-size: .8rem;
  text-align: center;
}

footer .progress { font-variant-numeric: tabular-nums; }
footer .account { font-variant-numeric: tabular-nums; }

/* ── 小屏 ── */
@media (max-width: 640px) {
  .sheet,
  .document { padding: 1.25rem 1rem; }
  header.site-header nav.nav ul { gap: .2rem .7rem; }
}
