/* ============================================================
   base-site 统一样式（CANONICAL）
   三套布局共用本文件，靠 <body class="layout-terminal|soft|doc"> 切换。
   新站复制后只需改 :root 配色变量，切勿重写结构规则。
   ============================================================ */
:root{
  /* 默认 = terminal 风格（深色面板/等宽） */
  --accent:#0f766e; --accent2:#047857;
  --ink:#1a1a2e; --muted:#6b7280;
  --border:#e2e8f0; --bg:#f5f7fa; --card:#ffffff;
  --panel:#0f172a; --panel-ink:#e2e8f0;
  --header-ink:#ffffff; --nav-ink:#94a3b8; --nav-ink-hover:#ffffff;
  --result-bg:#0f172a; --result-ink:#e2e8f0; --result-k:#94a3b8; --result-v:#5eead4;
  --badge-bg:#ecfdf5; --badge-ink:#047857;
  --btn-hover:#0c5e57;
  --radius:8px; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --ui:var(--mono);            /* terminal 全局用等宽 */
}
/* soft：留白软卡（绿色、圆角、无衬线） */
body.layout-soft{
  --accent:#16a34a; --accent2:#047857;
  --panel:#ffffff; --panel-ink:#111827;
  --header-ink:#111827; --nav-ink:#6b7280; --nav-ink-hover:var(--accent);
  --result-bg:#f0fdf4; --result-ink:#14532d; --result-k:#15803d; --result-v:#166534;
  --badge-bg:#f0fdf4; --badge-ink:#16a34a;
  --btn-hover:#15803d; --radius:14px; --ui:var(--sans);
}
/* doc：银行单据（深蓝、硬角、等宽数据） */
body.layout-doc{
  --accent:#1d4ed8; --accent2:#1e3a8a;
  --panel:#0b2545; --panel-ink:#e2e8f0;
  --header-ink:#ffffff; --nav-ink:#93c5fd; --nav-ink-hover:#ffffff;
  --result-bg:#0b2545; --result-ink:#e2e8f0; --result-k:#93c5fd; --result-v:#bfdbfe;
  --badge-bg:#eff6ff; --badge-ink:#1d4ed8;
  --btn-hover:#1e40af; --radius:6px; --ui:var(--mono);
}

*{box-sizing:border-box}html,body{margin:0;padding:0}html{height:100%}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px;min-height:100%;display:flex;flex-direction:column}
/* sticky footer：main 必须 width:100%，否则 body flex 下 main 变 flex item 被内容收缩，首页卡片网格会塌缩成 ~710px（比子页窄） */
main{flex:1 0 auto;width:100%}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
header.site{background:var(--panel);border-bottom:3px solid var(--accent);position:sticky;top:0;z-index:10}
header.site .wrap{max-width:980px;margin:0 auto;padding:11px 16px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;color:var(--header-ink)}
.brand-name{font-size:1.05rem;letter-spacing:.4px;font-family:var(--ui)}
.logo{border-radius:6px;flex:0 0 auto}
nav.site a{margin-left:14px;color:var(--nav-ink);font-size:.9rem;font-family:var(--ui)}
nav.site a:hover{color:var(--nav-ink-hover);text-decoration:none}

/* 三种布局统一：单栏全宽 980px，首页与计算页一致 */
body.layout-terminal main,body.layout-soft main,body.layout-doc main{max-width:980px;margin:0 auto;padding:22px 16px 8px}
body.layout-terminal .calc-main,body.layout-soft .calc-main,body.layout-doc .calc-main{display:block}
body.layout-terminal .calc-content,body.layout-soft .calc-content,body.layout-doc .calc-content{min-width:0}

h1{font-size:1.75rem;margin:.1em 0 .15em;line-height:1.25;font-family:var(--ui)}
.sub{color:var(--muted);margin:.2em 0 1em;font-size:1rem}
.local-badge{display:inline-block;background:var(--badge-bg);color:var(--badge-ink);font-size:.78rem;padding:4px 10px;border-radius:999px;margin-bottom:14px;font-family:var(--ui)}
.hint{font-size:.82rem;color:var(--muted);background:var(--badge-bg);border-left:3px solid var(--accent);padding:7px 10px;border-radius:0 6px 6px 0;margin:10px 0 0;font-family:var(--ui)}

/* 窗口面板（terminal 带 CALC 标识；其余无） */
.tool-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px rgba(16,24,40,.06)}
.tool-panel.prose{padding:20px 22px}
.tool-panel.calc::before{content:"CALC";display:block;background:var(--panel);color:var(--result-v);font-family:var(--mono);font-size:.72rem;letter-spacing:.15em;padding:6px 14px;border-bottom:1px solid var(--border)}
form.calc{display:grid;grid-template-columns:1fr 1fr;gap:13px 16px;padding:16px}
.fld{display:flex;flex-direction:column;gap:5px}
label{font-size:.82rem;color:var(--muted);font-weight:600;font-family:var(--ui)}
.inp{position:relative;display:flex;align-items:center}
input,select,textarea{padding:9px 10px;border:1px solid var(--border);border-radius:7px;font-size:.98rem;width:100%;background:#fff;color:var(--ink);font-family:var(--ui)}
input::placeholder,textarea::placeholder{color:#8a938e;opacity:1}
textarea{resize:vertical}
.suf{position:absolute;right:10px;color:var(--muted);font-size:.85rem;pointer-events:none}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
button.gen{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:11px 16px;font-size:.95rem;font-weight:700;cursor:pointer;font-family:var(--ui);grid-column:1/-1;justify-self:start}
button.gen:hover{background:var(--btn-hover)}
.note{color:var(--muted);font-size:.9rem;margin:6px 0 0;font-family:var(--ui)}
.note.ok{color:var(--accent2)}.note.err{color:#b91c1c}

/* 结果：数据行（颜色随布局变量） */
.result{margin:0 16px 16px}
.result-lines{border:1px solid var(--border);border-radius:8px;background:var(--result-bg);color:var(--result-ink);font-family:var(--mono);overflow:hidden}
.rl{display:flex;justify-content:space-between;gap:12px;padding:8px 13px;border-bottom:1px solid rgba(148,163,184,.18)}
.rl:last-child{border-bottom:none}
.rl-k{color:var(--result-k)}.rl-v{color:var(--result-v);font-weight:700}
.result-extra{margin-top:12px;overflow:auto}
.copybtn{margin-top:10px;background:var(--badge-bg);color:var(--badge-ink);border:1px solid var(--border);border-radius:7px;padding:7px 12px;font-size:.85rem;cursor:pointer;font-family:var(--ui)}

section{margin:24px 0}h2{font-size:1.25rem;margin:.2em 0 .5em;font-family:var(--ui)}
h3{font-size:1rem;margin:1em 0 .2em}
.faq h3{margin-top:1.1em}
.prose p{margin:.6em 0}
.ad-slot{margin:18px 0;min-height:10px}.ad-slot:empty{display:none}
.grid-links{display:flex;flex-wrap:wrap;gap:9px}.grid-links a{background:var(--badge-bg);border:1px solid var(--border);color:var(--accent);padding:7px 12px;border-radius:999px;font-size:.88rem;font-family:var(--ui)}
.grid-links a:hover{background:var(--accent);color:#fff;text-decoration:none}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:13px}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:13px}
.card h3{margin:.1em 0 .3em;font-family:var(--ui);font-size:1rem}
.card a{font-weight:700}.card p{color:var(--muted);font-size:.86rem;margin:.2em 0 0}
footer.site{border-top:1px solid var(--border);margin-top:30px;background:var(--panel)}
footer.site .wrap{max-width:980px;margin:0 auto;padding:16px;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:.84rem;color:var(--nav-ink)}
footer.site a{margin-left:12px;color:var(--nav-ink);font-family:var(--ui)}
footer.site a:hover{color:var(--nav-ink-hover)}
@media(max-width:760px){
  header.site .wrap{flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:8px}
  nav.site{margin-left:0;flex-wrap:wrap;gap:2px 12px}
  nav.site a{margin-left:0;font-size:.82rem}
  form.calc{grid-template-columns:1fr}
  h1{font-size:1.45rem}
}

/* ============================================================
   TaxForge — layout-tax（板岩蓝 + 纸白 + 等宽"表单/票据"质感）
   正文用系统无衬线保证可读，表单/标题/标签用等宽点缀。
   ============================================================ */
body.layout-tax{
  --accent:#243b53; --accent2:#3b6ea5;
  --ink:#1a2433; --muted:#5b6b80;
  --border:#d4dce6; --bg:#f7f9fb; --card:#ffffff;
  --panel:#243b53; --panel-ink:#ffffff;
  --header-ink:#ffffff; --nav-ink:#aab8c8; --nav-ink-hover:#ffffff;
  --result-bg:#eef3f8; --result-ink:#243b53; --result-k:#5b6b80; --result-v:#1d4ed8;
  --badge-bg:#eef3f8; --badge-ink:#243b53;
  --btn-hover:#1b2d40; --radius:6px; --ui:var(--mono);
}
body.layout-tax main{max-width:980px;margin:0 auto;padding:22px 16px 8px}
body.layout-tax .brand-name{color:#fff}
/* 生成器宿主与表单 */
.gen-host{margin:6px 0 4px}
.tax-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:10px 0}
.tax-form .fld{margin-bottom:12px}
.tax-form .fld label{font-family:var(--mono)}
.tax-actions{display:flex;gap:10px;margin:6px 0;flex-wrap:wrap}
.tax-actions .gen,.tax-actions .copybtn{font-family:var(--mono)}
.tax-preview{margin-top:10px}
/* IRS 样式填报表 */
.irs-form{border:2px solid var(--accent);border-radius:6px;overflow:hidden;background:#fff;margin:8px 0}
.irs-head{background:var(--accent);color:#fff;padding:10px 14px;font-weight:700;font-size:14px;font-family:var(--mono)}
.irs-year{float:right;font-weight:400}
.irs-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.fbox{border-top:1px solid #c9d4df;border-right:1px solid #c9d4df;padding:8px 10px;min-height:40px}
.fl{font-size:11px;color:#3a4a5a;margin-bottom:3px;font-family:var(--mono)}
.fv{font-size:13px;font-weight:600;white-space:pre-wrap;word-break:break-word}
.irs-disc{background:#eef3f8;border-top:2px solid var(--accent);padding:9px 14px;font-size:11px;color:#46566a;font-family:var(--mono)}
@media(max-width:760px){.irs-grid{grid-template-columns:1fr}.fbox{border-right:none}}
/* how-to 步骤 */
.steps{counter-reset:step;list-style:none;padding-left:0;margin:14px 0}
.steps li{counter-increment:step;position:relative;padding:9px 10px 9px 42px;margin-bottom:8px;background:var(--badge-bg);border-radius:6px;font-size:.95rem}
.steps li::before{content:counter(step);position:absolute;left:10px;top:9px;width:22px;height:22px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;font-family:var(--mono)}
/* 署名 */
.author{margin-top:22px;padding-top:12px;border-top:1px solid var(--border);font-size:.84rem;color:var(--muted);font-style:italic;font-family:var(--ui)}
