/* ============================================================
   论文喵 · 样式（light theme）
   ============================================================ */
:root {
  --bg: #F7F9FB;
  --panel: #FFFFFF;
  --ink: #0A2036;
  --ink2: #29435C;
  --muted: #5A6E84;
  --muted2: #8494A6;
  --line: #E2E8F0;
  --line2: #EFF2F6;
  --brand: #0A2036;
  --brand-dark: #061726;
  --brand-soft: #EDF2F7;
  --accent: #5A0301;
  --accent-soft: #F9EDEA;
  --ok: #0A2036;
  --ok-soft: #EDF2F7;
  --warn: #5A0301;
  --danger: #5A0301;
  --r-s: 8px;
  --r-m: 12px;
  --r-l: 18px;
  --shadow-s: 0 1px 2px rgba(10, 32, 54, .05);
  --shadow-m: 0 6px 20px -6px rgba(10, 32, 54, .12);
  --shadow-l: 0 18px 48px -16px rgba(10, 32, 54, .22);
  /* 全站统一字体：中文字体族优先，保证中英文由同一字族渲染，避免混排 */
  --font-ui: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif;
  --serif: var(--font-ui);
  --sans: var(--font-ui);
  --mono: var(--font-ui);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
a { color: var(--brand); text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, select, textarea { font-family: inherit; font-size: 15px; color: var(--ink); }
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -.01em; }
.wrap { width: 1180px; max-width: calc(100% - 40px); margin: 0 auto; }
.hide { display: none !important; }
.grow { flex: 1; }

/* ---------- header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, .86);
  backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--line2);
}
.header-inner { display: flex; align-items: center; height: 62px; gap: 28px; }
.brand { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 18px; color: var(--ink); white-space: nowrap; flex: none; }
.brand .mark {
  width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center;
  background: linear-gradient(140deg, var(--brand), #24405C); color: #fff;
  box-shadow: 0 4px 10px -2px rgba(10, 32, 54, .45);
}
.brand small { font-size: 12px; font-weight: 500; color: var(--muted2); letter-spacing: .06em; margin-left: 2px; }
.nav { display: flex; gap: 22px; font-size: 14.5px; color: var(--ink2); }
.nav span { cursor: pointer; padding: 4px 0; border-bottom: 2px solid transparent; }
.nav span:hover { color: var(--brand); }
.header-right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.ghost-link { font-size: 14.5px; color: var(--ink2); cursor: pointer; }
.ghost-link:hover { color: var(--brand); }

/* ---------- buttons ---------- */
.btn {
  border: 1px solid var(--line); background: #fff; color: var(--ink2);
  padding: 0 16px; height: 38px; border-radius: 10px; font-size: 15px; font-weight: 500;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  transition: .16s; white-space: nowrap;
}
.btn:hover { border-color: #C9D4E0; background: #F7F9FB; }
.btn.sm { height: 32px; padding: 0 12px; font-size: 14px; border-radius: 8px; }
.btn.lg { height: 46px; padding: 0 26px; font-size: 16px; border-radius: 12px; }
.btn-primary {
  background: linear-gradient(180deg, #14314F, var(--brand)); color: #fff; border-color: transparent;
  box-shadow: 0 6px 16px -6px rgba(10, 32, 54, .55), inset 0 1px 0 rgba(255, 255, 255, .22);
}
.btn-primary:hover { background: linear-gradient(180deg, #14314F, var(--brand-dark)); }
.btn-accent { background: linear-gradient(180deg, #5A0301, var(--accent)); color: #fff; border-color: transparent;
  box-shadow: 0 8px 20px -8px rgba(90, 3, 1, .6); }
.btn-accent:hover { filter: brightness(1.04); }
.btn[disabled] { opacity: .5; pointer-events: none; }
.btn-ghost { background: transparent; border-color: transparent; color: var(--muted); }
.btn-ghost:hover { background: var(--line2); color: var(--ink); }
/* 提高特异性，避免被后面的通用 .btn / .btn:hover 规则覆盖 */
.btn.btn-danger { background: #fff; border-color: #E3C7C4; color: #8A2B24; }
.btn.btn-danger:hover { background: #8A2B24; border-color: #8A2B24; color: #fff; }

/* ---------- hero ---------- */
.hero { padding: 34px 0 6px; }
.hero-grid { display: flex; align-items: flex-end; gap: 40px; }
.hero h1 { font-size: 31px; line-height: 1.28; letter-spacing: -.02em; }
.hero h1 em { font-style: normal; color: var(--accent); }
.hero .sub { margin: 10px 0 0; color: var(--muted); font-size: 15.5px; }
.stats { display: flex; gap: 10px; margin-left: auto; flex-wrap: wrap; }
.stat {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-m);
  padding: 8px 14px; min-width: 104px; box-shadow: var(--shadow-s);
}
.stat b { display: block; font-size: 16px; }
.stat span { font-size: 12.5px; color: var(--muted); }

/* ---------- studio ---------- */
.studio { display: grid; grid-template-columns: 1fr 400px; gap: 20px; margin: 22px auto 14px; align-items: start; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--r-l); box-shadow: var(--shadow-s); }
.panel-head { padding: 18px 22px 0; display: flex; align-items: center; gap: 10px; }
.panel-head h2 { font-size: 16px; }
.panel-head .hint { margin-left: auto; font-size: 13px; color: var(--muted2); }
.form-panel { padding: 4px 22px 22px; }

/* ---------- version cards ---------- */
.ver-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
@media (max-width: 1080px) { .ver-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ver-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ver {
  position: relative; display: flex; flex-direction: column; gap: 7px;
  padding: 13px 11px 11px; border: 1.5px solid var(--line); border-radius: 12px;
  cursor: pointer; transition: .16s; background: #fff; min-height: 158px;
}
.ver:hover { border-color: #B9C9D9; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(10, 32, 54, .07); }
.ver.on {
  border-color: var(--brand);
  background: linear-gradient(180deg, #F7F9FB 0%, #FFFFFF 70%);
  box-shadow: 0 0 0 3px rgba(10, 32, 54, .1), 0 8px 20px rgba(10, 32, 54, .08);
}
.ver .vcheck {
  position: absolute; top: -1.5px; right: -1.5px; width: 24px; height: 24px;
  border-radius: 0 13px 0 13px; display: grid; place-items: center; background: transparent;
}
.ver.on .vcheck { background: var(--brand); }
.ver .vcheck::after {
  content: ""; width: 9px; height: 5px; border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(-1px, -1px); opacity: 0;
}
.ver.on .vcheck::after { opacity: 1; }
.ver-top { display: flex; align-items: center; gap: 8px; }
.vico {
  width: 24px; height: 24px; border-radius: 7px; flex: none;
  display: grid; place-items: center; font-size: 11.5px; font-weight: 700; color: #fff;
  letter-spacing: .3px;
}
.ver-name { font-weight: 650; font-size: 13.5px; line-height: 1.45; color: var(--ink); }
.ver-name .tag { margin-left: 4px; vertical-align: 1px; }
.ver-desc { color: var(--muted); font-size: 12px; line-height: 1.6; flex: 1; }
.ver-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: auto; }
.ver-tags span { font-size: 11.5px; padding: 2px 6px; border-radius: 5px; background: #F2F5F9; color: var(--muted); }
.ver.on .ver-tags span { background: #E6EDF5; color: var(--brand-dark); }

/* 版本区标题更突出 */
.panel.form-panel .panel-head h2 { font-size: 18px; }
.ver-lead {
  display: flex; align-items: center; gap: 8px; margin-top: 8px;
  font-size: 13px; color: var(--muted);
}
.ver-lead b { color: var(--brand-dark); }

.tag {
  flex: none; white-space: nowrap;
  font-size: 11.5px; font-weight: 600; padding: 1px 6px; border-radius: 5px; letter-spacing: .02em;
  background: var(--accent-soft); color: var(--accent); border: 1px solid #EBCF9F;
}
.tag.blue { background: var(--brand-soft); color: var(--brand); border-color: #C6D4E2; }
.tag.green { background: var(--ok-soft); color: var(--ok); border-color: #CFDCE9; }

/* ---------- form rows ---------- */
.row { display: flex; gap: 14px; align-items: flex-start; padding: 13px 0; border-top: 1px dashed var(--line2); }
.row:first-of-type { border-top: 0; }
.row > label.lbl { width: 72px; flex: none; color: var(--ink2); font-size: 14.5px; padding-top: 8px; }
.row-main { flex: 1; min-width: 0; }
.field {
  width: 100%; height: 38px; border: 1px solid var(--line); border-radius: 10px; padding: 0 12px;
  outline: none; transition: .15s; background: #fff;
}
.field:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10, 32, 54, .1); }
.field.err { border-color: var(--danger); box-shadow: 0 0 0 3px rgba(90, 3, 1, .1); }
textarea.field { height: auto; padding: 10px 12px; resize: vertical; line-height: 1.6; }
select.field { appearance: none; background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%23667085' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 30px; }

.title-wrap { position: relative; }
.title-wrap .count { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 12.5px; color: var(--muted2); }
.opt-link { font-size: 13.5px; color: var(--brand); cursor: pointer; display: inline-flex; align-items: center; gap: 4px; margin-top: 7px; }
.opt-link:hover { text-decoration: underline; }
.opt-link svg { width: 13px; height: 13px; }

.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  border: 1px solid var(--line); border-radius: 9px; padding: 6px 13px; font-size: 14px; color: var(--ink2);
  cursor: pointer; background: #fff; transition: .14s; user-select: none;
}
.chip:hover { border-color: #C6D4E2; }
.chip.on { border-color: var(--brand); background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.chip.dis { opacity: .45; pointer-events: none; text-decoration: line-through; }
.chip small { color: var(--muted2); font-weight: 400; }

.radios { display: flex; flex-wrap: wrap; gap: 16px; padding-top: 8px; }
.radios label { display: flex; align-items: center; gap: 6px; font-size: 14.5px; color: var(--ink2); cursor: pointer; }
input[type=radio], input[type=checkbox] { accent-color: var(--brand); width: 15px; height: 15px; margin: 0; }

.note { font-size: 13px; color: var(--muted); display: flex; gap: 5px; align-items: flex-start; margin-top: 6px; line-height: 1.5; }
.note b { color: var(--accent); font-weight: 600; }
.counter { font-size: 12.5px; color: var(--muted2); text-align: right; margin-top: 4px; }
.counter.warn { color: var(--warn); }

.submit-bar { display: flex; gap: 10px; align-items: center; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line2); }
/* 操作条吸底：表单填写过程中“生成并确认大纲”始终可见 */
#page-form .submit-bar { position: sticky; bottom: 0; z-index: 5; background: var(--panel); margin: 18px -30px 0; padding: 14px 30px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); border-radius: 0 0 var(--r-l) var(--r-l); box-shadow: 0 -10px 24px -20px rgba(16, 30, 70, .35); }
.agree { display: flex; align-items: flex-start; gap: 7px; font-size: 13px; color: var(--muted); cursor: pointer; line-height: 1.5; }
.agree a { color: var(--brand); }
.price-box { margin-left: auto; text-align: right; }
.price-box .amt { font-size: 23px; font-weight: 700; letter-spacing: -.02em; }
.price-box .amt i { font-style: normal; font-size: 14px; font-weight: 600; }
.price-box .tip { font-size: 12px; color: var(--muted2); }

/* ---------- preview panel ---------- */
.preview { padding: 0 0 16px; overflow: hidden; }
.pv-tabs { display: flex; gap: 4px; padding: 14px 16px 0; }
.pv-tab { font-size: 13.5px; color: var(--muted); padding: 5px 10px; border-radius: 7px; cursor: pointer; }
.pv-tab.on { background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.pv-paper {
  margin: 12px 16px; border: 1px solid var(--line2); border-radius: 10px; background: #FAFBFD;
  padding: 16px 16px 18px; max-height: 300px; overflow: hidden; position: relative;
}
.pv-paper::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 64px;
  background: linear-gradient(180deg, rgba(250, 251, 253, 0), #FAFBFD); }
.pv-paper h4 { font-family: var(--serif); font-size: 16px; text-align: center; margin-bottom: 6px; }
.pv-paper-meta { margin: 0 0 10px; text-align: center; font-size: 11.5px; color: var(--muted2); }
.pv-paper h5 { font-size: 14px; margin: 12px 0 4px; font-family: var(--serif); }
.pv-paper p { font-family: var(--serif); font-size: 13.5px; line-height: 1.9; color: #29435C; text-indent: 2em; margin: 0; }
.pv-check { margin: 0 16px; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.pv-check .top { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.pv-check .top .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ok); box-shadow: 0 0 0 3px var(--ok-soft); }
.pv-check .score { margin-left: auto; color: var(--ok); font-weight: 700; }
.pv-check .bars { margin-top: 10px; display: grid; gap: 6px; }
.pv-check .bar { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); }
.pv-check .bar span { width: 92px; flex: none; }
.pv-check .bar i { height: 5px; border-radius: 3px; background: linear-gradient(90deg, #B9C9D9, var(--brand)); display: block; flex: none; }
.pv-check .bar em { font-style: normal; color: var(--muted2); }
.pv-foot { font-size: 12px; color: var(--muted2); padding: 10px 16px 0; text-align: center; }

/* ---------- workspaces (outline / gen / result) ---------- */
#page-outline, #page-generating, #page-result { padding: 24px 0 60px; }

.ol-head { display: flex; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.ol-head h2 { font-size: 22px; }
.ol-head p { margin: 6px 0 0; color: var(--muted); font-size: 14px; }
.ol-head .right { margin-left: auto; display: flex; gap: 10px; }

.ol-variants { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 16px; }
.olv {
  border: 1px solid var(--line); border-radius: var(--r-m); padding: 14px; background: #fff; cursor: pointer; transition: .15s;
}
.olv:hover { border-color: #C6D4E2; }
.olv.on { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10, 32, 54, .09); }
.olv .t { font-weight: 600; font-size: 15px; display: flex; align-items: center; gap: 6px; }
.olv .d { font-size: 13px; color: var(--muted); margin-top: 6px; line-height: 1.55; min-height: 52px; }
.olv .n { font-size: 12.5px; color: var(--muted2); margin-top: 8px; display: flex; gap: 10px; }

.ol-body { display: grid; grid-template-columns: 1fr 320px; gap: 16px; align-items: start; }
.ol-list { padding: 8px 20px 20px; }
.ol-ch { padding: 14px 0 6px; border-top: 1px dashed var(--line2); }
.ol-ch:first-child { border-top: 0; }
.ol-ch-line { display: flex; align-items: center; gap: 9px; }
.ol-ch-no { font-size: 12.5px; color: var(--brand); background: var(--brand-soft); border-radius: 5px; padding: 1px 7px; font-weight: 600;  flex-shrink: 0; }
.ol-ch-title { font-weight: 600; font-size: 15.5px; outline: none; border-bottom: 1px dashed transparent; padding: 2px 0; }
.ol-ch-title:focus { border-bottom-color: var(--brand); }
.ol-budget { margin-left: auto; font-size: 12.5px; color: var(--muted2); }
.ol-del { border: 0; background: transparent; color: var(--muted2); font-size: 16px; line-height: 1; padding: 2px 6px; border-radius: 5px; }
.ol-del:hover { background: #F9EDEA; color: var(--danger); }
.ol-secs { margin: 6px 0 0 22px; display: grid; gap: 2px; }
.ol-sec { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink2); padding: 4px 0; }
.ol-sec .no { color: var(--muted2); font-size: 13px; min-width: 34px; }
.ol-sec .nm { outline: none; border-bottom: 1px dashed transparent; }
.ol-sec .nm:focus { border-bottom-color: var(--brand); }
.ol-subs { margin: 2px 0 3px 18px; display: grid; gap: 1px; }
.ol-sub { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); padding: 2px 0; }
.ol-sub .no { color: var(--muted2); font-size: 12px; min-width: 46px; }
.ol-sub .nm { outline: none; border-bottom: 1px dashed transparent; }
.ol-sub .nm:focus { border-bottom-color: var(--brand); }
.ol-sum { padding: 18px 20px; position: sticky; top: 80px; }
.ol-sum h4 { font-size: 14px; color: var(--muted); font-weight: 500; }
.ol-sum .big { font-size: 29px; font-weight: 700; letter-spacing: -.02em; margin: 4px 0 2px; }
.ol-sum .big i { font-style: normal; font-size: 14px; color: var(--muted); font-weight: 500; }
.ol-sum ul { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.ol-sum li { display: flex; font-size: 13.5px; color: var(--muted); }
.ol-sum li b { margin-left: auto; color: var(--ink2); font-weight: 500; }
.ol-sum .cta { margin-top: 16px; display: grid; gap: 8px; }

/* ---------- generating ---------- */
.gen-wrap { max-width: 760px; margin: 30px auto 0; }
.gen-card { padding: 30px 32px 26px; }
.gen-top { display: flex; align-items: center; gap: 12px; }
.spin {
  width: 34px; height: 34px; border-radius: 50%; flex: none;
  border: 3px solid var(--brand-soft); border-top-color: var(--brand); animation: spin .9s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.gen-top h3 { font-size: 17px; }
.gen-top p { margin: 3px 0 0; font-size: 13.5px; color: var(--muted); }
.gen-progress { height: 8px; border-radius: 5px; background: var(--line2); margin: 22px 0 10px; overflow: hidden; }
.gen-progress i { display: block; height: 100%; width: 0; border-radius: 5px; background: linear-gradient(90deg, #24405C, var(--brand)); transition: width .3s; }
.gen-meta { display: flex; font-size: 13px; color: var(--muted); }
.gen-meta .r { margin-left: auto; }
.gen-meta b { color: var(--ink); font-weight: 600; }
.gen-steps { margin: 22px 0 0; display: grid; gap: 9px; }
.gstep { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--muted2); }
.gstep .ic { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--line); flex: none; display: grid; place-items: center; font-size: 10px; color: #fff; }
.gstep.done { color: var(--ink2); }
.gstep.done .ic { background: var(--ok); border-color: var(--ok); }
.gstep.now { color: var(--brand-dark); font-weight: 600; }
.gstep.now .ic { border-color: var(--brand); border-top-color: transparent; animation: spin .9s linear infinite; }
.gstep.extras { align-items: flex-start; }
.gstep.extras .ic { margin-top: 2px; }
.extras-tx { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; white-space: normal; line-height: 1.7; }
.extras-tx .lbl { color: var(--ink2); font-weight: 600; }
.extras-tx .chips { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.echip { display: inline-flex; align-items: center; gap: 5px; padding: 1px 9px; border-radius: 999px; background: #F4F6F9; color: var(--muted); font-size: 12.5px; }
.echip i { font-style: normal; font-size: 11px; color: var(--muted2); }
.echip.ok { background: var(--brand-soft); color: var(--brand-dark); }
.echip.ok i { color: var(--brand-dark); }
.echip.wait::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--muted2); animation: pulse 1.3s ease-in-out infinite; }
.echip.off { background: #FBF1F0; color: #7A2A27; }
.echip.off i { color: #A3554F; }
.extras-tx .hint { font-size: 12.5px; color: var(--muted2); }
.gen-preview {
  margin-top: 22px; border: 1px solid var(--line2); border-radius: var(--r-m); padding: 16px 18px;
  max-height: 260px; overflow: hidden; background: #FAFBFD; position: relative;
}
.gen-preview::after { content: ""; position: absolute; inset: auto 0 0 0; height: 70px; background: linear-gradient(180deg, rgba(252,252,253,0), #FAFBFD); }
.gen-preview p { font-family: var(--serif); font-size: 14px; line-height: 1.95; text-indent: 2em; margin: 0 0 8px; color: #29435C; }
.gen-preview h5 { font-family: var(--serif); font-size: 14.5px; margin: 10px 0 6px; }

/* ---------- result ---------- */
.res-head { display: flex; align-items: flex-end; gap: 16px 26px; flex-wrap: wrap; margin-bottom: 16px; }
.res-head-main { flex: 1 1 460px; min-width: 0; }
.res-back {
  display: inline-flex; align-items: center; gap: 4px;
  margin-bottom: 10px; padding: 2px 0; border: 0; background: none;
  color: var(--muted); font: inherit; font-size: 13.5px; line-height: 1.6; cursor: pointer;
}
.res-back:hover { color: var(--brand); }
.res-head h1 { color: var(--ink); font-size: 26px; line-height: 1.45; letter-spacing: .01em; overflow-wrap: anywhere; }
.res-meta { margin: 8px 0 0; color: var(--muted); font-size: 13.5px; line-height: 1.8; }
.res-head-acts { flex: none; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.doc-tools { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.doc-tools .doc-tabs { flex: 1 1 auto; min-width: 0; margin-bottom: 0; }
.doc-acts { flex: none; display: flex; align-items: center; gap: 8px; margin-left: auto; }
.res-layout { display: grid; grid-template-columns: 250px 1fr; gap: 18px; align-items: start; }
.toc-card { position: sticky; top: 78px; padding: 16px 10px 16px 16px; max-height: calc(100vh - 100px); overflow: auto; }
.toc-card h4 { font-size: 13px; color: var(--muted); font-weight: 500; margin-bottom: 8px; letter-spacing: .02em; }
.toc-item { display: flex; align-items: flex-start; gap: 6px; font-size: 13.5px; color: var(--ink2); padding: 4px 6px; border-radius: 6px; cursor: pointer; line-height: 1.45; }
.toc-item:hover { background: var(--brand-soft); color: var(--brand-dark); }
.toc-item.l2 { padding-left: 16px; color: var(--muted); font-size: 13px; }
.toc-item.l3 { padding-left: 30px; color: var(--muted2); font-size: 12.5px; padding-top: 2px; padding-bottom: 2px; }
.toc-item .tx { min-width: 0; }
.toc-item .p { margin-left: auto; color: var(--muted2); font-size: 12px; flex: none; padding-top: 1px; }
.toc-meta { margin-top: 14px; padding-top: 12px; border-top: 1px dashed var(--line2); font-size: 12.5px; color: var(--muted); display: grid; gap: 6px; }
.toc-meta b { color: var(--ink2); font-weight: 600; }

.doc-tabs { display: flex; gap: 6px; margin-bottom: 12px; flex-wrap: wrap; }
.dtab {
  flex: none; white-space: nowrap;
  font-size: 14px; padding: 7px 14px; border-radius: 9px; border: 1px solid var(--line);
  background: #fff; color: var(--ink2); cursor: pointer;
}
.dtab.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.dtab.is-off { color: var(--muted2); background: #FAFBFC; border-style: dashed; }
.dtab.is-wait::after,
.dtab.is-off::after {
  content: "待解锁"; margin-left: 5px; padding: 0 5px; border-radius: 999px;
  background: var(--brand-soft); color: var(--brand-dark);
  font-size: 10.5px; font-weight: 600; vertical-align: 1px;
}
.dtab.is-off::after { content: "未勾选"; background: #F1F3F6; color: var(--muted2); }
.dtab.on.is-wait::after, .dtab.on.is-off::after { background: rgba(255, 255, 255, .16); color: #fff; }
.dtab .badge { font-size: 11px; background: var(--accent); color: #fff; border-radius: 4px; padding: 0 4px; margin-left: 4px; vertical-align: 1px; }

/* ---------- paper ---------- */
.paper {
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-m);
  padding: 46px 54px 40px; box-shadow: var(--shadow-s); max-width: 880px;
}
.paper, .paper * { font-family: var(--serif); }
.paper .cover { text-align: center; padding: 30px 0 40px; border-bottom: 1px dashed var(--line2); margin-bottom: 28px; }
.paper .cover .school { font-size: 23px; letter-spacing: .1em; margin-bottom: 6px; }
.paper .cover .college { font-size: 16px; color: var(--ink2); margin-bottom: 40px; }
.paper .cover .type { font-size: 20px; letter-spacing: .6em; text-indent: .6em; margin-bottom: 34px; color: var(--ink2); }
.paper .cover h1 { font-size: 26px; line-height: 1.5; margin: 0 0 46px; font-weight: 700; }
.paper .cover table { margin: 0 auto; border-collapse: collapse; }
.paper .cover td { font-size: 15px; padding: 6px 0; text-align: left; }
.paper .cover td:first-child { color: var(--ink2); padding-right: 18px; text-align: justify; text-align-last: justify; width: 84px; }
.paper .cover td:last-child { border-bottom: 1px solid var(--ink2); min-width: 190px; padding-bottom: 2px; }

.paper h2.chapter { font-size: 19px; text-align: center; margin: 40px 0 18px; font-weight: 700; }
.paper h2.chapter:first-of-type { margin-top: 0; }
.paper h3.sec { font-size: 16.5px; margin: 26px 0 12px; font-weight: 700; }
.paper h4.subsec { font-size: 15.5px; margin: 20px 0 10px; font-weight: 600; }
.paper h2.plain { font-size: 19px; text-align: center; margin: 0 0 20px; font-weight: 700; }
.paper p { font-size: 15.5px; line-height: 2.05; text-indent: 2em; margin: 0 0 10px; text-align: justify; color: #0A2036; }
.paper p.noindent { text-indent: 0; }
.paper .abs-kw { font-size: 15px; line-height: 2; margin-top: 14px; }
.paper .abs-kw b { font-weight: 700; }
.paper .en { font-family: inherit; font-size: 14.5px; line-height: 1.85; text-indent: 2em; }
.paper .en-noindent { text-indent: 0; }
.paper .note-line { font-size: 13px; color: var(--muted); font-family: var(--sans); text-indent: 0; }

.paper .toc-list { font-size: 14.5px; }
.paper .toc-row { display: flex; align-items: baseline; gap: 6px; line-height: 2; }
.paper .toc-row .lead { border-bottom: 1px dotted #C9D3DE; flex: 1; }
.paper .toc-row.l2 { padding-left: 1.6em; color: var(--ink2); }
.paper .toc-row.l3 { padding-left: 3.2em; color: var(--muted); }

.paper .fig { margin: 16px 0 18px; }
.paper .fig .cap { text-align: center; font-size: 13.5px; color: var(--ink2); margin-top: 6px; }
.paper .tbl-wrap { margin: 14px 0 18px; overflow-x: auto; }
.paper .tbl-cap { text-align: center; font-size: 13.5px; color: var(--ink2); margin-bottom: 6px; }
.paper table.data { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.paper table.data th, .paper table.data td { padding: 7px 8px; text-align: center; border: 0; }
.paper table.data thead th { border-top: 1.5px solid #0A2036; border-bottom: 1px solid #0A2036; font-weight: 600; }
.paper table.data tbody tr:last-child td { border-bottom: 1.5px solid #0A2036; }
.paper .tbl-note { font-size: 12.5px; color: var(--muted); margin-top: 5px; font-family: var(--sans); }

.paper .formula { display: flex; align-items: center; gap: 12px; margin: 18px 0; padding: 12px 14px; background: #FAFBFD; border-left: 3px solid var(--brand-soft); border-radius: 6px; }
.paper .formula .fx { flex: 1; min-width: 0; min-width: 0; font-family: var(--mono); font-size: 14px; color: #0A2036; overflow-x: auto; white-space: nowrap; }
.paper .formula .no { font-size: 13.5px; color: var(--ink2); flex: none; }

.paper .flow { display: flex; align-items: center; justify-content: center; gap: 0; flex-wrap: wrap; padding: 8px 0 2px; }
.paper .flow .n {
  border: 1px solid #C9D4E0; background: #F7F9FB; border-radius: 8px; padding: 8px 13px; font-size: 13.5px;
  color: var(--ink2); font-weight: 500; box-shadow: 0 1px 2px rgba(10, 32, 54, .04);
}
.paper .flow .a { color: var(--muted2); padding: 0 8px; font-size: 14px; }

.paper .code-wrap { margin: 14px 0 18px; }
.paper .code-wrap pre.code { margin: 0; }
.paper pre.code {
  font-family: var(--mono); font-size: 13px; line-height: 1.75; background: #F7F9FB;
  border: 1px solid var(--line2); border-radius: 8px; padding: 13px 15px; margin: 14px 0;
  overflow-x: auto; color: #24405C; white-space: pre;
}
.paper pre.code .c { color: #5F7288; }

.paper .refs { font-size: 14px; line-height: 1.95; }
.paper .refs p { text-indent: 0; padding-left: 2.2em; text-indent: -2.2em; font-size: 14px; margin-bottom: 5px; }
.paper .doc-foot {
  margin-top: 34px; padding-top: 14px; border-top: 1px solid var(--line2);
  font-family: var(--sans); font-size: 12px; color: var(--muted2); display: flex; gap: 10px;
}
.paper .doc-foot .r { margin-left: auto; }
.paper p.hl { background: #FBF2E3; outline: 2px solid #EBCF9F; }
.paper .pick { cursor: text; }
.paper.picking p { cursor: pointer; }
.paper.picking p:hover { background: var(--brand-soft); }

/* ---------- check report ---------- */
.rep { padding: 26px 30px; }
.rep-head { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid var(--line2); }
.rep-head .big { font-size: 35px; font-weight: 700; letter-spacing: -.03em; color: var(--ok); }
.rep-head .big.warn { color: var(--warn); }
.rep-head .lbl { font-size: 13.5px; color: var(--muted); }
.rep-head .lbl b { display: block; font-size: 16px; color: var(--ink); font-weight: 600; }
.rep-warn {
  margin: 6px 0 10px; background: #FBF2E3; border: 1px solid #EBCF9F; color: #5A0301;
  font-size: 13px; padding: 9px 12px; border-radius: 8px; font-family: var(--sans);
}
.rep-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 18px 0 6px; }
.rep-kpi { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: #FAFBFD; }
.rep-kpi span { font-size: 12.5px; color: var(--muted); }
.rep-kpi b { display: block; font-size: 20px; margin-top: 3px; }
.rep-sec { margin-top: 24px; }
.rep-sec h4 { font-size: 14.5px; margin-bottom: 10px; }
.rep-libs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.rep-lib { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--ink2); padding: 5px 0; border-bottom: 1px dashed var(--line2); }
.rep-lib .nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rep-lib .n { margin-left: auto; color: var(--muted); font-size: 12.5px; flex: none; }
.rep-lib .pct { width: 46px; text-align: right; color: var(--ink2); flex: none; font-variant-numeric: tabular-nums; }
.rep-frag { border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 10px; }
.rep-frag .q { font-size: 14px; line-height: 1.8; background: #FBF2E3; border-left: 3px solid #E9B168; padding: 8px 12px; border-radius: 5px; }
.rep-frag .src { font-size: 12.5px; color: var(--muted); margin-top: 8px; display: flex; gap: 10px; flex-wrap: wrap; }
.rep-frag .src .v { color: var(--danger); font-weight: 600; }
.rep-frag .ops { margin-top: 10px; display: flex; gap: 8px; }

/* 网络文献比对 */
.rep-web-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rep-web-head h4 { margin: 0; }
.rep-web-meta { font-size: 13px; color: var(--muted); margin: 8px 0 10px; }
.rep-web-meta b { color: var(--ink); font-size: 15px; }
.rep-web-src { display: grid; gap: 6px; margin-bottom: 12px; }
.rep-web-src a {
  display: flex; gap: 10px; align-items: baseline; font-size: 13px; color: var(--ink2); text-decoration: none;
  padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; background: #FAFBFD;
}
.rep-web-src a:hover { border-color: var(--brand); color: var(--brand); }
.rep-web-src a span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: underline; text-decoration-color: rgba(10, 32, 54, .28); text-underline-offset: 3px; }
.rep-web-src a:hover span { text-decoration-color: currentColor; }
.rep-web-src a em { margin-left: auto; flex: none; font-style: normal; font-size: 12px; color: var(--danger); }
.rep-web-note { font-size: 12px; color: var(--muted2); margin-top: 8px; line-height: 1.7; }
.web-link { color: var(--brand); text-decoration: underline; text-decoration-color: rgba(10, 32, 54, .28); text-underline-offset: 3px; }
.web-link:hover { text-decoration-color: currentColor; }

/* ---------- extra docs ---------- */
.extra { padding: 26px 30px; }
.extra h3 { font-size: 17px; margin-bottom: 14px; }
.extra h4 { font-size: 15px; margin: 20px 0 8px; }
.extra p { font-size: 14.5px; line-height: 1.95; text-indent: 2em; color: var(--ink2); margin: 0 0 9px; }
.extra table.kv { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 10px; }
.extra table.kv td { border: 1px solid var(--line); padding: 10px 12px; vertical-align: top; line-height: 1.7; }
.extra table.kv td:first-child { width: 120px; background: #FAFBFD; color: var(--ink2); font-weight: 600; }
.ppt-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px 18px; }
.doc-material-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 18px; }
.doc-material-head > div:first-child { flex: 1 1 300px; min-width: 0; }
.doc-material-head h3 { margin-bottom: 6px; }
.extra .doc-material-sub { text-indent: 0; font-size: 13px; color: var(--muted); margin: 0; line-height: 1.75; }
.doc-material-acts { flex: none; display: flex; flex-wrap: wrap; gap: 10px; }
.ppt-head > div:first-child { flex: 1 1 320px; min-width: 0; }
.ppt-head h3 { margin-bottom: 6px; }
.extra .ppt-sub { text-indent: 0; font-size: 13px; color: var(--muted); margin: 0; line-height: 1.75; }
.ppt-actions { flex: none; display: flex; flex-wrap: wrap; gap: 10px; }
.ppt-panel > .ppt-head, .ppt-panel > .ppt-viewer, .ppt-panel > .note-line { max-width: 720px; margin-left: auto; margin-right: auto; }

/* ---------- 答辩 PPT：网页放映预览 ---------- */
.ppt-viewer { position: relative; margin-top: 16px; padding: 14px 14px 10px; border-radius: 14px; background: #061726; box-shadow: var(--shadow-m); }
.ppt-stage { position: relative; outline: none; }
.ppt-stage:focus-visible .ppt-frame { box-shadow: 0 0 0 3px rgba(192, 138, 114, .6), 0 14px 34px rgba(0, 0, 0, .35); }
.ppt-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 8px; background: #fff; box-shadow: 0 14px 34px rgba(0, 0, 0, .35); }
.ppt-scale { position: absolute; left: 0; top: 0; width: 1280px; height: 720px; transform-origin: top left; }
.ppt-slide { position: absolute; inset: 0; width: 1280px; height: 720px; display: none; overflow: hidden; background: #fff; color: #29435C; font-family: var(--font-ui); line-height: 1.5; }
.ppt-slide.on { display: block; }
.ppt-slide.ps-dark { background: #0A2036; }
.ppt-slide * { box-sizing: border-box; }

.ps-topbar { position: absolute; left: 0; top: 0; width: 1280px; height: 5.3px; background: #5A0301; }
.ps-topline { position: absolute; left: 0; top: 5.3px; width: 1280px; height: .6px; background: #E2E8F0; }
.ps-kicker { position: absolute; left: 82.6px; top: 32.6px; width: 1113.6px; font-size: 12.7px; letter-spacing: 1.6px; color: #5A6E84; }
.ps-title { position: absolute; left: 82.6px; top: 63.4px; width: 1118.4px; line-height: 1.12; font-weight: 700; color: #0A2036; }
.ps-rule { position: absolute; left: 82.6px; top: 170.9px; width: 1113.6px; height: 1.2px; background: #E2E8F0; }
.ps-rule i { position: absolute; left: 0; top: -1.6px; width: 100.8px; height: 3.6px; background: #5A0301; }
.ps-lead-bar { position: absolute; left: 82.6px; top: 194.9px; width: 4.3px; height: 42.2px; background: #5A0301; }
.ps-lead { position: absolute; left: 101.8px; top: 190px; width: 1075.2px; font-size: 18px; line-height: 1.15; font-weight: 700; color: #5A0301; }
.ps-body { position: absolute; left: 82.6px; top: 194px; width: 1113.6px; overflow: hidden; }
.ps-body.has-lead { top: 261.1px; }
.ps-content-body { max-height: 441.6px; }
.ps-content-body.has-lead { max-height: 374.4px; }
.ps-summary { max-height: 367.7px; }
.ps-summary.has-lead { max-height: 300.5px; }
.ps-route-notes { max-height: 163.2px; }
.ps-list { margin: 0; padding: 0; list-style: none; }
.ps-list li { position: relative; padding-left: 28.8px; margin-top: 18.7px; font-size: 22.7px; line-height: 1.32; color: #29435C; }
.ps-list li:first-child { margin-top: 0; }
.ps-list li::before { content: ''; position: absolute; left: 4px; top: .52em; width: 7px; height: 7px; border-radius: 50%; background: #5A0301; }
.ps-list li.sub { padding-left: 65.3px; margin-top: 8px; font-size: 18.7px; line-height: 1.24; color: #5A6E84; }
.ps-list li.sub::before { left: 30px; top: .72em; width: 10px; height: 2px; border-radius: 0; background: #8494A6; }
.ps-list.section li { margin-top: 8px; font-size: 16.7px; line-height: 1.2; }
.ps-list.notes li { margin-top: 13.3px; font-size: 19.3px; line-height: 1.25; }
.ps-empty { font-size: 18.7px; color: #5A6E84; }
.ps-brand { position: absolute; top: 670px; width: 624px; font-size: 11.3px; color: #8494A6; }
.ps-brand.is-dim { color: #8FA6BC; }
.ps-page { position: absolute; left: 1094px; top: 670px; width: 100.8px; text-align: right; font-size: 11.3px; color: #8494A6; }
.ps-page.is-dim { color: #8FA6BC; }
.ps-watermark { position: absolute; left: 988.8px; top: 384px; width: 225.6px; text-align: right; font-family: Arial, sans-serif; font-size: 173.3px; line-height: 1; font-weight: 700; color: rgba(10, 32, 54, .04); }

.ps-ring { position: absolute; border-radius: 50%; }
.ps-ring-1 { left: 878.4px; top: 48px; width: 504px; height: 504px; border: 1.6px solid #17324B; }
.ps-ring-2 { left: 1012.8px; top: 398.4px; width: 288px; height: 288px; border: 1.3px solid #24405C; }
.ps-ring-3 { left: 241.9px; top: 433.9px; width: 177.6px; height: 177.6px; border: 1.3px solid #16324C; }

.ps-cover-brand { position: absolute; left: 90.2px; top: 52.8px; font-size: 14.7px; letter-spacing: 2.7px; color: #8FA6BC; }
.ps-cover-accent { position: absolute; left: 90.2px; top: 165.1px; width: 110.4px; height: 4.8px; background: #C08A72; }
.ps-cover-kicker { position: absolute; left: 90.2px; top: 180.5px; font-size: 16.7px; letter-spacing: 1.6px; color: #C08A72; }
.ps-cover-title { position: absolute; left: 90.2px; top: 218.9px; width: 926.4px; max-height: 165px; overflow: hidden; font-size: 45.3px; line-height: 1.12; font-weight: 700; color: #fff; }
.ps-cover-rule { position: absolute; left: 90.2px; top: 405.1px; width: 1099.2px; height: .8px; background: #2A4258; }
.ps-cover-meta { position: absolute; left: 90.2px; top: 426.2px; width: 681.6px; font-size: 16.7px; line-height: 1.2; color: #C9D6E3; }
.ps-cover-meta span { display: block; margin-top: 8px; }
.ps-cover-meta span:first-child { margin-top: 0; }
.ps-cover-date { position: absolute; left: 902.4px; top: 426.2px; width: 288px; text-align: right; font-size: 16px; color: #C9D6E3; }
.ps-cover-note, .ps-end-note { position: absolute; left: 90.2px; top: 662.4px; width: 912px; font-size: 11.3px; color: #6F869C; }

.ps-toc-sub { position: absolute; left: 82.6px; top: 136.3px; width: 768px; font-size: 14px; color: #5A6E84; }
.ps-toc { position: absolute; left: 82.6px; top: 184.3px; width: 1113.6px; display: grid; grid-template-columns: 523.2px 523.2px; column-gap: 58.6px; }
.ps-toc-col { min-width: 0; }
.ps-toc-item { margin-top: 34.7px; }
.ps-toc-line { display: flex; align-items: baseline; gap: 8px; }
.ps-toc-line b { flex: none; font-family: Arial, sans-serif; font-size: 25.3px; line-height: 1.05; color: #5A0301; }
.ps-toc-line span { flex: 1; min-width: 0; font-size: 20.7px; line-height: 1.05; font-weight: 700; color: #0A2036; }
.ps-toc-subline { margin-top: 4px; margin-bottom: 10.7px; font-size: 12.7px; line-height: 1.15; color: #8494A6; }
.ps-toc-metarule { position: absolute; left: 82.6px; top: 595.2px; width: 1113.6px; height: 1px; background: #E2E8F0; }
.ps-toc-meta { position: absolute; left: 82.6px; top: 606.7px; width: 1075.2px; font-size: 12.7px; color: #8494A6; }

.ps-kw { position: absolute; left: 82.6px; top: 571.2px; width: 1113.6px; height: 59.5px; display: flex; align-items: center; gap: 9px; padding-left: 23px; background: #F3F6FA; border-left: 4.3px solid #5A0301; }
.ps-kw b { font-size: 14.7px; color: #5A0301; }
.ps-kw span { font-size: 15.3px; color: #29435C; }

.ps-roadmap-label { position: absolute; left: 82.6px; width: 576px; font-size: 11.3px; letter-spacing: 3.2px; color: #8494A6; }
.ps-steps { position: absolute; left: 82.6px; width: 1113.6px; display: grid; gap: 28.8px; }
.ps-step { position: relative; height: 107.5px; padding: 13px 15px; border: 1px solid #E2E8F0; border-radius: 15px; background: #F3F6FA; }
.ps-step b { display: block; font-family: Arial, sans-serif; font-size: 13.3px; line-height: 1.2; letter-spacing: .04em; color: #C08A72; }
.ps-step span { display: block; margin-top: 7px; font-size: 18px; line-height: 1.15; font-weight: 700; color: #0A2036; }
.ps-step:not(:last-child)::after { content: '→'; position: absolute; right: -25px; top: 50%; transform: translateY(-50%); font-size: 17px; color: #C08A72; }

.ps-panel { position: absolute; left: 0; top: 0; width: 436.8px; height: 720px; background: #0A2036; }
.ps-ch-no { position: absolute; left: 78.7px; top: 124.8px; width: 326.4px; font-family: Arial, sans-serif; font-size: 88px; line-height: 1; font-weight: 700; color: #C08A72; }
.ps-ch-en { position: absolute; left: 82.6px; top: 288px; width: 307.2px; font-size: 12.7px; letter-spacing: 4px; color: #8FA6BC; }
.ps-ch-cn { position: absolute; left: 82.6px; top: 318.7px; width: 307.2px; font-size: 16.7px; color: #fff; }
.ps-sec-kicker { position: absolute; left: 494.4px; top: 144px; width: 691.2px; font-size: 12.7px; letter-spacing: 1.6px; color: #5A6E84; }
.ps-sec-title { position: absolute; left: 494.4px; top: 176.6px; width: 696px; font-size: 37.3px; line-height: 1.12; font-weight: 700; color: #0A2036; }
.ps-sec-lead-bar { position: absolute; left: 494.4px; top: 322.6px; width: 4.3px; height: 57.6px; background: #5A0301; }
.ps-sec-lead { position: absolute; left: 513.6px; top: 316.8px; width: 676.8px; font-size: 17.3px; line-height: 1.25; color: #5A0301; }
.ps-sec-rule { position: absolute; left: 494.4px; width: 667.2px; height: 1.2px; background: #E2E8F0; }
.ps-sec-list { position: absolute; left: 494.4px; width: 681.6px; overflow: hidden; }

.ps-end-kicker { position: absolute; left: 90.2px; top: 187.2px; width: 768px; font-size: 14.7px; letter-spacing: 4px; color: #8FA6BC; }
.ps-end-title { position: absolute; left: 90.2px; top: 225.6px; width: 912px; font-size: 53.3px; line-height: 1.1; font-weight: 700; color: #fff; }
.ps-end-accent { position: absolute; left: 90.2px; top: 355.2px; width: 110.4px; height: 4.8px; background: #C08A72; }
.ps-end-points { position: absolute; left: 90.2px; top: 388.8px; width: 825.6px; }
.ps-end-points div { margin-top: 13.3px; font-size: 16.7px; line-height: 1.3; color: #C9D6E3; }
.ps-end-points div:first-child { margin-top: 0; }
.ps-end-points div.lead { font-size: 20px; font-weight: 700; color: #C08A72; }

.ppt-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; padding: 0; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .28); background: rgba(6, 23, 38, .55); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.ppt-arrow.prev { left: 12px; }
.ppt-arrow.next { right: 12px; }
.ppt-arrow:hover:not(:disabled) { background: rgba(90, 3, 1, .82); border-color: rgba(255, 255, 255, .5); }
.ppt-arrow:disabled { opacity: .22; cursor: default; }
.ppt-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; padding: 10px 2px 0; color: #C9D6E3; font-size: 12.5px; }
.ppt-hint { color: #8FA6BC; }
.ppt-thumbs { display: flex; gap: 8px; margin-top: 8px; padding: 2px 2px 4px; overflow-x: auto; scrollbar-width: thin; }
.ppt-thumb { flex: 0 0 138px; text-align: left; border: 1px solid #24405C; background: #0F2233; border-radius: 8px; padding: 7px 9px 8px; cursor: pointer; font-family: inherit; transition: border-color .15s, background .15s; }
.ppt-thumb b { display: block; font: 700 11px/1.4 Arial, sans-serif; letter-spacing: .06em; color: #C08A72; }
.ppt-thumb span { display: block; margin-top: 1px; font-size: 12.5px; font-weight: 700; color: #EDF3F9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppt-thumb i { display: block; margin-top: 3px; font-style: normal; font-size: 11px; color: #8FA6BC; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ppt-thumb.on { background: #1B3348; border-color: #C08A72; }
.ppt-thumb:focus-visible { outline: 2px solid #C08A72; outline-offset: 2px; }
.ppt-exit { display: none; position: absolute; top: 14px; right: 16px; z-index: 4; border: 1px solid rgba(255, 255, 255, .4); background: rgba(90, 3, 1, .85); color: #fff; border-radius: 999px; padding: 6px 14px; font-size: 12.5px; cursor: pointer; }
.ppt-exit:hover { background: #5A0301; }
.ppt-panel > .ppt-viewer:fullscreen { max-width: none; padding: 16px 18px 10px; background: #061726; display: flex; flex-direction: column; justify-content: center; }
.ppt-viewer:fullscreen .ppt-stage, .ppt-viewer:fullscreen .ppt-bar, .ppt-viewer:fullscreen .ppt-thumbs { width: min(100%, calc((100vh - 190px) * 16 / 9)); margin-left: auto; margin-right: auto; }
.ppt-viewer:fullscreen .ppt-frame { width: 100%; }
.ppt-viewer:fullscreen .ppt-exit { display: inline-flex; }
@media (max-width: 720px) {
  .ppt-viewer { padding: 8px; border-radius: 10px; }
  .ppt-actions { width: 100%; }
  .ppt-actions .btn { flex: 1; }
  .ppt-arrow { width: 32px; height: 32px; font-size: 22px; }
  .ppt-thumb { flex-basis: 120px; }
}

/* ---------- sections below ---------- */
.sect { padding: 46px 0 10px; }
.sect-h { text-align: center; margin-bottom: 26px; }
.sect-h h2 { font-size: 23px; }
.sect-h p { color: var(--muted); margin: 8px 0 0; font-size: 14.5px; }
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 22px; box-shadow: var(--shadow-s); }
.card .ic { width: 36px; height: 36px; border-radius: 10px; background: var(--brand-soft); color: var(--brand); display: grid; place-items: center; margin-bottom: 14px; }
.card h3 { font-size: 16px; margin-bottom: 8px; }
.card p { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0; }
.card .step { font-size: 12px; color: var(--brand); font-weight: 700; letter-spacing: .08em; }

.matrix { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; font-size: 14px; }
.matrix th, .matrix td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line2); }
.matrix th { background: #FAFBFD; font-weight: 600; color: var(--ink2); font-size: 13.5px; }
.matrix tr:last-child td { border-bottom: 0; }
.matrix td b { font-weight: 600; }
.matrix .no { color: var(--muted2); }
.matrix .yes { color: var(--ok); font-weight: 600; }

.faq { display: grid; gap: 2px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); overflow: hidden; }
.qa { padding: 0; border-bottom: 0; }
.qa:last-child { border-bottom: 0; }
.qa .q { font-weight: 600; font-size: 14.5px; display: flex; gap: 8px; }
.qa .q span { color: var(--brand); }
.qa .a { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 7px 0 0 20px; }

.site-foot { margin-top: 50px; border-top: 1px solid var(--line); background: #fff; padding: 26px 0 34px; }
.foot-inner { display: flex; gap: 20px; align-items: flex-start; font-size: 13px; color: var(--muted); }
.foot-inner .l { max-width: 640px; line-height: 1.8; }
.foot-inner .r { margin-left: auto; text-align: right; line-height: 1.9; }

/* ---------- modal / drawer ---------- */
.mask { position: fixed; inset: 0; background: rgba(10, 32, 54, .42); z-index: 90; display: grid; place-items: center; padding: 20px; }
.modal { background: #fff; border-radius: var(--r-l); width: 560px; max-width: calc(100vw - 40px); max-height: 86vh; overflow: auto; box-shadow: var(--shadow-l); }
.modal-head { padding: 18px 22px 0; display: flex; align-items: flex-start; gap: 10px; }
.modal-head h3 { font-size: 17px; }
.modal-head p { margin: 5px 0 0; font-size: 13.5px; color: var(--muted); }
.modal-head .x { margin-left: auto; border: 0; background: transparent; font-size: 21px; color: var(--muted2); line-height: 1; padding: 0 4px; }
.modal-body { padding: 16px 22px 22px; }
.modal-foot { padding: 10px 22px 20px; display: flex; gap: 10px; }
.modal-foot .r { margin-left: auto; display: flex; gap: 10px; }

.opt-item { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-bottom: 8px; cursor: pointer; transition: .15s; display: flex; gap: 10px; align-items: flex-start; }
.opt-item:hover { border-color: var(--brand); background: #F7F9FB; }
.opt-item .t { font-size: 14.5px; font-weight: 600; line-height: 1.5; }
.opt-item .tags { margin-top: 6px; display: flex; gap: 6px; flex-wrap: wrap; }
.opt-item .why { font-size: 12.5px; color: var(--muted); margin-top: 5px; }
.opt-old { font-size: 13.5px; color: var(--muted); background: #F7F9FB; border-radius: 8px; padding: 9px 12px; margin-bottom: 12px; text-decoration: line-through; }

.order { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; margin-bottom: 14px; }
.order .row-o { display: flex; gap: 10px; padding: 10px 14px; font-size: 14px; border-bottom: 1px solid var(--line2); }
.order .row-o:last-child { border-bottom: 0; }
.order .row-o .k { color: var(--muted); width: 76px; flex: none; }
.order .row-o .v { color: var(--ink2); min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.order .row-o.total { background: #FAFBFD; }
.order .row-o.total .v { margin-left: auto; font-weight: 700; font-size: 19px; color: var(--ink); }
.pay-tip { font-size: 12.5px; color: var(--muted2); text-align: center; margin-top: 10px; }
.qr { width: 132px; height: 132px; border: 1px solid var(--line); border-radius: 8px; display: grid; place-items: center; margin: 0 auto 12px; background: #FAFBFD; color: var(--muted2); font-size: 12px; text-align: center; padding: 8px; }

.drawer-mask { position: fixed; inset: 0; background: rgba(10, 32, 54, .32); z-index: 95; }
.drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: 520px; max-width: 94vw; background: #fff; z-index: 96;
  box-shadow: -18px 0 40px -20px rgba(10, 32, 54, .35); display: flex; flex-direction: column;
}
.drawer-head { padding: 18px 20px 12px; border-bottom: 1px solid var(--line2); display: flex; align-items: center; gap: 10px; }
.drawer-body { padding: 16px 20px; overflow: auto; flex: 1; }
.drawer-foot { padding: 14px 20px 18px; border-top: 1px solid var(--line2); display: flex; gap: 8px; }
.pane { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.pane .lb { font-size: 12.5px; color: var(--muted); margin-bottom: 6px; display: flex; }
.pane .lb b { margin-left: auto; font-weight: 600; }
.pane .tx { font-size: 14px; line-height: 1.85; color: var(--ink2); }
.pane.new { border-color: #CFDCE9; background: #F7F9FB; }

/* 操作反馈统一显示在视口正中 */
.toast {
  position: fixed; left: 50%; top: 50%; bottom: auto;
  transform: translate(-50%, -50%) translateY(10px);
  width: max-content; max-width: min(560px, calc(100vw - 48px));
  background: #0A2036; color: #fff; font-size: 15px; padding: 16px 24px; border-radius: 12px;
  line-height: 1.7; text-align: center; overflow-wrap: anywhere;
  z-index: 200; opacity: 0; pointer-events: none; transition: .22s; box-shadow: var(--shadow-l);
}
.toast.on { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
.toast.ok { background: #0A2036; }
.toast.err { background: #5A0301; }

/* ---------- responsive ---------- */
@media (max-width: 1080px) {
  .studio { grid-template-columns: 1fr; }
  .stats { margin-left: 0; }
  .hero-grid { flex-direction: column; align-items: flex-start; gap: 18px; }
  .res-layout, .ol-body { grid-template-columns: 1fr; }
  .toc-card { position: static; max-height: none; }
  .cards3, .ol-variants { grid-template-columns: 1fr; }
  .rep-grid { grid-template-columns: 1fr 1fr; }
  .rep-libs { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .wrap { max-width: calc(100% - 24px); }
  .nav, .ghost-link { display: none; }
  .brand small { display: none; }
  .header-inner { gap: 10px; height: 56px; }
  .stats { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .hero h1 { font-size: 24px; }
  .paper { padding: 26px 20px 24px; }
  .res-head { align-items: flex-start; }
  .res-head-main { flex-basis: 100%; }
  .res-head h1 { font-size: 21px; }
  .res-head-acts { width: 100%; justify-content: flex-start; }
  .res-head-acts .btn { flex: 1 1 auto; }
  .doc-tools { flex-direction: column; align-items: stretch; gap: 10px; }
  .doc-acts { margin-left: 0; justify-content: flex-end; }
  .res-layout { display: flex; flex-direction: column-reverse; }
  .toc-card { max-height: 320px; }
  .doc-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .doc-tabs::-webkit-scrollbar { display: none; }
  .paper .cover .school { font-size: 19px; }
  .paper .cover h1 { font-size: 20px; margin-bottom: 30px; }
  .paper .cover table { width: 100%; }
  .paper .cover td:first-child { width: 62px; padding-right: 10px; font-size: 14px; }
  .paper .cover td:last-child { min-width: 0; font-size: 14px; }
  .paper p { font-size: 14.5px; line-height: 1.95; }
  .res-layout > div { min-width: 0; width: 100%; }
  .paper { width: 100%; max-width: 100%; overflow-x: hidden; }
  .paper .formula { flex-wrap: wrap; }
  .res-layout > div { min-width: 0; width: 100%; }
  .paper { width: 100%; max-width: 100%; overflow-x: hidden; }
  .paper .formula { flex-wrap: wrap; }
  .doc-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .doc-tabs::-webkit-scrollbar { display: none; }
  .paper .cover .school { font-size: 19px; }
  .paper .cover h1 { font-size: 20px; margin-bottom: 30px; }
  .paper .cover table { width: 100%; }
  .paper .cover td:first-child { width: 62px; padding-right: 10px; font-size: 14px; }
  .paper .cover td:last-child { min-width: 0; font-size: 14px; }
  .paper p { font-size: 14.5px; line-height: 1.95; }
  .res-layout > div { min-width: 0; width: 100%; }
  .paper { width: 100%; max-width: 100%; overflow-x: hidden; }
  .paper .formula { flex-wrap: wrap; }
  .res-layout > div { min-width: 0; width: 100%; }
  .paper { width: 100%; max-width: 100%; overflow-x: hidden; }
  .paper .formula { flex-wrap: wrap; }
  .row { flex-direction: column; gap: 6px; }
  .row > label.lbl { width: auto; padding-top: 0; }
  .form-panel { padding: 4px 16px 18px; }
}

/* ---------- print ---------- */
@page { size: A4; margin: 25mm 22mm; }
@media print {
  body { background: #fff; }
  .site-header, .site-foot, .res-head, .value-bar, .toc-card, .doc-tools, .hero, .sect, .studio,
  #page-outline, #page-generating, .drawer, .drawer-mask, .mask, .toast, .no-print,
  .doc-material-acts, .ppt-actions { display: none !important; }
  #page-result { padding: 0; }
  .res-layout { display: block; }
  .paper { border: 0; box-shadow: none; padding: 0; max-width: none; }
  .paper p { font-size: 12pt; line-height: 1.7; }
  .paper h2.chapter { page-break-before: always; }
  .paper h2.chapter:first-of-type { page-break-before: avoid; }
  .paper h4.subsec { page-break-after: avoid; }
  .paper .fig, .paper .tbl-wrap, .paper .formula, .paper pre.code { page-break-inside: avoid; }
  .paper .cover { border: 0; page-break-after: always; }
  .paper .doc-foot { font-size: 9pt; }
  a[href]:after { content: ""; }
}

/* ---------- 侧栏 ---------- */
.side-col { display: grid; gap: 14px; }

/* ---------- 自定义大纲粘贴区 ---------- */
.ol-paste { background: var(--brand-soft); border: 1px dashed #C6D4E2; border-radius: 12px; padding: 14px; margin: 6px 0 14px; }
.ol-paste-h { font-size: 14px; font-weight: 600; color: var(--brand-dark); margin-bottom: 8px; }
.ol-paste-h span { font-weight: 400; color: var(--muted); font-size: 12.5px; margin-left: 6px; }
.ol-paste textarea { width: 100%; border: 1px solid #C6D4E2; border-radius: 8px; padding: 10px 12px; font-size: 13.5px; line-height: 1.8; outline: none; background: #fff; resize: vertical; }
.ol-paste-f { display: flex; align-items: center; gap: 10px; margin-top: 8px; font-size: 12.5px; color: var(--muted); flex-wrap: wrap; }
.ol-paste-f .btn { margin-left: auto; }
.ol-paste-f .btn + .btn { margin-left: 0; }

/* ================= 去价格化：免费提示 ================= */
.free-note { display: flex; flex-direction: column; gap: 2px; margin-left: auto; padding-right: 10px; text-align: right; max-width: 300px; }
.free-note b { font-size: 15px; color: var(--brand-dark); font-weight: 700; }
.free-note span { font-size: 12px; color: var(--muted2); line-height: 1.45; }

/* ================= 邀请裂变条 ================= */
.invite-bar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 12px 0 14px; padding: 12px 16px;
  border: 1px solid #DCE5EF; border-radius: 12px;
  background: linear-gradient(90deg, #F7F9FB 0%, #F7F9FB 100%);
}
.invite-bar .ib-l { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; min-width: 0; }
.invite-bar .ib-l b { font-size: 14.5px; color: var(--brand-dark); }
.invite-bar .ib-l span { font-size: 13px; color: var(--muted); }
.invite-bar .ib-r { margin-left: auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.invite-bar .ib-cnt { font-size: 13px; color: var(--muted); }
.invite-bar .ib-cnt b { color: #5A0301; font-size: 15px; margin: 0 2px; }

/* ================= 下载弹窗 ================= */
.dl-doc { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; background: var(--bg-soft, #F7F9FB); margin-bottom: 12px; }
.dl-doc .ic { width: 34px; height: 34px; border-radius: 9px; background: #E8EEF5; color: var(--brand); display: grid; place-items: center; font-size: 14px; font-weight: 700; flex: none; }
.dl-doc .tx { min-width: 0; }
.dl-doc .tx b { display: block; font-size: 14px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 380px; }
.dl-doc .tx span { font-size: 12.5px; color: var(--muted2); }
#modalDelete .dl-doc .tx b { white-space: normal; overflow-wrap: anywhere; max-width: none; }

.dl-coupon { margin-bottom: 12px; }
.dl-coupon .cp {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  border: 1px dashed #EBCF9F; border-radius: 9px; background: #FBF2E3; font-size: 13.5px; color: #5A0301;
}
.dl-coupon .cp b { color: #5A0301; }
.dl-coupon .cp .btn { margin-left: auto; }

.dl-plan-h { font-size: 13.5px; font-weight: 600; color: var(--ink2); margin: 4px 0 8px; }
.dl-plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.dl-plan {
  position: relative; border: 1px solid var(--line); border-radius: 11px; padding: 12px 12px 11px;
  cursor: pointer; background: #fff; transition: .15s;
}
.dl-plan:hover { border-color: #C6D4E2; }
.dl-plan.on { border-color: var(--brand); background: var(--brand-soft); box-shadow: 0 0 0 3px rgba(10,32,54,.07); }
.dl-plan .n { font-size: 14px; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 6px; }
.dl-plan .d { font-size: 12px; color: var(--muted2); margin-top: 4px; line-height: 1.5; min-height: 32px; }
.dl-plan .p { font-size: 20px; font-weight: 700; color: var(--ink); margin-top: 6px; }
.dl-plan .p i { font-size: 13px; font-style: normal; font-weight: 600; margin-right: 1px; }
.dl-plan .p s { font-size: 12px; color: var(--muted2); font-weight: 400; margin-left: 5px; }
.dl-plan .off { position: absolute; top: -8px; right: 8px; font-size: 11px; padding: 2px 6px; border-radius: 6px; background: #FBF2E3; color: #5A0301; }

.dl-addon { display: flex; align-items: center; gap: 10px; margin-top: 14px; }
.dl-addon > span { font-size: 13.5px; color: var(--ink2); flex: none; }
.dl-addon .chips { display: flex; gap: 8px; flex-wrap: wrap; }
.dl-addon .chip { font-size: 13px; padding: 5px 10px; }
.dl-addon .chip small { color: var(--muted2); margin-left: 3px; }

.pay-tip { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.pay-tip .dl-pay { margin-left: auto; font-size: 13.5px; color: var(--muted); }
.pay-tip .dl-pay b { font-size: 19px; color: #5A0301; margin-left: 2px; }

/* ================= 我的权益 ================= */
.perk-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.perk-card { border: 1px solid var(--line); border-radius: 11px; padding: 12px; text-align: center; }
.perk-card b { display: block; font-size: 21px; color: var(--brand-dark); }
.perk-card span { font-size: 12.5px; color: var(--muted2); }
.perk-invite { margin-top: 16px; }
.pi-h { font-size: 13.5px; font-weight: 600; color: var(--ink2); margin-bottom: 6px; }
.pi-link { display: flex; gap: 8px; }
.pi-link input { flex: 1; min-width: 0; font-size: 13px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: #F7F9FB; }
.pi-note { font-size: 12px; color: var(--muted2); margin-top: 6px; line-height: 1.6; }
.perk-h { font-size: 13.5px; font-weight: 600; color: var(--ink2); margin: 16px 0 6px; }
.perk-list { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; max-height: 132px; overflow-y: auto; }
.perk-list .row { display: flex; align-items: center; gap: 8px; padding: 9px 12px; font-size: 13px; border-bottom: 1px solid var(--line2); }
.perk-list .row:last-child { border-bottom: 0; }
.perk-list .row .m { margin-left: auto; color: #24405C; font-size: 12.5px; }
.perk-list .empty { padding: 18px 12px; text-align: center; font-size: 13px; color: var(--muted2); }
.perk-foot { font-size: 12.5px; color: var(--muted2); }

@media (max-width: 720px) {
  .dl-plans { grid-template-columns: 1fr; }
  .perk-grid { grid-template-columns: 1fr 1fr; }
  .invite-bar .ib-r { margin-left: 0; width: 100%; }
  .free-note { margin-left: 0; text-align: left; }
}

/* ================= 步骤条：已合并至 header 流程条 ================= */

.panel-head h2 .h2-no {
  display: inline-grid; place-items: center; width: 22px; height: 22px; margin-right: 7px;
  border-radius: 7px; background: var(--brand); color: #fff; font-size: 12.5px; font-weight: 700;
  vertical-align: 1px;
}

/* ================= 顶部导航（四 Tab） ================= */
.nav { display: flex; align-items: center; gap: 26px; }
.nav span {
  position: relative; font-size: 15px; color: var(--muted); cursor: pointer;
  padding: 6px 2px; transition: color .15s; white-space: nowrap;
}
.nav span:hover { color: var(--ink); }
.nav span.on { color: var(--ink); font-weight: 600; }
.nav span.on::after {
  content: ""; position: absolute; left: 50%; bottom: -3px; width: 5px; height: 5px;
  margin-left: -2.5px; border-radius: 50%; background: #E9B168;
}

/* 版本卡标签：主推高亮 */
.ver-tags .bt { background: #EDF2F7; color: var(--brand-dark); font-weight: 600; }
.ver-tags .bt.hot { background: #FBF2E3; color: #5A0301; }

/* 头部小屏收敛（放在最后，避免覆盖前面的 display:none） */
@media (max-width: 900px) {
  .nav { display: none; }
}
@media (max-width: 560px) {
  .header-inner { gap: 8px; }
  .header-right { gap: 6px; }
  #myDocBtn { display: none; }
  .ghost-link { display: none; }
  .free-note { max-width: none; }
}

/* ================= 首页：写作工具网格 ================= */
.tools { padding: 10px 0 4px; }
.tools-h { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.tools-h h2 { font-size: 18px; font-weight: 700; color: var(--ink); }
.tools-h p { font-size: 13.5px; color: var(--muted); }
.tools-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 860px) { .tools-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.tool-card {
  position: relative; display: flex; align-items: center; gap: 9px;
  padding: 11px 11px; border: 1.5px solid var(--line); border-radius: 11px;
  background: #fff; cursor: pointer; transition: .15s; min-height: 62px;
}
.tool-card:hover { border-color: #B9C9D9; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(20,40,90,.06); }
.tool-card.on { border-color: var(--brand); background: #F7F9FB; box-shadow: 0 0 0 3px rgba(10,32,54,.08); }
.tool-card .ico {
  width: 30px; height: 30px; border-radius: 9px; flex: none; color: #fff;
  display: grid; place-items: center; font-size: 13px; font-weight: 700;
}
.tool-card .tx { min-width: 0; flex: 1; }
.tool-card .tx b { display: block; font-size: 13.5px; font-weight: 650; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tool-card .tx span { display: block; font-size: 11.5px; color: var(--muted2); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tool-card .ck {
  width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid #C9D4E0; flex: none;
  background: #fff; display: grid; place-items: center;
}
.tool-card.on .ck { border-color: var(--brand); background: var(--brand); }
.tool-card.on .ck::after {
  content: ""; width: 7px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translateY(-1px);
}
.tool-card .hot {
  position: absolute; top: -7px; right: 8px; font-size: 11px; padding: 1px 6px;
  border-radius: 6px; background: #FBF2E3; color: #5A0301;
}

/* ================= 表单顶部：当前版本条 ================= */
.cur-ver {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 11px 14px; margin-top: 12px;
  border: 1px solid #DCE5EF; border-radius: 11px; background: #F7F9FB;
}
.cur-ver .cv-l { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; }
.cv-tag { font-size: 12px; color: var(--muted2); background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 2px 6px; }
.cur-ver b { font-size: 14.5px; color: var(--brand-dark); }
.cv-tags { display: flex; gap: 4px; flex-wrap: wrap; }
.cv-tags span { font-size: 11.5px; padding: 2px 6px; border-radius: 5px; background: #EDF2F7; color: var(--muted); }
.cv-tags span.hi { background: #FBF2E3; color: #5A0301; }
.cur-ver .btn { margin-left: auto; }

/* ================= Hero 升级：徽标 / CTA / 信任条 ================= */
.hero-l { min-width: 0; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--brand-dark);
  background: var(--brand-soft); border: 1px solid #DCE5EF;
  border-radius: 99px; padding: 5px 12px; margin-bottom: 14px;
}
.hero-badge b { font-weight: 700; }
.hb-dot { width: 6px; height: 6px; border-radius: 50%; background: #0A2036; box-shadow: 0 0 0 3px rgba(10,32,54,.16); animation: pulse 2s infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
.hero-actions { display: flex; align-items: center; gap: 14px; margin-top: 20px; flex-wrap: wrap; }
.hero-actions .btn { box-shadow: 0 8px 20px -6px rgba(10,32,54,.45); }
.hero-trust { display: flex; flex-direction: column; gap: 1px; }
.hero-trust b { font-size: 14px; color: #0A2036; }
.hero-trust span { font-size: 13px; color: var(--muted); }

.stat i { display: block; font-style: normal; font-size: 11px; color: var(--muted2); margin-top: 1px; }
.stat.hi { border-color: #DCE5EF; background: linear-gradient(160deg, #F7F9FB, #fff); }
.stat.hi b { color: var(--brand-dark); }
.stat.hi b em { font-style: normal; font-size: 13px; }

/* ================= 流程条：Tab 衔接 ================= */
.ctxbar { border-top: 1px solid var(--line2); background: rgba(248,250,253,.92); }
.ctx-inner { display: flex; align-items: center; gap: 16px; min-height: 46px; padding: 5px 0; }
.ctx-steps { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
.cs {
  display: inline-flex; align-items: center; gap: 7px;
  border: 0; background: none; cursor: pointer;
  font-size: 13.5px; color: var(--muted); padding: 5px 9px; border-radius: 8px;
  transition: .15s; font-family: inherit;
}
.cs i {
  width: 19px; height: 19px; border-radius: 50%; font-style: normal;
  display: inline-grid; place-items: center; font-size: 12px; font-weight: 600;
  background: #EDF2F7; color: var(--muted); flex: none;
}
.cs:hover { background: #EDF2F7; color: var(--ink2); }
.cs.cur { color: var(--brand-dark); font-weight: 600; background: var(--brand-soft); }
.cs.cur i { background: var(--brand); color: #fff; box-shadow: 0 2px 6px -1px rgba(10,32,54,.5); }
.cs.done { color: #0A2036; }
.cs.done i { background: #EDF2F7; color: #0A2036; }
.cs.lock { color: var(--muted2); opacity: .75; }
.cs-arrow { color: #B9C6D4; font-size: 13px; user-select: none; }
.ctx-mid { min-width: 0; font-size: 13px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ctx-mid b { color: var(--ink2); font-weight: 600; }
.ctx-mid .pip { margin: 0 6px; color: #B9C6D4; }
.ctx-act { margin-left: auto; display: flex; align-items: center; gap: 8px; flex: none; }
@media (max-width: 900px) { .ctx-steps { display: none; } }

/* ================= 结果页：交付价值条 ================= */
.value-bar {
  display: flex; gap: 20px; align-items: stretch;
  background: linear-gradient(120deg, #0A2036, #0A2036 55%, #1B3B5C);
  border-radius: var(--r-l); padding: 20px 24px; color: #fff;
  margin-bottom: 14px; box-shadow: 0 10px 26px -10px rgba(10,32,54,.55);
}
.vb-l { flex: 1; min-width: 0; }
.vb-t { font-size: 16px; font-weight: 700; letter-spacing: .01em; }
.vb-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; }
.vb-list li { font-size: 13.5px; color: rgba(255,255,255,.86); display: flex; gap: 7px; align-items: flex-start; line-height: 1.45; }
.vb-list li::before { content: "✓"; color: #E9B168; font-weight: 700; flex: none; }
.vb-r {
  flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 9px; min-width: 200px; padding: 12px 8px;
  background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); border-radius: 12px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16);
}
.vb-price { display: flex; align-items: baseline; gap: 5px; color: #fff; }
.vb-price i { font-style: normal; font-size: 15px; }
.vb-price b { font-size: 33px; line-height: 1.1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.vb-price s { color: rgba(255,255,255,.55); font-size: 14px; }
.vb-note { font-size: 13px; line-height: 1.55; color: rgba(255,255,255,.94); text-align: center; }
.vb-note.is-warn { color: #F0D5AD; font-weight: 600; }
.vb-note.is-ok { color: #C9DBE9; }
@media (max-width: 900px) { .value-bar { flex-direction: column; } .vb-list { grid-template-columns: 1fr; } .vb-r { width: 100%; } }

/* ================= 标题优化：过程动画 ================= */
.opt-anim { padding: 26px 6px 10px; }
.oa-row { display: flex; align-items: center; gap: 11px; font-size: 14.5px; color: var(--muted); padding: 7px 0; }
.oa-row .oa-ic {
  width: 22px; height: 22px; border-radius: 50%; flex: none;
  display: grid; place-items: center; font-size: 13px; font-weight: 700;
  background: #EDF2F7; color: var(--muted2);
}
.oa-row.run .oa-ic { background: var(--brand-soft); color: var(--brand); }
.oa-row.run .oa-ic::after { content: ""; width: 10px; height: 10px; border: 2px solid var(--brand); border-top-color: transparent; border-radius: 50%; animation: oaSpin .7s linear infinite; }
.oa-row.done { color: var(--ink2); }
.oa-row.done .oa-ic { background: #EDF2F7; color: #0A2036; }
.oa-row.done .oa-ic::before { content: "✓"; }
.oa-row .oa-detail { margin-left: auto; font-size: 12.5px; color: var(--muted2); }
.oa-bar { height: 4px; border-radius: 2px; background: #EDF2F7; overflow: hidden; margin-top: 8px; }
.oa-bar i { display: block; height: 100%; width: 0; border-radius: 2px; background: linear-gradient(90deg, var(--brand), #24405C); transition: width .35s ease; }
@keyframes oaSpin { to { transform: rotate(360deg); } }

/* 页面切换淡入 */
.page-fade { animation: pageIn .32s ease; }
@keyframes pageIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ================= 撰写规范上传（增强版） ================= */
.opt-tag { font-style: normal; font-size: 11.5px; color: var(--muted2); background: #F1F4F8; border-radius: 5px; padding: 1px 5px; margin-left: 6px; vertical-align: 1px; }
.up-zone {
  border: 1.5px dashed #C6D4E2; border-radius: 12px; background: #F7F9FB;
  padding: 18px 20px; text-align: center; transition: .16s;
}
.up-zone.hot { border-color: var(--brand); background: #F7F9FB; }
.up-zone .up-ic { color: var(--brand); display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: #EDF2F7; }
.up-zone .up-t { font-size: 14.5px; font-weight: 600; color: var(--ink); margin-top: 8px; }
.up-zone .up-s { font-size: 12.5px; color: var(--muted); margin-top: 4px; line-height: 1.55; max-width: 520px; margin-left: auto; margin-right: auto; }
.up-btns { display: flex; gap: 8px; justify-content: center; margin-top: 12px; }

.up-item {
  display: flex; align-items: center; gap: 10px; margin-top: 10px;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff;
}
.up-item .ui-ic { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: #E8EEF5; color: #24405C; font-size: 11px; font-weight: 700; flex: none; }
.up-item .ui-t { min-width: 0; flex: 1; }
.up-item .ui-t b { display: block; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.up-item .ui-t span { font-size: 12px; color: var(--muted); }
.up-item .ui-x { border: 0; background: none; color: var(--muted2); cursor: pointer; font-size: 17px; line-height: 1; padding: 4px; }
.up-item .ui-x:hover { color: var(--danger); }
.up-loading { font-size: 12.5px; color: var(--brand-dark); }

.up-rules { margin-top: 12px; border: 1px solid #DCE5EF; border-radius: 10px; background: #F7F9FB; padding: 12px 14px; }
.ur-h { font-size: 13px; font-weight: 600; color: var(--brand-dark); display: flex; align-items: center; gap: 6px; }
.ur-h .n { font-weight: 400; color: var(--muted); }
.ur-group { margin-top: 10px; }
.ur-gt { font-size: 12px; color: var(--muted2); margin-bottom: 5px; }
.ur-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ur-chip {
  font-size: 12.5px; padding: 4px 9px; border-radius: 7px;
  background: #fff; border: 1px solid var(--line); color: var(--ink2);
}
.ur-chip.ok { border-color: #CFDCE9; background: #F1F5F9; color: #24405C; }
.ur-chip.warn { border-color: #EBCF9F; background: #FBF2E3; color: #5A0301; }
.ur-chip b { font-weight: 600; }
.ur-act { margin-top: 10px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: var(--muted); }

/* 撰写规范：直接粘贴文字（与文件上传并列） */
.spec-paste { margin-top: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.spec-paste summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 14px; font-size: 13.5px; font-weight: 600; color: var(--ink2); }
.spec-paste summary::-webkit-details-marker { display: none; }
.spec-paste summary::after { content: '⌄'; font-weight: 400; color: var(--brand); }
.spec-paste[open] summary { border-bottom: 1px solid var(--line2); }
.spec-paste[open] summary::after { content: '⌃'; }
.spec-paste summary:focus-visible { outline: 3px solid #A9BACB; outline-offset: 2px; border-radius: 11px; }
.spec-paste textarea { width: calc(100% - 28px); margin: 12px 14px 0; font-size: 13.5px; line-height: 1.7; }
.sp-foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 10px 14px 14px; }
.sp-tip { font-size: 12.5px; color: var(--muted); line-height: 1.5; }

/* 大纲：规范要求标记 */
.ol-tag.spec {
  font-size: 11px; padding: 1px 6px; border-radius: 5px; flex: none;
  background: #EDF2F7; color: #24405C; border: 1px solid #DCE5EF;
}
/* 结果页：撰写规范对照表 */
.spec-check {
  margin-top: 16px; border: 1px solid #DCE5EF; border-radius: var(--r-m);
  background: #fff; padding: 16px 20px; box-shadow: var(--shadow-s);
}
.sc-h { font-size: 15px; font-weight: 700; color: var(--ink); margin-bottom: 12px; }
.sc-h span { font-weight: 400; font-size: 12.5px; color: var(--muted); margin-left: 8px; }
.sc-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sc-tbl th {
  text-align: left; font-weight: 500; color: var(--muted);
  background: #F7F9FB; padding: 8px 10px; border-bottom: 1px solid var(--line);
}
.sc-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--line2); color: var(--ink2); vertical-align: top; }
.sc-tbl td.ok { color: #24405C; font-weight: 600; }
.sc-tbl td.no { color: #5A0301; font-weight: 600; }
.sc-foot { font-size: 12.5px; color: var(--muted); margin-top: 10px; line-height: 1.6; }

/* 上传规范行：标签文案较长，放宽列宽并允许两行 */
.row > label.lbl.spec-lbl { width: 108px; font-size: 13.5px; line-height: 1.45; padding-top: 7px; }
.row > label.lbl.spec-lbl .opt-tag { margin-left: 0; display: inline-block; margin-top: 4px; }
@media (max-width: 760px) { .row > label.lbl.spec-lbl { width: 84px; font-size: 13px; } }

/* 查重报告：AI 特征率 */
.rep-sep { width: 1px; height: 44px; background: var(--line2); margin: 0 6px; }
.rep-head .big.ai { color: #5A0301; }
.rep-head .big.ai.warn { color: var(--warn); }
@media (max-width: 1080px) { .rep-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .rep-grid { grid-template-columns: repeat(2, 1fr); } .rep-head { flex-wrap: wrap; } }

/* 预览查重：AI 特征率条 */
.pv-ai {
  margin: 12px 0 0; display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--ink2);
  background: #F9EDEA; border: 1px solid #EFDAD5; border-radius: 8px; padding: 7px 11px;
}
.pv-ai b { color: #5A0301; }
.pa-tag {
  font-size: 11px; font-weight: 700; letter-spacing: .04em;
  background: #5A0301; color: #fff; border-radius: 4px; padding: 1px 5px;
}

/* ================= 预览付费墙：第 3 章起锁定 ================= */
.lock-cta {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  margin: 30px 0 18px; padding: 18px 22px;
  border: 1px solid #DCE5EF; border-radius: 14px;
  background: linear-gradient(120deg, #F7F9FB, #EDF2F7);
}
.lc-l { flex: 1; min-width: 210px; }
.lc-l b { display: block; font-size: 16px; color: var(--ink); }
.lc-l span { display: block; font-size: 13px; color: var(--muted); margin-top: 4px; }
.lock-zone { position: relative; user-select: none; }
.lock-zone::after {
  content: ""; position: absolute; left: -10px; top: 0; bottom: 0; width: 3px;
  border-radius: 2px; background: repeating-linear-gradient(180deg, #DCE5EF 0 6px, transparent 6px 12px);
}
h2.chapter.locked, h3.sec.locked { color: var(--muted2); opacity: .72; }
.lock-skel { display: flex; flex-direction: column; gap: 9px; margin: 0 0 14px; }
.lock-skel i {
  display: block; height: 11px; border-radius: 6px;
  background: linear-gradient(90deg, #EFF2F6 0%, #E3EAF2 40%, #EFF2F6 80%);
  background-size: 220% 100%; animation: skelMove 1.6s ease infinite;
}
@keyframes skelMove { from { background-position: 180% 0; } to { background-position: -40% 0; } }
@media print { .lock-cta, .lock-zone, .lock-skel { display: none !important; } }

/* ================= 分档定价提示 ================= */
.wn-price { display: block; margin-top: 4px; color: var(--brand-dark); }
.tier-tag {
  display: inline-block; margin-top: 5px; font-size: 12px; color: #29435C;
  background: #EDF2F7; border: 1px solid #DCE5EF; border-radius: 6px; padding: 2px 7px;
}

/* ================= 人工精修 ================= */
.polish-hint {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-top: 12px; padding: 11px 14px;
  border: 1px dashed #EBCF9F; border-radius: 10px; background: #FBF2E3;
}
.polish-hint b { font-size: 13.5px; color: #5A0301; }
.polish-hint span { flex: 1; min-width: 200px; font-size: 12.5px; color: var(--muted); line-height: 1.5; }

.vb-polish {
  margin-top: 8px; background: none; border: 0; cursor: pointer;
  font-size: 12.5px; color: rgba(255,255,255,.82); text-decoration: underline;
  font-family: inherit; padding: 0;
}
.vb-polish:hover { color: #fff; }

.pl-doc { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.pl-doc .ic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: linear-gradient(135deg,#0A2036,#24405C); color: #fff; font-size: 14px; font-weight: 700; flex: none; }
.pl-doc .tx { min-width: 0; }
.pl-doc .tx b { display: block; font-size: 14px; }
.pl-doc .tx span { font-size: 12.5px; color: var(--muted); }

.pl-price-row { display: flex; align-items: center; gap: 12px; margin: 14px 0 4px; }
.pl-price { display: flex; align-items: baseline; gap: 4px; }
.pl-price i { font-style: normal; font-size: 16px; color: var(--danger); }
.pl-price b { font-size: 29px; color: var(--danger); letter-spacing: -.02em; }
.pl-price s { font-size: 14px; color: var(--muted2); }
.pl-note { font-size: 12.5px; color: var(--muted); line-height: 1.5; }

.pl-list { margin-top: 12px; display: flex; flex-direction: column; gap: 7px; }
.pl-item { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; }
.pl-item b { flex: none; width: 132px; color: var(--ink2); }
.pl-item span { color: var(--muted); line-height: 1.5; }
.pl-item::before { content: "✓"; color: #0A2036; font-weight: 700; flex: none; font-size: 13px; margin-top: 2px; }

.pl-cs { margin-top: 16px; border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; background: #F7F9FB; }
.pl-cs-h { font-size: 13px; font-weight: 600; color: var(--brand-dark); margin-bottom: 8px; }
.pl-cs-row { display: flex; align-items: center; gap: 10px; font-size: 13.5px; padding: 4px 0; }
.pl-cs-row span { width: 68px; color: var(--muted); flex: none; }
.pl-cs-row b { font-weight: 600; }
.btn.xs { padding: 3px 9px; font-size: 12.5px; border-radius: 7px; }

.pl-sla { margin-top: 12px; font-size: 12.5px; color: var(--muted); line-height: 1.6; }
.pl-done {
  margin-top: 12px; padding: 11px 14px; border-radius: 10px;
  background: #F1F5F9; border: 1px solid #CFDCE9; color: #24405C; font-size: 13.5px;
}
.pl-done b { color: #14314F; }
@media (max-width: 560px) { .pl-item { flex-direction: column; gap: 2px; } .pl-item b { width: auto; } }

/* 价值条：字数档位说明 */
.vb-tier {
  width: fit-content; max-width: 100%;
  padding: 3px 10px; border-radius: 999px;
  background: rgba(6, 23, 38, .3); border: 1px solid rgba(255,255,255,.26);
  font-size: 13.5px; font-weight: 600; line-height: 1.6; color: #fff;
  text-align: center; margin-top: -1px;
}
.vb-tier.is-ok { background: rgba(10, 32, 54, .42); border-color: rgba(233, 177, 104, .42); color: #C9DBE9; }
.vb-tier.is-empty { background: rgba(90, 3, 1, .38); border-color: rgba(233, 177, 104, .45); color: #F0D5AD; }

/* ================= 清晰选型与四步下单 ================= */
.hero { padding-top: 36px; }
.hero-grid { align-items: center; gap: 32px; }
.hero-l { flex: 1; }
.hero h1 { font-size: 37px; line-height: 1.38; letter-spacing: -.035em; }
.hero .sub { max-width: 590px; line-height: 1.8; }
.hero-badge { line-height: 1.6; }
.stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 320px; flex: none; }
.stat { min-width: 0; padding: 14px 15px; }
.stat b { font-size: 16px; line-height: 1.6; }
.stat span { display: block; margin-top: 3px; }
.tools { padding-top: 24px; }
.tools-h { gap: 8px 14px; }
.tools-h h2 { font-size: 21px; }
.tools-h p { font-size: 14px; line-height: 1.6; }
.tools-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.tool-card { padding: 19px 16px; min-height: 98px; gap: 12px; }
.tool-card .ico { width: 38px; height: 38px; border-radius: 11px; }
.tool-card .tx b { font-size: 16px; line-height: 1.5; white-space: normal; overflow: visible; text-overflow: clip; }
.tool-card .tx span { font-size: 13px; color: var(--muted); line-height: 1.65; margin-top: 5px; white-space: normal; overflow: visible; text-overflow: clip; }
.tool-card .ck { width: 18px; height: 18px; }
.tool-card .hot { font-size: 12px; right: 14px; }
.cur-ver { gap: 10px; padding: 13px; }
.cur-ver b { font-size: 15px; }
.cv-tags span { font-size: 12px; }
.form-panel .row { padding: 16px 0; }
.form-panel .row > label.lbl { font-weight: 600; }
.row-main { min-width: 0; }
.note { display: block; line-height: 1.7; }
.note b { color: var(--brand-dark); }
.chip { min-height: 36px; display: inline-flex; align-items: center; justify-content: center; }
#wordChips .chip { min-width: 75px; }
#wordNote { background: #F7F9FB; border-radius: 8px; padding: 9px 11px; margin-top: 10px; }
.title-wrap .field { padding-right: 58px; }
input[type=radio], input[type=checkbox] { flex: none; }
.agree input { margin-top: 2px; }
.submit-bar { display: grid; grid-template-columns: 1fr auto; gap: 16px; }
.submit-bar .agree { grid-column: 1 / -1; }
.submit-bar .free-note { margin: 0; padding: 0; max-width: none; text-align: left; }
.free-note span { color: var(--muted); font-size: 13px; }
.mode-legacy, .legacy-marketing, .invite-bar, .polish-hint { display: none !important; }
.pv-tabs { gap: 8px; }
.pv-tab { padding: 7px 12px; }
.pv-foot { line-height: 1.75; }
.report-features { display: flex; flex-direction: column; gap: 15px; margin: 20px 0; }
.report-features > div { position: relative; padding-left: 36px; }
.report-features span { position: absolute; left: 0; top: 0; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 8px; color: var(--brand); background: var(--brand-soft); font-size: 12px; }
.report-features b { font-size: 14px; font-weight: 600; }
.report-features p { margin: 3px 0 0; font-size: 13px; line-height: 1.7; color: var(--muted); }
.report-demo-note { border-top: 1px solid var(--line2); padding-top: 12px; color: var(--muted); font-size: 13px; line-height: 1.75; margin: 0; }
.cards4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.cards4 .card { padding: 24px 20px; }
.card .step { margin-bottom: 12px; }
.card h3 { font-size: 17px; }
.card p { line-height: 1.85; }
.delivery-mark { display: inline-block; font-size: 12px; letter-spacing: .06em; font-weight: 700; padding: 5px 9px; border-radius: 7px; background: var(--brand-soft); color: var(--brand); margin-bottom: 14px; }
.delivery-mark.gift { background: var(--ok-soft); color: #24405C; letter-spacing: 0; }
.sect-h p { line-height: 1.8; }
.qa { padding: 0; }
.qa .a { line-height: 1.9; }
.site-foot .l { line-height: 1.9; }
.btn:focus-visible, .chip:focus-visible, .tool-card:focus-visible { outline: 3px solid #A9BACB; outline-offset: 3px; }
@media (max-width: 1080px) {
  .hero-grid { flex-direction: row; }
  .hero h1 { font-size: 31px; }
  .stats { width: 290px; }
  .cards4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .delivery-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .side-col { max-width: none; }
}
@media (max-width: 720px) {
  .hero { padding-top: 25px; }
  .hero-grid { flex-direction: column; align-items: stretch; gap: 24px; }
  .hero h1 { font-size: 31px; }
  .hero .sub { font-size: 14.5px; }
  .hero-badge { font-size: 12px; padding: 5px 10px; }
  .hero-actions { gap: 12px; }
  .hero-actions .btn { flex: 1; }
  .hero-trust { flex: 1; min-width: 170px; }
  .hero-trust b { font-size: 13px; }
  .hero-trust span { font-size: 12px; }
  .stats { width: 100%; gap: 10px; }
  .stat { padding: 12px; }
  .stat b { font-size: 15px; }
  .tools-grid { grid-template-columns: 1fr; gap: 12px; }
  .tool-card { min-height: 90px; padding: 16px; }
  .tool-card .tx b { font-size: 16px; }
  .tool-card .tx span { font-size: 13px; }
  .studio { margin-top: 16px; }
  .form-panel { padding-left: 15px; padding-right: 15px; }
  .form-panel .row { gap: 8px; padding: 15px 0; }
  .row-main { width: 100%; }
  .form-panel .row > label.lbl, .row > label.lbl.spec-lbl { width: auto; padding-top: 0; font-size: 14px; }
  .cur-ver .cv-l { flex: 1; }
  .cur-ver .cv-tags { width: 100%; }
  .cur-ver .btn { flex: none; }
  .radios { gap: 12px 16px; }
  .radios label { font-size: 14px; line-height: 1.7; }
  #wordChips .chip { min-width: 70px; }
  .submit-bar { grid-template-columns: 1fr; gap: 13px; }
  #page-form .submit-bar { margin-left: -15px; margin-right: -15px; padding-left: 15px; padding-right: 15px; }
  .submit-bar .free-note { text-align: left; }
  .submit-bar .btn { width: 100%; }
  .cards4, .delivery-cards { grid-template-columns: 1fr; }
  .sect { padding-top: 32px; }
  .sect-h { margin-bottom: 18px; }
  .sect-h h2 { font-size: 21px; }
  .sect-h p { font-size: 13.5px; }
  .qa summary.q { padding: 16px; font-size: 14.5px; }
  .qa .a { font-size: 13.5px; }
  .ctx-mid { white-space: normal; line-height: 1.6; font-size: 12px; }
  .ctx-inner { gap: 8px; }
  .ctx-act .btn { padding: 0 10px; font-size: 12px; }
  .value-bar { padding: 20px 17px; }
  .vb-r { padding: 14px 10px; }
}

/* 主流程：优先展示选型与必要信息 */
.hero { padding-top: 28px; }
.hero h1 { font-size: 31px; }
.hero .sub { max-width: none; font-size: 15px; }
.hero .hero-badge, .hero .hero-actions, .hero .stats { display: none; }
.tools { padding-top: 22px; }
.nav [data-nav="paraphrase"] { display: none; }
.advanced-settings { margin-top: 4px; border: 1px solid var(--line); border-radius: 11px; background: #FAFBFD; }
.advanced-settings summary { cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 15px; }
.advanced-settings summary::-webkit-details-marker { display: none; }
.advanced-settings summary b { font-size: 14px; font-weight: 600; color: var(--ink2); }
.advanced-settings summary small { display: block; margin-top: 3px; font-size: 12.5px; line-height: 1.65; color: var(--muted); }
.advanced-settings summary i { font-size: 12.5px; color: var(--brand); font-style: normal; white-space: nowrap; }
.advanced-settings summary i::after { content: '⌄'; margin-left: 5px; }
.advanced-settings[open] summary { border-bottom: 1px solid var(--line); }
.advanced-settings[open] summary i { font-size: 0; }
.advanced-settings[open] summary i::before { content: '收起'; font-size: 12.5px; }
.advanced-settings[open] summary i::after { content: '⌃'; font-size: 12.5px; }
.advanced-content { padding: 0 15px; background: #fff; border-radius: 0 0 11px 11px; }
.advanced-content .row:first-child { border-top: 0; }
.advanced-settings summary:focus-visible { outline: 3px solid #A9BACB; outline-offset: 2px; border-radius: 10px; }
@media (max-width: 1080px) { .side-col { display: none; } }
@media (max-width: 720px) {
  .hero { padding-top: 22px; }
  .hero h1 { font-size: 26px; line-height: 1.5; }
  .hero .sub { font-size: 13.5px; }
  .advanced-settings summary { padding: 13px 12px; }
  .advanced-settings summary small { font-size: 12px; }
  .advanced-content { padding: 0 12px; }
  #myDocBtn { display: inline-flex; }
  #loginBtn { display: none; }
}
/* Single focused writing form */
#page-form .hero, #page-form .tools, #page-form .studio { max-width: 960px; }
#page-form .studio { grid-template-columns: minmax(0, 1fr); }
#page-form .side-col { display: none; }
#page-form .form-panel>.cur-ver { display: none; }
#page-form .form-panel>.row:first-of-type { margin-top: 0 !important; }
body[data-page="form"] .ctx-act { display: none; }
#page-form .tool-card { min-height: 82px; padding-top: 15px; padding-bottom: 15px; }
#page-form .form-panel { padding-top: 8px; }
#page-form .hero { padding-top: 24px; }
#page-form .tools { padding-top: 16px; }
@media (max-width:720px) {
 #page-form .form-panel { padding-top: 4px; }

 /* 论文类型：3 张卡片压成一行的竖排紧凑卡（隐藏副标题，勾选圈移到右下角） */
 #page-form .tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
 #page-form .tool-card { position: relative; flex-direction: column; align-items: flex-start; gap: 7px; min-height: 0; padding: 11px 10px; }
 #page-form .tool-card .ico { width: 26px; height: 26px; border-radius: 8px; font-size: 12px; }
 #page-form .tool-card .tx { flex: none; width: 100%; }
 #page-form .tool-card .tx b { white-space: normal; overflow: visible; text-overflow: clip; font-size: 12.5px; line-height: 1.35; }
 #page-form .tool-card .tx span { display: none; }
 #page-form .tool-card .ck { position: absolute; right: 8px; bottom: 8px; width: 14px; height: 14px; }

 /* 大纲类型：横排胶囊单选，保持单行，窄屏可横向滑动 */
 #outlineRadios.radios { flex-wrap: nowrap; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 2px; }
 #outlineRadios.radios::-webkit-scrollbar { display: none; }
 #outlineRadios.radios label { flex: 0 0 auto; white-space: nowrap; padding: 9px 12px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 13px; line-height: 1.2; }
 #outlineRadios.radios label:has(input:checked) { border-color: var(--brand); background: #F7F9FB; }
}
#page-form .hero, #page-form .tools, #page-form .studio { width: calc(100% - 40px); }
@media (max-width:720px) {
 #page-form .hero, #page-form .tools, #page-form .studio { width: calc(100% - 24px); }
}

/* ================= 双入口导航与我的稿件 ================= */
.nav { gap: 4px; }
.nav > button {
  position: relative; appearance: none; border: 0; background: transparent;
  color: var(--muted); font: inherit; font-size: 14px; font-weight: 500;
  padding: 8px 13px; border-radius: 8px; line-height: 1.6; white-space: nowrap;
  transition: background .15s, color .15s;
}
.nav > button:hover { background: #F7F9FB; color: var(--ink); }
.nav > button.on { background: var(--brand-soft); color: var(--brand-dark); font-weight: 600; }
.nav > button:focus-visible, .support-link:focus-visible { outline: 3px solid #A9BACB; outline-offset: 2px; }
#myDocBtn { display: none; }
.header-right #loginBtn { display: inline-flex; }
.support-link {
  appearance: none; border: 0; border-radius: 8px; background: transparent;
  font: inherit; font-size: 13.5px; line-height: 1.6; color: var(--ink2);
  padding: 7px 9px; white-space: nowrap; transition: background .15s, color .15s;
}
.support-link:hover { color: var(--brand); background: var(--brand-soft); }
.support-short { display: none; }
body[data-page="drafts"] .ctxbar { display: none; }
.drafts-wrap { width: calc(100% - 40px); max-width: min(960px, calc(100% - 40px)); margin: 0 auto; padding: 34px 0 20px; }
.drafts-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.drafts-heading > div { flex: 1; min-width: 0; }
.drafts-heading h1 { color: var(--ink); font-size: 28px; line-height: 1.45; font-weight: 650; letter-spacing: -.025em; }
.drafts-heading p { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 7px 0 0; }
.drafts-heading > p { flex-basis: 100%; }
.drafts-heading > button { flex: none; }
#draftsList { display: flex; flex-direction: column; gap: 12px; }
.drafts-empty { background: #fff; border: 1px solid var(--line); border-radius: var(--r-l); padding: 54px 28px; text-align: center; box-shadow: var(--shadow-s); }
.drafts-paper-mark {
  width: 62px; height: 72px; border: 1px solid #DCE5EF; border-radius: 12px;
  background: linear-gradient(150deg, #F7F9FB, #EDF2F7); color: var(--brand);
  display: grid; place-items: center; margin: 0 auto 20px; font-size: 24px; font-weight: 650;
}
.drafts-empty h2 { font-size: 19px; line-height: 1.6; margin: 0; }
.drafts-empty p { max-width: 420px; margin: 9px auto 22px; font-size: 14px; color: var(--muted); line-height: 1.85; }
.draft-card {
  display: flex; align-items: center; gap: 18px; min-width: 0; width: 100%;
  padding: 21px 22px; border: 1px solid var(--line); border-radius: 14px;
  background: #fff; box-shadow: var(--shadow-s); transition: border-color .15s;
}
.draft-card:hover { border-color: #C8D4E2; }
.draft-file-mark {
  flex: none; width: 44px; height: 52px; display: grid; place-items: center;
  border: 1px solid #DCE5EF; background: #F7F9FB; color: var(--brand);
  border-radius: 10px; font-size: 12px; font-weight: 700; letter-spacing: .03em;
}
.draft-card-info { flex: 1; min-width: 0; }
.draft-card-title { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; min-width: 0; }
.draft-card-title h2 { min-width: 0; font-size: 16px; line-height: 1.65; font-weight: 600; overflow-wrap: anywhere; }
.draft-status { flex: none; display: inline-flex; align-items: center; font-size: 12px; padding: 2px 7px; border-radius: 5px; line-height: 1.6; background: #F1F4F8; color: var(--muted); white-space: nowrap; }
.draft-status.paid { color: #24405C; background: #EDF2F7; }
.draft-status.pending { color: #5A0301; background: #FBF2E3; }
.draft-card-info > p { margin: 6px 0 0; font-size: 13px; color: var(--muted); line-height: 1.8; overflow-wrap: anywhere; }
.draft-card-caption { margin-top: 4px; color: var(--muted2); font-size: 12.5px; line-height: 1.7; overflow-wrap: anywhere; }
.draft-card-actions { display: flex; flex: none; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; max-width: 280px; }
.draft-card-actions .btn { font-size: 13px; height: 34px; padding: 0 12px; }
.draft-card-actions .draft-del { color: var(--muted); }
.draft-card-actions .draft-del:hover { color: #8A2B24; border-color: #E3C7C4; background: #FFF9F8; }
.drafts-storage-note { margin: 18px 2px 0; color: var(--muted); font-size: 12.5px; line-height: 1.85; }
#btnPolish { background: #fff; color: var(--ink2); border-color: var(--line); box-shadow: none; }
#btnPolish:hover { color: var(--brand); border-color: #B9C9D9; background: #F7F9FB; }
#modalPolish .pl-cs-row { min-width: 0; }
#modalPolish .pl-cs-row b { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .nav { display: none; }
  #myDocBtn { display: inline-flex; }
  .support-full { display: none; }
  .support-short { display: inline; }
  .header-right { gap: 6px; }
  .support-link { padding-left: 7px; padding-right: 7px; }
}
@media (max-width: 720px) {
  .drafts-wrap { width: calc(100% - 24px); padding-top: 25px; }
  .drafts-heading { align-items: flex-start; gap: 14px; margin-bottom: 18px; }
  .drafts-heading h1 { font-size: 24px; }
  .drafts-heading p { font-size: 13px; }
  .drafts-heading > button { padding-left: 12px; padding-right: 12px; font-size: 13px; }
  .drafts-empty { padding: 38px 20px; }
  .drafts-empty h2 { font-size: 18px; }
  .drafts-empty p { font-size: 13px; }
  .draft-card { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 14px 12px; padding: 17px 15px; }
  .draft-file-mark { width: 36px; height: 44px; border-radius: 8px; font-size: 10px; }
  .draft-card-title { gap: 6px 8px; }
  .draft-card-title h2 { font-size: 15px; }
  .draft-card-info > p { font-size: 12.5px; }
  .draft-card-caption { font-size: 12px; }
  .draft-card-actions { grid-column: 1 / -1; max-width: none; justify-content: flex-end; padding-top: 13px; border-top: 1px solid var(--line2); }
  .draft-card-actions .btn { min-height: 36px; }
  .drafts-storage-note { margin-top: 15px; font-size: 12px; }
  #modalPolish .pl-cs-row { align-items: flex-start; flex-wrap: wrap; gap: 6px 9px; line-height: 1.75; padding: 7px 0; }
  #modalPolish .pl-cs-row span { width: 56px; }
  #modalPolish .pl-cs-row b { flex: 1 1 120px; }
  #modalPolish .pl-cs-row .btn { margin-left: 65px; }
}
@media (max-width: 420px) {
  .header-inner { gap: 6px; }
  .header-right { gap: 3px; }
  .header-right .btn.sm { padding-left: 8px; padding-right: 8px; font-size: 13px; }
  .support-link { padding-left: 5px; padding-right: 5px; font-size: 12.5px; }
  .drafts-heading > div { flex-basis: 100%; }
  .drafts-heading > button { margin-top: 0; }
}

/* ============================================================
   2026-10 · UI 打磨：统一交互状态与页面质感
   约定：hover 仅作用于可悬浮设备；active 提供按压反馈；
        禁用态不再响应 hover；焦点态保持键盘可见。
   ============================================================ */
:root {
  --ring: rgba(10, 32, 54, .22);
  --ring-strong: #A9BACB;
  --hover-line: #C6D2E0;
  --hover-bg: #F7F9FB;
  --ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 基础质感 ---------- */
::selection { background: rgba(10, 32, 54, .16); color: var(--ink); }
html { scroll-behavior: smooth; }
body {
  background-color: var(--bg);
  background-image:
    radial-gradient(900px 420px at 50% -180px, #EDF2F7 0%, rgba(233, 239, 255, 0) 72%),
    linear-gradient(180deg, #F7F9FB 0, var(--bg) 280px);
  background-repeat: no-repeat;
}
button, a, .chip, .tool-card, .ver, .draft-card { -webkit-tap-highlight-color: transparent; }
a:not(.brand) { transition: color .15s var(--ease); }
a:not(.brand):not(.btn):hover { color: var(--brand-dark); }
/* 链接式按钮不继承普通链接的 hover 文字色，避免深色字压在深色按钮上 */
.brand { transition: opacity .15s var(--ease); }
.brand:hover { opacity: .88; }
.site-header { box-shadow: 0 10px 30px -28px rgba(10, 32, 54, .55); }
.mask { background: rgba(10, 32, 54, .38); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.panel { box-shadow: 0 1px 2px rgba(10, 32, 54, .04), 0 16px 40px -34px rgba(10, 32, 54, .35); }

* { scrollbar-width: thin; scrollbar-color: #C7D2DE transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #C7D2DE padding-box; border: 3px solid transparent; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background-color: #A9BACB; }

.btn:focus-visible, .chip:focus-visible, .tool-card:focus-visible, .ver:focus-visible,
.nav > button:focus-visible, .support-link:focus-visible, .login-tab:focus-visible,
.modal-head .x:focus-visible {
  outline: 3px solid var(--ring-strong);
  outline-offset: 2px;
}

/* ---------- 按钮 ---------- */
.btn {
  transition: background-color .18s var(--ease), border-color .18s var(--ease),
    color .18s var(--ease), box-shadow .18s var(--ease),
    transform .12s var(--ease), filter .18s var(--ease);
}

@media (hover: hover) and (pointer: fine) {
  .btn:where(:not(.btn-primary, .btn-accent, .btn-ghost)):hover {
    border-color: var(--hover-line);
    background: var(--hover-bg);
    color: var(--ink);
    box-shadow: 0 8px 18px -12px rgba(10, 32, 54, .45);
  }
  .btn.btn-primary:hover {
    background: linear-gradient(180deg, #1B3B5C, #14314F);
    box-shadow: 0 12px 26px -12px rgba(10, 32, 54, .72), inset 0 1px 0 rgba(255, 255, 255, .28);
  }
  .btn.btn-accent:hover {
    background: linear-gradient(180deg, #5A0301, #5A0301);
    box-shadow: 0 12px 26px -10px rgba(90, 3, 1, .72);
    filter: none;
  }
  .btn.btn-ghost:hover { background: #EFF2F6; color: var(--ink); border-color: transparent; }
  .btn:hover:not(:disabled):not([disabled]) { transform: translateY(-1px); }
  .btn.lg:hover:not(:disabled):not([disabled]) { transform: translateY(-2px); }
  #loginBtn.is-login:hover { border-color: #C6D4E2; background: #EDF2F7; color: var(--brand-dark); }
}

.btn:active:not(:disabled):not([disabled]):not([aria-disabled="true"]) {
  transform: translateY(0) scale(.985);
}
.btn.btn-primary:active:not(:disabled):not([disabled]) {
  background: linear-gradient(180deg, #0C2740, #061726);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, .18);
}
.btn.btn-accent:active:not(:disabled):not([disabled]) {
  background: linear-gradient(180deg, #5A0301, #5A0301);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, .14);
}
.btn:disabled, .btn[disabled], .btn[aria-disabled="true"] {
  opacity: .5;
  cursor: not-allowed;
  box-shadow: none;
  filter: none;
  transform: none;
}

/* ---------- 输入与选项 ---------- */
.field {
  transition: border-color .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease);
}
.field:hover:not(:focus):not(.err) { border-color: var(--hover-line); }
.field:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--ring); }
.field:disabled { background: #F4F7FA; color: var(--muted); cursor: not-allowed; }

.chip {
  transition: border-color .15s var(--ease), background-color .15s var(--ease),
    color .15s var(--ease), box-shadow .15s var(--ease), transform .12s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .chip:not(.dis):hover {
    border-color: #B9C9D9;
    background: #F7F9FB;
    box-shadow: 0 6px 14px -10px rgba(10, 32, 54, .45);
  }
  .chip.on:hover { background: #E4EBF3; border-color: var(--brand); }
}
.chip:active:not(.dis) { transform: scale(.97); }

/* ---------- 卡片与可选项 ---------- */
.tool-card, .ver, .draft-card, .card {
  transition: border-color .18s var(--ease), background-color .18s var(--ease),
    box-shadow .18s var(--ease), transform .14s var(--ease);
}
@media (hover: hover) and (pointer: fine) {
  .tool-card:hover {
    border-color: #B9C9D9;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -18px rgba(10, 32, 54, .5);
  }
  .tool-card.on:hover { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10, 32, 54, .1), 0 14px 30px -18px rgba(10, 32, 54, .45); }
  .ver:hover {
    border-color: #B9C9D9;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -18px rgba(10, 32, 54, .45);
  }
  .ver.on:hover { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(10, 32, 54, .12), 0 14px 30px -18px rgba(10, 32, 54, .35); }
  .draft-card:hover {
    border-color: #C8D4E2;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px -24px rgba(10, 32, 54, .45);
  }
  .cards3 .card:hover, .cards4 .card:hover {
    border-color: #D5DEE9;
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -28px rgba(10, 32, 54, .45);
  }
}
.tool-card:active, .ver:active { transform: translateY(0) scale(.995); }

/* ---------- 导航与弹窗 ---------- */
.nav > button { transition: background-color .16s var(--ease), color .16s var(--ease), box-shadow .16s var(--ease); }
.modal-head .x { border-radius: 8px; transition: background-color .15s var(--ease), color .15s var(--ease); }
@media (hover: hover) and (pointer: fine) {
  .nav > button:hover { background: #F1F4F8; color: var(--ink); box-shadow: inset 0 0 0 1px #E7ECF3; }
  .nav > button.on:hover { background: #E3EAF2; color: var(--brand-dark); box-shadow: none; }
  .modal-head .x:hover { background: #F1F4F8; color: var(--ink2); }
}

/* 主标题强调色使用轻微渐变，保持品牌色一致性 */
.hero h1 em {
  background: linear-gradient(100deg, #5A0301 0%, #5A0301 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
@supports not (background-clip: text) {
  .hero h1 em { background: none; color: var(--accent); }
}

/* 价值条主按钮：浅暖底 + 深橙字，保证蓝色底上的可读性 */
#vbDownload {
  background: linear-gradient(180deg, #FBF2E3, #F0D5AD);
  color: #5A0301;
  border-color: rgba(255, 255, 255, .65);
  font-weight: 700;
  letter-spacing: .01em;
  box-shadow: 0 12px 26px -14px rgba(0, 0, 0, .55), inset 0 1px 0 #fff;
}
@media (hover: hover) and (pointer: fine) {
  #vbDownload:hover {
    background: linear-gradient(180deg, #FFFFFF, #FBF2E3);
    color: #5A0301;
    border-color: #fff;
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .6), inset 0 1px 0 #fff;
  }
}
#vbDownload:active:not(:disabled) {
  background: linear-gradient(180deg, #F0D5AD, #EBCF9F);
  color: #5A0301;
  box-shadow: inset 0 2px 6px rgba(90, 3, 1, .18);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .btn:hover, .chip:hover, .tool-card:hover, .ver:hover, .draft-card:hover, .card:hover { transform: none !important; }
}

/* ============================================================
   2026-10 · 学术品牌升级
   方向：纸张底色、墨色文字、宋体标题、鎏金细节点缀
   ============================================================ */
:root {
  --bg: #F7F9FB;
  --panel: #FFFFFF;
  --paper: #FFFFFF;
  --ink: #0A2036;
  --ink2: #29435C;
  --muted: #5A6E84;
  --muted2: #8494A6;
  --line: #E2E8F0;
  --line2: #EFF2F6;
  --brand: #0A2036;
  --brand-dark: #061726;
  --brand-soft: #EDF2F7;
  --accent: #5A0301;
  --accent-soft: #F9EDEA;
  --ok: #0A2036;
  --ok-soft: #F1F5F9;
  --warn: #5A0301;
  --danger: #5A0301;
  --gold: #E9B168;
  --gold-soft: #FBF2E3;
  --r-s: 6px;
  --r-m: 10px;
  --r-l: 14px;
  --shadow-s: 0 1px 2px rgba(10, 32, 54, .04);
  --shadow-m: 0 14px 34px -24px rgba(10, 32, 54, .26);
  --shadow-l: 0 28px 70px -40px rgba(10, 32, 54, .35);
  --serif: var(--font-ui);
  --sans: var(--font-ui);
  --ring: rgba(10, 32, 54, .18);
  --ring-strong: #A9BACB;
}

body {
  font-size: 15.5px;
  color: var(--ink);
  background-color: var(--bg);
  background-image:
    radial-gradient(1100px 480px at 50% -200px, #FFFFFF 0%, rgba(255, 253, 247, 0) 72%),
    linear-gradient(180deg, #F7F9FB 0, var(--bg) 420px);
  background-repeat: no-repeat;
}
::selection { background: rgba(233, 177, 104, .22); color: var(--ink); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; letter-spacing: .005em; }
.wrap { width: 1160px; }
.kicker {
  display: block;
  color: var(--gold);
  font-family: var(--mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .16em;
  line-height: 1.6;
  text-transform: uppercase;
}

/* ---------- 学术诚信条 ---------- */
.integrity-bar { background: #0A2036; color: rgba(255, 255, 255, .7); }
.integrity-inner {
  min-height: 34px; display: flex; align-items: center; gap: 14px;
  font-size: 12.5px; line-height: 1.6;
}
.ib-label {
  flex: none; color: #E9B168; font-family: var(--mono); font-size: 11px;
  letter-spacing: .16em; border-right: 1px solid rgba(255, 255, 255, .18); padding-right: 14px;
}
.ib-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 页头 ---------- */
.site-header { background: rgba(255, 255, 255, .92); border-bottom: 1px solid var(--line); box-shadow: none; }
.header-inner { height: 68px; gap: 30px; }
.brand { font-family: var(--serif); font-size: 21px; font-weight: 700; letter-spacing: .02em; color: var(--ink); }
.brand .mark {
  width: 34px; height: 34px; border-radius: 8px;
  background: linear-gradient(145deg, #0A2036, #061726);
  box-shadow: 0 4px 12px -6px rgba(20, 38, 77, .7);
}
.brand small {
  font-family: var(--sans); font-size: 10px; font-weight: 600;
  letter-spacing: .14em; color: var(--gold); text-transform: uppercase;
}
.nav { gap: 6px; }
.nav > button {
  color: var(--muted); font-size: 14.5px; padding: 10px 14px;
  border-radius: 0; border-bottom: 2px solid transparent;
}
.nav > button.on { background: transparent; color: var(--ink); border-bottom-color: var(--gold); font-weight: 600; }
.nav > button.on:hover { background: var(--gold-soft); color: var(--ink); }
.support-link { color: var(--ink2); }
.header-right #loginBtn { border-color: var(--line); background: transparent; color: var(--ink2); }
.header-right #loginBtn:hover { border-color: var(--brand); color: var(--brand); background: #fff; }

/* ---------- Hero ---------- */
#page-form .hero, #page-form .tools, #page-form .studio { max-width: 1160px; }
#page-form .hero { padding-top: 56px; }
.hero { padding: 56px 0 26px; }
.hero-grid { display: block; }
.hero-l { max-width: 920px; }
.hero .hero-badge {
  display: flex; align-items: center; gap: 11px;
  background: transparent; border: 0; border-radius: 0; padding: 0; margin-bottom: 20px;
  color: #5A0301; font-family: var(--mono); font-size: 11.5px; font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; line-height: 1.6;
}
.hb-dot { width: 26px; height: 1px; border-radius: 0; background: var(--gold); box-shadow: none; animation: none; flex: none; }
.hero h1 { max-width: 860px; font-size: 49px; line-height: 1.3; letter-spacing: .015em; color: var(--ink); }
.hero h1 em {
  background: linear-gradient(transparent 68%, rgba(233, 177, 104, .22) 68%);
  -webkit-background-clip: border-box; background-clip: border-box;
  -webkit-text-fill-color: currentColor; color: var(--ink);
}
.hero .sub { max-width: 700px; margin-top: 18px; font-size: 17px; line-height: 1.95; color: var(--muted); }
.hero .hero-actions { display: flex; align-items: center; gap: 20px; margin-top: 30px; flex-wrap: wrap; }
.hero-actions .btn { box-shadow: none; }
.hero-link {
  display: inline-flex; align-items: center; gap: 6px; color: var(--ink2);
  font-size: 14.5px; font-weight: 500; border-bottom: 1px solid var(--line); padding-bottom: 2px;
}
.hero-link::after { content: "→"; color: var(--gold); }
.hero-link:hover { color: var(--brand); border-color: var(--brand); }
.hero-trust { display: flex; flex-direction: column; gap: 2px; padding-left: 20px; border-left: 1px solid var(--line); }
.hero-trust b { color: var(--ink2); font-size: 13.5px; font-weight: 600; }
.hero-trust b::before { content: "✓"; color: var(--gold); margin-right: 6px; }
.hero-trust span { color: var(--muted); font-size: 12.5px; }
.hero .stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; width: 100%;
  margin-top: 44px; padding: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.stat, .stat.hi {
  min-width: 0; padding: 18px 26px; border: 0; border-left: 1px solid var(--line);
  border-radius: 0; background: transparent; box-shadow: none;
}
.stat:first-child { border-left: 0; padding-left: 0; }
.stat b, .stat.hi b { display: block; font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1.5; color: var(--ink); letter-spacing: .01em; }
.stat span { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.7; color: var(--muted); }

/* ---------- 分区标题 ---------- */
.tools { max-width: 1160px !important; padding: 46px 0 8px; }
#page-form .tools { padding-top: 46px; }
.tools-h { display: block; margin-bottom: 24px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.tools-h h2 { margin-top: 7px; font-size: 31px; line-height: 1.4; letter-spacing: .01em; color: var(--ink); }
.tools-h p { margin-top: 8px; max-width: 720px; color: var(--muted); font-size: 14.5px; line-height: 1.85; }

/* ---------- 论文类型卡 ---------- */
.tools-grid { gap: 16px; }
.tool-card, #page-form .tool-card {
  position: relative; min-height: 150px; padding: 24px 22px 22px;
  align-items: flex-start; gap: 14px; border: 1px solid var(--line); border-radius: 14px;
  background: var(--panel); box-shadow: 0 1px 2px rgba(10, 32, 54, .03);
}
.tool-card:hover { border-color: #E9B168; box-shadow: var(--shadow-m); transform: translateY(-2px); }
.tool-card.on { border-color: var(--brand); background: #F4F7FA; box-shadow: 0 0 0 3px rgba(10, 32, 54, .08), var(--shadow-m); }
.tool-card.on::before { content: ""; position: absolute; left: 22px; right: 22px; top: 0; height: 2px; background: var(--gold); }
.tool-card .ico {
  width: 46px; height: 46px; border-radius: 10px; font-family: var(--serif);
  font-size: 16px; font-weight: 700; letter-spacing: .02em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22);
}
.tool-card .tx { padding-right: 24px; }
.tool-card .tx b {
  font-family: var(--serif); font-size: 20px; font-weight: 600; line-height: 1.5;
  letter-spacing: .01em; white-space: normal; overflow: visible; text-overflow: clip;
}
.tool-card .tx span { margin-top: 8px; font-size: 13px; line-height: 1.8; color: var(--muted); white-space: normal; overflow: visible; text-overflow: clip; }
.tool-card .ck { position: absolute; right: 20px; bottom: 20px; width: 19px; height: 19px; border-color: #D3DCE7; background: var(--panel); }
.tool-card.on .ck { border-color: var(--brand); background: var(--brand); }
.tool-card .hot {
  top: -9px; right: 18px; padding: 2px 8px; border: 1px solid #EBCF9F;
  border-radius: 999px; background: var(--gold-soft); color: #5A0301;
  font-family: var(--mono); font-size: 10.5px; font-weight: 600; letter-spacing: .08em;
}

/* ---------- 按钮与表单控件 ---------- */
:root { --hover-bg: #F7F9FB; --hover-line: #C3D0DE; }
.btn { border-color: var(--line); border-radius: 8px; background: var(--panel); color: var(--ink2); font-weight: 500; }
.btn:hover { background: #F7F9FB; border-color: #C3D0DE; }
.btn-primary {
  background: linear-gradient(180deg, #1B3B5C, var(--brand)); color: #fff;
  border-color: transparent; box-shadow: 0 8px 18px -12px rgba(10, 32, 54, .65);
}
.btn-accent {
  background: linear-gradient(180deg, #5A0301, var(--accent)); color: #fff;
  box-shadow: 0 8px 18px -12px rgba(90, 3, 1, .55);
}
.btn.lg { border-radius: 9px; }
@media (hover: hover) and (pointer: fine) {
  .btn.btn-primary:hover {
    background: linear-gradient(180deg, #14314F, #0C2740);
    box-shadow: 0 12px 24px -14px rgba(10, 32, 54, .8), inset 0 1px 0 rgba(255, 255, 255, .2);
  }
  .btn.btn-accent:hover {
    background: linear-gradient(180deg, #5A0301, #5A0301);
    box-shadow: 0 12px 24px -14px rgba(90, 3, 1, .7);
  }
}

/* ---------- 写作委托表单 ---------- */
#page-form .studio { margin: 26px auto 18px; }
#page-form .share-entry-banner.wrap {
  width: calc(100% - 40px); max-width: 1160px; margin: 24px auto 0; padding: 14px 24px;
  border: 1px solid var(--clay-line); border-left: 3px solid var(--clay);
  border-radius: 10px; background: rgba(233, 177, 104, .1);
}
#page-form .share-entry-copy h3 { color: var(--ink); font-family: var(--serif); font-size: 17px; }
#page-form .share-entry-copy p { color: var(--muted); font-size: 13px; line-height: 1.8; }
#page-form .share-entry-actions [data-coupon-count] { color: var(--muted); }
#page-form .share-entry-actions .btn { border-color: var(--line); color: var(--brand); background: transparent; }
.form-panel {
  position: relative; padding: 30px 30px 26px; border: 1px solid var(--line);
  border-radius: 16px; background: var(--panel); box-shadow: var(--shadow-m);
}
.form-panel::before {
  content: ""; position: absolute; top: 0; left: 30px; right: 30px; height: 1px;
  background: linear-gradient(90deg, var(--gold), rgba(233, 177, 104, 0));
}
#page-form .form-panel { padding-top: 30px; }
#page-form .form-panel>.row:first-of-type { margin-top: 6px !important; }
.form-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
  padding-bottom: 20px; border-bottom: 1px solid var(--line);
}
.form-head h2 { margin-top: 7px; font-size: 26px; line-height: 1.45; color: var(--ink); }
.form-head > p { flex: none; color: var(--muted); font-size: 12.5px; line-height: 1.7; }
.row { padding: 18px 0; border-top: 1px dashed var(--line2); }
.row > label.lbl { width: 78px; color: var(--ink2); font-size: 14px; font-weight: 600; letter-spacing: .01em; }
.field { height: 42px; border-color: #D8E0EA; border-radius: 8px; background: #FFFFFF; }
.field:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--ring); }
select.field { background-color: #FFFFFF; }
.chip { min-height: 38px; border-color: #D8E0EA; border-radius: 7px; background: #FFFFFF; font-size: 14px; }
.chip.on { border-color: var(--brand); background: #EDF2F7; color: var(--brand-dark); }
#wordNote { background: #F4F7FA; border: 1px solid #EFF2F6; color: var(--ink2); }
.advanced-settings { border-color: var(--line); border-radius: 10px; background: #F7F9FB; }
.advanced-settings summary b { font-family: var(--serif); font-size: 15px; }
.advanced-settings summary i { color: var(--brand); }
.submit-bar { margin-top: 4px; padding-top: 22px; border-top: 1px solid var(--line); }
.submit-bar .free-note b { font-family: var(--serif); font-size: 15px; }
.free-note span { color: var(--muted); }
.submit-bar .btn.lg { height: 50px; padding: 0 30px; }
.agree { color: var(--muted); font-size: 13px; }

/* ---------- 内容分区 ---------- */
.sect { padding: 64px 0 16px; }
.sect-h { text-align: left; margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.sect-h h2 { margin-top: 8px; font-size: 31px; line-height: 1.45; color: var(--ink); }
.sect-h p { margin-top: 8px; max-width: 680px; font-size: 14.5px; line-height: 1.9; color: var(--muted); }
.cards4, .cards3 { gap: 16px; }
.card {
  padding: 26px 24px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--panel); box-shadow: 0 1px 2px rgba(10, 32, 54, .03);
}
.card .step { margin-bottom: 14px; color: var(--gold); font-family: var(--mono); font-size: 11px; letter-spacing: .14em; }
.card h3 { font-family: var(--serif); font-size: 20px; line-height: 1.5; color: var(--ink); }
.card p { color: var(--muted); font-size: 14px; line-height: 1.9; }
.cards4 .card { min-height: 190px; }
.delivery-mark {
  border: 1px solid #E6C48F; background: transparent; color: #5A0301;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em;
  border-radius: 4px; padding: 4px 7px;
}
.delivery-mark.gift { border-color: #CFDCE9; color: var(--ok); background: #F1F5F9; }

/* ---------- FAQ：双栏卡片，默认收起、点标题展开 ---------- */
.faq {
  display: block; column-count: 2; column-gap: 16px;
  background: transparent; border: 0; border-radius: 0; overflow: visible;
}
.qa {
  break-inside: avoid; margin: 0 0 16px;
  border: 1px solid var(--line); border-radius: 10px; background: var(--panel);
}
.qa > .q { cursor: pointer; list-style: none; padding: 20px 22px; display: flex; gap: 8px; align-items: flex-start; }
.qa > .q { font-family: var(--serif); font-size: 16px; line-height: 1.7; color: var(--ink); }
.qa > .q span {
  flex: none; width: 22px; height: 22px; display: inline-grid; place-items: center;
  border: 1px solid #E6C48F; border-radius: 50%; color: #5A0301;
  font-family: var(--mono); font-size: 11px; line-height: 1;
}
.qa > .q::-webkit-details-marker { display: none; }
.qa > .q::after { content: '⌄'; flex: none; margin-left: auto; align-self: center; color: var(--muted2); font-size: 14px; line-height: 1; }
.qa[open] > .q::after { content: '⌃'; }
.qa[open] > .q { padding-bottom: 10px; }
.qa > .a { margin: 0 30px 18px; padding: 0; color: var(--muted); font-size: 13.5px; line-height: 1.9; }
.qa:focus-within { outline: 3px solid #A9BACB; outline-offset: 2px; border-radius: 10px; }

/* ---------- 页脚 ---------- */
.site-foot {
  position: relative; margin-top: 72px; padding: 38px 0 42px;
  border-top: 0; background: #0A2036; color: rgba(255, 255, 255, .62);
}
.site-foot::before {
  content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 2px;
  background: linear-gradient(90deg, var(--gold), rgba(233, 177, 104, 0) 55%);
}
.foot-inner { font-size: 13px; line-height: 1.95; }
.foot-inner .l { max-width: 760px; }
.foot-inner .l b { color: #FFFFFF; font-family: var(--serif); font-size: 19px; letter-spacing: .02em; }
.foot-tagline {
  display: inline-block; margin-left: 10px; color: #E9B168;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: .12em; vertical-align: 2px;
}
.foot-inner .r { color: rgba(255, 255, 255, .72); }
.foot-inner #siteStatus { display: block; margin-top: 8px; color: rgba(255, 255, 255, .58); font-size: 12px; }
.foot-legal { display: block; margin-top: 6px; color: rgba(255, 255, 255, .46); font-size: 12px; letter-spacing: .01em; }
.foot-inner .foot-legal a { color: rgba(255, 255, 255, .58); text-decoration: none; }
.foot-inner .foot-legal a:hover { color: var(--gold); text-decoration: underline; }
.foot-inner a { color: #E9B168; }

/* ---------- 结果页、稿件页与弹窗的视觉统一 ---------- */
.value-bar {
  background: linear-gradient(120deg, #081A2C, #0A2036 55%, #1B3B5C);
  border-radius: 14px;
  box-shadow: 0 18px 44px -30px rgba(16, 30, 70, .85);
}
.vb-t { font-family: var(--serif); font-size: 18px; }
.res-head h1 { font-family: var(--serif); font-size: 27px; letter-spacing: .01em; }
.toc-card h4 { font-family: var(--serif); font-size: 15px; color: var(--ink2); font-weight: 600; }
.drafts-heading h1 { font-family: var(--serif); font-size: 33px; font-weight: 600; letter-spacing: .01em; }
.drafts-empty, .draft-card { background: var(--panel); }
.ol-head h2 { font-size: 29px; line-height: 1.45; }
.olv { background: var(--panel); }
.gen-card { background: var(--panel); }
.modal {
  border: 1px solid var(--line); border-radius: 16px;
  background: var(--panel); box-shadow: 0 32px 80px -44px rgba(20, 24, 31, .55);
}
.modal-head h3 { font-family: var(--serif); font-size: 23px; letter-spacing: .01em; }
.modal-head p { color: var(--muted); font-size: 13.5px; line-height: 1.8; }
.modal-head .x { color: var(--muted); }
.modal-foot { border-top: 1px solid var(--line2); background: #F7F9FB; }
.checkout-eyebrow { color: var(--gold); font-family: var(--mono); letter-spacing: .14em; }
.login-country { background: #F7F9FB; }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .hero h1 { font-size: 43px; }
  .hero .stats { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 900px) {
  .hero h1 { font-size: 39px; }
  .faq { column-count: 1; }
  .integrity-inner { font-size: 12px; }
}
@media (max-width: 720px) {
  .wrap { width: calc(100% - 24px); }
  #page-form .hero, #page-form .tools, #page-form .studio { width: calc(100% - 24px); }
  .integrity-inner { min-height: 38px; gap: 10px; font-size: 11.5px; }
  .ib-label { font-size: 10px; padding-right: 10px; }
  .ib-text { white-space: normal; line-height: 1.55; }
  .header-inner { height: 60px; gap: 8px; }
  .brand { font-size: 19px; }
  .brand small { display: none; }
  .brand .mark { width: 30px; height: 30px; }
  .hero, #page-form .hero { padding-top: 38px; }
  .hero h1 { font-size: 33px; line-height: 1.42; letter-spacing: .01em; }
  .hero .sub { margin-top: 14px; font-size: 15px; line-height: 1.9; }
  .hero-badge { margin-bottom: 16px; font-size: 10.5px; letter-spacing: .1em; }
  .hero-actions { margin-top: 24px; gap: 14px; }
  .hero-link { display: none; }
  .hero-trust { flex-basis: 100%; padding-left: 0; border-left: 0; }
  .hero .stats { margin-top: 30px; }
  .stat { padding: 14px 16px; }
  .stat b { font-size: 18px; }
  .stat span { font-size: 11.5px; }
  .tools, #page-form .tools { padding-top: 34px; }
  .tools-h h2 { font-size: 26px; }
  .tools-h p { font-size: 13.5px; }
  .tool-card, #page-form .tool-card { min-height: 130px; padding: 20px 18px; }
  .tool-card .tx b { font-size: 19px; }
  #page-form .share-entry-banner.wrap { width: calc(100% - 24px); margin-top: 18px; padding: 14px 16px; }
  #page-form .form-panel { padding: 20px 18px; }
  .form-head { display: block; padding-bottom: 16px; }
  .form-head h2 { font-size: 23px; }
  .form-head > p { margin-top: 7px; }
  .sect { padding: 46px 0 10px; }
  .sect-h h2 { font-size: 26px; }
  .sect-h p { font-size: 13.5px; }
  .cards4, .cards3 { grid-template-columns: 1fr; }
  .cards4 .card { min-height: 0; }
  .site-foot { margin-top: 48px; padding: 30px 0 34px; }
  .foot-inner { display: block; }
  .foot-inner .r { margin: 14px 0 0; text-align: left; }
  .foot-tagline { display: block; margin: 4px 0 0; }
}
@media (max-width: 560px) {
  .tools-grid { grid-template-columns: 1fr; }
  .stat { padding: 12px; }
  .stat:first-child { padding-left: 0; }
  .stat b { font-size: 17px; }
  .qa { padding: 17px 16px; }
  .qa .a { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .tool-card:hover, .tool-card.on:hover, .btn:hover, .card:hover { transform: none !important; }
}

/* ---------- 2026-10 · 细节校准 ---------- */
/* 写作流程条只在稿件流程内展示：首页与我的稿件不占用首屏。 */
body[data-page="home"] .ctxbar, body[data-page="drafts"] .ctxbar { display: none; }
/* 固定页头下的锚点滚动留出呼吸空间。 */
#paper-types, #workflow, #deliverables, #faq { scroll-margin-top: 88px; }
/* 学术诚信条：略增字号与行高，长文案在窄屏可读。 */
.integrity-inner { min-height: 36px; font-size: 13.5px; }
.ib-label { font-size: 11.5px; }
/* 页脚：品牌行与说明分层，避免长句绕在标签后。 */
.foot-inner .l { max-width: 700px; }
.foot-desc { display: block; margin-top: 7px; color: rgba(255, 255, 255, .68); }
/* FAQ 标记：提高圆环与文字的对比度。 */
.qa .q span { border-color: #E6C48F; background: #FBF2E3; color: #5A0301; font-weight: 600; }
@media (max-width: 720px) {
  .integrity-inner { font-size: 12.5px; line-height: 1.65; }
  .ib-label { font-size: 10.5px; }
  .foot-desc { margin-top: 6px; }
}

/* ================= 2026-10 · 学术首页二次升级 ================= */
/* 四色体系：浅灰画布 / Prussian Blue 结构 / Dark Garnet 强调 / Sunlit Clay 点缀 */
:root {
  --bg: #F2F3F5;
  --panel: #FFFFFF;
  --paper: #FFFFFF;
  --ink: #0A2036;
  --ink2: #29435C;
  --muted: #4C6076;
  --muted2: #5D7083;
  --line: #E2E8F0;
  --line2: #EFF2F6;
  --brand: #0A2036;
  --brand-dark: #061726;
  --brand-soft: #EDF2F7;
  --accent: #5A0301;
  --accent-soft: #F9EDEA;
  /* 兼容旧 token：文字场景一律用深石榴，保证白底可读性 */
  --gold: #5A0301;
  --gold-soft: #FBF2E3;
  /* 四色原值 */
  --prussian: #0A2036;
  --prussian-deep: #061726;
  --garnet: #5A0301;
  --garnet-soft: #F9EDEA;
  --clay: #E9B168;
  --clay-soft: #FBF2E3;
  --clay-line: #EBCF9F;
  --clay-deep: #F0D5AD;
  --ring: rgba(10, 32, 54, .14);
}
body {
  background-color: var(--bg);
  background-image: none;
  background-repeat: no-repeat;
}
.btn-primary { background: linear-gradient(180deg, #14314F, var(--brand)); color: #fff; }

/* ---------- 首屏：双栏 + 论文样张 ---------- */
#page-form .hero, .hero { padding: 52px 0 8px; }
.hero-grid {
  display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(330px, .68fr);
  gap: 56px; align-items: center;
}
.hero-l { max-width: none; min-width: 0; }
.hero .hero-badge {
  display: inline-flex; align-items: center; gap: 9px;
  margin: 0 0 22px; padding: 6px 13px 6px 11px;
  border: 1px solid rgba(233, 177, 104, .62); border-radius: 999px;
  background: #FFFFFF; color: var(--ink2);
  font-family: var(--mono); font-size: 11px; font-weight: 600;
  letter-spacing: .11em; text-transform: uppercase; line-height: 1.6;
  box-shadow: 0 1px 0 rgba(10, 32, 54, .03);
}
.hero-badge .hb-dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--gold);
  box-shadow: 0 0 0 3px rgba(233, 177, 104, .14); flex: none;
}
.hero h1 {
  max-width: none; margin: 0; color: var(--ink);
  font-family: var(--serif); font-size: 55px; font-weight: 600;
  line-height: 1.24; letter-spacing: .005em;
}
.hero h1 em {
  display: inline; font-style: normal; color: var(--brand-dark);
  background: none; -webkit-text-fill-color: currentColor;
  padding-bottom: 5px; border-bottom: 2px solid var(--clay);
}
.hero .sub {
  max-width: 560px; margin: 22px 0 0; color: #4A5E74;
  font-size: 16px; line-height: 1.95;
}
.hero .hero-actions { display: flex; align-items: center; gap: 24px; margin-top: 30px; flex-wrap: wrap; }
.hero .btn-primary { height: 52px; padding: 0 30px; font-size: 15px; border-radius: 10px; letter-spacing: .02em; }
.hero .hero-actions .btn-primary { box-shadow: 0 14px 30px -18px rgba(18, 39, 70, .85); }
.hero .btn-primary span { margin-left: 5px; display: inline-block; transition: transform .16s ease; }
.hero .btn-primary:hover span { transform: translateX(3px); }
.hero .hero-link {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 1px; border-bottom: 1px solid #DCE3EC;
  color: var(--ink2); font-size: 14px; font-weight: 500;
}
.hero .hero-link::after { content: "→"; color: var(--garnet); }
.hero .hero-link:hover { color: var(--brand-dark); border-color: var(--clay); }
.hero-points {
  display: flex; flex-wrap: wrap; gap: 10px 24px;
  margin: 24px 0 0; padding: 0; list-style: none;
  color: var(--muted); font-size: 13.5px; line-height: 1.7;
}
.hero-points li { display: flex; align-items: center; gap: 7px; }
.hero-points i {
  display: inline-grid; place-items: center; width: 15px; height: 15px;
  border-radius: 50%; background: var(--garnet-soft); color: var(--garnet);
  font-style: normal; font-size: 10px; font-weight: 700; flex: none;
}

/* 论文样张：纯 CSS 的文档预览，不依赖图片 */
.hero-paper {
  position: relative; overflow: hidden; padding: 16px;
  border: 1px solid #E5EAF1; border-radius: 18px;
  background: linear-gradient(160deg, #FFFFFF 55%, rgba(233, 177, 104, .07));
  box-shadow:
    0 30px 70px -52px rgba(10, 32, 54, .5),
    0 10px 0 -8px #F3E3C9,
    0 11px 0 -7px var(--clay-line);
}
.hero-paper::before {
  content: ""; position: absolute; top: -60px; right: -40px;
  width: 230px; height: 230px; pointer-events: none;
  background: radial-gradient(circle, rgba(233, 177, 104, .2), rgba(233, 177, 104, 0) 70%);
}
.hp-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 12px; }
.hp-kicker { color: var(--garnet); font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .16em; }
.hp-free {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px; border: 1px solid #EBCF9F; border-radius: 999px;
  background: #FBF2E3; color: #5A0301; font-size: 10.5px; font-weight: 600; line-height: 1.6;
}
.hp-free::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: #E9B168; }
.hp-sheet {
  position: relative; padding: 20px 20px 16px;
  border: 1px solid #EEF1F6; border-radius: 12px;
  background: #FFFFFF; box-shadow: 0 16px 34px -30px rgba(10, 32, 54, .42);
}
.hp-sheet::before {
  content: ""; position: absolute; left: 20px; right: 20px; top: 0; height: 2px;
  background: linear-gradient(90deg, var(--garnet), rgba(90, 3, 1, 0));
}
.hp-sheet-top { display: flex; align-items: center; gap: 12px; }
.hp-seal {
  flex: none; display: grid; place-items: center; width: 38px; height: 38px;
  border-radius: 8px; background: linear-gradient(145deg, #0A2036, #061726);
  color: #E9B168; font-family: var(--serif); font-size: 18px;
  box-shadow: 0 6px 14px -8px rgba(18, 39, 70, .65);
}
.hp-sheet-top b { display: block; color: var(--ink); font-family: var(--serif); font-size: 16px; font-weight: 600; line-height: 1.5; }
.hp-sheet-top div span { display: block; margin-top: 3px; color: var(--muted); font-size: 11.5px; line-height: 1.6; }
.hp-toc { margin-top: 16px; border-top: 1px solid #EEF1F6; }
.hp-toc > div { display: flex; align-items: baseline; gap: 10px; padding: 9px 0; border-bottom: 1px dashed #EEF1F6; font-size: 12px; }
.hp-toc i { flex: none; color: var(--garnet); font-family: var(--mono); font-size: 10px; font-style: normal; letter-spacing: .08em; }
.hp-toc span { flex: 1; min-width: 0; color: var(--ink2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-toc em { flex: none; color: var(--muted2); font-style: normal; font-size: 11px; }
.hp-foot { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.hp-foot span { padding: 3px 7px; border: 1px solid #E5EAF1; border-radius: 5px; color: #29435C; font-size: 10.5px; letter-spacing: .04em; }
.hp-note { padding: 10px 4px 0; color: var(--muted2); font-size: 10.5px; line-height: 1.5; text-align: right; }

/* 首屏数据带：深墨底，作为首屏的压舱色 */
.hero .hero-stats {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  margin-top: 46px; padding: 0; overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08); border-radius: 14px;
  background: linear-gradient(120deg, #061726, #0A2036 52%, #16324C);
  box-shadow: 0 26px 60px -46px rgba(10, 32, 54, .9);
}
.hero-stats .stat {
  padding: 20px 24px; border: 0; border-left: 1px solid rgba(255, 255, 255, .1);
  border-radius: 0; background: transparent; box-shadow: none;
}
.hero-stats .stat:first-child { padding-left: 24px; border-left: 0; }
.hero-stats .stat-k {
  display: block; margin: 0; color: var(--clay);
  font-family: var(--mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: .14em; line-height: 1.6;
}
.hero-stats .stat b {
  display: block; margin-top: 7px; color: #FFFFFF;
  font-family: var(--serif); font-size: 23px; font-weight: 600; line-height: 1.4;
}
.hero-stats .stat-d { display: block; margin-top: 4px; color: rgba(255, 255, 255, .66); font-size: 12.5px; line-height: 1.65; }

/* ---------- 顶部写作流程指示器 ---------- */
.ctxbar {
  border-top: 1px solid rgba(226, 232, 240, .65);
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .88);
}
.ctx-inner { min-height: 52px; gap: 16px; }
.ctx-label {
  flex: none; display: inline-flex; align-items: center; gap: 8px;
  color: var(--muted2); font-family: var(--mono); font-size: 10px;
  font-weight: 600; letter-spacing: .14em; white-space: nowrap;
}
.ctx-label::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%;
  background: var(--clay); box-shadow: 0 0 0 3px rgba(233, 177, 104, .16);
}
.ctx-steps { display: flex; align-items: center; gap: 0; flex-shrink: 0; }
.cs {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 5px 10px; border-radius: 999px;
  color: var(--muted); font-size: 13px;
  transition: background-color .16s ease, color .16s ease;
}
.cs i {
  width: 22px; height: 22px; border: 1px solid #D8E0EA;
  background: #FFFFFF; color: var(--muted2);
  font-family: var(--mono); font-size: 11px; font-weight: 600;
  box-shadow: none;
}
.cs:hover { background: #F4F7FA; color: var(--ink2); }
.cs.cur {
  background: var(--brand); color: #FFFFFF; font-weight: 600;
  box-shadow: 0 10px 22px -16px rgba(10, 32, 54, .95);
}
.cs.cur:hover { background: var(--brand-dark); color: #FFFFFF; }
.cs.cur i {
  background: var(--clay); border-color: var(--clay); color: var(--prussian);
  box-shadow: none;
}
.cs.done { color: var(--ink2); }
.cs.done i { background: var(--clay-soft); border-color: var(--clay-line); color: var(--garnet); }
.cs.lock { opacity: .72; }
.cs-arrow {
  display: inline-block; width: 28px; height: 1px;
  background: linear-gradient(90deg, #D8E0EA, #EFF2F6);
  color: transparent; font-size: 0;
}

/* ---------- 首页二次升级响应式 ---------- */
@media (max-width: 1080px) {
  .hero-grid { grid-template-columns: minmax(0, 1fr) 330px; gap: 40px; }
  .hero h1 { font-size: 47px; }
  .hero .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .hero-stats .stat:nth-child(3) { padding-left: 24px; border-left: 0; }
  .hero-stats .stat:nth-child(n+3) { border-top: 1px solid rgba(255, 255, 255, .1); }
}
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; gap: 0; }
  .hero-paper { display: none; }
  .hero h1 { font-size: 41px; }
  .ctx-label { display: none; }
  .ctx-mid { display: none; }
  .ctx-steps { display: flex; flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; }
  .ctx-steps::-webkit-scrollbar { display: none; }
  .cs { flex: none; padding: 4px 6px; }
  .cs-arrow { width: 16px; }
}
@media (max-width: 720px) {
  .ctx-inner { min-height: 48px; gap: 6px; padding: 4px 0; }
  .ctx-act { display: none; }
  .cs { padding: 2px 4px; gap: 5px; }
  .cs span { display: inline; font-size: 11px; white-space: nowrap; }
  .cs i { width: 22px; height: 22px; }
  .cs-arrow { width: 10px; }
  .hero, #page-form .hero { padding-top: 36px; }
  .hero .hero-badge { margin-bottom: 18px; padding: 5px 11px; font-size: 10px; }
  .hero h1 { font-size: 34px; line-height: 1.32; }
  .hero .sub { margin-top: 16px; font-size: 15px; line-height: 1.9; }
  .hero .hero-actions { margin-top: 24px; gap: 16px; }
  .hero .hero-link { display: inline-flex; }
  .hero-points { gap: 8px 18px; margin-top: 20px; font-size: 13px; }
  .hero .hero-stats { margin-top: 30px; }
  .hero-stats .stat { padding: 15px 16px; }
  .hero-stats .stat:first-child { padding-left: 16px; }
  .hero-stats .stat:nth-child(3) { padding-left: 16px; }
  .hero-stats .stat b { font-size: 19px; }
  .hero-stats .stat-k { font-size: 10px; }
  .hero-stats .stat-d { font-size: 11.5px; }
}
@media (max-width: 560px) {
  .hero h1 { font-size: 31px; }
  .hero .hero-actions { flex-direction: column; align-items: stretch; gap: 14px; }
  .hero .hero-actions .btn { width: 100%; flex: none; }
  .hero .hero-link { align-self: center; margin: 0; }
  .hero-points { display: grid; grid-template-columns: 1fr; gap: 7px; }
  .hero-stats .stat b { font-size: 18px; }
  .hero-stats .stat { padding: 14px 16px; }
}
@media (max-width: 380px) {
  .cs span { display: none; }
}

/* ---------- 四步流程卡：金色编号胶囊 + 底纹序号 ---------- */
#workflow .cards4 { counter-reset: wf; }
#workflow .card { position: relative; overflow: hidden; counter-increment: wf; }
#workflow .card::after {
  content: "0" counter(wf); position: absolute; top: 10px; right: 18px;
  color: rgba(233, 177, 104, .16); font-family: var(--serif);
  font-size: 47px; line-height: 1; pointer-events: none;
}
#workflow .card .step {
  display: inline-flex; align-items: center; gap: 7px;
  margin-bottom: 14px; padding: 3px 9px;
  border: 1px solid var(--clay-line); border-radius: 999px;
  background: var(--clay-soft); color: var(--garnet); font-size: 10px; letter-spacing: .12em;
}
#workflow .card .step::before {
  content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--clay);
}

/* ============================================================
   2026-10 · 四色体系校准
   White 纸面 → 普鲁士蓝承载结构，深石榴承载强调，日光陶土只做点缀。
   原则：白底小字只用普鲁士/石榴（陶土白底对比度不足），陶土仅用于细线、
   圆点、深底小标与实心按钮。
   ============================================================ */

/* ---------- 白底强调文字：统一深石榴 ---------- */
.kicker { color: var(--garnet); }
.brand small { color: var(--garnet); letter-spacing: .16em; }
.card .step { color: var(--garnet); }
.checkout-eyebrow { color: var(--garnet); }
.price-box .amt { color: var(--garnet); }
.note b { color: var(--garnet); }
.tag { border-color: var(--clay-line); }

/* ---------- 陶土装饰：细线 / 圆点 / 侧标 ---------- */
.nav > button.on { border-bottom-color: var(--clay); }
.nav > button.on:hover { background: var(--clay-soft); color: var(--ink); box-shadow: none; }
.tool-card.on::before { background: var(--clay); }
.form-panel::before { background: linear-gradient(90deg, var(--clay), rgba(233, 177, 104, 0) 72%); }
#page-form .share-entry-banner.wrap { border-left-color: var(--clay); }
.site-foot::before { background: linear-gradient(90deg, var(--clay), rgba(233, 177, 104, 0) 55%); }
.support-link:hover { color: var(--garnet); }

/* ---------- 结果页价值条：普鲁士底 + 陶土主按钮 ---------- */
.value-bar {
  background: linear-gradient(120deg, #061726, #0A2036 52%, #16324C);
  box-shadow: 0 20px 46px -32px rgba(10, 32, 54, .85);
}
.vb-list li::before { color: var(--clay); }
.vb-r { background: rgba(255, 255, 255, .1); border-color: rgba(233, 177, 104, .4); }
#vbDownload,
#vbDownload:active:not(:disabled) {
  background: var(--clay); color: var(--prussian); border-color: var(--clay);
  box-shadow: 0 14px 28px -16px rgba(0, 0, 0, .55), inset 0 1px 0 rgba(255, 255, 255, .45);
}
@media (hover: hover) and (pointer: fine) {
  #vbDownload:hover {
    background: var(--clay); color: var(--prussian); border-color: #FFFFFF;
    filter: brightness(1.06);
    box-shadow: 0 16px 32px -16px rgba(0, 0, 0, .6), inset 0 1px 0 #FFFFFF;
  }
}
#vbDownload:active:not(:disabled) { filter: brightness(.94); box-shadow: inset 0 2px 6px rgba(90, 3, 1, .18); }

/* ---------- 深色带：普鲁士底，陶土小标 ---------- */
.integrity-bar, .site-foot { background: var(--prussian); }
.ib-label, .foot-tagline, .foot-inner a { color: var(--clay); }
.foot-inner a:hover { color: #FFFFFF; }

/* ---------- 弹窗与表单的强调色收口 ---------- */
option { color: var(--ink); }
.modal-head h3 em { color: var(--garnet); font-style: normal; }
.modal .x:hover { background: var(--garnet-soft); color: var(--garnet); }
.btn-accent { box-shadow: 0 10px 24px -16px rgba(90, 3, 1, .8); }
.btn.btn-accent:hover { filter: brightness(1.06); }
.field:focus { border-color: var(--brand); box-shadow: 0 0 0 3px var(--ring); }
.field.err { border-color: var(--garnet); box-shadow: 0 0 0 3px rgba(90, 3, 1, .12); }

/* ============================================================
   2026-10 · 首页 / 写作页拆分
   首页只承载品牌与流程说明；写作页从“选择论文类型”开始，
   与大纲、初稿、下载共用顶部同一条写作流程指示器。
   ============================================================ */

/* ---------- 写作页：独立成页 ---------- */
.write-head {
  width: calc(100% - 40px); max-width: 960px; margin: 0 auto;
  padding: 34px 0 6px;
}
.write-head h1 {
  margin-top: 8px; color: var(--ink); font-family: var(--serif);
  font-size: 34px; line-height: 1.42; letter-spacing: .01em;
}
.write-head p { margin: 10px 0 0; max-width: 680px; color: var(--muted); font-size: 14.5px; line-height: 1.9; }
#page-form .tools, #page-form .studio { width: calc(100% - 40px); max-width: 960px !important; }
#page-form .tools { padding-top: 24px; }
#page-form .studio { margin: 22px auto 16px; }

/* ---------- 结果页：页内文档工具条 ---------- */
.doc-tools .doc-tabs { margin-bottom: 0; }
.doc-tools #btnDocx { min-width: 128px; }

@media (max-width: 720px) {
  .write-head { width: calc(100% - 24px); padding-top: 26px; }
  .write-head h1 { font-size: 26px; }
  .write-head p { font-size: 13.5px; }
  #page-form .tools, #page-form .studio { width: calc(100% - 24px); }
  #page-form .tools { padding-top: 18px; }
  .res-head-acts .btn { flex: 1 1 30%; }
  .doc-acts .btn { flex: 1 1 auto; }
}
@media (max-width: 380px) {
  .res-head-acts { flex-direction: column; align-items: stretch; }
}

/* ============================================================
   写作流程页头统一
   填写需求（01）/ 确认大纲（02）/ 预览初稿（03）共用同一套
   标题、副标题与分隔线规格。
   ============================================================ */
.flow-head {
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin: 0 0 24px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--line);
}
.tools-h.flow-head, .form-head.flow-head { display: block; }
.flow-head .kicker { display: block; margin: 0; }
.flow-head h1, .flow-head h2 {
  margin: 8px 0 0;
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .01em;
  color: var(--ink);
}
.flow-head p {
  margin: 8px 0 0;
  max-width: 760px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.75;
}
.flow-head .right { gap: 8px; }
@media (max-width: 720px) {
  .flow-head { gap: 12px 16px; margin-bottom: 20px; padding-bottom: 16px; }
  .flow-head h1, .flow-head h2 { font-size: 22px; }
  .flow-head p { font-size: 13.5px; }
  .flow-head .right { width: 100%; margin-left: 0; }
  .flow-head .right .btn { flex: 1 1 auto; }
}

/* 结果页：免费重新生成提示（每篇 1 次，不扣下载次数） */
.res-head .res-regen {
  margin: 6px 0 0;
  color: var(--brand-dark);
  font-size: 13px;
  line-height: 1.7;
}

/* 页面骨架：内容不足一屏时，让 footer 贴在浏览器底部 */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
body > main,
body > #page-outline,
body > #page-generating,
body > #page-result { flex: 1 0 auto; }
body > .integrity-bar,
body > .site-header,
body > .site-foot { flex: 0 0 auto; }

/* ============================================================
   2026-11 · 邀请好友得下载点数
   首页多处推广位。暖橙渐变只给邀请入口，普鲁士蓝仍是主按钮，
   这样邀请位足够醒目，又不会和“免费生成大纲”抢主次。
   ============================================================ */
.invite-ad {
  position: relative;
  display: flex;
  align-items: center;
  gap: 34px;
  padding: 28px 32px;
  border-radius: 18px;
  overflow: hidden;
}
.invite-ad .ia-main { flex: 1; min-width: 0; }
.invite-ad .ia-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .1em;
}
.invite-ad .ia-kicker::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: currentColor; box-shadow: 0 0 0 4px rgba(255, 154, 46, .16);
}
.invite-ad .ia-title {
  margin: 10px 0 0; font-size: 25px; line-height: 1.42;
  letter-spacing: -.01em; font-weight: 600;
}
.invite-ad .ia-title b { font-weight: 800; }
.invite-ad .ia-desc { margin: 10px 0 0; max-width: 640px; font-size: 14px; line-height: 1.9; }
.invite-ad .ia-side {
  flex: none; display: flex; flex-direction: column;
  align-items: flex-start; gap: 10px; min-width: 232px;
}
.invite-ad .ia-progress { font-size: 12.5px; line-height: 1.6; }
.invite-ad .ia-steps {
  display: flex; flex-wrap: wrap; gap: 8px 20px;
  margin: 16px 0 0; padding: 0; list-style: none;
}
.invite-ad .ia-steps li {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 12.5px; line-height: 1.6;
}
.invite-ad .ia-steps i {
  font-style: normal; font-size: 10.5px; font-weight: 700; letter-spacing: .08em;
  padding: 3px 7px; border-radius: 999px;
}

/* 主横幅：普鲁士底 + 暖橙光斑 */
.invite-ad--hero {
  background:
    radial-gradient(120% 150% at 94% 4%, rgba(255, 138, 45, .42), rgba(255, 138, 45, 0) 58%),
    linear-gradient(112deg, #061726, #0A2036 48%, #1C2E42);
  color: #fff;
  border: 1px solid rgba(233, 177, 104, .34);
  box-shadow: 0 28px 64px -44px rgba(10, 32, 54, .95);
}
.invite-ad--hero .ia-kicker { color: #FFC46B; }
.invite-ad--hero .ia-title { color: #fff; }
.invite-ad--hero .ia-title b { color: #FFC46B; }
.invite-ad--hero .ia-desc { color: rgba(255, 255, 255, .8); }
.invite-ad--hero .ia-progress { color: rgba(255, 255, 255, .62); }
.invite-ad--hero .ia-steps li { color: rgba(255, 255, 255, .84); }
.invite-ad--hero .ia-steps i {
  background: rgba(255, 196, 107, .16); color: #FFC46B;
  border: 1px solid rgba(255, 196, 107, .36);
}

/* 通栏小条：浅陶土底 */
.invite-ad--strip {
  justify-content: space-between;
  gap: 24px;
  padding: 18px 24px;
  border-radius: 14px;
  background: linear-gradient(102deg, #FFF8EC, #FFE6C8 64%, #FFD6A9);
  border: 1px solid #F0C08A;
  box-shadow: 0 18px 40px -34px rgba(10, 32, 54, .8);
}
.invite-ad--strip .ia-strip-text { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.invite-ad--strip .ia-strip-text b { font-size: 16px; color: var(--garnet); letter-spacing: .005em; }
.invite-ad--strip .ia-strip-text span { font-size: 13.5px; line-height: 1.75; color: #6B4A2A; }

/* 白底卡片：与四步流程同一张纸面，靠左侧暖橙竖线提醒 */
.invite-ad--panel {
  background: #fff;
  border: 1px solid var(--line);
  border-left: 5px solid #F2612A;
  box-shadow: 0 20px 46px -38px rgba(10, 32, 54, .75);
}
.invite-ad--panel .ia-kicker { color: var(--garnet); }
.invite-ad--panel .ia-title { color: var(--ink); }
.invite-ad--panel .ia-title b { color: #C81E1E; }
.invite-ad--panel .ia-desc { color: var(--muted); }
.invite-ad--panel .ia-progress { color: var(--muted2); }
.invite-ad--panel .ia-steps li { color: var(--muted); }
.invite-ad--panel .ia-steps i {
  background: var(--clay-soft); color: var(--garnet); border: 1px solid var(--clay-line);
}

/* 邀请按钮：亮橙→朱红渐变 + 呼吸光晕 + 扫光 */
.btn.btn-invite {
  position: relative; overflow: hidden;
  border: 1px solid #FFD08A;
  background: linear-gradient(135deg, #FF9A2E 0%, #F2612A 46%, #C81E1E 100%);
  color: #fff; font-weight: 800; letter-spacing: .01em;
  text-shadow: 0 1px 0 rgba(120, 20, 0, .3);
  box-shadow:
    0 14px 30px -14px rgba(226, 61, 40, .78),
    0 0 0 4px rgba(255, 154, 46, .16),
    inset 0 1px 0 rgba(255, 255, 255, .45);
  animation: inviteGlow 2.8s var(--ease) infinite;
}
.btn.btn-invite::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 32%, rgba(255, 255, 255, .5) 46%, transparent 60%);
  transform: translateX(-130%);
  animation: inviteShine 3.4s var(--ease) .6s infinite;
  pointer-events: none;
}
.btn.btn-invite:hover {
  background: linear-gradient(135deg, #FFA83C 0%, #F86A2E 46%, #D42121 100%);
  border-color: #FFE0B0; color: #fff;
  transform: translateY(-1px);
  filter: saturate(1.05);
}
.btn.btn-invite:active { transform: translateY(0); filter: brightness(.96); }
.btn-invite--lg { height: 54px; padding: 0 30px; font-size: 17px; border-radius: 14px; min-width: 232px; }
.btn-invite--sm { height: 38px; padding: 0 15px; font-size: 14px; border-radius: 10px; }
@keyframes inviteGlow {
  0%, 100% {
    box-shadow: 0 14px 30px -14px rgba(226, 61, 40, .74), 0 0 0 4px rgba(255, 154, 46, .14), inset 0 1px 0 rgba(255, 255, 255, .45);
  }
  50% {
    box-shadow: 0 18px 38px -14px rgba(226, 61, 40, .88), 0 0 0 9px rgba(255, 154, 46, .05), inset 0 1px 0 rgba(255, 255, 255, .5);
  }
}
@keyframes inviteShine {
  0%, 62% { transform: translateX(-130%); }
  100% { transform: translateX(130%); }
}

/* 邀请活动下线（奖励为 0）时不展示任何邀请文案，避免承诺不存在的权益 */
body.no-invite-reward .invite-ad,
body.no-invite-reward .btn-invite,
body.no-invite-reward [data-invite-only],
body.no-invite-reward #invite-share,
body.no-invite-reward #invite-strip-1,
body.no-invite-reward #invite-share-more,
body.no-invite-reward #invite-strip-2,
body.no-invite-reward .cf-invite-tip { display: none !important; }

@media (max-width: 900px) {
  .invite-ad { flex-direction: column; align-items: stretch; gap: 18px; padding: 22px; }
  .invite-ad .ia-side { align-items: stretch; min-width: 0; }
  .invite-ad .ia-side .btn { width: 100%; }
  .invite-ad .ia-title { font-size: 21px; }
  .invite-ad--strip { flex-direction: column; align-items: stretch; }
  .invite-ad--strip .btn { width: 100%; }
}
@media (max-width: 560px) {
  .invite-ad { padding: 20px 18px; border-radius: 14px; }
  .invite-ad .ia-title { font-size: 19px; }
  .invite-ad .ia-steps { gap: 6px; }
  .invite-ad .ia-steps li { font-size: 12px; }
  .btn-invite--lg { width: 100%; min-width: 0; height: 50px; font-size: 16px; }
  .hero-actions .btn-invite--sm { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .btn.btn-invite { animation: none; }
  .btn.btn-invite::after { animation: none; content: none; }
}
