:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#18221d;background:#f2f5f2;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#153b2a;color:#eef7f1;padding:22px 14px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;padding:0 10px 24px;font-weight:600}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#e0b454;color:#153b2a}nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#d9e9df;padding:11px 13px;border-radius:9px;text-align:left;font:inherit;cursor:pointer}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.12);color:#fff}.nav-item.active{box-shadow:inset 3px 0 #e0b454}.local-note{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:16px 10px 0;color:#b7cdbf;font-size:12px}.workspace{min-width:0}.topbar{height:68px;background:#fff;border-bottom:1px solid #dce3de;display:flex;align-items:center;justify-content:space-between;padding:0 26px}.company-switcher{display:flex;align-items:center;gap:9px;font-size:13px;color:#5f7067}.company-switcher select{min-width:220px}.data-state{font-size:12px;color:#63766b;display:flex;align-items:center;gap:7px}.data-state span{width:8px;height:8px;border-radius:50%;background:#2da66f}main{padding:26px}.page{display:none}.page.active{display:block}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}h1{margin:0 0 5px;font-size:26px;font-weight:600;letter-spacing:-.02em}h2{margin:0;font-size:16px}p{margin:0;color:#687a70;font-size:13px}button,select,input{font:inherit}button{cursor:pointer}.primary,.panel button{border:1px solid #cad6ce;background:#fff;color:#223029;padding:9px 13px;border-radius:8px}.primary{background:#1c5d40;border-color:#1c5d40;color:#fff}.text-button{border:0!important;background:transparent!important;color:#266649!important;padding:5px!important}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.metrics article,.panel{background:#fff;border:1px solid #dce4de;border-radius:12px}.metrics article{padding:16px}.metrics span{display:block;color:#65766d;font-size:12px}.metrics strong{display:block;margin:10px 0 4px;font-size:24px;font-variant-numeric:tabular-nums}.metrics small{color:#73837a}.metrics .warning{color:#a96518}.two-column{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.panel{padding:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.badge{padding:4px 8px;border-radius:12px;background:#e8f3ec;color:#246c4b;font-size:12px}.start-list{list-style:none;padding:0;margin:0;display:grid;gap:14px;counter-reset:steps}.start-list li{display:grid;grid-template-columns:30px 1fr;gap:2px 10px;counter-increment:steps}.start-list li:before{content:counter(steps);grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#eaf2ed;color:#2b6b4d}.start-list span{font-size:12px;color:#718178}.company-summary,.company-list{display:grid;gap:10px}.company-card,.account-card{border-bottom:1px solid #e3e9e5;padding:10px 0}.company-card:last-child,.account-card:last-child{border-bottom:0}.company-card strong,.account-card strong{display:block;margin-bottom:5px}.company-card span,.account-card span{font-size:12px;color:#6f8077}.form-panel{margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid label,.stack-form label{display:grid;gap:6px;font-size:13px;color:#55675d}.form-grid input,.stack-form input,.stack-form select,.company-switcher select{border:1px solid #cbd6cf;background:#fff;border-radius:8px;padding:9px 10px;color:#18221d}.form-actions{grid-column:1/-1}.stack-form{display:grid;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid #e1e8e3}.hidden{display:none!important}.empty-state{min-height:260px;display:grid;place-content:center;justify-items:center;gap:14px;color:#66786e}#toast{position:fixed;right:22px;bottom:22px;max-width:360px;background:#173d2d;color:#fff;padding:11px 14px;border-radius:9px;box-shadow:0 12px 30px rgba(17,45,32,.22);opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:none}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{padding:12px}.brand{padding-bottom:12px}nav{grid-template-columns:repeat(4,1fr)}.nav-item{text-align:center;padding:10px 6px;font-size:12px}.local-note{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}}@media(max-width:520px){main{padding:17px}.topbar{padding:0 16px}.data-state{display:none}.company-switcher{width:100%;justify-content:space-between}.company-switcher select{min-width:0;max-width:220px}.metrics{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.page-heading{align-items:stretch;flex-direction:column}.page-heading>.primary{align-self:flex-start}}
.import-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:20px}.import-steps b{font-size:13px;font-weight:500;color:#7a8981;padding-bottom:9px;border-bottom:3px solid #e1e7e3}.import-steps .current{color:#245f44;border-color:#2f7957}.import-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.import-controls label{display:grid;gap:6px;color:#53645a;font-size:13px}.import-controls select,.import-controls input{border:1px solid #cbd6cf;background:#fff;border-radius:8px;padding:9px 10px}.import-hint{margin-top:12px}.import-metrics{grid-template-columns:repeat(3,1fr);margin-top:14px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:10px 8px;border-bottom:1px solid #e2e8e4;text-align:left;white-space:nowrap}.data-table th{color:#61736a;font-weight:600}.result-ready{color:#26704e}.result-duplicate{color:#7b6b3a}.result-error{color:#a24e38}
.bank-mapping-panel{margin-top:14px}.bank-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.bank-mapping-grid label,.bank-account-assignment label{display:grid;gap:5px;color:#53645a;font-size:13px}.bank-mapping-grid select,.bank-account-assignment select{border:1px solid #cbd6cf;background:#fff;border-radius:8px;padding:9px 10px;min-width:0}.bank-account-assignment{display:flex;align-items:end;gap:14px;margin-top:16px;flex-wrap:wrap}.bank-account-assignment label{min-width:280px}.bank-account-assignment span{align-self:center;color:#687a70;font-size:13px}@media(max-width:900px){.bank-mapping-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.bank-mapping-grid{grid-template-columns:1fr}}
.batch-panel{margin-top:14px}.list-toolbar{display:flex;gap:10px;margin-bottom:12px}.list-toolbar input,.list-toolbar select{border:1px solid #cbd6cf;background:#fff;border-radius:8px;padding:9px 10px}.list-toolbar input{min-width:280px}.data-table .number{text-align:right;font-variant-numeric:tabular-nums}.empty-row{text-align:center!important;color:#75867c;padding:28px!important}.status-ok,.status-warning,.status-muted,.status-partial{display:inline-flex;padding:3px 8px;border-radius:12px}.status-ok{background:#e7f3eb;color:#276c4c}.status-warning{background:#fff0d9;color:#996118}.status-partial{background:#e6f1ff;color:#2166a5}.status-muted{background:#eef1ef;color:#64756c}
.invoice-toolbar{align-items:flex-end;flex-wrap:wrap}.invoice-toolbar label{display:grid;gap:3px;color:#66766e;font-size:12px}.invoice-toolbar label select,.invoice-toolbar label input{min-width:145px;padding:7px 9px;color:#263b31}.invoice-toolbar .date-separator{align-self:center;color:#718078}.invoice-toolbar .text-button{align-self:center}
.bad-debt-panel{margin-top:16px}.bad-debt-panel .panel-heading p{margin-top:5px}.bad-debt-panel .badge{background:#fff0d9;color:#996118}
.bank-toolbar{align-items:flex-end;flex-wrap:wrap}.bank-toolbar .date-filter{display:flex;flex-direction:column;gap:3px;color:#66766e;font-size:12px}.bank-toolbar .date-filter input{min-width:145px;padding:7px 9px;color:#263b31}.bank-toolbar .date-separator{align-self:center;color:#718078}.bank-toolbar .text-button{align-self:center}
.help-tip{cursor:help;border-bottom:1px dotted #75867c}
.row-number{color:#718078;text-align:center!important;font-variant-numeric:tabular-nums}
.danger-link{border:0!important;background:transparent!important;color:#a33f32!important;padding:4px 2px!important}.danger-link:disabled{color:#98a39d!important;cursor:not-allowed}.status-cancelled{display:inline-flex;padding:3px 8px;border-radius:12px;background:#f0f1f0;color:#748078}
.reconcile-tabs{display:flex;gap:6px;margin-bottom:14px}.reconcile-tabs button{border:1px solid #cad6ce;background:#fff;padding:8px 16px;border-radius:8px;color:#52645a}.reconcile-tabs button.active{background:#1c5d40;border-color:#1c5d40;color:#fff}.reconciliation-list{display:grid;gap:12px}.reconcile-card{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(520px,1.3fr);gap:22px}.transaction-summary{display:grid;gap:16px;padding-right:20px;border-right:1px solid #e0e7e2}.transaction-summary span,.transaction-summary small{display:block;color:#708078;font-size:12px}.transaction-summary strong{display:block;font-size:23px;margin-top:5px}.transaction-summary b{display:block;margin-bottom:5px}.allocation-form{display:grid;grid-template-columns:1.5fr .7fr auto;align-items:end;gap:10px}.allocation-form label{display:grid;gap:5px;color:#5f7067;font-size:12px}.allocation-form select,.allocation-form input{border:1px solid #cbd6cf;border-radius:8px;padding:9px;background:#fff;min-width:0}.match-reason{grid-column:1/-1;color:#6f7f76;font-size:12px}.no-candidate{display:grid;place-items:center;color:#8a7762}@media(max-width:1000px){.reconcile-card{grid-template-columns:1fr}.transaction-summary{border-right:0;border-bottom:1px solid #e0e7e2;padding:0 0 15px}.allocation-form{grid-template-columns:1fr 1fr}.allocation-form .primary{grid-column:1/-1}}
.reconcile-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.reconcile-filter-group{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.reconcile-filter-group .reconcile-tabs{margin-bottom:14px}.reconcile-filter-group input{width:240px;border:1px solid #cad6ce;border-radius:8px;padding:9px 12px;background:#fff}.batch-actions{display:flex;align-items:center;gap:12px;color:#63746b;font-size:13px}.batch-actions label{display:flex;align-items:center;gap:6px}.batch-actions .primary:disabled{background:#aab6af;border-color:#aab6af;cursor:not-allowed}.reconcile-card{position:relative;padding-left:48px}.reconcile-select{position:absolute;left:17px;top:20px}.reconcile-select input,.batch-actions input{width:17px;height:17px;accent-color:#1c5d40}@media(max-width:900px){.reconcile-actions{display:block}.batch-actions{margin-bottom:14px;flex-wrap:wrap}.reconcile-filter-group input{width:100%}}
.reconcile-card.exact-invoice-match{border-color:#25a663;box-shadow:0 0 0 2px rgba(37,166,99,.18)}
.invoice-amount-pair{display:flex;gap:24px;margin-top:7px}.transaction-summary .invoice-amount-pair span{color:#708078}.transaction-summary .invoice-amount-pair strong{color:#14261d;font-size:20px;margin-top:2px}@media(max-width:600px){.invoice-amount-pair{flex-wrap:wrap;gap:10px 22px}}
.allocation-tools .add-draft-line:disabled{color:#87968e!important;cursor:not-allowed;opacity:.75}
.draft-panel{margin-top:14px}.draft-toolbar{align-items:flex-end;flex-wrap:wrap}.draft-toolbar label{display:grid;gap:3px;color:#66766e;font-size:12px}.draft-toolbar label input{min-width:145px;padding:7px 9px}.draft-summary{display:flex;justify-content:flex-end;gap:24px;padding:3px 8px 14px;color:#62736a;font-size:13px}.draft-summary strong{color:#1c5d40;font-size:16px}.form-grid select{border:1px solid #cbd6cf;background:#fff;border-radius:8px;padding:9px 10px;color:#18221d}
.allocation-history{margin-top:20px}
.allocation-history-heading{gap:16px;align-items:flex-end}.allocation-history-filters{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.allocation-history-filters label{display:flex;flex-direction:column;gap:3px;color:#66766e;font-size:12px}.allocation-history-filters input{min-width:145px;border:1px solid #cbd6cf;border-radius:8px;padding:7px 9px;color:#263b31;background:#fff}.allocation-history-filters>span{padding-bottom:8px;color:#718078}
.allocation-line{grid-template-columns:minmax(260px,1.5fr) minmax(120px,.55fr) minmax(110px,.45fr) 34px}
.data-table tfoot th{padding:12px 10px;border-top:2px solid #cfdad3;background:#f4f8f5;font-weight:600;color:#31483b}.data-table tfoot th:first-child{text-align:right}
.row-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}.danger-link{border:0!important;background:transparent!important;color:#a14338!important;padding:5px!important}
.audit-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.audit-actions label{display:flex;flex-direction:column;gap:3px;color:#66766e;font-size:12px}.audit-actions input,.audit-actions select{border:1px solid #cbd6cf;border-radius:8px;padding:7px 9px;background:#fff;color:#263b31}.audit-actions>span{padding-bottom:8px;color:#718078}
.bank-category-select{border:1px solid #cbd6cf;border-radius:7px;background:#fff;padding:5px 7px;color:#34483e}.bank-category-select:disabled{background:#f0f2f1;color:#8a9690}
.aging-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.aging-grid .panel-heading strong{font-size:20px}.aging-bars{display:grid;gap:14px}.aging-row>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:12px}.aging-row span{color:#66786e}.aging-row b{font-variant-numeric:tabular-nums}.aging-track{height:8px;background:#edf1ee;border-radius:5px;overflow:hidden}.aging-track i{display:block;height:100%;min-width:2px;background:#2e7655;border-radius:5px}.aging-grid article:nth-child(2) .aging-track i{background:#c58a37}.aging-details{margin-top:14px}.report-tabs{display:flex;gap:6px}.report-tabs button{padding:6px 11px}.report-tabs button.active{background:#1c5d40;color:#fff;border-color:#1c5d40}@media(max-width:900px){.aging-grid{grid-template-columns:1fr}}
.data-safety{margin-top:14px}.data-safety .panel-heading p{margin-top:5px}.data-safety-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.button-link{display:inline-flex;text-decoration:none;padding:9px 13px;border-radius:8px}.restore-picker{display:flex;align-items:center;gap:8px;color:#5f7067;font-size:13px}.restore-picker input{border:1px solid #cbd6cf;border-radius:8px;padding:7px;background:#fff}.danger-button{border:1px solid #b75547!important;color:#a13e32!important;background:#fff!important}.safety-note{margin-top:12px;color:#8a5e3c}
.report-heading-actions{display:flex;align-items:center;gap:10px}
.heading-actions{display:flex;align-items:center;gap:9px}.heading-actions>button:first-child{border:1px solid #cad6ce;background:#fff;color:#34483e;padding:9px 13px;border-radius:8px}.opening-form{margin-bottom:12px}.opening-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.opening-grid label{display:grid;gap:5px;color:#5f7067;font-size:12px}.opening-grid input,.opening-grid select{border:1px solid #cbd6cf;border-radius:8px;padding:9px;background:#fff;min-width:0}@media(max-width:1100px){.opening-grid{grid-template-columns:repeat(2,1fr)}}
.audit-panel{margin-top:14px}.audit-panel .panel-heading p{margin-top:5px}.audit-actions{display:flex;align-items:center;gap:10px}.audit-actions select{border:1px solid #cbd6cf;border-radius:8px;background:#fff;padding:7px 9px}.audit-detail{white-space:normal!important;min-width:260px}
.editable-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.editable-card>div{min-width:0}.inline-actions{display:flex;align-items:center;gap:8px}
.metric-link{cursor:pointer;transition:transform .15s,box-shadow .15s}.metric-link:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(25,63,45,.09)}
.allocation-form{display:block}.allocation-lines{display:grid;gap:8px}.allocation-line{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(130px,.7fr) 34px;align-items:end;gap:10px}.allocation-line label{display:grid;gap:5px;color:#5f7067;font-size:12px}.allocation-line select,.allocation-line input{border:1px solid #cbd6cf;border-radius:8px;padding:9px;background:#fff;min-width:0}.remove-allocation-line{height:38px;padding:0!important;color:#9b493d!important}.allocation-tools{display:flex;align-items:center;gap:10px;margin-top:5px}.allocation-tools span{color:#718078;font-size:12px}.allocation-form>.match-reason{margin:8px 0}.allocation-form>.confirm-allocation{width:100%}
.contacts-panel{margin-top:14px}.contacts-panel .panel-heading p{margin-top:5px}.contacts-panel form{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #e1e7e3}.contact-notes{grid-column:span 2}
.dialog-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:rgba(16,37,27,.42)}.dialog-card{width:min(430px,100%);background:#fff;border-radius:13px;padding:22px;box-shadow:0 22px 60px rgba(12,34,24,.25)}.dialog-card h2{margin-bottom:8px}.dialog-card p{margin-bottom:18px;line-height:1.6}.dialog-card label{display:grid;gap:7px;color:#55675d;font-size:13px}.dialog-card input{border:1px solid #cbd6cf;border-radius:8px;padding:10px;background:#fff;color:#18221d}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.dialog-actions button{border:1px solid #cad6ce;background:#fff;color:#223029;padding:9px 14px;border-radius:8px}
.batch-heading-actions{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.batch-heading-actions label{display:flex;flex-direction:column;gap:3px;color:#63746b;font-size:12px}.batch-heading-actions input,.batch-heading-actions select{border:1px solid #cbd6cf;background:#fff;border-radius:7px;padding:6px 9px;color:#26382f}.batch-heading-actions>span{padding-bottom:7px;color:#718078}
.allocation-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 38px!important;padding:10px;border:1px solid #e0e7e2;border-radius:10px;background:#f8faf9}.allocation-line>label:first-child{grid-column:1/-1}.allocation-line .allocation-amount,.allocation-line .allocation-difference{width:100%;font-variant-numeric:tabular-nums}.allocation-line .allocation-difference{background:#fffaf0;border-color:#dbc99e}.allocation-line .remove-allocation-line{grid-column:3;grid-row:2}.allocation-tools{padding:5px 3px 0;flex-wrap:wrap}
.allocation-line>label:nth-child(2){grid-column:1/3}.allocation-submit-row{display:grid;grid-template-columns:minmax(160px,.35fr) minmax(180px,.65fr) minmax(180px,.65fr);gap:10px;align-items:end;margin-top:10px}.allocation-submit-row label{display:grid;gap:5px;color:#5f7067;font-size:12px}.allocation-submit-row .allocation-difference{border:1px solid #dbc99e;border-radius:8px;padding:9px;background:#fffaf0;font-variant-numeric:tabular-nums}.allocation-submit-row button{width:100%;height:38px;border:1px solid #cad6ce;background:#fff;color:#223029;border-radius:8px}@media(max-width:1000px){.allocation-submit-row{grid-template-columns:1fr}}
.allocation-submit-row .allocation-difference{background:#fff;cursor:text}.allocation-submit-row .allocation-difference:focus{outline:2px solid rgba(28,93,64,.18);border-color:#1c5d40}
.allocation-submit-row button.primary{background:#1c5d40;border-color:#1c5d40;color:#fff}
.sidebar{position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}
@media(max-width:820px){.sidebar{position:static;height:auto;overflow:visible}}
.invoice-number-link{border:0;background:transparent;padding:0;color:#176342;text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit}.invoice-number-link:hover{color:#0d442c}.dialog-card.invoice-allocation-card{width:min(1400px,98vw);max-height:90vh;padding:26px 28px}.invoice-allocation-card .table-wrap{max-height:68vh}.invoice-allocation-card .data-table{min-width:1120px;font-size:13px}.invoice-allocation-card .data-table th,.invoice-allocation-card .data-table td{padding:12px 10px}.invoice-allocation-card .data-table th:nth-child(3),.invoice-allocation-card .data-table td:nth-child(3){white-space:normal;min-width:320px;line-height:1.5}
.danger-button{border:1px solid #b54b3d;background:#fff;color:#a33f32;padding:9px 14px;border-radius:8px}.danger-button:disabled{border-color:#cbd4cf;color:#98a39d;cursor:not-allowed}
.aging-detail-actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.aging-detail-actions>label{display:flex;flex-direction:column;gap:3px;color:#66766e;font-size:12px}.aging-detail-actions select{min-width:180px;border:1px solid #cbd6cf;border-radius:8px;padding:7px 9px;background:#fff;color:#263b31}
.dashboard-charts{display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:14px;margin-bottom:16px}.dashboard-chart{min-width:0}.dashboard-chart .panel-heading{align-items:flex-start}.dashboard-chart .panel-heading p{margin-top:4px}.dashboard-bar-list{display:grid;gap:22px;padding:5px 0 6px}.dashboard-bar-row>div:first-child{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:12px}.dashboard-bar-row span{color:#65766d}.dashboard-bar-row b{font-size:14px;font-variant-numeric:tabular-nums}.dashboard-bar-track{height:12px;border-radius:8px;background:#edf2ef;overflow:hidden}.dashboard-bar-track i{display:block;height:100%;min-width:2px;border-radius:8px;background:#2b7a55}.dashboard-bar-track i.payable{background:#d29a43}.dashboard-aging-stack{display:flex;height:18px;margin:7px 0 18px;border-radius:9px;overflow:hidden;background:#edf2ef}.dashboard-aging-stack i{display:block;height:100%;min-width:0}.dashboard-aging-stack i[data-index="0"],.dashboard-aging-legend span[data-index="0"]{background:#3a9368}.dashboard-aging-stack i[data-index="1"],.dashboard-aging-legend span[data-index="1"]{background:#e2b64f}.dashboard-aging-stack i[data-index="2"],.dashboard-aging-legend span[data-index="2"]{background:#df8d43}.dashboard-aging-stack i[data-index="3"],.dashboard-aging-legend span[data-index="3"]{background:#ce6450}.dashboard-aging-stack i[data-index="4"],.dashboard-aging-legend span[data-index="4"]{background:#9f4050}.dashboard-aging-legend{display:grid;gap:8px}.dashboard-aging-legend>div{display:grid;grid-template-columns:9px minmax(80px,1fr) auto;align-items:center;gap:7px;font-size:11px}.dashboard-aging-legend span{width:9px;height:9px;border-radius:3px}.dashboard-aging-legend em{color:#687a70;font-style:normal}.dashboard-aging-legend b{font-weight:600;font-variant-numeric:tabular-nums}@media(max-width:1150px){.dashboard-charts{grid-template-columns:1fr 1fr}.balance-chart{grid-column:1/-1}}@media(max-width:720px){.dashboard-charts{grid-template-columns:1fr}.balance-chart{grid-column:auto}}
.monthly-cashflow-panel{margin-bottom:16px}.annual-balance{text-align:right}.annual-balance span{display:block;color:#687a70;font-size:12px}.annual-balance strong{display:block;margin-top:4px;color:#1c6b48;font-size:22px;font-variant-numeric:tabular-nums}.annual-balance strong.negative{color:#b24b3d}.monthly-cashflow-layout{display:grid;grid-template-columns:minmax(430px,.9fr) minmax(650px,1.3fr);gap:24px;align-items:start}.cashflow-legend{display:flex;justify-content:flex-end;gap:18px;margin-bottom:8px;color:#65766d;font-size:12px}.cashflow-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px;vertical-align:-1px}.cashflow-legend .income:before{background:#2d8a60}.cashflow-legend .expense:before{background:#d69a42}.monthly-cashflow-chart{height:190px;display:grid;grid-template-columns:repeat(12,minmax(24px,1fr));align-items:end;gap:5px;padding:12px 8px 0;border-bottom:1px solid #dbe4de;background:linear-gradient(to top,transparent 32%,#edf2ef 33%,transparent 34%,transparent 65%,#edf2ef 66%,transparent 67%)}.cashflow-month{display:grid;grid-template-rows:150px 25px;align-items:end;min-width:0}.cashflow-bars{height:150px;display:flex;align-items:end;justify-content:center;gap:2px}.cashflow-bars i{display:block;width:min(13px,42%);min-height:2px;border-radius:4px 4px 0 0}.cashflow-bars .income{background:#2d8a60}.cashflow-bars .expense{background:#d69a42}.cashflow-month>span{text-align:center;color:#687a70;font-size:10px}.monthly-cashflow-table{max-height:290px}.cashflow-income{color:#226a49}.cashflow-expense{color:#9b651c}.positive-balance{color:#1c6b48;font-weight:600}.negative-balance{color:#b24b3d;font-weight:600}@media(max-width:1250px){.monthly-cashflow-layout{grid-template-columns:1fr}.monthly-cashflow-table{max-height:340px}}@media(max-width:650px){.monthly-cashflow-chart{min-width:560px}.monthly-cashflow-layout>div:first-child{overflow-x:auto}.annual-balance strong{font-size:18px}}
.cashflow-heading-actions{display:flex;align-items:flex-end;gap:20px}.cashflow-heading-actions>label{display:grid;gap:3px;color:#687a70;font-size:12px}.cashflow-heading-actions select{min-width:108px;border:1px solid #cbd6cf;border-radius:8px;background:#fff;padding:7px 9px;color:#263b31}@media(max-width:650px){.monthly-cashflow-panel>.panel-heading{align-items:flex-start;gap:12px}.cashflow-heading-actions{align-items:flex-start;gap:10px;flex-direction:column}.annual-balance{text-align:left}}
.monthly-cashflow-layout{grid-template-columns:1fr;gap:20px}.monthly-cashflow-chart{height:260px;grid-template-columns:repeat(12,minmax(42px,1fr));padding-top:18px}.cashflow-month{grid-template-rows:215px 27px}.cashflow-bars{height:215px;gap:5px}.cashflow-bars i{width:min(24px,38%)}.monthly-cashflow-table{max-height:none;overflow-y:visible}.monthly-cashflow-table .data-table th,.monthly-cashflow-table .data-table td{padding-top:9px;padding-bottom:9px}@media(max-width:650px){.monthly-cashflow-chart{min-width:720px}}
.monthly-achievement-panel{margin-bottom:16px}.achievement-head-metrics{display:flex;gap:32px;text-align:right}.achievement-head-metrics span{display:block;color:#687a70;font-size:12px}.achievement-head-metrics strong{display:block;margin-top:4px;font-size:20px;font-variant-numeric:tabular-nums}.achievement-legend{display:flex;justify-content:flex-end;gap:20px;margin:0 8px 4px;color:#65766d;font-size:12px}.achievement-legend span:before{content:"";display:inline-block;width:10px;height:10px;margin-right:5px;border-radius:3px;vertical-align:-1px}.achievement-legend .receivable:before{background:#347cbd}.achievement-legend .payable:before{background:#8a65b2}.monthly-achievement-chart{height:235px;display:grid;grid-template-columns:repeat(12,minmax(48px,1fr));align-items:end;gap:8px;padding:14px 10px 0;border-bottom:1px solid #dbe4de;background:linear-gradient(to top,transparent 32%,#edf2ef 33%,transparent 34%,transparent 65%,#edf2ef 66%,transparent 67%)}.achievement-month{display:grid;grid-template-rows:190px 27px;align-items:end;min-width:0}.achievement-bars{height:190px;display:flex;align-items:end;justify-content:center;gap:5px}.achievement-bars>div{height:190px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;min-width:0}.achievement-bars b{font-size:10px;color:#607269;font-weight:500;white-space:nowrap}.achievement-bars i{display:block;width:min(25px,90%);min-height:2px;border-radius:4px 4px 0 0}.achievement-bars i.receivable{background:#347cbd}.achievement-bars i.payable{background:#8a65b2}.achievement-month>span{text-align:center;color:#687a70;font-size:11px}@media(max-width:760px){.monthly-achievement-panel>.panel-heading{align-items:flex-start;gap:12px}.achievement-head-metrics{gap:12px;flex-direction:column;text-align:left}.monthly-achievement-panel{overflow-x:auto}.monthly-achievement-chart{min-width:760px}}
.monthly-achievement-chart{grid-template-columns:repeat(12,minmax(70px,1fr))}.achievement-month>span{font-size:10px;white-space:nowrap}@media(max-width:1050px){.monthly-achievement-chart{min-width:980px}.monthly-achievement-panel{overflow-x:auto}}
.achievement-period-controls{display:flex;align-items:center;justify-content:center;gap:8px;color:#52665b;font-size:12px;white-space:nowrap}.achievement-period-controls button{width:30px;height:30px;padding:0;border:1px solid #cad7d0;border-radius:7px;background:#fff;color:#176542;font-size:18px;line-height:1;cursor:pointer}.achievement-period-controls button:hover:not(:disabled){background:#e9f4ee;border-color:#78ae91}.achievement-period-controls button:disabled{color:#aebbb4;background:#f4f6f5;cursor:not-allowed}.achievement-period-controls span{min-width:150px;text-align:center}@media(max-width:760px){.achievement-period-controls{justify-content:flex-start}.achievement-period-controls span{min-width:130px}}
