.expense-legacy-hidden { display: none !important; }
#financePanel.expense-tab-open > .finance__toolbar { display: none !important; }
.expense-workspace { color: var(--ds-text); min-width: 0; }
.expense-workspace [hidden],.expense-editor [hidden] { display: none !important; }
.expense-workspace :is(button,input,select),.expense-editor :is(input,select,textarea,button) { font: inherit; }
.expense-workspace :is(button,select),.expense-editor button { min-height: 44px; }
.expense-workspace button:not(.btn),.expense-editor button:not(.btn):not(.icon-btn) { border: 1px solid var(--ds-border); background: var(--ds-surface); color: var(--ds-text); border-radius: 9px; padding: 9px 13px; cursor: pointer; }
.expense-workspace button:hover:not(:disabled) { background: var(--ds-elevated); }
.expense-workspace button:disabled,.expense-editor button:disabled { opacity: .45; cursor: not-allowed; }
.expense-workspace :is(input,select),.expense-editor :is(input:not([type=checkbox]),select,textarea) { min-height: 44px; min-width: 0; width: 100%; border: 1px solid var(--ds-border); border-radius: 9px; padding: 10px 12px; background: var(--ds-inset,var(--ds-surface)); color: var(--ds-text); color-scheme: dark; }
.expense-workspace :is(h2,h3,p),.expense-editor p { margin: 0; }
.expense-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 20px 0; }
.expense-heading h2 { font-size: 24px; letter-spacing: -.6px; }
.expense-heading p { margin-top: 5px; color: var(--ds-muted); font-size: 13px; }
.expense-heading-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.expense-calendar { display: flex; align-items: end; gap: 16px; padding-block: 8px 18px; border-bottom: 1px solid var(--ds-border); }
.expense-calendar label { display: grid; gap: 5px; color: var(--ds-muted); font-size: 12px; flex: 0 0 95px; }
#expenseMonths { display: flex; flex: 1; min-width: 0; gap: 3px; overflow-x: auto; scrollbar-width: thin; }
#expenseMonths button { border-color: transparent; background: transparent; flex: 1 0 44px; padding-inline: 8px; font-size: 13px; }
#expenseMonths button.is-active { background: var(--ds-soft); color: var(--ds-accent); }
.expense-context { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 18px 0 12px; }
.expense-context h3 { font-size: 17px; text-transform: capitalize; }
.expense-context > span { font-size: 12px; color: var(--ds-muted); }
.expense-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.expense-overview > summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; font-size: 12px; color: var(--ds-muted); cursor: pointer; margin-bottom: 8px; }
.expense-overview > summary strong { color: var(--ds-text); font-variant-numeric: tabular-nums; }
.expense-overview[open] > summary strong { visibility: hidden; }
.expense-workspace .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.expense-kpi { background: var(--ds-surface); border: 1px solid var(--ds-border); padding: 16px; border-radius: 12px; display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.expense-kpi > span { color: var(--ds-muted); font-size: 12px; }
.expense-kpi > strong { font-size: clamp(20px,2vw,27px); letter-spacing: -.7px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.expense-kpi > small { color: var(--ds-muted); font-size: 11px; line-height: 1.5; }
.expense-kpi.is-green > strong { color: #82b7cf; }
.expense-kpi.is-amber > strong { color: #edc073; }
.expense-tabs { display: flex; gap: 5px; margin: 20px 0; border-bottom: 1px solid var(--ds-border); padding-bottom: 8px; overflow-x: auto; }
.expense-tabs button { white-space: nowrap; background: transparent !important; border-color: transparent !important; color: var(--ds-muted) !important; }
.expense-tabs button.is-active { background: var(--ds-elevated) !important; color: var(--ds-text) !important; }
.expense-search { display: flex; flex-wrap: wrap; gap: 10px; align-items: start; }
.expense-search > input { flex: 1 1 300px; width: auto; }
.expense-filter-details { flex: 1 1 450px; border: 1px solid var(--ds-border); border-radius: 9px; }
.expense-filter-details summary { min-height: 44px; padding: 12px; cursor: pointer; color: var(--ds-muted); font-size: 13px; }
.expense-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 0 10px 10px; gap: 8px; }
.expense-note { color: var(--ds-muted); font-size: 12px; line-height: 1.65; }
#expenseResultCount { margin-block: 12px; }
.expense-table-scroll { overflow-x: auto; border: 1px solid var(--ds-border); border-radius: 12px; }
.expense-workspace table { border-collapse: collapse; width: 100%; font-size: 13px; }
.expense-workspace th { color: var(--ds-muted); text-align: left; font-size: 11px; font-weight: 550; padding: 14px 12px; white-space: nowrap; background: var(--ds-inset); }
.expense-workspace td { padding: 12px; border-top: 1px solid var(--ds-border); vertical-align: middle; }
.expense-workspace tbody tr { background: var(--ds-surface); }
.expense-workspace tbody tr:hover { background: var(--ds-elevated); }
.expense-description { min-width: 180px; max-width: 330px; }
.expense-description button { border: 0 !important; background: transparent !important; padding: 0 !important; text-align: left; min-height: 30px !important; font-weight: 600 !important; line-height: 1.45; }
.expense-description small { display: block; font-size: 11px; color: var(--ds-muted); margin-top: 3px; }
.expense-money { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 550; }
.expense-status { display: inline-flex; border-radius: 5px; padding: 4px 6px; font-size: 11px; background: var(--ds-elevated); color: var(--ds-muted); line-height: 1.4; }
.expense-status.is-paid { color: #82b7cf; background: #192f38; }
.expense-status.is-pending { color: #edc073; background: #302b20; }
.expense-pagination { display: flex; align-items: center; justify-content: end; gap: 14px; margin-top: 15px; color: var(--ds-muted); font-size: 12px; }
.expense-empty { text-align: center; padding: 26px 12px; color: var(--ds-muted); line-height: 1.6; }
.expense-analysis-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 16px; }
.expense-panel,.expense-import { background: var(--ds-surface); padding: 20px; border-radius: 14px; border: 1px solid var(--ds-border); min-width: 0; }
.expense-panel h3,.expense-import h3 { font-size: 16px; margin-bottom: 14px; }
.expense-panel-wide { grid-column: 1/-1; }
.expense-panel-heading { display: flex; gap: 12px; justify-content: space-between; align-items: start; }
.expense-panel-heading > strong { color: var(--ds-accent); font-size: 22px; white-space: nowrap; }
.expense-columns { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 8px; margin-top: 22px; }
.expense-columns button { display: flex; flex-direction: column; gap: 8px; align-items: center; min-width: 0; background: transparent !important; border: 0 !important; padding: 0 !important; font-size: 11px !important; color: var(--ds-muted) !important; }
.expense-columns button > strong { font-size: 10px; white-space: nowrap; }
.expense-column-area { height: 150px; display: flex; align-items: end; width: 100%; border-bottom: 1px solid var(--ds-border); }
.expense-column-area i { width: 100%; background: #61a1bd; border-radius: 5px 5px 0 0; min-width: 0; }
.expense-bar-row { margin: 17px 0; }
.expense-bar-row > div:first-child { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; font-size: 12px; }
.expense-bar-row strong { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 550; }
.expense-bar-track { height: 7px; border-radius: 4px; overflow: hidden; background: var(--ds-inset); }
.expense-bar-track i { display: block; height: 100%; border-radius: inherit; background: #76b6c9; }
.expense-bar-track i.forecast { background: #c9b381; }
.expense-insights { padding-left: 18px; font-size: 13px; line-height: 1.7; }
.expense-insights li { margin-bottom: 14px; color: var(--ds-muted); }
.expense-insights strong { color: var(--ds-text); }
.expense-settlement > strong { display: block; font-size: 36px; letter-spacing: -1px; color: var(--ds-accent); margin-bottom: 12px; }
.expense-settlement > button { margin-top: 16px; }
.expense-warning { padding: 12px; background: #302b20; border: 1px solid #625337; border-radius: 9px; color: #edc073; font-size: 13px; line-height: 1.6; margin-block: 10px !important; }
.expense-warning-text { color: #edc073; }
.expense-settlement-row,.expense-series { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 16px 0; border-bottom: 1px solid var(--ds-border); font-size: 13px; }
.expense-settlement-row small,.expense-series small,.expense-series span { display: block; color: var(--ds-muted); margin-top: 6px; line-height: 1.5; }
.expense-series > button { flex: 0 0 110px; }
.expense-import > p { margin-block: 12px; }
.expense-import td { white-space: nowrap; }
.expense-editor { width: min(700px,calc(100vw - 24px)) !important; }
.expense-editor form { display: contents; }
.expense-editor .dialog__content { overflow-y: auto; min-height: 0; }
.expense-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-block: 15px; }
.expense-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; font-size: 12px; color: var(--ds-muted); }
.expense-field-wide { grid-column: 1/-1; }
.expense-more { border-block: 1px solid var(--ds-border); margin: 16px 0; padding-block: 8px; }
.expense-more > summary,#expenseAudit > summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-size: 13px; }
.expense-checkbox { display: flex; gap: 10px; align-items: center; min-height: 44px; font-size: 12px; margin-top: 12px; }
.expense-checkbox input { width: 20px; height: 20px; }
#expenseSourceData { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 11px; line-height: 1.6; color: var(--ds-muted); }
#expenseAuditRows { font-size: 12px; line-height: 1.7; }
#expenseLoading { padding: 14px 0; color: var(--ds-muted); }
@media (max-width:1199px) {
 .expense-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .expense-main-table { overflow: visible; border: 0; }
 .expense-main-table table,.expense-main-table tbody { display: block; }
 .expense-main-table thead { display: none; }
 .expense-main-table tbody { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
 .expense-main-table tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 14px; border: 1px solid var(--ds-border); border-radius: 12px; }
 .expense-main-table td { display: flex; flex-direction: column; gap: 5px; padding: 9px 0; border: 0; min-width: 0; font-size: 12px; }
 .expense-main-table td[data-label]::before { content: attr(data-label); color: var(--ds-muted); font-size: 10px; font-weight: 400; }
 .expense-main-table .expense-description { grid-column: 1/-1; grid-row: 1; max-width: none; padding-top: 0; }
 .expense-main-table .expense-description button { min-height: 44px !important; }
 .expense-main-table .expense-status { align-self: start; }
 .expense-main-table .expense-actions { justify-content: end; }
 .expense-heading { align-items: start; }
 .expense-heading-actions { justify-content: end; }
}
@media (max-width:767px) {
 .expense-heading { flex-direction: column; margin-top: 14px; }
 .expense-heading h2 { font-size: 21px; }
 .expense-heading-actions { width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
 .expense-heading-actions button { font-size: 12px; padding-inline: 8px !important; }
 .expense-calendar { gap: 8px; }
 .expense-calendar label { flex-basis: 80px; }
 .expense-context > span { display: none; }
 .expense-kpis { gap: 8px; }
 .expense-kpi { padding: 12px; gap: 8px; }
 .expense-kpi > strong { font-size: 20px; }
 .expense-tabs { gap: 0; }
 .expense-tabs button { font-size: 12px; padding-inline: 10px !important; }
 .expense-search > input,.expense-filter-details { flex-basis: 100%; }
 .expense-main-table tbody { grid-template-columns: 1fr; }
 .expense-analysis-grid { grid-template-columns: 1fr; }
 .expense-panel,.expense-import { padding: 15px; }
 .expense-panel-heading { flex-direction: column; gap: 4px; }
 .expense-columns { gap: 6px; overflow-x: auto; grid-template-columns: repeat(12,44px); padding-bottom: 10px; }
 .expense-column-area { height: 120px; }
 .expense-form-grid { gap: 12px; }
 .expense-field-month,.expense-field-date,.expense-field-number:has(#ex_amount) { grid-column: 1/-1; }
 .expense-editor .dialog__footer { gap: 6px; }
 .expense-editor .dialog__footer .btn { padding-inline: 10px !important; font-size: 12px; }
 .expense-settlement-row,.expense-series { align-items: start; }
}
@media (max-width:359px) {
 .expense-form-grid,.expense-filters { grid-template-columns: 1fr; }
 .expense-heading-actions { grid-template-columns: 1fr 1fr; }

}

.expense-main-table .expense-paid-toggle { min-height: 44px; padding: 8px 10px; border: 1px solid transparent; font-size: 12px; font-weight: 600; white-space: nowrap; gap: 6px; align-items: center; cursor: pointer; }
.expense-main-table .expense-paid-toggle:hover { border-color: currentColor; }
.expense-main-table .expense-paid-toggle:disabled { opacity: .6; cursor: wait; }
.expense-main-table .expense-paid-toggle:focus-visible { outline: 2px solid var(--ds-accent, #0098db); outline-offset: 2px; }

.expense-bulk-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:12px 0; }
.expense-bulk-bar button { min-height:44px; }

.expense-actions .expense-delete { color: #edaaa4; margin-left: 6px; min-height:44px; }

#expenseDeleteDialog { width:min(520px, calc(100vw - 24px)); max-height:90dvh; padding:20px; }
#expenseDeleteDialog .expense-field { margin:16px 0; }
#expenseDeleteError { color:#f2a6a0; }

/* Deletion uses its own bounded form so global dialog spacing cannot stretch it. */
#expenseDeleteDialog { width: min(520px,calc(100vw - 24px)) !important; max-width:calc(100vw - 24px) !important; max-height:calc(100dvh - 24px) !important; }
#expenseDeleteDialog form { display:flex; flex-direction:column; min-height:0; max-height:inherit; margin:0; }
#expenseDeleteDialog .dialog__header { padding:20px 22px !important; flex:none; border-bottom:1px solid var(--ds-border); }
#expenseDeleteDialog h2 { margin:0; font-size:21px; line-height:1.3; }
#expenseDeleteDialog .dialog__body { padding:20px 22px !important; overflow-y:auto; min-height:0; font-size:14px; line-height:1.5; }
#expenseDeleteDialog .dialog__body > p { margin:0 0 12px; color:var(--ds-muted); }
#expenseDeleteDialog #expenseDeleteItem { color:var(--ds-text); font-weight:600; overflow-wrap:anywhere; }
#expenseDeleteDialog .expense-field { margin:16px 0 0; font-size:13px; }
#expenseDeleteDialog textarea { resize:vertical; min-height:92px; }
#expenseDeleteDialog input,#expenseDeleteDialog textarea { box-sizing:border-box; font-size:16px; }
#expenseDeleteDialog .dialog__footer { display:flex; justify-content:flex-end; gap:10px; padding:16px 22px !important; flex:none; margin:0; border-top:1px solid var(--ds-border); }
#expenseDeleteDialog #expenseDeleteSubmit { background:#963e3a; border-color:#b85b55; color:#fff; font-weight:600; }
#expenseDeleteDialog #expenseDeleteError:empty { display:none; }
#expenseDeleteDialog #expenseDeleteError { color:#f2a6a0; margin:12px 0 0; }
@media(max-width:480px) {
 #expenseDeleteDialog .dialog__header,#expenseDeleteDialog .dialog__body { padding:16px !important; }
 #expenseDeleteDialog .dialog__footer { padding:14px 16px !important; }
 #expenseDeleteDialog .dialog__footer button { flex:1; padding:10px 8px; font-size:13px; }
}
#expenseDeleteDialog { inset:12px !important; height:fit-content !important; min-height:0 !important; margin:auto !important; transform:none !important; }

#financePanel.income-tab-open > .finance__toolbar { display:none !important; }

:is(#incomeMonths,#summaryMonths) { display: flex; flex: 1; min-width: 0; gap: 3px; overflow-x: auto; scrollbar-width: thin; }
:is(#incomeMonths,#summaryMonths) button { border-color: transparent; background: transparent; flex: 1 0 44px; padding-inline: 8px; font-size: 13px; }
:is(#incomeMonths,#summaryMonths) button.is-active { background: var(--ds-soft); color: var(--ds-accent); }
#incomePeriodLabel { text-transform:capitalize; }
#financePanel.income-tab-open .finance__entries-head { margin-top:20px; padding:20px; border:1px solid var(--ds-border); border-radius:12px; background:var(--ds-surface); }

.expense-workspace .equipment-code { min-height:32px; padding:3px 7px !important; color:var(--ds-accent) !important; font-size:11px; }
#expenseEquipmentDialog { height:fit-content !important; max-height:85dvh !important; }

.expense-installment { display:grid; gap:5px; min-width:100px; max-width:145px; }
.expense-installment strong { font-size:14px; font-variant-numeric:tabular-nums; }
.expense-installment strong span { color:var(--ds-muted); font-weight:400; }
.expense-installment-label { font-size:11px; color:var(--ds-muted); }
.expense-installment.is-last .expense-installment-label { color:#94c4d9; background:#1b313b; border-radius:5px; padding:3px 6px; width:fit-content; font-weight:600; }
.expense-installment-track { height:4px; border-radius:4px; overflow:hidden; background:var(--ds-border); display:block; }
.expense-installment-track i { display:block; height:100%; background:#8cabb9; }
.expense-installment.is-last .expense-installment-track i { background:#6cadca; }
.expense-date-unknown { color:var(--ds-muted); font-size:12px; }

.expense-quick-filters { display:flex; gap:6px; overflow-x:auto; margin-top:12px; }
.expense-quick-filters button { white-space:nowrap; border-color:transparent !important; background:transparent !important; }
.expense-quick-filters button[aria-pressed=true] { background:var(--ds-elevated) !important; color:var(--ds-accent) !important; }
.expense-quick-filters span { font-size:11px; color:var(--ds-muted); margin-left:4px; }
.expense-installment.is-last .expense-installment-label { background:#1b3248; color:#9dcdf4; }
.expense-installment.is-last .expense-installment-track i { background:#80b7e3; }
.expense-row-menu { position:relative; }
.expense-row-menu summary { cursor:pointer; list-style:none; width:44px; height:44px; display:grid; place-items:center; font-size:24px; border-radius:8px; }
.expense-row-menu summary::-webkit-details-marker { display:none; }
.expense-row-menu summary:hover { background:var(--ds-elevated); }
.expense-row-menu > div { position:absolute; right:0; top:0; transform:translateX(-44px); display:grid; min-width:110px; z-index:5; padding:6px; border:1px solid var(--ds-border); border-radius:10px; background:var(--ds-surface); box-shadow:0 8px 24px #0006; }
.expense-row-menu .expense-delete { margin:0; }
@media(min-width:1200px) {
 .expense-main-table { max-height:65vh; overflow:auto; }
 .expense-main-table thead th { position:sticky; top:0; z-index:3; background:var(--ds-surface); }
 .expense-main-table td { padding-top:10px; padding-bottom:10px; }
 .expense-main-table .expense-money,.expense-main-table th:nth-child(3),.expense-main-table th:nth-child(6) { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
 .expense-main-table .expense-description small { margin-top:2px; }
 .expense-main-table .expense-installment { gap:3px; }
}
.expense-main-table tr:nth-last-child(-n+2) .expense-row-menu > div { top:auto; bottom:0; }

.expense-selection { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:12px; margin:10px 0; border-radius:10px; background:var(--ds-elevated); }
.expense-workspace input.expense-select-row { width:18px; min-height:18px; height:18px; margin:0 8px 0 0; accent-color:#67abc9; vertical-align:middle; }
.expense-month-row th { text-transform:capitalize; color:var(--ds-accent); }
@media(min-width:1200px) { .expense-main-table thead tr:nth-child(2) th { top:42px; } .expense-main-table .expense-month-row th { height:42px; box-sizing:border-box; } }
@media(max-width:1199px) { .expense-main-table .expense-month-row { display:block; } .expense-main-table .expense-month-row th { display:block; padding:12px; } }

.expense-payment-icon { width:19px; height:19px; flex-shrink:0; }
.expense-payment-label { display:inline-flex; align-items:center; gap:6px; }
.expense-payment-choices { display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.expense-editor .expense-payment-choices button { display:flex; align-items:center; gap:8px; padding:9px; font-size:12px; }
.expense-editor .expense-payment-choices button[aria-pressed=true] { background:var(--ds-soft); border-color:var(--ds-accent); color:var(--ds-accent); }

.expense-workspace .expense-method-missing { display:flex; align-items:center; gap:5px; padding:4px 0 !important; min-height:36px; border:0 !important; background:transparent !important; color:var(--ds-muted) !important; font-size:11px; text-align:left; }

#expenseMonths [data-exp-annual] { flex:0 0 auto; padding-inline:12px; }
#expenseAnnualNote { margin:12px 0; }
#expenseEditor .dialog__footer { display:flex !important; align-items:center; gap:12px !important; padding:18px 22px !important; }
#expenseEditor #expenseArchive { margin-right:auto !important; }
#expenseEditor .dialog__footer button { margin-left:0 !important; flex-shrink:0; }
@media(max-width:600px) {
 #expenseEditor .dialog__footer { display:grid !important; grid-template-columns:1fr 1fr; gap:10px !important; padding:16px !important; }
 #expenseEditor #expenseArchive { grid-column:1/-1; justify-self:start; margin:0 0 2px !important; }
 #expenseEditor .dialog__footer button { width:100%; min-height:44px; }
 #expenseEditor #expenseArchive { width:auto; }
 #expenseEditor #expenseSave { padding-inline:10px !important; }
}
@media(max-width:600px) { #expenseEditor .expense-field:has(#ex_payment_method) { grid-column:1/-1; } }

.expense-context { padding-block:20px; }
.expense-context h3 { font-size:24px; letter-spacing:-.025em; }
.expense-kpi { border-color:transparent; }
.expense-main-table tbody td { border-bottom-color:#ffffff0b; }
.expense-month-group td { padding:0 !important; }
.expense-workspace .expense-month-group button { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; border:0; border-radius:0; padding:14px 16px; background:var(--ds-elevated); text-align:left; }
.expense-month-group button > span { text-transform:capitalize; font-weight:600; color:var(--ds-text); }
.expense-month-group small { color:var(--ds-muted); font-weight:400; }
.expense-mobile-details { display:none; }
@media(max-width:1199px) {
 .expense-main-table .expense-month-group { grid-column:1/-1; display:block; border:0; padding:0; }
 .expense-main-table .expense-month-group td { display:block; }
 .expense-main-table td[data-label="Data da compra"],.expense-main-table td[data-label="Quem"],.expense-main-table td[data-label="Parte / sócio"] { display:none; }
 .expense-main-table td[data-label="Valor"] { grid-column:1/-1; font-size:20px; font-weight:650; padding:4px 0 12px; }
 .expense-main-table td[data-label="Valor"]::before { display:none; }
 .expense-main-table .expense-actions { grid-column:1/-1; display:flex; flex-direction:row-reverse; align-items:start; justify-content:space-between; border-top:1px solid #ffffff0c; margin-top:8px; padding-bottom:0; }
 .expense-mobile-details { display:block; flex:1; }
 .expense-mobile-details summary { cursor:pointer; min-height:44px; display:flex; align-items:center; color:var(--ds-muted); }
 .expense-mobile-details dl { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:4px 0 12px; font-size:12px; }
 .expense-mobile-details dt { color:var(--ds-muted); }.expense-mobile-details dd { margin:0; text-align:right; }
 .expense-month-group button { flex-wrap:wrap; }
}

/* Compact toolbar: expanded filters stay in flow, including on narrow screens. */
.expense-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:start; }
.expense-search > input { grid-column:1; width:100%; }
.expense-filter-details { display:contents; }
.expense-filter-details > summary { grid-column:2; grid-row:1; border:1px solid var(--ds-border); border-radius:9px; padding:11px 16px; box-sizing:border-box; color:var(--ds-text); }
.expense-filter-details[open] > summary { background:var(--ds-elevated); color:var(--ds-accent); }
.expense-filter-details > .expense-filters { grid-column:1/-1; padding:12px; border:1px solid var(--ds-border); border-radius:10px; background:var(--ds-surface); grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.expense-filter-details:not([open]) > .expense-filters { display:none; }
#expenseClear { grid-column:1/-1; justify-self:start; }
#expenseActiveFilters:empty { display:none; }
.expense-quick-filters { margin-top:10px; }
.expense-bulk-bar { margin:10px 0 14px; }
.expense-workspace .expense-main-table .expense-paid-toggle.is-paid { background:#82b7cf12; color:#94c3d8; border-color:transparent; font-weight:500; }
.expense-workspace .expense-main-table .expense-paid-toggle.is-paid:hover { background:#82b7cf24; border-color:#82b7cf55; }
.expense-workspace .expense-main-table .expense-paid-toggle.is-pending { background:#edc07314; color:#edc073; border-color:#edc07340; }
.expense-workspace .expense-main-table .expense-paid-toggle.is-pending:hover { background:#edc07326; border-color:#edc07388; }
.expense-installment > small { color:var(--ds-muted); margin-top:3px; }
.expense-installment-track { height:3px; }
@media(max-width:767px) {
 .expense-filter-details > .expense-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .expense-filter-details > summary { padding-inline:12px; }
}
@media(max-width:359px) { .expense-filter-details > .expense-filters { grid-template-columns:1fr; } }

/* Keep the period and totals together above the scrolling ledger. */
.expense-bulk-bar { padding:16px 0 14px; margin:8px 0 0; gap:16px; }
.expense-list-summary { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; }
.expense-list-summary h4 { margin:0; font-size:15px; font-weight:600; text-transform:capitalize; }
.expense-list-summary #expenseResultCount { margin:0; font-variant-numeric:tabular-nums; }
.expense-main-table td[data-label="Data da compra"],.expense-main-table td[data-label="Quem"],.expense-main-table td[data-label="Parte / sócio"] { color:var(--ds-muted); font-size:12px; }
.expense-main-table td[data-label="Valor"] { font-weight:650; }
.expense-main-table .expense-row-unpaid > td:first-child { box-shadow:inset 3px 0 #edc073; }
@media(min-width:1200px) {
 .expense-main-table thead tr:first-child th { top:0; }
 .expense-main-table tbody td { padding-top:8px; padding-bottom:8px; }
 .expense-main-table .expense-description button { min-height:28px !important; }
 .expense-main-table .expense-description .equipment-code { min-height:24px !important; }
 .expense-main-table .expense-installment { gap:3px; }
}
@media(max-width:767px) {
 .expense-bulk-bar { align-items:stretch; gap:12px; padding-top:14px; }
 .expense-list-summary { width:100%; flex-direction:column; gap:5px; }
 #expensePayAll { width:100%; }
}
@media(max-width:1199px) {
 .expense-main-table .expense-row-unpaid { border-left:3px solid #edc073; }
 .expense-main-table .expense-row-unpaid > td:first-child { box-shadow:none; }
}

/* Equipment detail has a bounded header and an independently scrolling history. */
#expenseEquipmentDialog { width:min(680px,calc(100vw - 24px)) !important; max-height:calc(100dvh - 32px) !important; padding:0 !important; overflow:hidden; }
#expenseEquipmentDialog .equipment-header { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:22px 24px !important; }
#expenseEquipmentDialog .equipment-identity { background:var(--ds-soft); color:var(--ds-accent); border-radius:6px; padding:4px 8px; font-size:12px; font-weight:650; letter-spacing:.04em; }
#expenseEquipmentDialog h3 { margin:0; font-size:22px; line-height:1.3; letter-spacing:-.025em; overflow-wrap:anywhere; }
#expenseEquipmentDialog .equipment-header p { margin:0; color:var(--ds-muted); font-size:12px; }
#expenseEquipmentDialog .equipment-content { padding:20px 24px !important; }
.equipment-overview { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px; border-radius:12px; background:var(--ds-inset); }
.equipment-overview > div { display:flex; flex-direction:column; gap:6px; }
.equipment-overview span { font-size:12px; color:var(--ds-muted); }
.equipment-overview strong { font-size:28px; line-height:1.2; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.equipment-overview .equipment-count { text-align:right; }
.equipment-overview .equipment-count strong { font-size:22px; }
#expenseEquipmentDialog .equipment-explainer { margin:12px 0 24px; color:var(--ds-muted); font-size:12px; line-height:1.6; }
.equipment-history-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:8px; }
.equipment-history-heading h4 { margin:0; font-size:14px; }.equipment-history-heading > span { font-size:11px; color:var(--ds-muted); }
.equipment-history { list-style:none; padding:0; margin:0; }
.equipment-history li { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--ds-border); }
.equipment-history li:last-child { border-bottom:0; }
.equipment-history li > div { display:grid; gap:4px; min-width:0; }
.equipment-history time { font-size:12px; color:var(--ds-accent); text-transform:capitalize; }
.equipment-history li span { font-size:13px; overflow-wrap:anywhere; }
.equipment-history small { color:var(--ds-muted); font-size:11px; }
.equipment-history li > strong { font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; }
#expenseEquipmentDialog .dialog__footer { padding:14px 24px !important; margin:0; flex:none; }
@media(max-width:480px) {
 #expenseEquipmentDialog .equipment-header { padding:18px !important; }
 #expenseEquipmentDialog .equipment-content { padding:16px 18px !important; }
 #expenseEquipmentDialog h3 { font-size:20px; }
 .equipment-overview { padding:14px; gap:12px; }
 .equipment-overview strong { font-size:24px; }
 .equipment-history-heading { flex-wrap:wrap; gap:4px; }
 .equipment-history li { gap:12px; }
 #expenseEquipmentDialog .dialog__footer { padding:12px 18px !important; }
}

.expense-row-menu > div { padding:10px; gap:8px; min-width:148px; border-radius:12px; transform:translateX(-50px); box-shadow:0 12px 30px #0005; }
.expense-workspace .expense-row-menu > div > button { padding:10px 16px; min-height:44px; text-align:left; border-radius:8px; }
.expense-workspace .expense-row-menu > div > .expense-delete { color:#efa6a0; border-color:#efa6a026; background:#efa6a009; }
.expense-workspace .expense-row-menu > div > .expense-delete:hover { background:#efa6a01c; border-color:#efa6a055; }

/* Reserve a consistent inset for select arrows in finance forms and filters. */
.expense-workspace select,.expense-editor select {
 appearance:none; -webkit-appearance:none;
 padding-right:44px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b7c7cf' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
 background-repeat:no-repeat; background-position:right 16px center; background-size:16px;
}
@media(forced-colors:active) { .expense-workspace select,.expense-editor select { appearance:auto; background-image:none; } }
#expenseEquipmentDialog { inset:0 !important; margin:auto !important; transform:none !important; }
#expenseEquipmentDialog .equipment-content { display:block !important; }

.expense-new-category summary { min-height:32px; padding:7px 0; cursor:pointer; color:var(--ds-muted); font-size:12px; }
.expense-new-category > div { display:flex; gap:8px; margin-top:6px; }
.expense-new-category > div input { flex:1; min-width:0; }
.expense-new-category > span { font-size:12px; color:#edc073; }

.expense-payment-title { margin:28px 0 8px; }
.expense-payment-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:20px 0; }
.expense-payment-options .expense-panel { border:1px solid var(--ds-border); border-radius:24px; padding:24px; display:flex; flex-direction:column; gap:16px; min-width:0; }
.expense-payment-math { display:grid; gap:16px; }
.expense-payment-math > div { display:grid; grid-template-columns:1fr auto; gap:6px 12px; }
.expense-payment-math small { grid-column:1/-1; color:var(--ds-muted); }
.expense-payment-math p { font-size:13px; }
.expense-payment-options h4 { margin:8px 0 0; font-size:15px; }
.expense-payment-options .expense-note { line-height:1.6; }
.expense-payment-options button { margin-top:auto; white-space:normal; }
#expenseCompanyTotal { font-size:clamp(26px,2.3vw,38px); font-weight:500; color:var(--ds-accent); }
@media(max-width:1000px) { .expense-payment-options { grid-template-columns:1fr; } }

.expense-kpi.expense-kpi-classification strong { font-size: clamp(20px, 2vw, 28px); line-height: 1.3; white-space: normal; overflow-wrap: anywhere; }

.expense-kpis .expense-kpi-action { text-align: left; cursor: pointer; width: 100%; font: inherit; color: inherit; }
.expense-kpis .expense-kpi-action:hover { border-color: var(--muted, #9ba79e); }
.expense-kpis .expense-kpi-action:focus-visible { outline: 2px solid #0098db; outline-offset: 3px; }
.expense-detail-value { display: block; font-size: 32px; margin-bottom: 24px; }
.expense-detail-note { line-height: 1.65; white-space: pre-wrap; }
