/* Scoped compact bank workspace: keep the portal shell unchanged. */
#portal-workspace .bank-page{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1d2630;padding:20px 22px;background:#f5f6f8;border-radius:18px}
.bank-page .bank-heading{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:0 0 16px}
#portal-workspace .bank-page h1{font-size:26px;line-height:1.2;letter-spacing:-.7px;margin:0;text-transform:none;font-weight:650}
.bank-page .bank-toolbar{display:flex;flex-flow:row wrap;gap:8px;align-items:end;margin:0}
.bank-page .bank-tabs{padding:4px;background:#e8ebef;border-radius:12px;gap:3px}
#portal-workspace .bank-page button.portal-action{height:36px;min-height:36px;padding:0 13px;border:1px solid #d8dde4;border-radius:9px;background:#fff;color:#354151;font:500 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 1px 2px #14243708;white-space:nowrap;transition:background .15s,box-shadow .15s}
#portal-workspace .bank-page button.portal-action:hover{background:#edf1f6}
#portal-workspace .bank-page .bank-tabs button{border-color:transparent;background:transparent;box-shadow:none;height:34px;min-height:34px;display:flex;align-items:center}
#portal-workspace .bank-page .bank-tabs button.is-active{background:#fff;color:#17202c;box-shadow:0 2px 5px #17202c18}
#portal-workspace .bank-page button.bank-primary{background:#2563eb;color:#fff;border-color:#2563eb}
#portal-workspace .bank-page button.bank-primary:hover{background:#1d4ed8}
#portal-workspace .bank-page button:disabled{opacity:.45;cursor:wait}
.bank-page .bank-symbol{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;color:white;margin-right:6px;font:700 12px sans-serif}.bank-symbol.kaspi{background:#ef4238}.bank-symbol.halyk{background:#00856a}
.bank-page .bank-filters{padding:12px;background:white;border:1px solid #e1e5eb;border-radius:13px;gap:8px 10px}
.bank-page .bank-toolbar label{display:flex;flex-direction:column;gap:5px;font:500 11px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#6a7483;margin:0}
#portal-workspace .bank-page .bank-toolbar input,#portal-workspace .bank-page .bank-toolbar select{height:36px;min-height:36px;padding:0 10px;border:1px solid #dce1e8;border-radius:8px;background:#f9fafb;color:#202b38;font:400 13px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:none;max-width:210px;width:180px;margin:0}
#portal-workspace .bank-page .bank-toolbar input::placeholder{color:#98a0ac}
#portal-workspace .bank-page .portal-date-control{display:flex;gap:0;width:150px}
#portal-workspace .bank-page .portal-date-control input{width:115px;min-width:0;border-radius:8px 0 0 8px;border-right:0}
#portal-workspace .bank-page .portal-calendar-button{height:36px;width:35px;min-width:35px;padding:8px;border:1px solid #dce1e8;border-left:0;border-radius:0 8px 8px 0;background:#f9fafb;color:#697586}
.bank-page .bank-search{gap:8px;flex:1;justify-content:flex-end}
.bank-page .bank-status{font-size:12px;color:#748091;margin:10px 2px;min-height:16px}
.bank-page .bank-scroll{overflow:auto;max-height:calc(100vh - 335px);min-height:120px;border:1px solid #e1e5eb;border-radius:12px;background:white;margin-bottom:10px}
#portal-workspace .bank-page .portal-table{font:400 13px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#253140;border-collapse:separate;border-spacing:0;width:100%}
#portal-workspace .bank-page .portal-table th{position:sticky;top:0;background:#f0f3f7;color:#697586;font-size:11px;font-weight:600;padding:10px 12px;white-space:nowrap;border-bottom:1px solid #e1e5eb;z-index:1}
#portal-workspace .bank-page .portal-table td{padding:9px 12px;border-bottom:1px solid #edf0f4;min-width:85px;vertical-align:top}
.bank-page .bank-scroll td:last-child{min-width:300px}.bank-page .bank-scroll td.bank-money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
#portal-workspace .bank-page .portal-table tbody tr:hover{background:#f4f7fc}
.bank-page .bank-balance{display:flex;flex-direction:column;gap:4px;padding:11px 16px;border-radius:12px;background:#fff;box-shadow:0 2px 5px #00000005;border:1px solid #e1e5eb;color:#253140;margin-top:10px;font-size:13px}.bank-balance small{font-size:10px;color:#748091}.bank-stale{color:#c33b3b;font-size:11px}
.bank-context{position:fixed;z-index:10000;background:#fff;border:1px solid #dce1e8;padding:6px;border-radius:10px;box-shadow:0 8px 24px #0002}.bank-context .portal-action{background:#fff;color:#263443;border:0;border-radius:6px;font:14px sans-serif}
#portal-workspace .bank-page :is(button,input,select):focus-visible{outline:2px solid #3b82f6;outline-offset:2px}
@media(max-width:1100px){.bank-page .bank-search{justify-content:flex-start;flex-basis:100%}.bank-page .bank-scroll{max-height:55vh}}
@media(max-width:600px){#portal-workspace .bank-page{padding:12px}.bank-page .bank-heading{gap:10px}.bank-page .bank-search{flex-wrap:wrap}#portal-workspace .bank-page .bank-toolbar input,#portal-workspace .bank-page .bank-toolbar select{max-width:155px}.bank-page .bank-tabs{flex-wrap:wrap}}

/* Fill the actual workspace instead of estimating table height from viewport. */
#portal-workspace:has(> .bank-page){display:flex;flex-direction:column;overflow:hidden;min-height:0;padding:12px;box-sizing:border-box}
#portal-workspace > .bank-page{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:none;box-sizing:border-box;overflow:hidden;margin:0;padding:14px 16px}
#portal-workspace .bank-page .bank-heading{flex:0 0 auto;max-height:28%;overflow:auto;margin-bottom:10px;gap:10px 16px}
#portal-workspace .bank-page .bank-balances{margin-left:auto;justify-content:flex-end;align-items:center;gap:6px}
#portal-workspace .bank-page .bank-balances .bank-balance{margin:0;padding:8px 12px;gap:3px;box-shadow:none;font-size:12px}
#portal-workspace .bank-page .bank-balances p{font-size:12px;margin:0;color:#748091}
#portal-workspace .bank-page .bank-filters{flex:0 0 auto;max-height:35%;overflow:auto;box-sizing:border-box}
#portal-workspace .bank-page .bank-status{flex:0 0 auto;margin:7px 2px}
#portal-workspace .bank-page .bank-scroll{flex:1 1 0;min-height:0;max-height:none;overflow:auto;margin-bottom:6px;overscroll-behavior:contain}
#portal-workspace .bank-page > .portal-action{flex:0 0 auto;align-self:center}
@media(max-width:700px){#portal-workspace .bank-page .bank-balances{flex-basis:100%;justify-content:flex-end}#portal-workspace > .bank-page{padding:10px}}
.bank-logo{width:28px;height:28px;object-fit:contain;vertical-align:middle;margin-right:8px;border-radius:6px;background:white}
.bank-page[data-bank="halyk"] .bank-scroll th:first-child,.bank-page[data-bank="halyk"] .bank-scroll td:first-child{border-left:4px solid #15956c}
.bank-page[data-bank="kaspi"] .bank-scroll th:first-child,.bank-page[data-bank="kaspi"] .bank-scroll td:first-child{border-left:4px solid #f44336}
#portal-workspace>.bank-balance-dashboard{overflow:auto;display:block}
.bank-summary td small{display:block;margin-top:4px;font-size:11px}.bank-summary .bank-money{text-align:right;white-space:nowrap}
.bank-free-total{margin:16px 0 6px;padding:16px 20px;background:#fff;border:1px solid #dbe3e9;border-radius:14px;font-size:20px;font-weight:700;color:#17352a}
.bank-chart-note{font-size:12px;color:#607080;margin:8px 0 14px}.bank-periods{margin:14px 0}.bank-page .bank-periods .is-active{background:#15956c!important;color:white!important}
.bank-chart{background:white;border:1px solid #dbe3e9;border-radius:16px;padding:14px 18px;margin:12px 0;color:#203247}.bank-chart h2{font-size:16px;margin:0 0 8px}.bank-chart svg{display:block;width:100%;min-height:190px}
.bank-cashflow-controls{align-items:flex-end;margin:16px 0}.bank-cashflow-controls label{display:flex;flex-direction:column;gap:6px}.bank-page .bank-cashflow-controls input{background:#fff;color:#203247;color-scheme:light;padding:9px 12px;border:1px solid #bbc9cb;border-radius:6px;min-width:170px}.bank-cashflow-table{overflow:auto;max-height:45vh}.bank-cashflow-table tfoot{font-weight:bold;background:#e2ebe0}.bank-cashflow-table thead th{position:sticky;top:0;background:#e2ebe0}
.bank-turnover-filters{align-items:flex-end}.bank-turnover-filters label{display:flex;flex-direction:column;gap:5px}.bank-turnover-filters select{max-width:400px;background:white;color:#203247}.bank-turnover-filters .bank-toggle.is-active{background:#15956c!important;color:white!important}.bank-turnover-table tfoot{position:sticky;bottom:0;background:#e2ebe0;font-weight:bold}.bank-turnover-table .bank-money{text-align:right;white-space:nowrap}
.bank-page .bank-party-input{width:320px;max-width:70vw;background:#fff;color:#203247;border:1px solid #bbc9cb;border-radius:6px;padding:10px 30px 10px 12px;background-image:linear-gradient(45deg,transparent 50%,#526273 50%),linear-gradient(135deg,#526273 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}.bank-party-list{position:fixed;z-index:100000;overflow:auto;background:white;color:#203247;border:1px solid #9baeb4;border-radius:6px;box-shadow:0 6px 18px #0003;font:14px Arial,sans-serif;box-sizing:border-box}.bank-party-option,.bank-party-empty{padding:10px 12px;overflow-wrap:anywhere}.bank-party-option{cursor:pointer}.bank-party-option:hover,.bank-party-option.is-active{background:#d7eee5;color:#153b2e}.bank-party-empty{color:#677680}
.bank-payment-content{display:flex;flex-direction:column;flex:1;min-height:0;gap:10px}
.bank-payment-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;flex:none;padding:12px 2px 3px}
.bank-payment-metric{border:1px solid #dce3e7;border-radius:20px;background:linear-gradient(150deg,#fff,#f5f7f9);box-shadow:0 5px 18px #182b4310;padding:18px 16px;color:#213243;min-width:0}
.bank-payment-metric-title{display:flex;align-items:center;gap:6px;font-size:13px;min-height:30px}
.bank-payment-metric strong{display:block;font-size:clamp(15px,1.35vw,24px);font-variant-numeric:tabular-nums;margin:12px 0 6px;overflow-wrap:anywhere}
.bank-payment-metric small{display:block;font-size:11px;color:#687988}.bank-payment-metric-icon{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e6eef8;font-size:20px}.bank-payment-metric.is-negative strong{color:#bc3030}
#portal-workspace .bank-page tr.is-selected{background:#d3eadf}
.bank-payment-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.bank-payment-fields label{display:flex;flex-direction:column;gap:7px;min-width:0}.bank-payment-fields :is(input,select,textarea){width:100%;box-sizing:border-box}.bank-payment-wide{grid-column:1/-1}.bank-payment-fields small{font-size:12px}
.bank-payment-party{display:grid;grid-template-columns:minmax(100px,1fr) 3fr;gap:8px 20px}.bank-payment-party dd{margin:0;overflow-wrap:anywhere}.bank-payment-error{color:#d33}
@media(max-width:1100px){.bank-payment-summary{grid-template-columns:repeat(3,minmax(0,1fr));max-height:32vh;overflow:auto}.bank-payment-metric{padding:12px}}
@media(max-width:600px){.bank-payment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bank-payment-fields{grid-template-columns:1fr}}
#portal-workspace .bank-page tr.bank-register-paid>td{background:#dff4df!important;color:#173b25}
#portal-workspace .bank-page tr.bank-register-paid.is-selected{outline:2px solid #15956c;outline-offset:-2px}

#portal-workspace .bank-expenses-page{gap:8px}
.bank-expenses-filters{align-items:center;overflow:visible!important;max-height:none!important;position:relative;z-index:4}
.bank-expense-picker{position:relative;min-width:min(340px,70vw);max-width:min(560px,75vw);font-size:13px}
.bank-expense-picker>summary{height:36px;display:flex;align-items:center;box-sizing:border-box;padding:0 34px 0 11px;border:1px solid #dce1e8;border-radius:8px;background:#fff;color:#253140;cursor:pointer;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bank-expense-picker>summary::-webkit-details-marker{display:none}
.bank-expense-picker>summary:after{content:'▾';position:absolute;right:12px;color:#526273}
.bank-expense-picker[open]>summary:after{content:'▴'}
.bank-expense-picker-content{position:absolute;top:calc(100% + 5px);left:0;width:min(440px,85vw);padding:9px;background:#fff;border:1px solid #cfd7df;border-radius:10px;box-shadow:0 10px 30px #14243725;z-index:100001}
#portal-workspace .bank-page .bank-expense-picker-content>input[type=search]{width:100%;max-width:none;box-sizing:border-box;margin-bottom:7px}
.bank-expense-options{max-height:min(42vh,360px);overflow:auto;border-top:1px solid #edf0f4;padding-top:4px}
.bank-expense-option{display:flex;align-items:flex-start;gap:9px;padding:7px 5px;border-radius:6px;color:#253140;font-size:12px;line-height:1.35;cursor:pointer;overflow-wrap:anywhere}
.bank-expense-option:hover{background:#f1f5f9}
#portal-workspace .bank-page .bank-expense-option input[type=checkbox]{flex:0 0 16px;width:16px;min-width:16px;height:16px;min-height:16px;margin:0;accent-color:#15956c}
.bank-expense-option span{flex:1}
.bank-expense-years{padding:0 2px;flex:0 0 auto}
.bank-page .bank-expense-years .is-active{background:#15956c!important;border-color:#15956c!important;color:#fff!important}
.bank-expenses-page .bank-status{margin:2px;flex:0 0 auto}
.bank-expenses-results{display:flex;flex:1;flex-direction:column;gap:7px;min-height:0;overflow:auto;overscroll-behavior:contain}
.bank-expenses-table-wrap{flex:0 1 36vh!important;min-height:130px!important;max-height:36vh!important;margin:0!important}
.bank-expenses-table th:first-child,.bank-expenses-table td:first-child{min-width:150px}
.bank-expenses-table tfoot{position:sticky;bottom:0;background:#e2ebe0;font-weight:700}
.bank-expenses-table tfoot th{background:#e2ebe0!important}
.bank-expenses-results>.bank-chart-note{flex:0 0 auto;margin:0}
.bank-expense-chart{flex:0 0 auto;margin:0 0 8px;padding:13px 16px}
.bank-expense-chart-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px}
.bank-expense-chart-heading h2{margin:0}
.bank-expense-total{font-size:18px;color:#203247;font-variant-numeric:tabular-nums;white-space:nowrap}
.bank-expense-chart svg{height:330px;min-height:330px}
.bank-expense-legend{display:flex;justify-content:center;gap:22px;margin:0;color:#607080;font-size:12px}
.bank-expense-legend span:before{content:'';display:inline-block;width:12px;height:12px;margin-right:6px;border-radius:2px;background:#4778c7;vertical-align:-2px}
.bank-expense-legend .bank-expense-legend-trend:before{height:3px;border-radius:2px;background:#e25555;vertical-align:4px}
@media(max-width:700px){.bank-expense-picker{min-width:min(280px,65vw)}.bank-expenses-filters{align-items:stretch}.bank-expenses-filters .bank-expense-picker{flex:1}.bank-expense-chart-heading{align-items:flex-start;flex-direction:column}.bank-expense-total{font-size:15px}.bank-expenses-table-wrap{flex-basis:38vh!important;max-height:38vh!important}}
.bank-reconciliation{width:min(1100px,94vw)!important;max-width:1100px!important}
.bank-reconciliation-scroll{max-height:65vh;overflow:auto;margin:18px 0}
.bank-reconciliation table{width:100%;border-collapse:collapse}
.bank-reconciliation th,.bank-reconciliation td{vertical-align:top;padding:14px;text-align:left;border-bottom:1px solid #98b69f}
.bank-reconciliation td:first-child{width:25%;min-width:180px}
.bank-reconciliation-option{display:flex;gap:12px;padding:12px;margin:6px 0;border:1px solid #98b69f;border-radius:10px;cursor:pointer}
.bank-reconciliation-option input{width:18px;min-width:18px;height:18px;margin-top:3px}
.bank-reconciliation-option span>span,.bank-reconciliation-option small{display:block;margin-top:6px;overflow-wrap:anywhere}
.bank-reconciliation-option:has(input:checked){background:#d8f1df;color:#173b25}
