:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#223d39;background:#f5f7f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:10px 16px;background:#126d58;color:white;font-weight:600}button:hover{filter:brightness(.94)}button.secondary{background:#edf2ef;color:#34534a}button.danger{background:#fff0ed;color:#a23b27}button.small{padding:6px 9px;font-size:12px}input,select,textarea{padding:11px 12px;border:1px solid #d5dfda;border-radius:7px;background:white;width:100%;color:#223d39}input:focus,select:focus,textarea:focus{outline:2px solid #aed4c1;border-color:#348e6d}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.6px;margin-bottom:8px}h2{font-size:19px}h3{font-size:15px}.muted{color:#71837c;font-size:13px;line-height:1.7}.layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#123f35;color:#fff;padding:30px 20px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{font-size:23px;font-weight:700;letter-spacing:1px;margin-bottom:8px}.sidebar .muted{color:#a9c4b8}.nav{display:grid;gap:8px;margin-top:35px}.nav button{text-align:left;background:transparent;color:#c7dbd2;padding:13px 15px}.nav button.active{background:#2e6052;color:white}.usercard{margin-top:auto;border-top:1px solid #396153;padding-top:20px}.main{padding:34px 40px;max-width:1500px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}.eyebrow{font-size:12px;color:#598b72;letter-spacing:2px;margin-bottom:10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{padding:23px;background:#fff;border:1px solid #e4eae7;border-radius:13px}.stat .value{font-size:27px;font-weight:650;margin:13px 0 7px;font-variant-numeric:tabular-nums}.stat:first-child{background:#e4eee8}.panel{background:white;border:1px solid #e0e8e3;border-radius:12px;margin-bottom:20px;padding:22px}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.panelhead h2{margin:0}.filters{display:flex;gap:10px;margin-bottom:18px}.filters input{flex:1}.filters select{width:180px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;padding:12px 10px;background:#f5f8f6;color:#698078;font-weight:500;white-space:nowrap}td{padding:16px 10px;border-bottom:1px solid #eef2ef;vertical-align:top}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tag{display:inline-block;border-radius:5px;padding:4px 7px;font-size:11px;background:#edf3ee;color:#38785b}.tag.amber{background:#fff5de;color:#9b702b}.tag.blue{background:#edf3fc;color:#4c74a5}.empty{text-align:center;padding:48px 15px;color:#819188}.actions{display:flex;gap:8px;flex-wrap:wrap}.amount{font-weight:600}.negative{color:#b34b3d}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.wide{grid-column:1/-1}.help{font-size:12px;background:#f3f7f3;color:#64816f;padding:13px 15px;border-radius:8px;line-height:1.8}.rowcard{border:1px solid #e1e8e3;border-radius:8px;padding:15px;margin-bottom:12px}.rowcard .grid{grid-template-columns:repeat(4,1fr);gap:12px}.line-actions{margin:12px 0}.auth{max-width:440px;margin:9vh auto;padding:34px;background:white;border:1px solid #e0e8e3;border-radius:16px}.auth .grid{grid-template-columns:1fr}.auth button{width:100%}.auth .brand{color:#14553f}dialog{border:0;border-radius:15px;box-shadow:0 25px 80px #183f3433;max-width:900px;width:calc(100% - 30px);max-height:90vh;padding:28px;color:#223d39}dialog::backdrop{background:#12352b66}dialog .formfooter{margin-top:22px;display:flex;justify-content:flex-end;gap:10px}.formerror{color:#b34b3d;font-size:13px;padding-top:12px}.detailmeta{display:flex;gap:15px;flex-wrap:wrap;font-size:13px;color:#6c8275}.detailstats{grid-template-columns:repeat(4,1fr)}.formula{border-left:3px solid #2b8a66;padding:15px;background:#eef5f0;line-height:1.8;font-size:13px;margin-bottom:20px}.ledgerGroup{margin-bottom:20px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.tabs button{background:#eef3ef;color:#506d5e}.tabs button.active{background:#1b7057;color:white}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#123f35;color:white;border-radius:9px;padding:13px 22px;display:none;z-index:999}.detailnote{font-size:13px;padding:13px;color:#637c6b}.back{margin-bottom:18px}.smalltext{font-size:12px}.section-title{margin:23px 0 14px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}details{margin-top:8px}pre{font-size:11px;white-space:pre-wrap;max-height:300px;overflow:auto}.notice{padding:15px;background:#fff7e8;color:#906d38;border-radius:8px;font-size:13px;margin-bottom:20px;line-height:1.8}@media(max-width:1000px){.main{padding:25px}.stats{grid-template-columns:repeat(2,1fr)}.rowcard .grid{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}@media(max-width:700px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:18px}.brand{font-size:20px}.nav{margin-top:14px;display:flex;overflow:auto;gap:4px}.nav button{white-space:nowrap;padding:10px}.usercard{display:none}.main{padding:20px 14px}.topbar{align-items:flex-start}h1{font-size:24px}.stat{padding:16px}.stat .value{font-size:22px}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.filters{flex-wrap:wrap}.filters select{width:46%}.auth{margin:5vh 15px}dialog{padding:20px}.panel{padding:16px}.detailstats{grid-template-columns:repeat(2,1fr)}}

.auth-footer{margin-top:20px}
.main,.panel,.stat{min-width:0}.filters input{min-width:0}.topbar{flex-wrap:wrap}.nav{max-width:100%}@media(max-width:420px){.stats,.rowcard .grid{grid-template-columns:1fr}.stat .value{font-size:25px}.topbar{gap:10px}.detailmeta{gap:8px}}
.sidebar{min-width:0}@media(max-width:700px){.layout{grid-template-columns:minmax(0,1fr)}.nav button{flex-shrink:0}}

@media(min-width:801px){.nav{overflow-y:auto;min-height:0;margin-bottom:18px;flex:1}.usercard{flex-shrink:0}.sidebar>.brand,.sidebar>.muted{flex-shrink:0}}
