/* Caisse owns layout; shared UI/KPI/table systems own geometry and colours. */
.cash-overlay{position:fixed;inset:0;z-index:11010;background:rgb(15 23 42 / .55);display:flex;align-items:center;justify-content:center;padding:12px;backdrop-filter:blur(3px)}
.cash-modal{--ns-control-font-weight:400;--ns-card-label-font-weight:400;width:min(1120px,100%);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;border-radius:var(--radius-card);overflow:hidden;background:var(--color-page-bg);color:var(--color-text-primary);box-shadow:var(--shadow-dropdown);border:1px solid var(--color-border)}
.cash-modal .cash-header{padding:var(--ui-toolbar-padding-y) var(--ui-card-padding);background:var(--color-primary);color:var(--color-text-on-primary);display:flex;align-items:center;justify-content:space-between;gap:8px}
.cash-header>div{display:flex;align-items:center;gap:8px;min-width:0}.cash-header h2{margin:0;font-size:var(--ns-card-title-font-size);color:inherit}.cash-header p{margin:4px 0 0;font-size:var(--ns-card-description-font-size);color:inherit}.cash-header button{color:inherit!important;background:transparent!important}
.cash-modal main{padding:var(--ui-card-padding);overflow:auto;min-height:0}.cash-modal footer{padding:var(--ui-toolbar-padding-y) var(--ui-card-padding);display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.cash-modal footer>div{display:flex;gap:8px}
.cash-modal button,.cash-finance button{display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0}.cash-modal svg,.cash-finance svg{flex-shrink:0}
.cash-search{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;align-items:end}.cash-field{display:flex;flex-direction:column;gap:4px;font-size:var(--ns-card-label-font-size);font-weight:400;min-width:0}.cash-field :is(input,select,textarea){min-width:0}
.cash-field input:placeholder-shown:not(:focus):not(:disabled),.cash-field textarea:placeholder-shown:not(:focus){background-color:var(--color-surface-muted)!important}
.cash-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px}.cash-standard-group{display:grid;align-content:start;gap:6px;min-width:0}.cash-fee-types,.cash-observation,.cash-full-row,.cash-step-error,.cash-purchase-fields{grid-column:1/-1}.cash-purchase-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.cash-step-error{margin:0;padding:8px 10px;border:1px solid color-mix(in srgb,var(--color-danger,#b42318) 35%,var(--color-border));border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-danger,#b42318) 7%,var(--color-surface));color:var(--color-danger,#b42318);font-size:var(--ns-card-description-font-size)}
.cash-panel,.cash-identity{padding:var(--ui-card-padding);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:10px;color:var(--color-text-primary);box-shadow:var(--shadow-card)}
.cash-panel h3,.cash-identity h3{margin:0 0 8px;font-size:var(--ns-card-title-font-size)}.cash-panel header,.cash-finance>header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.cash-panel header h3{margin:0}.cash-panel header label{font-size:var(--ns-card-label-font-size)}
.cash-selected{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;margin-bottom:10px;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-card);font-size:var(--ns-card-value-font-size)}
.cash-identity{display:flex;align-items:center;gap:10px}.cash-identity>div{flex:1;min-width:0}.cash-identity img{width:58px;height:66px;object-fit:cover;border-radius:var(--radius-control)}.cash-identity span{display:block;font-size:var(--ns-card-meta-font-size);color:var(--color-text-secondary);line-height:1.5}
.cash-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:8px;margin-bottom:10px}.cash-kpi{--ns-kpi-surface:color-mix(in srgb,var(--ns-kpi-tone) 6%,var(--color-surface));height:100%;min-width:0}.cash-kpi .ns-kpi-card__value{white-space:nowrap}
.cash-credit,.cash-hint{font-size:var(--ns-card-description-font-size);color:var(--color-text-secondary);margin:8px 0}
.cash-table-shell{max-width:100%;min-width:0}.cash-table-shell .ui-table-scroll{overflow-x:auto}.cash-table-shell table{width:100%;table-layout:fixed;min-width:0}
.cash-table-shell small{display:block;color:var(--color-text-secondary)}.cash-table-shell tr[data-student-choice]{cursor:pointer}.cash-table-shell tr[data-student-choice]:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}
.cash-allocation th:first-child{width:6%}.cash-allocation th:nth-child(2){width:28%}
.cash-allocation td:nth-child(2){white-space:normal!important;overflow-wrap:anywhere;word-break:normal;text-overflow:clip;overflow:visible}
.cash-table-shell tr.selected>td,.cash-table-shell tr:has(input:checked)>td{background:var(--color-selected-row)!important}.cash-table-shell tr:has(input:disabled){color:var(--color-text-muted)}
.cash-students td,.cash-history td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cash-students th:first-child{width:8%}.cash-students th:nth-child(4){width:28%}.cash-history th:nth-child(2){width:18%}.cash-history th:last-child{width:calc(2 * var(--ns-control-height) + 2 * var(--ns-table-cell-padding-inline) + 7px)}.cash-history .row-actions{display:flex;gap:7px}
.cash-plan{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px;padding:8px;background:var(--color-surface-muted);border-radius:var(--radius-card)}.cash-plan div{display:flex;flex-direction:column;gap:4px;font-size:var(--ns-card-value-font-size)}.cash-finance{color:var(--color-text-primary)}
.cash-results-area{height:calc(var(--ns-table-head-height) + 10 * var(--ns-table-row-height) + 2px)}.cash-students .ui-table-scroll{overflow:visible}.cash-results-area .empty-state{height:100%;box-sizing:border-box}
.cash-modal .table-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:var(--ns-card-meta-font-size)}
.cash-lookup td:first-child strong,.cash-lookup td:first-child small{display:block}.cash-lookup td:last-child{width:110px;white-space:nowrap}.cash-modal .table-pagination>div{display:flex;align-items:center;gap:8px}
@media(max-width:900px){.cash-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.cash-fields,.cash-search{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-plan{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-identity,.cash-selected{flex-wrap:wrap}}
@media(max-width:680px){.cash-students td{white-space:normal}.cash-results-area{height:auto;min-height:calc(var(--ns-table-head-height) + 10 * var(--ns-table-row-height))}.cash-table-shell:not(.cash-students) table{min-width:680px}}
@media(max-width:480px){.cash-overlay{padding:8px}.cash-modal{max-height:calc(100dvh - 16px)}.cash-search,.cash-fields{grid-template-columns:1fr}.cash-purchase-fields{grid-template-columns:1fr}.cash-modal footer{flex-wrap:wrap}.cash-modal footer>div{flex:1;justify-content:flex-end}.cash-panel header,.cash-finance>header{flex-wrap:wrap}.cash-selected strong{overflow-wrap:anywhere}}
.cash-fee-types{margin:0;padding:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);min-width:0}.cash-fee-types[aria-invalid="true"]{border-color:var(--color-danger,#b42318)}.cash-fee-types legend{padding:0 4px;font-weight:600}.cash-fee-types legend small{font-weight:400;color:var(--color-text-muted);margin-left:6px}.cash-fee-type-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;max-height:156px;overflow:auto;margin-top:6px}.cash-fee-type-list label{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--radius-control);background:var(--color-surface-muted);min-width:0}.cash-fee-type-list label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cash-field-error{color:var(--color-danger,#b42318);margin-top:5px}
@media(max-width:480px){.cash-fee-types{grid-column:auto}.cash-fee-type-list{grid-template-columns:1fr}}
