:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#17202a;background:#eef3f2;line-height:1.5}
*{box-sizing:border-box}body{margin:0}main{max-width:1080px;margin:0 auto;padding:48px 24px 70px}
header{display:flex;gap:20px;align-items:center;margin-bottom:30px}.mark{width:68px;height:68px;border-radius:18px;background:#087f5b;color:#fff;display:grid;place-items:center;font-size:34px;font-weight:800;box-shadow:0 12px 28px #087f5b33}
h1{margin:2px 0 4px;font-size:clamp(27px,4vw,40px);letter-spacing:-.03em}h2{margin:2px 0 0;font-size:20px}.eyebrow{margin:0;color:#087f5b;font-weight:800;font-size:12px;letter-spacing:.15em}.subtitle{margin:0;color:#5d6b68}
.card{background:#fff;border:1px solid #d8e3e0;border-radius:18px;padding:26px;box-shadow:0 12px 35px #183c3212;margin:18px 0}.steps{display:flex;align-items:center;gap:10px;margin-bottom:20px}.steps span{background:#dff3eb;color:#087f5b;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}
.input-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.filebox,.datebox{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px dashed #9ab8ae;border-radius:12px;background:#f9fbfa}.filebox{cursor:pointer;text-align:center}.filebox.drag{border-color:#087f5b;background:#edf8f3}.filebox span,.datebox span{font-weight:700}.filebox b,.datebox b{font-size:13px;color:#66736f;overflow-wrap:anywhere}.filebox input{width:100%}.datebox{border-style:solid;justify-content:center}.datebox input{width:100%;border:1px solid #b9cbc5;border-radius:9px;padding:11px 12px;background:#fff;color:#17202a;font:inherit}
button{margin-top:22px;width:100%;border:0;border-radius:10px;padding:14px 18px;background:#087f5b;color:#fff;font-size:15px;font-weight:800;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.privacy{text-align:center;color:#71807c;font-size:13px;margin:12px 0 0}
.export-actions{border-top:1px solid #d8e3e0;margin-top:26px;padding-top:22px}.export-actions button{margin:0;background:#174a3a}
.hidden{display:none}.ok,.error{padding:13px 15px;border-radius:10px;font-weight:700}.ok{padding:10px 12px;background:#e7f7ef;color:#096744;font-size:11.5px;line-height:1.35}.error{background:#fff0f0;color:#a42525}
.report-meta{display:inline-block;margin-left:6px;padding-left:8px;border-left:1px solid #9acdb8;color:#365a4f;font-weight:500}.report-meta b{color:#174a3a}
.project{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin:18px 0}.project h2{font-size:26px}.muted{color:#71807c;font-size:13px}
.headline{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 28px}.metric{border:1px solid #d8e3e0;border-radius:14px;padding:18px;background:#f9fbfa}.metric span{display:block;color:#60706b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.metric strong{display:block;margin-top:6px;font-size:clamp(20px,3vw,28px);font-variant-numeric:tabular-nums}.metric.income strong{color:#087f5b}.metric.balance.negative strong{color:#b42318}.metric.balance.positive strong{color:#087f5b}
.result-block{border-top:1px solid #d8e3e0;padding-top:24px;margin-top:24px}.section-title{display:flex;justify-content:space-between;align-items:end;gap:16px}.badge{background:#dff3eb;color:#087f5b;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}
.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;margin-top:16px;min-width:790px}th,td{text-align:left;padding:11px 12px;border-bottom:1px solid #e4ebe8;white-space:nowrap}th{color:#60706b;font-size:11px;text-transform:uppercase}td:nth-child(n+3),th:nth-child(n+3){text-align:right;font-variant-numeric:tabular-nums}td.description{white-space:normal;min-width:220px}.total td{font-weight:800;border-top:2px solid #aabbb5}.credit{color:#9b2c2c}.net{font-weight:700}.empty{text-align:center!important;color:#71807c;padding:25px}
.breakdown-row>td{padding:0 12px 14px;background:#fbfdfc;text-align:left!important}.breakdown{border:1px solid #dce7e3;border-radius:10px;background:#fff;overflow:hidden}.breakdown summary{padding:10px 13px;color:#087f5b;font-size:13px;font-weight:800;cursor:pointer;list-style-position:inside}.breakdown[open] summary{border-bottom:1px solid #e4ebe8;background:#f3faf7}.breakdown-wrap{overflow-x:auto;padding:0 12px 12px}.breakdown table{min-width:860px;margin:0}.breakdown th,.breakdown td{padding:9px 10px;font-size:12px}.breakdown th:nth-child(n),.breakdown td:nth-child(n){text-align:left}.breakdown th:nth-child(3),.breakdown th:nth-child(4),.breakdown th:nth-child(5),.breakdown th:nth-child(6),.breakdown td:nth-child(3),.breakdown td:nth-child(4),.breakdown td:nth-child(5),.breakdown td:nth-child(6){text-align:right}.breakdown td:last-child{white-space:normal;min-width:220px}.breakdown .subtotal td{font-weight:800;border-top:2px solid #aabbb5}.transaction-count{color:#71807c;font-weight:500}
.category-row td{padding:13px 12px 8px!important;background:#edf7f3;color:#174a3a!important;text-align:left!important;font-weight:800;border-top:2px solid #bdd8ce;white-space:normal}.category-row small{display:block;color:#60706b;font-weight:600;margin-top:2px}.vote-label{display:block;color:#60706b;font-size:11px;font-weight:600;white-space:normal;margin-top:2px}.income-category td{background:#f1f7f5}.income-table th:nth-child(4),.income-table td:nth-child(4){text-align:right}
.vote-select{display:flex;align-items:flex-start;gap:9px}.vote-select input{width:18px;height:18px;margin:1px 0 0;accent-color:#087f5b;flex:0 0 auto}.vote-select label{cursor:pointer;min-width:0}.vote-select label>b{color:#174a3a}
.account-block{margin:12px 0;border:1px solid #e1e9e6;border-radius:9px;overflow:hidden}.account-head{display:grid;grid-template-columns:minmax(260px,1fr) repeat(4,minmax(110px,auto));gap:10px;align-items:center;padding:10px 12px;background:#f7faf9;font-size:12px}.account-head span:nth-child(n+2){text-align:right;font-variant-numeric:tabular-nums}.account-head b{color:#174a3a}.transaction-table{padding:0 10px 10px;overflow-x:auto}.transaction-table table{min-width:860px}.no-transactions{padding:10px 12px;color:#71807c;font-size:12px}
.account-identity{display:flex;align-items:flex-start;gap:9px}.account-identity input{width:17px;height:17px;margin:1px 0 0;accent-color:#087f5b;flex:0 0 auto}.account-identity label{cursor:pointer;min-width:0}.selection-popup{position:fixed;z-index:50;top:18px;right:18px;width:min(360px,calc(100vw - 36px));border:1px solid #9bc8b7;border-radius:15px;background:#fff;box-shadow:0 18px 50px #183c3240;overflow:hidden}.selection-popup-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;background:#e7f7ef}.selection-popup-head span,.selected-total span{display:block;color:#087f5b;font-size:10px;font-weight:800;letter-spacing:.1em}.selection-popup-head strong{display:block;color:#174a3a}.selection-popup-head button{width:auto;margin:0;padding:7px 9px;background:#fff;color:#087f5b;border:1px solid #b8d9cc;font-size:11px}.selected-list{max-height:220px;overflow:auto;padding:7px 16px}.selected-item{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #e4ebe8;font-size:12px}.selected-item b:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}.selected-total{display:flex;justify-content:space-between;align-items:end;gap:12px;padding:14px 16px;background:#174a3a;color:#fff}.selected-total span{color:#bdebd9}.selected-total strong{font-size:21px;font-variant-numeric:tabular-nums}
details{margin-top:22px;color:#53635f}summary{cursor:pointer;font-weight:700}
@media(max-width:720px){main{padding:28px 15px}.card{padding:20px}header{align-items:flex-start}.mark{width:52px;height:52px}.headline{grid-template-columns:1fr}.input-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.filebox,.datebox{padding:14px 10px}.section-title{align-items:flex-start}.account-head{grid-template-columns:1fr 1fr}.account-head span:nth-child(n+2){text-align:left}.selection-popup{top:10px;right:10px;width:calc(100vw - 20px)}.report-meta{display:block;margin:6px 0 0;padding:6px 0 0;border-left:0;border-top:1px solid #9acdb8}}
