:root {
  --bg: #f7f6f2; --fg: #1f2328; --muted: #6a6f76; --card: #ffffff; --line: #e3e1da;
  --accent: #2f5d50; --accent-fg: #ffffff; --warn: #9a5b00; --bad: #9b2c2c;
}
* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; background: var(--bg); color: var(--fg);
  font-family: -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  line-height: 1.6; }
a { color: var(--accent); }
.container { max-width: 980px; margin: 0 auto; padding: 1.5rem 1rem 3rem; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .8rem 1rem; background: var(--card); border-bottom: 1px solid var(--line); }
.site-header .brand { font-weight: 700; text-decoration: none; color: var(--fg); font-size: 1.1rem; }
.site-header nav a { margin-left: 1rem; text-decoration: none; }
.site-footer { border-top: 1px solid var(--line); padding: 1.5rem 1rem; text-align: center; font-size: .9rem; }
.site-footer p { margin: .25rem 0; }
.muted { color: var(--muted); }
.btn { display: inline-block; background: var(--accent); color: var(--accent-fg); padding: .6rem 1.2rem;
  border-radius: 6px; text-decoration: none; border: 0; font-size: 1rem; cursor: pointer; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 1rem 1.2rem; margin: 1rem 0; }
.hero { text-align: center; padding: 2rem 0 1rem; }
.hero h1 { font-size: 2.2rem; margin: 0 0 .5rem; }
.lead { font-size: 1.1rem; color: var(--muted); }
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.features .card { margin: 0; }
.plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1rem; }
.plan .price { font-size: 1.4rem; font-weight: 700; }
.legal h2 { font-size: 1.1rem; margin-top: 1.2rem; }
fieldset { border: 1px solid var(--line); border-radius: 8px; margin: .8rem 0; padding: .6rem 1rem; }
legend { color: var(--muted); padding: 0 .4rem; }
.row { display: flex; flex-wrap: wrap; gap: .8rem 1.2rem; align-items: end; }
label { display: inline-block; margin: .3rem .8rem .3rem 0; }
label.inline { display: block; margin-top: .5rem; }
input[type=number], select { padding: .35rem .5rem; border: 1px solid var(--line); border-radius: 6px; font-size: 1rem; }
input[type=number] { width: 6.5rem; }
.error { color: var(--bad); font-weight: 600; }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: .3rem 1rem; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }
.scroll { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; }
th, td { border: 1px solid var(--line); padding: .45rem .6rem; text-align: center; vertical-align: top; }
thead th { background: #f1efe8; }
tbody th { background: #faf9f5; color: var(--muted); font-weight: 500; white-space: nowrap; }
.pillars .gz { font-size: 1.6rem; display: block; line-height: 1.2; }
.summary b { font-size: 1.25rem; letter-spacing: .15em; }
.pillars small { color: var(--muted); }
.dayun td.gz { font-size: 1.1rem; font-weight: 600; white-space: nowrap; }
.dayun td, .dayun th { white-space: nowrap; }
.dayun td.ln { white-space: normal; min-width: 14rem; }
.dayun td.ln { text-align: left; font-size: .85rem; color: var(--muted); }
.grade { font-size: .9rem; font-weight: 500; background: #f1efe8; border-radius: 999px; padding: .1rem .6rem; margin-left: .5rem; }
.cert { list-style: none; padding: 0; margin: 0; }
.cert li { padding: .3rem 0; border-bottom: 1px dashed var(--line); }
.lv { display: inline-block; border-radius: 4px; padding: 0 .4rem; font-size: .85rem; margin: 0 .3rem; }
.lv-certain { background: #e3f1ea; color: var(--accent); }
.lv-needs_input { background: #eef1f6; color: #3b5b8a; }
.lv-needs_confirm { background: #fbf0dc; color: var(--warn); }
.lv-unknown { background: #f0f0f0; color: var(--muted); }
.steps li, .flags li { margin: .2rem 0; }
.flags { background: #fbf6e8; border-radius: 8px; padding: .6rem 1rem .6rem 2rem; }
@media (max-width: 640px) {
  .site-header { flex-direction: column; align-items: flex-start; }
  .site-header nav a { margin: 0 .8rem 0 0; }
  .kv { grid-template-columns: 1fr; }
  .hero h1 { font-size: 1.7rem; }
}

/* 会员标识与档位 */
.site-header .member { margin-left: 1rem; font-size: .85rem; background: #eef1f6; color: #3b5b8a;
  border-radius: 999px; padding: .1rem .6rem; }
.upgrade-link { margin-left: .4rem; font-size: .85rem; }
.btn-ghost { background: transparent; color: var(--accent); border: 1px solid var(--accent); }
.btn-pro { background: #7a4d1f; }
.plan .quota { font-size: 1.05rem; margin: .2rem 0 .6rem; }
.plan .quota b { color: var(--accent); }
.plan-featured { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent) inset; }
.plans .btn { width: 100%; text-align: center; }
.quota-block { border-color: var(--warn); }
.quota-block .btn { margin-top: .4rem; }
.notice { background: #fbf6e8; border-radius: 8px; padding: .6rem 1rem; }
.reset-form { margin-top: .6rem; }
.plan .price .per { font-size: .9rem; color: var(--muted); font-weight: 400; }
