:root{
  --ink:#2b2620; --ink2:#4a4239; --paper:#f7f2e7; --card:#fffdf8;
  --red:#a5342b; --gold:#b8860b; --line:#e3d9c4; --green:#3f7d52; --grey:#8a8175;
  --good:#3f7d52; --bad:#a5342b; --mid:#9a8f7a;
}
*{box-sizing:border-box}
body{margin:0;padding:28px 14px;background:radial-gradient(circle at 20% -10%,#fbf7ee 0%,var(--paper) 55%);
  color:var(--ink);font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;line-height:1.8}
.wrap{max-width:980px;margin:0 auto}
.sheet{background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 10px 40px rgba(60,45,25,.10);overflow:hidden}
header{padding:30px 40px 22px;border-bottom:3px double var(--gold);
  background:linear-gradient(180deg,#fffefb,#fdf8ee);text-align:center}
h1{margin:0 0 6px;font-family:"STKaiti","KaiTi",serif;font-size:30px;letter-spacing:4px}
.subtitle{color:var(--ink2);font-size:14px;letter-spacing:1px}
section{padding:22px 40px}section+section{border-top:1px solid var(--line)}
h2{font-family:"STKaiti","KaiTi",serif;font-size:20px;letter-spacing:2px;margin:2px 0 14px;
  padding-left:14px;border-left:5px solid var(--red)}
.form-card{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:14px;color:var(--ink2);font-weight:600}
.field input,.field select{padding:10px 12px;border:1px solid var(--line);border-radius:8px;
  font-size:15px;font-family:inherit;background:#fffefb}
.radio-row{display:flex;gap:18px;align-items:center}
.btn-primary{grid-column:1/-1;margin-top:6px;padding:13px;border:none;border-radius:10px;
  background:linear-gradient(180deg,#b8463a,var(--red));color:#fff;font-size:17px;letter-spacing:3px;
  font-family:"STKaiti","KaiTi",serif;cursor:pointer;transition:.2s}
.btn-primary:hover{filter:brightness(1.08)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
table{width:100%;border-collapse:collapse;font-size:14px;margin:2px 0 6px}
th,td{border:1px solid var(--line);padding:9px 11px;vertical-align:middle}
thead th{background:#efe7d4;font-weight:600}
tbody tr:nth-child(even){background:#faf6ec}
.rowhead{background:#f3ecdb;font-weight:600;color:var(--ink2);white-space:nowrap}
.pillar td{text-align:center}
.pillar .gan{font-size:22px;font-family:"STKaiti","KaiTi",serif;color:var(--red)}
.pillar .zhi{font-size:22px;font-family:"STKaiti","KaiTi",serif}
.pillar .day{color:var(--gold)}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;font-weight:600}
.t-good{background:#e4f0e6;color:var(--good)}.t-bad{background:#f6e3e0;color:var(--bad)}.t-mid{background:#efe9dc;color:var(--mid)}
.bar{height:12px;border-radius:6px;background:#ece4d2;overflow:hidden;min-width:70px;display:inline-block;vertical-align:middle;width:120px}
.bar>i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#c9a24a,var(--gold))}
.check{font-family:serif;letter-spacing:4px;color:var(--ink2)}
.report{font-size:15.5px;line-height:1.95}
.report h3{font-family:"STKaiti","KaiTi",serif;color:var(--red);border-left:5px solid var(--gold);
  padding-left:12px;margin:26px 0 10px;font-size:19px;letter-spacing:1px}
.report p{margin:10px 0}.report ul,.report ol{margin:10px 0;padding-left:24px}
.report li{margin:4px 0}
.report strong{color:var(--red)}
.report table{margin:14px 0}
.report blockquote{border-left:3px solid var(--gold);background:#fbf3e6;margin:14px 0;padding:10px 16px;color:var(--ink2)}
.thinking::after{content:"▋";animation:blink 1s steps(1) infinite;color:var(--red)}
@keyframes blink{50%{opacity:0}}
.correction-note{font-size:12.5px;color:var(--grey);margin-top:10px;padding:8px 12px;background:#faf6ec;border-radius:8px}
.toolbar{display:flex;gap:12px;justify-content:flex-end;padding:14px 40px;flex-wrap:wrap}
.btn-sm{padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:#fffefb;cursor:pointer;font-family:inherit;font-size:14px}
.btn-sm:hover{background:#f3ecdb}
.hidden{display:none}
.err{background:#f6e3e0;color:var(--bad);padding:12px 16px;border-radius:8px;margin:10px 0}
@media print{body{padding:0;background:#fff}.sheet{box-shadow:none;border:none}.no-print{display:none}section{page-break-inside:avoid}}
@media(max-width:640px){.form-card{grid-template-columns:1fr}section,header,.toolbar{padding-left:18px;padding-right:18px}}
