:root{--ink: #1c2430;--ink-soft: #4a5563;--paper: #f3efe4;--sheet: #fffdf8;--rule: #d8cfc0;--rule-strong: #b7aa96;--seal: #8f2d2d;--seal-soft: #f4e6e4;--gold: #8a734c;--ok: #2f5d50;--ok-soft: #e4efe9;--warn: #8a5a12;--warn-soft: #f6edd8;--focus: #2c4a6e;--sans: "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--serif: "Songti SC", "STSong", "SimSun", "Noto Serif SC", serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.65}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}.app-shell{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 28px;border-bottom:1px solid var(--rule);background:#efe9db;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:baseline;gap:12px}.brand-mark{width:12px;height:12px;background:var(--seal)}.brand h1{font-size:18px;font-weight:650;letter-spacing:.08em}.brand small{color:var(--ink-soft);font-size:12px;letter-spacing:.12em}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--rule-strong);background:var(--sheet);padding:7px 14px;border-radius:2px}.btn:hover{border-color:var(--ink)}.btn-primary{background:var(--ink);color:#f7f1e6;border-color:var(--ink)}.btn-primary:hover{background:#111821}.btn-seal{background:var(--seal);color:#fff;border-color:var(--seal)}.btn-ghost{background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.page{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:32px 0 64px}.hero{display:grid;grid-template-columns:1.3fr .9fr;gap:36px;padding:8px 0 36px;border-bottom:1px solid var(--rule);margin-bottom:28px}.kicker{color:var(--gold);letter-spacing:.22em;font-size:12px}.hero h2{font-size:36px;line-height:1.25;margin:10px 0 14px;font-weight:650}.hero p{color:var(--ink-soft);max-width:38em}.steps{display:grid;gap:12px;margin-top:8px}.step{display:grid;grid-template-columns:36px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--rule)}.step b{font-family:var(--serif);font-size:20px;color:var(--seal)}.hero-actions{display:flex;gap:10px;margin-top:22px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 16px}.section-head h3{font-size:16px;letter-spacing:.08em}.project-list{display:grid;gap:10px}.project-card{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px 18px;background:var(--sheet);border:1px solid var(--rule)}.project-card h4{font-size:17px}.meta{color:var(--ink-soft);font-size:13px;margin-top:4px}.tag{display:inline-block;padding:1px 8px;margin-right:6px;border:1px solid var(--rule-strong);font-size:12px}.tag-重大{color:var(--seal);border-color:#c98989;background:var(--seal-soft)}.tag-较大{color:var(--warn);border-color:#d2b27a;background:var(--warn-soft)}.tag-一般{color:var(--ok);border-color:#8bb0a4;background:var(--ok-soft)}.card-actions{display:flex;gap:8px;align-items:start}.editor-layout{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:20px 0 48px;display:grid;grid-template-columns:220px 1fr;gap:28px}.editor-layout.single{grid-template-columns:1fr;width:min(1100px,calc(100% - 32px))}.stepper{position:sticky;top:76px;align-self:start}.stepper button{width:100%;text-align:left;background:transparent;border:0;border-left:2px solid var(--rule);padding:10px 12px;color:var(--ink-soft)}.stepper button.active{border-left-color:var(--seal);color:var(--ink);font-weight:600}.stepper em{display:block;font-style:normal;font-size:12px;color:var(--gold)}.panel{background:var(--sheet);border:1px solid var(--rule);padding:22px 24px 28px}.panel h2{font-size:20px;margin-bottom:6px}.panel .lead{color:var(--ink-soft);margin-bottom:18px}.grid-2,.grid-3{display:grid;gap:14px 16px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--ink-soft)}.field input,.field select,.field textarea{border:1px solid var(--rule-strong);background:#fff;padding:8px 10px;border-radius:2px}.field textarea{min-height:92px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid color-mix(in srgb,var(--focus) 35%,transparent);border-color:var(--focus)}.table-wrap{overflow:auto;border:1px solid var(--rule)}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th,table.data td{border-bottom:1px solid var(--rule);padding:6px 8px;text-align:left}table.data th{background:#efe8d8;font-weight:600}table.data input,table.data select{width:100%;border:1px solid transparent;background:transparent;padding:4px 2px}table.data input:focus,table.data select:focus{border-color:var(--rule-strong);background:#fff}table.data .num{text-align:right;font-variant-numeric:tabular-nums}.totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.stat{padding:12px 14px;background:#f7f1e6;border:1px solid var(--rule)}.stat span{display:block;color:var(--ink-soft);font-size:12px}.stat strong{font-size:18px;font-variant-numeric:tabular-nums}.imbalance{color:var(--seal)}.problem-list{display:grid;gap:14px}.problem{border:1px solid var(--rule);padding:14px;background:#fff}.problem-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.finding{margin-top:12px;padding-top:12px;border-top:1px dashed var(--rule);font-size:13.5px}.finding h4{font-size:13px;letter-spacing:.08em;color:var(--gold);margin:10px 0 6px}.finding li{margin:4px 0}.nav-row{display:flex;justify-content:space-between;gap:10px;margin-top:22px}.report-page{width:min(920px,calc(100% - 32px));margin:0 auto;padding:24px 0 80px}.report-toolbar{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px;flex-wrap:wrap}.doc{background:var(--sheet);border:1px solid var(--rule-strong);padding:56px 64px 72px;font-family:var(--serif)}.doc-cover{text-align:center;padding:12px 0 28px;border-bottom:2px solid var(--ink);margin-bottom:28px}.doc-cover .secret{color:var(--seal);letter-spacing:.4em;font-size:13px}.doc-cover h1{font-size:28px;margin:18px 0 20px;letter-spacing:.12em;line-height:1.4}.doc-cover p{margin:6px 0}.doc h2{font-size:18px;text-align:left;margin:28px 0 14px}.doc h3{font-size:16px;text-align:left;margin:16px 0 8px;font-weight:700}.doc p{font-size:15.5px;line-height:1.9;text-indent:2em;margin-bottom:8px}.doc .sign{text-align:right;text-indent:0;margin-top:10px}.generated-block{background:#f7f1e6;margin:12px -20px;padding:4px 20px 16px}.doc table{width:100%;border-collapse:collapse;font-size:12.5px;margin:8px 0 20px;text-indent:0}.doc th,.doc td{border:1px solid var(--ink);padding:5px 6px}.doc caption{caption-side:top;font-weight:600;padding:6px 0;text-align:center}.risk-banner{margin:0 0 16px;padding:10px 14px;border:1px solid var(--rule-strong);background:#f7f1e6;font-family:var(--sans);font-size:13px}.empty{color:var(--ink-soft);padding:24px 0}.dropzone{display:flex;align-items:center;justify-content:center;min-height:140px;padding:24px;border:1px dashed var(--rule-strong);background:#f7f1e6;text-align:center;cursor:pointer}.dropzone:hover{border-color:var(--ink)}.dropzone.disabled{opacity:.55;cursor:not-allowed}@media(max-width:860px){.hero,.editor-layout,.grid-2,.grid-3,.totals,.project-card{grid-template-columns:1fr}.span-2,.span-3{grid-column:auto}.doc{padding:28px 18px 40px}.page,.editor-layout,.report-page{width:calc(100% - 24px)}.stepper{position:static;display:flex;overflow:auto}.stepper button{border-left:0;border-bottom:2px solid var(--rule);white-space:nowrap}}@media print{.topbar,.report-toolbar,.no-print{display:none!important}body{background:#fff}.report-page{width:auto;padding:0}.doc{border:0;padding:0}.generated-block{background:transparent;margin:0;padding:0}}
