:root{font-family:"Microsoft YaHei",Arial,sans-serif;color:#1f2c32;background:#f4f7f6;font-size:15px}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}a{color:#176e62}
.top{height:64px;background:#fff;color:#183e35;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 2px 15px #102f2d18}
.brand{font-size:18px;font-weight:700;letter-spacing:.03em}.brand small{display:block;font-size:11px;font-weight:400;color:#69867a;letter-spacing:.12em;margin-top:3px}
.top-actions{display:flex;gap:16px;align-items:center}.top button{color:#195342;background:#fff;border:1px solid #c7d9cd;padding:7px 12px;border-radius:7px}
.layout{display:grid;grid-template-columns:225px minmax(0,1fr);min-height:calc(100vh - 64px)}
.sidebar{background:#123e34;border-right:1px solid #123e34;padding:22px 14px}.sidebar .label{font-size:11px;letter-spacing:.15em;color:#a7c1b6;margin:12px 11px}
.nav{display:block;width:100%;text-align:left;border:0;background:transparent;color:#d8e6db;padding:11px 14px;border-radius:8px;margin:3px 0}
.nav:hover,.nav.active{background:#dfead5;color:#194939;font-weight:650}
.content{padding:30px 34px 75px;max-width:1500px;width:100%;margin:0 auto}
h1{font-size:27px;margin:0 0 8px;letter-spacing:.01em}h2{font-size:18px;margin:0 0 18px}h3{font-size:15px;margin:0 0 12px}
.muted{color:#6f817c}.lead{margin:0 0 25px;color:#667974}.eyebrow{color:#0f7b66;font-size:12px;font-weight:700;letter-spacing:.12em}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{background:#fff;border:1px solid #dde8e3;border-radius:12px;padding:20px;box-shadow:0 5px 24px #1d4c3b08;margin-bottom:17px}
.metric{font-size:34px;font-weight:750;color:#0c6d5c;margin:10px 0 3px}.metric-label{font-size:13px;color:#72857f}
.dashboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dashboard-metrics .card{margin-bottom:0}.dashboard-metrics .metric{font-size:25px}
.small-note{font-size:12px;margin:10px 0 17px}
.survey-metric{background:#f4f8f4;border:1px solid #dce9df;border-radius:10px;padding:15px;margin-bottom:16px}.survey-metric span,.survey-metric small{display:block;color:#637b6d}.survey-metric strong{display:block;font-size:24px;color:#176b50;margin:4px 0}
.score-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.score-summary>div{border:1px solid #dce9df;background:#f7faf7;border-radius:9px;padding:10px}.score-summary span{display:block;color:#647b6e;font-size:12px}.score-summary strong{display:block;margin-top:3px;font-size:17px}.score-group td{background:#eaf3ec!important;color:#1c6049;font-weight:700}
.item-card{border:1px solid #e1e9e3;border-radius:9px;padding:12px;margin:10px 0}
.letter-preview{background:#fbfaf6;border:1px solid #e7e4da;border-radius:9px;padding:18px;margin-top:18px}.letter-preview h3{text-align:center;margin:12px 0 20px}.letter-preview .item-card p{margin:8px 0}
.materials-split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.material-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #dde8e3;border-radius:9px;padding:11px;margin:8px 0;cursor:pointer}.material-item.selected{background:#eef7f0;border-color:#77b58d}.material-item small{display:block;color:#6f817c}.material-item [id^="extract-status-"]{display:block}.original-preview{background:#fbfaf6;border:1px solid #e7e4da;border-radius:9px;min-height:190px;padding:12px}.original-preview iframe{width:100%;height:390px;border:0}.original-preview img{max-width:100%;max-height:390px;display:block;margin:auto}.extraction-text{max-height:320px;overflow:auto;background:#f9fbf8;border:1px solid #e3ebe4;border-radius:8px;padding:8px 13px}.material-groups{margin-bottom:12px}
.primary{background:#087562;color:#fff;border:1px solid #087562}.primary:hover{background:#065e4f}
.secondary{background:#fff;color:#176e62;border:1px solid #9fcac0}.danger{background:#fff;color:#b13d35;border:1px solid #e3aaa6}
.btn{padding:9px 15px;border-radius:7px;white-space:nowrap}.small{padding:6px 10px;font-size:13px}.button-link{border:none;background:none;color:#087562;padding:0}
label{display:block;font-size:13px;color:#41564f;font-weight:600;margin-bottom:13px}
input,select,textarea{display:block;width:100%;border:1px solid #cfdcd6;background:#fff;border-radius:7px;padding:9px 10px;color:#182b24;margin-top:6px}
textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #9bd7c7;border-color:#198d74}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.pill{display:inline-block;border-radius:20px;background:#e8f3ee;color:#216456;padding:4px 10px;font-size:12px;font-weight:650}
.pill.pending{background:#fff1d8;color:#91630d}.pill.locked{background:#dff1e7;color:#186747}
table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e7eee9;vertical-align:top}th{font-size:12px;color:#6a7c76;background:#f7faf8;font-weight:700}
tr:hover td{background:#fbfdfc}.table-wrap{overflow:auto}
.ledger-sticky{position:sticky;left:0;z-index:2;background:#fff;min-width:125px}.ledger-sticky-name{position:sticky;left:125px;z-index:2;background:#fff;min-width:180px}.table-wrap th.ledger-sticky,.table-wrap th.ledger-sticky-name{background:#f7faf8}
.ledger-section{border:1px solid #dce9df;border-radius:9px;margin:10px 0;padding:0 14px}.ledger-section summary{padding:13px 0;cursor:pointer;font-weight:700}.ledger-section .form-grid{padding:9px 0 12px}
.modal-backdrop{position:fixed;inset:0;z-index:20;background:#122f2780;display:grid;place-items:center;padding:18px}.modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;margin:0}
.notice{background:#fff8e9;border-left:3px solid #d99b22;padding:12px 15px;border-radius:6px;color:#705418;margin:14px 0}
.empty{text-align:center;padding:37px;color:#82918c}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.steps{display:flex;gap:6px;overflow:auto;padding:5px 1px 15px}.step{min-width:126px;padding:10px;border:1px solid #d6e4dd;border-radius:8px;background:#fff;color:#50655e;text-align:left;font-size:12px}.step.current{border-color:#087562;background:#e2f4ed;color:#075e4e;font-weight:700}.step.done{border-color:#9abeb0;color:#0c6c57}.step b{display:block;font-size:14px;margin-bottom:5px}
.business-steps{display:grid;grid-template-columns:repeat(8,minmax(100px,1fr))}.business-steps .step{min-width:0}.business-steps .step b{font-size:11px}.project-hero{background:linear-gradient(110deg,#153f35,#22614e);color:#fff;border-radius:15px;padding:23px 27px;margin:15px 0 18px}.project-hero .eyebrow{color:#bcdbcb}.project-hero h1{margin:9px 0}.inner-tabs{margin-top:0}
.tabs{display:flex;gap:6px;overflow:auto;border-bottom:1px solid #dbe6e1;margin:17px 0}.tab{border:0;background:transparent;padding:11px 15px;color:#60746c;border-bottom:3px solid transparent;white-space:nowrap}.tab.active{color:#087562;border-bottom-color:#087562;font-weight:700}
.login-wrap{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 75% 20%,#def2e9,transparent 35%),linear-gradient(140deg,#e8f2ed,#f8faf9)}
.login-card{width:min(430px,90vw);padding:36px}.login-title{font-size:26px;font-weight:750;margin:12px 0 7px}.login-card button{width:100%;margin-top:10px}
.public-wrap{max-width:760px;margin:34px auto;padding:0 17px}.option{font-weight:400;display:flex;align-items:center;gap:9px;margin:8px 0}.option input{width:auto;margin:0}
.toast{position:fixed;right:24px;bottom:24px;background:#1f3831;color:#fff;padding:11px 17px;border-radius:8px;box-shadow:0 8px 25px #0003;z-index:10}.toast.error{background:#ab3e35}
@media(max-width:1050px){.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1300px){.business-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.layout{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;padding:8px;border-right:0;border-bottom:1px solid #dbe5e1}.sidebar .label{display:none}.nav{width:auto;white-space:nowrap}.content{padding:23px 15px 65px}.grid,.grid.two,.form-grid{grid-template-columns:1fr}.top{padding:0 15px}.brand{font-size:14px}}
@media(max-width:900px){.materials-split{grid-template-columns:1fr}}
@media(max-width:530px){.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.business-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.score-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
