:root{font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:#263e39;background:#f4f6f4;font-size:14px}*{box-sizing:border-box}body{margin:0}h1,h2,h3,p{margin:0}h1{font-size:26px;font-weight:600;letter-spacing:.5px}h2{font-size:20px;font-weight:600}h3{font-size:17px}.eyebrow{font-size:11px;letter-spacing:1.8px;color:#6a817a;margin-bottom:8px}.muted,.footnote{color:#75857f;font-size:12px;line-height:1.8}.error{color:#ad3939;margin:10px 0;white-space:pre-wrap}.warning{background:#fff4de;color:#7b571d;padding:14px 18px;margin-bottom:18px;line-height:1.7;border:1px solid #ead8ae}.danger{color:#a83939;border-color:#e4c8c8}button,.button{font:inherit;cursor:pointer;padding:9px 15px;border:1px solid #cdd7d2;background:white;color:#36554b;border-radius:4px;text-decoration:none;white-space:nowrap}button:hover,.button:hover{background:#eef3ef}button:disabled{opacity:.55;cursor:wait}.primary{background:#234b45;color:#fff;border-color:#234b45}.primary:hover{background:#173d37}button:focus-visible,a:focus-visible{outline:2px solid #799b8a;outline-offset:3px}input,select,textarea{font:inherit;padding:9px 10px;border:1px solid #ccd7d1;border-radius:3px;background:white;color:#263e39;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #d7e6dc;border-color:#72937f}input:disabled,textarea:disabled{background:#f1f4f1;color:#496255;opacity:1}label{display:flex;flex-direction:column;gap:7px;color:#566d63;font-size:12px}label input,label select{font-size:14px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px 0 22px}#workspace{max-width:1600px;padding:0 36px 40px;margin:auto}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}nav{border-bottom:1px solid #d4dfd8;display:flex;gap:24px;align-items:center;margin-bottom:28px}nav button{border:0;border-bottom:3px solid transparent;padding:14px 2px;border-radius:0;background:none;color:#75857f}nav button.active{border-bottom-color:#234b45;color:#234b45;font-weight:600}nav span{margin-left:auto;font-size:12px;color:#7b8c82}.section-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.section-title p{margin-top:7px}.filters{display:flex;gap:18px;align-items:flex-end;margin-bottom:20px}.filters input,.filters select{min-width:165px}.filters #reportYear{width:100px;min-width:100px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.card{border:1px solid #d9e2dc;background:#fff;padding:18px 22px}.card p{font-size:12px;color:#73877b;margin-bottom:10px}.card strong{font-size:24px;font-weight:500;font-variant-numeric:tabular-nums}.card small{display:block;margin-top:8px;font-size:11px;color:#86978c}.table-wrap{overflow:auto;background:#fff;border:1px solid #d8e1da}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:13px}th{background:#eaf0eb;color:#586e60;font-size:12px;font-weight:500;text-align:left;padding:14px 16px;border-bottom:1px solid #cdd8cf}td{padding:15px 16px;border-bottom:1px solid #e4ebe5;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8faf7}.num{text-align:right}td button{padding:5px 10px;font-size:12px}.badge{padding:7px 12px;background:#e5eee6;color:#3b6852;border-radius:3px;font-size:12px}.bad{color:#af6135}.good{color:#5d8270}.footnote{margin-top:13px}.empty{text-align:center;padding:65px 20px;background:#fff;border:1px solid #e0e7df}.empty p{margin-top:12px;color:#849188}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-box{background:#fff;border:1px solid #d6e1d7;padding:42px;width:420px}.login-box .muted{margin-top:12px}.login-box form{margin-top:28px}.login-box label{margin-bottom:17px}.login-box button{width:100%}dialog{border:1px solid #cad8cf;border-radius:6px;padding:28px;width:1000px;max-width:calc(100vw - 40px);max-height:90vh;color:#263e39}dialog::backdrop{background:#182c255e}.dialog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:20px}.form-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:20px}.edit-table{table-layout:fixed}.edit-table th:first-child{width:180px}.edit-table td{padding:10px 15px}.field{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.field input[type=number]{width:170px;flex:1}.field label{display:flex;flex-direction:row;align-items:center;white-space:nowrap;font-size:11px}.field small{width:100%;color:#829186;font-size:11px}.check{flex-direction:row;align-items:center;margin:18px 0}.wide{margin-top:15px}.dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:22px;padding-top:17px;border-top:1px solid #e1e8e0}.dialog-footer span{font-size:12px;color:#859487}#passwordDialog,#shareDialog{width:520px}#passwordDialog label,#shareDialog label{margin:16px 0}#shareUrl{font-size:12px}#importDialog{width:1200px}#importStatus{margin:15px 0}#importBody input[type=month]{width:165px}#importBody td:nth-child(4){white-space:normal;min-width:230px}#toast{position:fixed;top:22px;left:50%;transform:translateX(-50%);background:#234b45;color:white;padding:14px 25px;border-radius:4px;z-index:20;box-shadow:0 5px 20px #18352e20}#historyContent article{margin-bottom:20px;border-bottom:1px solid #dde5dd;padding-bottom:15px}#historyContent pre{white-space:pre-wrap;font:12px/1.7 monospace;background:#f4f7f2;padding:15px}body.viewer .admin{display:none!important}body.viewer .wide{display:block}body.viewer #editor input,body.viewer #editor textarea{border-color:#e0e6dd}body.viewer #editForm .form-meta.admin{display:grid!important}body.viewer #editor .field label{display:none}[hidden]{display:none!important}@media(max-width:950px){#workspace{padding:0 18px 25px}header,.section-title{align-items:flex-start;flex-direction:column}.cards{grid-template-columns:repeat(2,1fr)}.filters{flex-wrap:wrap}.form-meta{grid-template-columns:1fr}.edit-table th:first-child{width:130px}.field input[type=number]{width:100px}.dialog-footer{flex-wrap:wrap}.card strong{font-size:21px}}@media(max-width:500px){dialog{padding:18px;max-width:calc(100vw - 16px)}.login-box{width:calc(100vw - 32px);padding:28px}.cards{gap:8px}.card{padding:14px}.filters input,.filters select{min-width:130px;width:150px}.edit-table{min-width:660px}}

#exportDialog{max-width:780px}
