:root{font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif;color:#20312d;background:#f3f6f3;font-size:15px}*{box-sizing:border-box}body{margin:0}h1{font-size:30px;margin:8px 0 24px}h2{font-size:19px}p,li{line-height:1.8}header{background:#143f35;color:white;padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px}header form{display:flex;align-items:center;gap:12px}.brand{font-weight:750;font-size:21px;letter-spacing:1px}.badge{display:inline-block;background:#ffffff18;border:1px solid #ffffff40;padding:5px 10px;border-radius:20px;font-size:12px;margin-left:12px}.layout{display:grid;grid-template-columns:190px 1fr;min-height:90vh}nav{padding:24px 16px;background:#fff;border-right:1px solid #dae4dd}nav a{display:block;text-decoration:none;color:#536760;padding:13px 16px;border-radius:9px;margin-bottom:8px}nav a.active{color:#17644b;background:#e7f2eb;font-weight:bold}main{padding:32px;min-width:0;max-width:1500px;width:100%}.page-heading{display:flex;justify-content:space-between;align-items:center}.page-heading small,small{color:#697e74}.panel{background:white;border:1px solid #dbe5de;border-radius:12px;padding:22px;margin:18px 0;box-shadow:0 3px 12px #173b2505}.notice{font-size:13px;color:#6a766b;border-left:3px solid #b6c9ba;padding:8px 12px;background:#edf2ed}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.metrics article{background:#fff;border:1px solid #dbe5de;border-radius:12px;padding:22px}.metrics strong{display:block;font-size:34px;margin:12px 0;color:#17644b}.metrics span{font-size:12px;color:#738178}.table-wrap{overflow:auto;border:1px solid #dbe5de;border-radius:10px;background:white;margin:18px 0}table{border-collapse:collapse;width:100%;font-size:13px;text-align:left}th{background:#ecf2ed;color:#42584c;white-space:nowrap}th,td{padding:15px 13px;border-bottom:1px solid #edf1ed}td{min-width:75px}tr:last-child td{border-bottom:0}summary{cursor:pointer;font-weight:650;color:#17644b}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px;align-items:end}label{display:block;font-size:13px;color:#4c6155}input,select{display:block;width:100%;margin-top:8px;padding:11px;border:1px solid #b9cbbf;border-radius:7px;font:inherit;background:white;color:#20312d}button{background:#17644b;color:white;border:0;border-radius:7px;padding:12px 18px;font:inherit;cursor:pointer}.quiet{background:#ffffff18;border:1px solid #ffffff40}.error,.success{padding:13px;border-radius:8px}.error{background:#fff0ec;color:#a63820}.success{background:#e1f3e6;color:#246744}.login{max-width:430px;margin:10vh auto;padding:32px}.login form label{margin:15px 0}.login button{width:100%;margin:12px 0}.login small{display:block;line-height:1.7}footer{font-size:12px;color:#78857c;line-height:1.8;margin-top:26px}@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:160px 1fr}main{padding:22px}}@media(max-width:600px){header{padding:16px;display:block}header form{margin-top:14px;font-size:12px}.layout{display:block}nav{display:flex;overflow:auto;padding:10px;gap:5px;border-right:0;border-bottom:1px solid #dae4dd}nav a{white-space:nowrap;margin:0;padding:10px}main{padding:16px}h1{font-size:25px}.page-heading>span{font-size:12px}.metrics{gap:10px}.metrics article{padding:16px}.form-grid{grid-template-columns:1fr}.panel{padding:17px}.login{margin:8vh 16px;width:calc(100% - 32px)}.badge{font-size:11px}}
.mobile-board{display:none}.need-card{border:1px solid #dbe5de;border-radius:10px;padding:16px;margin-top:14px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.risk{font-size:12px;background:#edf2ed;color:#4f6956;padding:4px 8px;border-radius:6px}.risk.late{background:#fff0e5;color:#aa571d}.need-card p{font-size:13px;line-height:1.6;color:#596e60}.need-values{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.need-values strong{display:block;margin-top:5px;font-size:19px;color:#17644b}@media(max-width:600px){.desktop-board{display:none}.mobile-board{display:block}.table-wrap table{min-width:720px}}
.span-all{grid-column:1/-1}.secondary{background:#edf4ef;color:#17644b;border:1px solid #b7cec0}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:15px 0}.size-picker{display:flex;gap:20px;flex-wrap:wrap}.size-picker label{display:flex;gap:6px;align-items:center}.size-picker input{display:inline;width:auto;margin:0}.matrix-table input{min-width:70px;margin:0}.matrix-table td:first-child{min-width:155px}.matrix-table th,.matrix-table td{padding:10px 8px}.matrix-table{min-width:850px}.pattern-row{border:1px solid #dbe5de;border-radius:10px;padding:18px;background:#f9fbf9;margin:16px 0}.line-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.line-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;color:#516656}.cost-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;border:1px solid #c8ded0;border-radius:10px;padding:20px;background:#edf6ef}.cost-summary strong{display:block;font-size:26px;margin:10px 0;color:#17644b}.cost-summary small{grid-column:1/-1;line-height:1.7}.sheet-links{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.sheet-links a{border:1px solid #bdd0c3;border-radius:7px;padding:9px 12px;background:white;color:#17644b;text-decoration:none}.sheet-links a.active{background:#e1f0e6;font-weight:bold}@media(max-width:1000px){.line-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.line-grid{grid-template-columns:1fr}.line-bottom{display:block}.line-bottom button{margin-top:12px}.cost-summary{gap:8px;padding:13px}.cost-summary strong{font-size:22px}.size-picker{gap:14px}}
@media(max-width:600px){.matrix-wrap{max-width:100%;overflow-x:auto}.matrix-table{min-width:850px}}
.panel{overflow:hidden}.style-photo{display:block;max-width:180px;max-height:180px;margin-top:8px;border-radius:8px;object-fit:cover}.quote-summary{padding:16px;background:#edf6ef;border-radius:8px;color:#17644b;margin:12px 0}.quote-thumb{width:54px;height:54px;object-fit:cover;border-radius:6px}.quote-preview{width:90px;height:90px;object-fit:cover;border-radius:8px;margin-left:auto}
.purchase-materials input:not([type=checkbox]),.purchase-materials select{min-width:130px}.purchase-materials input[type=checkbox]{width:20px;height:20px}.form-grid>.table-wrap{grid-column:1/-1;max-width:100%}td .button-link{white-space:nowrap;margin:3px 0}
@media print{body{background:white}header,nav,.page-heading,footer,main>.notice,main>.success,main>.error,main>.sheet-actions,main>section:not(.purchase-print):not(.process-print),main>details,main>p{display:none!important}.layout{display:block}main{padding:0;max-width:none}.purchase-print,.process-print{border:0;box-shadow:none;padding:0;margin:0}.purchase-print .table-wrap,.process-print .table-wrap{overflow:visible;border:0}.print-actions{display:none!important}.purchase-print table,.process-print table{min-width:0!important;font-size:11px}.purchase-print th,.purchase-print td,.process-print th,.process-print td{padding:8px}body{color:#000}}
.sheet-actions{display:grid;gap:10px;margin:16px 0}.sheet-actions>div{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #dbe5de;border-radius:8px}.button-link{display:inline-block;background:#17644b;color:#fff;text-decoration:none;border-radius:6px;padding:8px 12px;font-size:13px}@media(max-width:600px){.sheet-actions>div{display:block}.button-link{margin:8px 8px 0 0}}
.workflow-steps{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.workflow-steps span{padding:8px 13px;border-radius:20px;background:#e9efea;color:#5b6c61;font-size:13px}.workflow-steps span.active{background:#17644b;color:#fff}.section-title{border-bottom:1px solid #dbe5de;margin:5px 0 6px;padding-bottom:8px}.section-title h2,.section-title h3{margin:4px 0}.section-title p{margin:3px 0;color:#65766b;font-size:13px}.doc-status{display:inline-block;padding:4px 8px;border-radius:5px;font-size:12px;background:#edf1ed}.doc-status.review{background:#fff0d9;color:#9a5c16}.doc-status.approved{background:#dff2e4;color:#237043}.secondary-link{background:#edf4ef;color:#17644b;border:1px solid #b7cec0}.process-table input,.process-table select{min-width:86px;margin:0;padding:7px}.process-table textarea{min-width:160px}.process-print textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #b9cbbf;border-radius:7px;font:inherit;line-height:1.7}
.process-print{border-top:5px solid #183f54}.process-print h2{letter-spacing:1px;color:#183f54}.process-print h3{padding:9px 12px;background:#e8f0f3;border-left:4px solid #29718b;color:#183f54}.measure-sketches{display:grid;grid-template-columns:1fr 1fr;gap:18px}.measure-sketches figure{margin:0;padding:12px;border:1px solid #cbd9df;border-radius:8px;background:#fff;text-align:center}.measure-sketches svg{width:100%;max-width:260px;height:210px;fill:#f6fafb;stroke:#244f61;stroke-width:2}.measure-sketches svg text{stroke:none;fill:#244f61;font-size:11px}.measure-sketches figcaption{font-size:13px;color:#506a75}.process-print textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #b9cbbf;border-radius:7px;font:inherit;line-height:1.7}.process-print table input{min-width:78px;margin:0;padding:7px}@media(max-width:700px){.measure-sketches{grid-template-columns:1fr}.process-print .table-wrap table{min-width:1050px}}
