:root{--bg: #F5EFE4;--surface: #ffffff;--surface-2: #faf6ee;--ink: #1F1B16;--ink-2: #7d715e;--line: #e9e0d1;--brand: #A63B2A;--brand-2: #B89B6A;--mint: #4c8b6a;--grad: linear-gradient(135deg, #A63B2A 0%, #c4703b 55%, #b8895a 100%);--shadow: 0 1px 2px rgba(43, 36, 27, .05), 0 10px 28px rgba(122, 92, 62, .09);--r: 16px}:root{--fs: 17px;--fs-sm: 14.5px;--fs-lg: 20px;--fs-h1: 28px;--lh: 1.85;--tap: 44px}html[data-fs=large]{--fs: 20px;--fs-sm: 17px;--fs-lg: 23px;--fs-h1: 33px;--tap: 52px}html[data-fs=xl]{--fs: 23px;--fs-sm: 20px;--fs-lg: 27px;--fs-h1: 38px;--lh: 1.95;--tap: 60px}html[data-contrast=high]{--bg: #ffffff;--surface: #ffffff;--surface-2: #f4f1ea;--ink: #100d0a;--ink-2: #3a332a;--line: #7d7466;--brand: #8c2f21;--brand-2: #6f5a34;--mint: #1f6a4a;--grad: #8c2f21;--shadow: 0 0 0 1px #7d7466}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;font-size:var(--fs);line-height:var(--lh);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:6px}.btn{font-size:var(--fs-sm);min-height:var(--tap);padding:10px 20px;border-radius:10px;border:0;background:var(--grad);color:#fff;font-weight:700;line-height:1.4;box-shadow:0 8px 18px #a6402e47;transition:.18s}.btn:hover{filter:brightness(1.05)}.btn-line{background:var(--surface-2);color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn.sm{font-size:var(--fs-sm);min-height:var(--tap);padding:7px 14px;border-radius:9px}.btn.lg{font-size:var(--fs);padding:14px 28px;border-radius:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;box-shadow:var(--shadow)}.card h3{font-size:var(--fs-lg);margin:0 0 14px;line-height:1.5}.meter{margin:8px 0}.meter .lab{display:flex;justify-content:space-between;font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:4px}.meter .track{height:10px;background:var(--surface-2);border-radius:99px;overflow:hidden}.meter .track i{display:block;height:100%;background:var(--grad);border-radius:99px;transition:width .4s}.pill{font-size:var(--fs-sm);font-weight:700;border-radius:99px;padding:3px 10px;line-height:1.5}.pill.ok{background:#e7f8f2;color:var(--mint)}.pill.warn{background:#fdf3e3;color:#9a6b12}.pill.no{background:#fdeaea;color:#a4241a}table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs)}.tbl th{text-align:left;font-size:var(--fs-sm);color:var(--ink-2);padding:10px 12px;border-bottom:1px solid var(--line)}.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%);background:#1c1722;color:#fff;padding:12px 20px;border-radius:10px;font-size:var(--fs-sm);max-width:86vw;opacity:0;pointer-events:none;transition:.2s;z-index:9999}input,textarea,select{font-family:inherit;font-size:var(--fs)}.page-title{font-size:var(--fs-h1);margin:0 0 6px;letter-spacing:2px}.page-sub{color:var(--ink-2);font-size:var(--fs-sm);margin:0 0 22px;line-height:var(--lh)}.hint{font-size:var(--fs-sm);color:var(--ink-2);line-height:var(--lh)}.empty{color:var(--ink-2);font-size:var(--fs);padding:14px 2px}.chip{font-size:var(--fs-sm);min-height:var(--tap);padding:8px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:99px;color:var(--ink-2);font-weight:600;line-height:1.4}.chip.on{background:var(--brand);color:#fff;border-color:var(--brand)}.act{font-size:var(--fs-sm);min-height:max(44px,var(--tap) - 8px);border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:6px 12px;color:var(--brand);font-weight:700}.act:hover{border-color:var(--brand)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width: 880px){.grid2{grid-template-columns:1fr}}.btn{transition:all .18s cubic-bezier(.34,1.56,.64,1)}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0) scale(.97)}.card{animation:cardIn .45s ease both}@keyframes cardIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.toast{animation:toastIn .3s cubic-bezier(.34,1.56,.64,1) both}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(16px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.chip{transition:all .15s ease}.chip:hover{transform:translateY(-1px)}.act{transition:all .15s ease}.act:hover{transform:translateY(-1px)}.kpi{transition:transform .2s ease}.kpi:hover{transform:translateY(-3px)}h1,h2,h3,.page-title,.ph-t,.book-page,.cover .ct{font-family:Songti SC,"Noto Serif SC","Source Han Serif SC",STSong,serif}
