/* ======================================================================
   打印样式表生成器 · 独立设计（稿纸 / 红印章主题）
   浅色 = 暖白纸面 + 墨黑 + 印章红；深色 = 暗房稿纸
   ====================================================================== */
.psg{
  --ink:#231f1a; --sub:#6b6257; --faint:#a39a8d;
  --bg:#f6f2ea; --card:#fffdf8; --card2:#f1ece1; --line:#e0d8c8; --line2:#ece5d7;
  --pri:#b91c1c; --pri-2:#dc2626; --pri-soft:#fbe9e7; --pri-ink:#7f1d1d;
  --blue:#1d4ed8; --blue-soft:#e7ecfb;
  --ok:#156734; --red:#b42323;
  --r:12px;
  --shadow:0 1px 2px rgba(35,31,26,.06),0 12px 30px rgba(35,31,26,.08);
  color:var(--ink);
  font-family:-apple-system,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",system-ui,sans-serif;
  font-size:15px; line-height:1.75;
  background:
    repeating-linear-gradient(0deg,transparent 0 33px,rgba(35,31,26,.035) 33px 34px),
    var(--bg);
  padding:0 16px 56px;
}
:root[data-theme="dark"] .psg{
  --ink:#ece5d8; --sub:#a89f8f; --faint:#6e665a;
  --bg:#171410; --card:#211d17; --card2:#2a251d; --line:#3d3628; --line2:#332c20;
  --pri:#f87171; --pri-2:#fca5a5; --pri-soft:rgba(248,113,113,.12); --pri-ink:#fecaca;
  --blue:#93c5fd; --blue-soft:rgba(147,197,253,.12);
  --ok:#4ade80; --red:#f87171;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.4);
}
.psg *{box-sizing:border-box;}
.psg b{font-weight:700;}
.psg-wrap{max-width:1120px;margin:0 auto;}
.psg h1,.psg h2{font-family:Georgia,"Songti SC","SimSun",serif;}
.psg code,.psg pre,.psg textarea,.psg input{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace;}

/* ---------- Hero：稿纸抬头 + 印章 ---------- */
.psg-hero{margin-top:22px;border:1px solid var(--line);border-radius:4px;background:var(--card);box-shadow:var(--shadow);padding:26px 30px;position:relative;overflow:hidden;}
.psg-hero::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--pri);}
.psg-hero h1{margin:0 0 6px;font-size:clamp(22px,3.2vw,30px);font-weight:900;letter-spacing:.02em;}
.psg-hero p{margin:0;color:var(--sub);font-size:14.5px;max-width:780px;}
.psg-hero p em{font-style:normal;color:var(--pri-ink);font-weight:700;}
.psg-seal{position:absolute;right:26px;top:22px;width:86px;height:86px;border:3px solid var(--pri);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--pri);font-family:Georgia,"Songti SC",serif;
  font-size:15px;font-weight:900;transform:rotate(-12deg);opacity:.75;letter-spacing:.08em;text-align:center;line-height:1.3;}
@media (max-width:700px){.psg-seal{display:none;}}

/* ---------- 工作台 ---------- */
.psg-desk{display:grid;grid-template-columns:1fr 1.1fr;gap:18px;margin-top:18px;}
@media (max-width:920px){.psg-desk{grid-template-columns:1fr;}}
.psg-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;}
.psg-card h2{margin:0 0 12px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;}
.psg-card h2 .psg-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--pri);color:#fff;font-size:12px;font-weight:800;}
:root[data-theme="dark"] .psg-card h2 .psg-num{color:#171410;}
.psg-field{margin-bottom:12px;}
.psg-field label{display:block;font-size:13px;font-weight:700;margin-bottom:5px;color:var(--ink);}
.psg-field label small{font-weight:500;color:var(--faint);margin-left:6px;}
.psg-in{width:100%;border:1px solid var(--line);background:var(--card2);color:var(--ink);border-radius:8px;padding:8px 12px;font-size:13px;outline:none;transition:border-color .15s;}
.psg-in:focus{border-color:var(--pri-2);box-shadow:0 0 0 3px var(--pri-soft);}
.psg-sel{width:100%;border:1px solid var(--line);background:var(--card2);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13.5px;outline:none;}
.psg-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
@media (max-width:560px){.psg-checks{grid-template-columns:1fr;}}
.psg-ck{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;cursor:pointer;background:var(--card2);}
.psg-ck.on{border-color:var(--pri);background:var(--pri-soft);}
.psg-ck input{accent-color:var(--pri);margin-top:3px;}
.psg-ck small{display:block;color:var(--faint);font-size:11.5px;}
.psg-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px;}
.psg-btn{border:none;border-radius:8px;padding:9px 16px;font-size:13.5px;font-weight:800;cursor:pointer;transition:all .15s;}
.psg-btn-go{background:var(--pri);color:#fff;}:root[data-theme="dark"] .psg-btn-go{color:#171410;}
.psg-btn-go:hover{background:var(--pri-2);}
.psg-btn-ghost{background:var(--card2);color:var(--pri-ink);border:1px solid var(--line);}
.psg-btn-ghost:hover{border-color:var(--pri-2);}
.psg-msg{margin-top:10px;font-size:13px;min-height:20px;font-weight:600;}
.psg-msg.err{color:var(--red);}.psg-msg.ok{color:var(--ok);}
.psg-out{width:100%;min-height:210px;border-radius:8px;border:1px solid var(--line);background:#23201a;color:#f3e9d2;padding:12px 14px;font-size:12.6px;line-height:1.7;overflow:auto;white-space:pre;margin:0;}
:root[data-theme="dark"] .psg-out{background:#141109;}

/* ---------- 预览 ---------- */
.psg-prev{margin-top:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;}
.psg-prev h2{margin:0 0 10px;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;}
.psg-prev h2 .psg-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:800;}
.psg-ta{width:100%;min-height:120px;resize:vertical;border:1px solid var(--line);background:var(--card2);color:var(--ink);border-radius:8px;padding:10px 12px;font-size:12.6px;line-height:1.7;outline:none;}
.psg-ta:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);}
.psg-frame{width:100%;height:420px;border:1px solid var(--line);border-radius:8px;background:#fff;margin-top:12px;}
.psg-note{font-size:12px;color:var(--faint);margin-top:8px;}

/* ---------- FAQ ---------- */
.psg-faq{margin-top:34px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow);}
.psg-faq h2{margin:0 0 12px;font-size:19px;font-weight:900;}
.psg-faq h3{margin:18px 0 6px;font-size:15.5px;font-weight:800;color:var(--pri-ink);font-family:Georgia,"Songti SC",serif;}
.psg-faq p{margin:0;color:var(--sub);font-size:14px;}
.psg-faq p b{color:var(--ink);}


/* ===== 打印模板预设与版式预览（新增） ===== */
.psg2{margin-top:18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;}
.psg2 h2{margin:0 0 4px;font-size:16px;font-weight:800;}
.psg2-tip{margin:0 0 10px;font-size:12.5px;color:var(--sub);}
.psg2-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;}
@media (max-width:820px){.psg2-presets{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:480px){.psg2-presets{grid-template-columns:1fr;}}
.psg2-preset{text-align:left;border:1px solid var(--line);background:var(--card2);color:var(--ink);border-radius:8px;padding:8px 10px;cursor:pointer;font-size:12.5px;font-weight:700;line-height:1.45;transition:all .15s;}
.psg2-preset:hover{border-color:var(--pri-2);}
.psg2-preset.on{border-color:var(--pri);background:var(--pri-soft);}
.psg2-preset small{display:block;font-weight:500;color:var(--sub);font-size:11px;}
.psg2-body{display:grid;grid-template-columns:1.5fr 0.8fr;gap:16px;margin-top:12px;align-items:start;}
@media (max-width:860px){.psg2-body{grid-template-columns:1fr;}}
.psg2-viz svg{width:100%;height:auto;display:block;background:var(--card2);border:1px solid var(--line);border-radius:8px;}
.psg2-page{fill:#ffffff;stroke:var(--line);stroke-width:1;}
.psg2-line{stroke:var(--faint);stroke-width:1;opacity:.55;}
.psg2-content{fill:none;stroke:var(--pri);stroke-width:1;stroke-dasharray:4 3;}
.psg2-head{fill:var(--pri);}
.psg2-cap{fill:var(--sub);font-size:10.5px;text-anchor:middle;font-family:inherit;}
.psg2-meta-t{fill:var(--ink);font-size:12px;font-family:inherit;}
.psg2-cap-l{fill:var(--sub);font-size:10.5px;text-anchor:start;font-family:inherit;}
.psg2-note{fill:var(--faint);font-size:11px;text-anchor:middle;font-family:inherit;}
.psg2-side{display:flex;flex-direction:column;gap:8px;align-items:stretch;}
.psg2-meta{font-size:12.5px;color:var(--sub);font-weight:700;line-height:1.6;}
.psg2-meta b{color:var(--pri-ink);}
.psg2-tip2{font-size:11.5px;color:var(--faint);line-height:1.6;}
.psg2-msg{margin-top:10px;font-size:13px;min-height:20px;font-weight:600;}
.psg2-msg.err{color:var(--red);}
.psg2-msg.ok{color:var(--ok);}
