:root {
  color-scheme: light;
  font-family: -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  color:#172f2a;background:#f4f7f4;
  --ink:#172f2a;--muted:#577269;--green:#145b4b;--line:#dbe6df;--white:#fff;
  --brand:#145b4b;--brand-soft:#e8f3ec;--card:#fff;--text:#172f2a;--sub:#577269;
  --line-2:#dbe6df;--money-in:#10755b;--money-out:#a7443f;--danger:#a7443f;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit;text-decoration:none}
button,select{cursor:pointer}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid #58a787;outline-offset:2px}
.top{min-height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#153d34;color:white;gap:16px}
.brand{display:flex;align-items:center;gap:11px;font-size:16px}
.brand-icon{width:40px;height:44px;object-fit:contain;flex:none}
.brand small{font-size:12px;display:block;color:#b6d9c9;margin-top:3px}
.top-right{display:flex;align-items:center;gap:14px}
.local-badge{white-space:nowrap;color:#d9f3e2;font-size:13px}
.local-badge i{display:inline-block;background:#78d2a1;width:8px;height:8px;border-radius:100%;margin-right:3px}
.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 68px)}
.sidebar{background:#fbfcfa;border-right:1px solid var(--line);padding:25px 15px}
.side-title{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--muted);padding:0 10px 9px}
.project-heading{margin-top:27px}
.sidebar nav{display:grid;gap:4px;margin:0 0 12px}
.sidebar nav a{display:flex;gap:11px;align-items:center;border-radius:9px;padding:11px 10px;color:#31534a;font-size:14px}
.sidebar nav a span{width:18px;text-align:center;color:#35775f}
.sidebar nav a:hover,.sidebar nav a.current{background:#e2f0e7;color:#0c513d}
.sidebar nav a.current{font-weight:700}
.sidebar select{width:100%;background:#fff;margin-bottom:10px}
.sidebar-foot{color:var(--muted);line-height:1.6;font-size:12px;margin:28px 10px 0}
main{padding:27px 31px 42px;min-width:0;max-width:1520px;width:100%;margin:auto auto 0;align-self:start}
h1,h2,h3,p{margin-top:0}
h1{margin-bottom:7px;font-size:clamp(25px,3vw,34px);letter-spacing:-.018em}
h2{font-size:20px;margin-bottom:12px}
h3{font-size:16px;margin-bottom:9px}
p{line-height:1.55}
.muted,.hint,small{color:var(--muted)}
.hint{font-size:13px}
.card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:17px;margin:0 0 14px;min-width:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:14px}
.grid>.card{margin-bottom:0}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(155px,100%),1fr));gap:11px;margin:10px 0}
.field,label:has(input),label:has(select),label:has(textarea){display:grid;gap:5px;font-size:13px;font-weight:600}
label small{font-size:12px;font-weight:400}
input,select,textarea{border:1px solid #bfd1c7;border-radius:8px;background:#fff;padding:8px 9px;min-height:37px;min-width:0;max-width:100%}
textarea{resize:vertical}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:5px;background:#fff;border:1px solid #c8dbd0;border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.25;white-space:nowrap}
.btn:hover{background:#e9f2ea}
.btn.primary,.btn.pri{background:#145b4b;color:#fff;border-color:#145b4b}
.btn.primary:hover,.btn.pri:hover{background:#0f493c}
.btn.light{border-color:#719488;color:white;background:transparent}
.btn.light:hover{background:#28594b}
.btn.linklike{background:none;border-color:transparent;padding-left:10px;color:#356e59}
.btn.close{padding:4px 10px;font-size:20px}
.table-wrap,.tbwrap{overflow:auto;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{text-align:left;border-bottom:1px solid #e2ebe4;padding:9px 10px;vertical-align:top}
th{font-weight:700;background:#edf4ee;color:#264c41;white-space:nowrap}
tbody tr:hover{background:#f4f8f3}
.empty{text-align:center;color:var(--muted);padding:27px 14px}
.row,.actions,.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px}
.tag,.pill{display:inline-block;padding:3px 8px;background:#e5f0e8;border-radius:99px;font-size:12px;white-space:nowrap}
dialog{width:min(780px,calc(100vw - 32px));border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 50px #102c2552;max-height:88vh;overflow:auto;color:var(--ink);padding:16px}
dialog::backdrop{background:#132f2691}
.dialog-inner{display:grid;gap:12px}
.dialog-head{display:flex;justify-content:space-between;align-items:center}
.dialog-head h2{margin-bottom:0}
.dialog-inner form{display:grid;gap:11px}
.dialog-inner li{margin-bottom:9px;line-height:1.55}
#notice{position:fixed;right:18px;bottom:17px;max-width:90vw;z-index:10;background:#145b4b;color:white;border-radius:8px;padding:10px 15px;font-size:14px;box-shadow:0 3px 12px #173d3440}
#notice:empty{display:none}
#notice.error{background:#8d3030}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:740px){.layout{grid-template-columns:1fr}.sidebar{padding:12px 16px;border-right:none;border-bottom:1px solid var(--line)}.sidebar nav{display:flex;gap:4px;overflow:auto}.sidebar nav a{white-space:nowrap;padding:7px}.sidebar .side-title,.sidebar-foot{display:none}.sidebar select{max-width:240px;margin-right:8px}main{padding:20px 14px}.top{padding:0 16px}.page-head{display:block}.grid{gap:8px}}
