/* Composition only: all controls, cards, tables, KPIs, icons and colors are shared. */
.cf-workspace{display:grid;min-width:0;max-width:100%;gap:var(--ui-card-padding)}
.cf-workspace>*{min-width:0}
.cf-filters{display:block}
.cf-expense-modal,.cf-detail{display:flex;flex-direction:column}
.cf-form-grid.form-fields,.cf-filter-grid.form-fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-card-padding)}
.cf-form-grid :is(input,select,textarea){width:100%;min-width:0}
.cf-form-grid input[type=checkbox]{width:auto}
.cf-expense-modal .cf-form-grid h2,.cf-expense-modal h2{margin-bottom:var(--ui-toolbar-padding-y)}
.cf-expense-modal .card{min-width:0}
.cf-expense-modal .cf-form-grid:has([name=attachment]){grid-template-columns:2fr 1fr 2fr}
.cf-expense-modal>header .icon-button span{display:none}
.cf-filter-grid,.cf-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ui-card-padding)}
.cf-filters label,.cf-form-grid label{display:grid;gap:var(--ui-toolbar-padding-y);min-width:0}
.cf-filters footer,.cf-pagination{display:flex;justify-content:flex-end;align-items:center;gap:var(--ui-toolbar-padding-y);padding-top:var(--ui-card-padding)}
.cf-pagination>span{margin-right:auto}
.cf-register-header{display:flex;flex-wrap:wrap;align-items:end;gap:var(--ui-card-padding);margin-bottom:var(--ui-card-padding)}
.cf-register-header h2{margin-right:auto}
.cf-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ui-card-padding)}
/* Wide-screen preview: three narrower charts, with the cashier card below. */
@media(min-width:1500px){
 .cf-charts{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cf-charts .ns-chart-horizontal>div{grid-template-columns:minmax(0,1fr) auto;gap:6px 10px}
 .cf-charts .ns-chart-horizontal span{text-align:left}
 .cf-charts .ns-chart-horizontal b{grid-column:1/-1;grid-row:2}
 .cf-charts .ns-chart-horizontal strong{grid-column:2;grid-row:1}
 .cf-charts .ns-chart-doughnut{grid-template-columns:minmax(130px,1fr) minmax(120px,1fr);gap:12px}
}
.cf-bars,.cf-recent{list-style:none;padding:0;margin:0}
.cf-bars{max-height:240px;overflow:auto}
.cf-bars li{display:grid;gap:var(--ui-toolbar-padding-y);padding-block:var(--ui-toolbar-padding-y)}
.cf-bars progress{width:100%;accent-color:var(--color-primary)}
.cf-actions{display:flex;gap:var(--ui-toolbar-padding-y);white-space:nowrap}
.cf-actions .icon-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.cf-workspace .table-wrap{max-width:100%;overflow:auto}
.cf-workspace td{min-width:90px}
.cf-workspace th:last-child,.cf-workspace td:last-child{white-space:nowrap}
.cf-workspace .ns-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--ui-card-padding)}
.cf-expense-modal{width:min(1100px,100%)}
.cf-detail{width:min(600px,100%)}
.cf-category-modal{width:min(980px,100%)}
.cf-category-modal>header{padding:var(--ui-card-padding)}
.cf-category-add{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:end}
.cf-category-list{display:grid;gap:8px;margin-top:14px}
.cf-category-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto 38px 38px;gap:8px;align-items:center}
.cf-beneficiary-field{position:relative;display:grid;gap:4px}
.cf-beneficiary-results{position:absolute;z-index:8;top:100%;left:0;right:0;max-height:220px;overflow:auto;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:var(--shadow-md)}
.cf-beneficiary-results button{display:flex;width:100%;justify-content:space-between;gap:10px;padding:8px;border:0;background:transparent;text-align:left}
.cf-beneficiary-results button:hover,.cf-beneficiary-results button:focus{background:var(--color-surface-muted)}
@media(max-width:760px){.cf-category-add,.cf-category-row{grid-template-columns:1fr 1fr}.cf-category-row>input{grid-column:1/-1}}
.cf-expense-modal .communication-modal-body{display:grid;gap:var(--ui-card-padding)}
.cf-expense-modal>header,.cf-expense-modal>footer,.cf-detail>header,.cf-detail>footer{padding:var(--ui-card-padding);gap:var(--ui-toolbar-padding-y)}
.cf-expense-modal h2,.cf-detail h2,.cf-workspace h2{font-size:var(--ns-card-title-font-size)}
.cf-span-2{grid-column:span 2}
.cf-form-grid .cf-check{display:flex;align-items:center}
.cf-detail dl>div{display:flex;justify-content:space-between;gap:var(--ui-card-padding);padding-block:var(--ui-toolbar-padding-y);border-bottom:1px solid var(--color-border)}
.cf-detail dd{margin:0;text-align:right;overflow-wrap:anywhere}
.cf-workspace .card h2{margin-top:0}
.cf-primary-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:12px;align-items:end}
.cf-filter-actions{display:flex;gap:6px;align-items:center}
.cf-filter-actions .icon-button{width:38px;min-width:38px;padding-inline:8px}
.cf-filter-actions .icon-button span{display:none}
.cf-advanced,.cf-custom-dates{margin-top:12px}
.cf-custom-dates{display:flex;gap:12px}
.cf-primary-filters :is(select,input){width:100%;min-width:0}
@media(max-width:1100px){.cf-primary-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.cf-filter-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:600px){.cf-primary-filters{grid-template-columns:1fr}.cf-filter-actions{flex-wrap:wrap}}
@media(max-width:600px){.cf-expense-modal .cf-form-grid:has([name=attachment]){grid-template-columns:minmax(0,1fr)}}
@media(max-width:1000px){.cf-filter-grid,.cf-filter-grid.form-fields,.cf-form-grid,.cf-form-grid.form-fields,.cf-charts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cf-filter-grid,.cf-filter-grid.form-fields,.cf-form-grid,.cf-form-grid.form-fields,.cf-charts{grid-template-columns:minmax(0,1fr)}.cf-span-2{grid-column:auto}.cf-expense-modal>footer{flex-wrap:wrap}.cf-expense-modal>footer button{height:auto;min-height:var(--ns-control-height);white-space:normal}.cf-register-header label{width:100%}.cf-pagination{flex-wrap:wrap}}
