/* Finance uses the Dashboard palette, typography and theme settings. */
.finance-page {
  --finance-surface: #0d1829;
  --finance-inset: rgba(15, 23, 42, .65);
  --finance-control: rgba(15, 23, 42, .85);
  --finance-hover: rgba(96, 165, 250, .08);
  --finance-selected: rgba(96, 165, 250, .14);
  --finance-warning: #f8d27e;
  --finance-warning-bg: rgba(245, 158, 11, .08);
  --finance-radius: var(--radius-panel, 22px);
  --finance-button-radius: var(--radius-control, 999px);
  --finance-field-radius: var(--radius-control, 10px);
}
html[data-theme="light"] .finance-page {
  --finance-surface: var(--surface-raised);
  --finance-inset: var(--surface-secondary);
  --finance-control: var(--control-bg);
  --finance-hover: var(--state-hover);
  --finance-selected: var(--state-selected);
  --finance-warning: var(--status-warning);
  --finance-warning-bg: var(--status-warning-bg);
}
.finance-shell { max-width: 1440px; padding: 24px 24px 56px; }
.finance-shell p { line-height: 1.55; }
.finance-shell h1 { font-size: clamp(30px, 3.5vw, 44px); letter-spacing: -.04em; margin: 4px 0; }
.finance-shell h2 { font-size: 19px; letter-spacing: -.025em; margin: 0; }
.finance-shell h3 { font-size: 15px; margin: 0; }
.finance-shell a, dialog a { color: var(--blue); text-decoration: none; }
.finance-shell a:hover, dialog a:hover { text-decoration: underline; }
.finance-shell button, .finance-shell input, .finance-shell select,
dialog button, dialog input, dialog select {
  font: inherit; color: var(--text); background: var(--finance-control); border: 1px solid var(--panel-border);
  border-radius: var(--finance-field-radius); padding: 9px 12px; min-height: 38px; max-width: 100%;
}
.finance-shell button, dialog button { border-radius: var(--finance-button-radius); cursor: pointer; transition: background .15s, border-color .15s; }
.finance-shell button:hover:not(:disabled), dialog button:hover:not(:disabled) { border-color: var(--blue); background: var(--finance-hover); }
.finance-shell button:disabled, dialog button:disabled { opacity: .45; cursor: default; }
.finance-shell :focus-visible, dialog :focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.finance-shell input[type=checkbox], dialog input[type=checkbox] { flex: 0 0 auto; min-height: auto; accent-color: var(--blue); width: 17px; height: 17px; }
.finance-shell .primary, dialog .primary { background: var(--finance-selected); color: var(--blue); border-color: var(--blue); font-weight: 700; }
html[data-theme="light"] :is(.finance-shell, dialog) button.primary { background: var(--action); color: var(--on-action); }
html[data-theme="light"] :is(.finance-shell, dialog) button.primary:hover:not(:disabled) { background: var(--action-hover); }
.finance-shell .quiet, dialog .quiet { background: transparent; }
.product-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.finance-page #session-toolbar .product-nav { margin: 0; padding: 0; max-width: 100%; }
.product-nav a { display: inline-flex; align-items: center; min-height: 46px; box-sizing: border-box; color: var(--blue); font-size: 14px; font-weight: 600; text-decoration: none; border: 1px solid var(--blue); border-radius: var(--finance-button-radius); padding: 10px 14px; }
.product-nav a:hover { background: var(--finance-hover); }
.product-nav a[aria-current] { background: var(--finance-selected); border-color: var(--panel-border); color: var(--blue); }
.finance-header { align-items: center; padding: 18px 22px; margin-bottom: 18px; gap: 20px; }
.finance-header .eyebrow { font-size: 12px; letter-spacing: .02em; margin: 0 0 6px; }
.finance-header .muted { font-size: 13px; margin: 6px 0 0; }
.month-control { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; max-width: 620px; }
.month-control button { font-size: 12px; }
.month-control select { font-size: 14px; font-weight: 700; min-width: 175px; }
#previous-month, #next-month { width: 38px; padding: 0; font-size: 20px; }
.badge { display: inline-flex; align-items: center; width: fit-content; padding: 5px 9px; border-radius: var(--finance-button-radius); font-size: 11px; line-height: 1.4; white-space: nowrap; background: var(--finance-warning-bg); color: var(--finance-warning); }
.badge.good { background: var(--status-success-bg, #22c55e16); color: var(--green); }
.badge.neutral { background: var(--finance-inset); color: var(--muted); }
.workspace-tabs { display: flex; gap: 6px; margin-bottom: 16px; overflow-x: auto; padding: 3px; }
.workspace-tabs button { flex-shrink: 0; background: transparent; border-color: transparent; padding: 9px 16px; color: var(--muted); font-size: 14px; }
.workspace-tabs button[aria-current=page] { border-color: var(--panel-border); color: var(--blue); background: var(--finance-selected); font-weight: 700; }
.finance-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 0 0 18px; padding: 14px 16px; background: var(--panel); border: 1px solid var(--panel-border); border-radius: var(--finance-radius); }
.finance-filters label { display: grid; gap: 5px; font-size: 11px; color: var(--muted); }
/* Native selects otherwise size the whole bar from their longest option. */
.finance-filters > label { flex: 0 1 170px; width: 170px; min-width: 0; }
.finance-filters > label:has(> #owner) { flex-basis: 180px; width: 180px; }
.finance-filters > label:has(> #tag) { flex-basis: 150px; width: 150px; }
.finance-filters select { font-size: 13px; min-width: 0; width: 100%; }
.finance-filters > .machine-picker { flex: 0 1 200px; width: 200px; min-width: 0; }
.finance-filters > .machine-picker > button { width: 100%; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.finance-filters > label > select, .finance-filters > button, .finance-filters > .machine-picker > button { height: 40px; min-height: 40px; }
.finance-filters > button { flex: 0 0 auto; }
/* Keep the combined-owner scope visible, including during filter reloads. */
.finance-filters label:has(> #owner:not(:disabled) > option[value=""]:checked) { color: var(--finance-warning); }
.finance-filters #owner:not(:disabled):has(> option[value=""]:checked) {
  color: var(--finance-warning);
  border-color: var(--finance-warning);
  background: var(--finance-warning-bg);
  box-shadow: inset 0 0 0 1px var(--finance-warning);
}
.finance-filters #owner option { color: var(--text); background: var(--finance-surface); }

.finance-filters > span { margin-left: auto; align-self: end; display: flex; align-items: center; min-height: 40px; font-size: 11px; }
.finance-filters > button { font-size: 12px; }
.machine-picker { position: relative; }
.machine-picker > button { min-width: 200px; text-align: left; font-size: 13px; }
.picker-menu { position: absolute; top: calc(100% + 8px); left: 0; width: min(330px, calc(100vw - 64px)); z-index: 30; padding: 12px; background: var(--finance-surface); border: 1px solid var(--panel-border); box-shadow: var(--shadow); border-radius: 16px; }
.picker-menu > input { width: 100%; }
.picker-actions { display: flex; justify-content: space-between; margin: 8px 0; }
.picker-actions button { border: 0; padding: 4px 8px; min-height: 28px; color: var(--blue); font-size: 12px; }
.picker-loading { display: flex; align-items: center; gap: 8px; margin: 8px 0; font-size: 12px; color: var(--muted); }
.picker-loading[hidden] { display: none; }
.machine-picker.selection-loading > button { border-color: var(--blue); }
.picker-options { max-height: 300px; overflow: auto; }
.picker-options label, .machine-choice { display: flex !important; align-items: center; gap: 10px !important; padding: 9px 4px; font-size: 13px !important; color: var(--text) !important; }
.picker-options label > span { min-width: 0; overflow-wrap: anywhere; }
.machine-choice small { margin-left: auto; color: var(--muted); }
.panel-finance { min-width: 0; background: var(--panel); border: 1px solid var(--panel-border); border-radius: var(--finance-radius); padding: 22px; margin-bottom: 18px; box-shadow: var(--shadow); }
.panel-finance .panel-finance { box-shadow: none; }
.section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.section-heading > div { min-width: 0; }
.section-heading > div > p { font-size: 12px; color: var(--muted); margin-top: 5px; max-width: 680px; }
.section-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.section-actions button { font-size: 12px; }
.notice, .error-banner, .feedback { padding: 12px 16px; border-radius: 12px; margin-bottom: 16px !important; font-size: 13px; overflow-wrap: anywhere; }
.notice { background: var(--finance-warning-bg); border: 1px solid var(--panel-border); color: var(--finance-warning); }
.error-banner { background: var(--status-danger-bg, #ef444415); color: var(--red); border: 1px solid var(--red); }
.feedback { background: var(--status-success-bg, #22c55e12); color: var(--green); }
.readiness { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 16px; border: 1px solid var(--panel-border); border-radius: 12px; margin: 8px 0 16px; background: var(--panel); }
.readiness > div:first-child { flex: 1; min-width: 180px; }
.readiness p { font-size: 12px; color: var(--muted); margin-top: 4px; }
.checklist { display: flex; flex-wrap: wrap; gap: 8px; }
.checklist button { font-size: 12px; padding: 7px 10px; min-height: 32px; color: var(--finance-warning); }
.checklist .done { color: var(--green); }
.checklist .optional { color: var(--muted); }
.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0 0 18px; }
.overview-kpis { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.kpi { container-type: inline-size; min-width: 0; padding: 20px; border: 1px solid var(--panel-border); background: var(--panel); border-radius: var(--finance-radius); box-shadow: var(--shadow); }
.kpi > span { font-size: 11px; color: var(--muted); display: block; letter-spacing: .035em; text-transform: uppercase; }
.kpi strong { display: block; font-size: clamp(16px, 12cqi, 30px); letter-spacing: -.04em; margin: 10px 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.kpi small { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; }
.kpi.profit { background: var(--finance-selected); }
.kpi.profit strong { color: var(--blue); }
.positive { color: var(--green); }
.negative { color: var(--red); }
.split-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px; }
.finance-scroll { overflow: auto; max-width: 100%; min-width: 0; scrollbar-width: thin; }
.finance-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 13px; font-variant-numeric: tabular-nums; }
.finance-table th { font-size: 11px; color: var(--muted); font-weight: 500; background: var(--finance-inset); letter-spacing: .02em; }
.finance-table td, .finance-table th { text-align: right; padding: 12px; border-bottom: 1px solid var(--panel-border); white-space: nowrap; }
.finance-table td:first-child, .finance-table th:first-child { text-align: left; }
.finance-table tr:last-child td { border-bottom: 0; }
.finance-table tbody tr[data-href] { cursor: pointer; }
@media(hover:hover) and (pointer:fine){.finance-table tbody tr:hover { background: var(--finance-hover); }}
.finance-table td small { display: block; font-size: 11px; color: var(--muted); margin-top: 5px; white-space: normal; }
.finance-table button { font-size: 12px; min-height: 30px; padding: 5px 9px; }
.finance-table th button { background: transparent; border-color: transparent; color: inherit; border-radius: 6px; }
.finance-table th[aria-sort=ascending] button, .finance-table th[aria-sort=descending] button { color: var(--blue); }
.finance-result-toggles { display: grid; gap: 10px; }
.empty { padding: 32px 16px; text-align: center; color: var(--muted); line-height: 1.7; }
.empty strong { display: block; font-size: 17px; color: var(--text); margin-bottom: 8px; }
.empty button { display: block; margin: 18px auto 0; }
.reconciliation { font-size: 12px; color: var(--muted); display: flex; flex-wrap: wrap; gap: 12px; padding: 12px 0 0; }
.metric-line { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--panel-border); font-size: 13px; }
.metric-line:last-child { border-bottom: 0; }
.metric-line span { color: var(--muted); }
.metric-line strong { text-align: right; font-variant-numeric: tabular-nums; }
.economic-final-result { align-items: baseline; padding-block: 14px; font-size: 16px; font-weight: 700; }
.economic-final-result > span { color: var(--text); }
.progress-track { height: 7px; border-radius: 10px; background: var(--finance-selected); overflow: hidden; margin: 15px 0 8px; }
.progress-track > div { height: 100%; background: var(--blue); border-radius: 10px; }
.rack-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.rack-card { min-width: 0; padding: 18px; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.rack-card .section-heading { margin-bottom: 10px; }
.rack-members { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; min-height: 28px; }
.chip { font-size: 11px; padding: 5px 8px; border-radius: 7px; background: var(--finance-selected); color: var(--blue); overflow-wrap: anywhere; }
.rack-card .section-actions { margin-top: 14px; }
.rack-card button { font-size: 12px; }
.rack-overview { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; font-size: 13px; }
.rack-history { border-top: 1px solid var(--panel-border); padding-top: 8px; }
.membership-list { margin-top: 8px; }
.membership-row { border-top: 1px solid var(--panel-border); padding: 12px 0; font-size: 12px; }
.membership-row > strong { display: block; overflow-wrap: anywhere; }
.membership-row .section-actions { margin-top: 8px; gap: 6px; }
.membership-row .section-actions button { font-size: 11px; padding: 5px 8px; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.settings-grid .section-actions { margin-top: 16px; }
.finance-shell .help, dialog .help { font-size: 12px; color: var(--muted); line-height: 1.6; margin: 10px 0; }
.finance-shell details { margin-top: 12px; }
.finance-shell summary, dialog summary { font-size: 13px; color: var(--muted); cursor: pointer; padding: 8px 0; }
.finance-shell summary:hover, dialog summary:hover { color: var(--text); }
.finance-secondary { margin: 12px 0; }
.finance-secondary > summary { padding: 8px 0; }
.profile-meta { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0 20px; }
.breadcrumb { display: block; margin: 0 0 16px; font-size: 13px; }
.cost-categories { display: flex; flex-wrap: wrap; gap: 18px; margin: 12px 0 20px; }
.cost-categories label { display: flex; gap: 7px; align-items: center; }
.panel-finance > label { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 18px; font-size: 13px; }
.owner-control { white-space: normal; text-align: left; min-width: 160px; }
.revenue-components, .invoice-compact-header { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 12px 0; }
.revenue-components > .metric-line { min-width: 190px; gap: 24px; }
.statement-category { border-bottom: 1px solid var(--panel-border); padding: 4px 0; }
.statement-category > summary > .metric-line { display: inline-flex; width: calc(100% - 25px); margin: 0; padding: 4px; }
.statement-category details { margin: 8px 16px; }
.cost-group { margin: 20px 0; }
.cost-group > h3 { padding: 0 0 10px; }
.invoice-inbox { margin: 12px 0 24px; }
.invoice-inbox-list { display: grid; gap: 8px; margin-top: 8px; }
.invoice-draft { display: block; width: 100%; text-align: left; padding: 12px 14px !important; margin: 6px 0; line-height: 1.5; border-radius: 12px !important; }
.invoice-inbox .invoice-draft { display: flex; align-items: center; gap: 16px; margin: 0; background: var(--finance-inset); }
.invoice-inbox-copy { flex: 1; min-width: 0; }
.invoice-inbox-copy strong, .invoice-inbox-copy small { display: block; overflow-wrap: anywhere; }
.invoice-inbox-copy small { font-size: 11px; color: var(--muted); }
.invoice-inbox-amount { font-size: 13px; white-space: nowrap; }
/* Editors share a persistent heading and actions with Dashboard modals. */
dialog { color: var(--text); background: var(--finance-surface); border: 1px solid var(--panel-border); border-radius: var(--finance-radius); padding: 24px; width: min(760px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); box-shadow: var(--shadow); overflow: auto; scrollbar-width: thin; scroll-padding: 90px 0; }
dialog::backdrop { background: #020617b8; backdrop-filter: blur(3px); }
dialog h2 { font-size: 20px; letter-spacing: -.025em; margin: 0; }
dialog h3 { font-size: 16px; }
dialog .eyebrow { font-size: 10px; letter-spacing: 1px; margin-bottom: 6px; }
dialog .dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: sticky; top: -24px; z-index: 10; padding: 16px 24px; margin: -24px -24px 20px; border-bottom: 1px solid var(--panel-border); background: var(--finance-surface); }
dialog .dialog-heading > button { font-size: 13px; flex-shrink: 0; }
dialog #close-editor { font-size: 24px; padding: 0; width: 38px; }
dialog .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
dialog .form-grid > *, dialog .allocation-row > * { min-width: 0; overflow-wrap: anywhere; }
dialog label { display: grid; gap: 7px; font-size: 12px; color: var(--muted); min-width: 0; }
dialog label.wide, dialog .wide { grid-column: 1 / -1; }
dialog input, dialog select { width: 100%; font-size: 14px; min-width: 0; text-overflow: ellipsis; }
dialog select[size] { height: auto; min-height: 190px; }
dialog select[size] option { padding: 9px 6px; }
dialog input[type=checkbox] { width: 17px; }
dialog .form-actions, .invoice-review-actions { position: sticky; bottom: -24px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--panel-border); padding: 16px 0; margin-top: 20px; background: var(--finance-surface); }
dialog .form-actions .danger { margin-right: auto; color: var(--red); }
dialog .allocation-editor { margin-top: 20px; border: 1px solid var(--panel-border); border-radius: 12px; padding: 14px; }
dialog .allocation-row { display: grid; grid-template-columns: minmax(0, 1fr) 95px 110px; gap: 12px; align-items: center; padding: 7px 0; font-size: 13px; }
dialog .allocation-row > span:last-child { text-align: right; color: var(--muted); }
dialog .allocation-row input { text-align: right; }
dialog .allocation-total { display: flex; flex-wrap: wrap; gap: 8px; justify-content: space-between; border-top: 1px solid var(--panel-border); margin-top: 10px; padding-top: 12px; font-size: 13px; }
dialog .machine-choices { max-height: 280px; overflow: auto; margin-top: 10px; }
dialog .check-confirm { display: flex; flex-direction: row; align-items: start; gap: 10px; font-size: 13px; line-height: 1.5; }
dialog .check-confirm input { margin-top: 2px; }
dialog .error-banner { margin: 12px 0 !important; }
dialog .membership-row { margin-top: 8px; }
dialog .rack-machine-choices { border: 1px solid var(--panel-border); border-radius: 12px; padding: 10px; margin-top: 0; }
dialog .rack-machine-choices label { padding: 8px 2px; cursor: pointer; }
dialog .rack-membership-selection { border-top: 1px solid var(--panel-border); padding: 12px 0; }
dialog .rack-membership-selection .section-heading { margin-bottom: 10px; font-size: 13px; }
/* Invoice review keeps one physical rack per card and one visible next action. */
.invoice-review { width: min(1280px, calc(100vw - 32px)); max-width: calc(100vw - 32px); }
.invoice-review .form-grid { margin: 16px 0; }
.invoice-review h3 { grid-column: 1 / -1; }
.invoice-reconciliation { border: 1px solid var(--panel-border); border-radius: 12px; padding: 16px; margin: 16px 0; }
.invoice-review-actions { justify-content: flex-start; padding: 16px; margin-left: -8px; margin-right: -8px; border-radius: 12px 12px 0 0; box-shadow: 0 -6px 24px #0001; }
.invoice-recipients, .invoice-recipient-picker { max-height: 260px; overflow: auto; padding: 10px; background: var(--finance-inset); border-radius: 10px; }
.invoice-recipient-picker label { display: flex; flex-direction: row; align-items: center; gap: 8px; padding: 8px; }
.invoice-recipient-picker label:hover { background: var(--finance-hover); border-radius: 6px; }
.invoice-validation { max-height: 200px; overflow: auto; }
.needs-review { color: var(--finance-warning) !important; background: var(--finance-warning-bg); border: 1px solid var(--panel-border); border-radius: 8px; padding: 5px 9px; }
.invoice-decision-row { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.invoice-decision-row label { display: flex; flex-direction: column; gap: 6px; font-size: 11px; }
.invoice-decision-row select { min-width: 180px; }
.invoice-compact-header { align-items: center; font-size: 14px; padding: 4px 0 14px; }
.invoice-compact-header > strong { margin-right: auto; }
.invoice-progress { display: block; font-size: 16px; margin: 16px 0; color: var(--text); }
.invoice-rack-nav { display: flex; gap: 8px; overflow: auto; padding: 8px 0; margin-bottom: 12px; }
.invoice-rack-nav button { white-space: nowrap; font-size: 12px; flex-shrink: 0; }
.invoice-rack-card { margin: 14px 0; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); overflow: hidden; scroll-margin: 85px; }
.invoice-rack-card > summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 18px; font-size: 16px; color: var(--text); }
.invoice-rack-card > summary::before { content: '›'; color: var(--muted); }
.invoice-rack-card[open] > summary::before { content: '⌄'; }
.invoice-rack-card > summary > strong { margin-right: auto; }
.invoice-rack-card > summary span { font-size: 12px; padding: 5px 9px; border-radius: 7px; }
.invoice-charge-strip { display: flex; gap: 8px; flex-wrap: wrap; padding: 10px 18px; border-top: 1px solid var(--panel-border); }
.invoice-charge-strip span { font-size: 11px; padding: 5px 9px; border-radius: 6px; background: var(--finance-selected); }
.invoice-action-items { display: flex; flex-direction: column; gap: 6px; padding: 0 18px; }
.invoice-action-items:empty, .invoice-global-issues:empty, .invoice-review .form-grid > .wide:empty { display: none; }
.invoice-action-items button { text-align: left; color: var(--finance-warning); background: var(--finance-warning-bg); padding: 9px 12px; font-size: 13px; border-radius: 8px; }
.invoice-review .invoice-line { border: 0; margin: 0; padding: 16px 18px; }
.invoice-review details.invoice-line { border-top: 1px solid var(--panel-border); }
.invoice-review .invoice-line > details { display: block; margin: 8px 0; }
.invoice-review .invoice-line .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 14px 0; }
.invoice-history { padding: 14px; border: 1px solid var(--panel-border); border-radius: 10px; overflow: auto; }
.invoice-history table { width: 100%; font-size: 12px; margin: 12px 0; border-collapse: collapse; }
.invoice-history th, .invoice-history td { padding: 10px 8px; text-align: left; border-bottom: 1px solid var(--panel-border); }
.invoice-history th { font-size: 11px; color: var(--muted); }
.invoice-history td label { font-size: 0; }
.invoice-history td input { font-size: 14px; min-width: 70px; width: 85px; padding: 7px; }
.invoice-history .check-confirm { font-size: 13px; margin: 12px 0; }
.invoice-history > a { font-size: 13px; }
.invoice-steps { display: flex; gap: 8px; margin: 12px 0 24px; padding: 6px; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.invoice-steps button { flex: 1; padding: 10px 12px; font-size: 13px; border-color: transparent; background: transparent; color: var(--muted); }
.invoice-steps button[aria-current=step] { background: var(--finance-selected); color: var(--blue); border-color: var(--panel-border); font-weight: 700; }
.invoice-save-state { color: var(--muted); font-size: 12px; margin: 10px 0; }
.invoice-setup-card { margin: 14px 0; padding: 18px; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.invoice-setup-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.invoice-setup-card > select, .invoice-setup-card > input { display: block; width: 100%; margin: 12px 0; }
.invoice-setup-card > .invoice-recipient-picker { margin-top: 12px; }
.invoice-setup-card > button { margin: 8px 0; }
.invoice-setup-card small { display: block; }
.invoice-selected-machines { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 12px 0; }
.invoice-selected-machines:empty { display: none; }
.invoice-selected-machines li { padding: 6px 10px; border-radius: 7px; background: var(--finance-selected); font-size: 13px; }
.invoice-setup-card > [data-edit-machines] { display: block; }
.invoice-machine-editor > input { width: 100%; margin: 4px 0 12px; }
.invoice-machine-editor > button { margin-top: 12px; }
.invoice-machine-editor .invoice-recipient-picker { margin-top: 0; }
.invoice-membership-ending { padding: 12px; margin: 12px 0; border: 1px solid var(--panel-border); border-radius: 8px; }
.invoice-membership-ending input { max-width: 220px; margin: 6px 0; }
.invoice-membership-ending small { margin-top: 8px; }
.invoice-batch-toolbar, .invoice-batch-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.invoice-batch-list { display: grid; gap: 16px; margin: 20px 0; }
.invoice-batch-file { padding: 18px; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.invoice-batch-file small { display: block; }
.invoice-batch-file button { margin: 6px 8px 6px 0; }
.invoice-batch-month { border-top: 1px solid var(--panel-border); padding-top: 10px; margin-top: 12px; }
.invoice-batch-month input { width: auto; margin: 8px 8px 8px 0; }
.invoice-batch-warning { padding: 14px; border: 1px solid var(--panel-border); border-radius: 12px; margin: 12px 0; background: var(--finance-warning-bg); }
.invoice-batch-warning button { display: block; }
.invoice-batch .invoice-review-actions { justify-content: space-between; }
.invoice-batch-heading > div { min-width: 0; overflow-wrap: anywhere; }
.invoice-batch-amount { font-size: 16px; font-weight: 700; margin: 12px 0; }
.invoice-upload { border: 1px dashed var(--blue); border-radius: 16px; background: var(--finance-selected); padding: 28px; margin: 12px 0 18px; text-align: center; }
.invoice-upload input[type=file] { display: block; margin: 18px auto 8px; max-width: 580px; background: var(--finance-surface); }
dialog input[type=file]::file-selector-button { border: 0; border-radius: 6px; padding: 8px 12px; background: var(--finance-selected); color: var(--blue); font: inherit; margin-right: 12px; cursor: pointer; }
.power-review .finance-table td { white-space: normal; vertical-align: top; min-width: 100px; }
.power-review .finance-table td:last-child { min-width: 220px; }
.power-review .finance-table .form-grid { min-width: 260px; }
.finance-shell [hidden], dialog [hidden] { display: none !important; }
@media (max-width: 1100px) {
  .overview-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rack-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-grid { grid-template-columns: minmax(0, 1fr); }
  .finance-header { flex-wrap: wrap; }
  .month-control { justify-content: flex-start; max-width: none; }
}
@media (max-width: 760px) {
  .finance-shell { padding: 16px 12px 36px; }
  .finance-header { padding: 18px; }
  .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpi { padding: 16px; }
  .kpi strong { font-size: clamp(14px, 11cqi, 23px); }
  .finance-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 12px; }
  .finance-filters > label, .finance-filters > label:has(> #owner), .finance-filters > label:has(> #tag), .finance-filters > .machine-picker { width: 100%; min-width: 0; }
  .finance-filters > button { width: 100%; min-width: 0; height: auto; }
  .finance-filters > span { grid-column: 1 / -1; width: 100%; min-height: 0; margin: 0; }
  .workspace-tabs button { padding: 8px 12px; font-size: 13px; }
  .panel-finance { padding: 16px; }
  .settings-grid { grid-template-columns: minmax(0, 1fr); }
  .product-nav strong span { display: none; }
  dialog { padding: 16px; max-height: calc(100dvh - 24px); }
  dialog .dialog-heading { top: -16px; padding: 14px 16px; margin: -16px -16px 16px; }
  dialog .form-actions, .invoice-review-actions { bottom: -16px; }
  dialog .form-grid, .invoice-review .invoice-line .form-grid { grid-template-columns: minmax(0, 1fr); }
  dialog .allocation-row { grid-template-columns: minmax(0, 1fr) 70px 80px; gap: 8px; }
  .invoice-inbox .invoice-draft { flex-wrap: wrap; gap: 8px; }
  .invoice-inbox-copy { flex-basis: 100%; }
  .invoice-inbox-amount { margin-right: auto; }
  .invoice-steps { gap: 4px; padding: 4px; }
  .invoice-steps button { padding: 8px; font-size: 12px; }
  .invoice-rack-card > summary { padding: 14px; font-size: 14px; }
  .invoice-review .invoice-line { padding: 12px; }
  .invoice-charge-strip { padding: 10px 12px; }
  .invoice-upload { padding: 18px 12px; }
}
@media (max-width: 550px) {
  .rack-grid { grid-template-columns: minmax(0, 1fr); }
  .month-control { gap: 6px; }
  .month-control select { min-width: 0; width: 165px; }
  .revenue-components { gap: 0 12px; }
  .revenue-components > .metric-line { flex: 1; min-width: 160px; }
  .revenue-components > .active-machines-count { flex-basis: 100%; }
  .invoice-decision-row select { min-width: 0; width: 100%; }
  .invoice-decision-row label { width: 100%; }
}

body.finance-page .fee-rule { border-top: 1px solid var(--panel-border); padding: 1rem 0; }
body.finance-page .fee-rule h3, body.finance-page .fee-calculation h3 { margin: .4rem 0; font-size: 1rem; }
body.finance-page .fee-band { display: grid; grid-template-columns: 1fr 1fr auto; gap: .75rem; align-items: end; margin-bottom: .75rem; }
body.finance-page .fee-preview:not(:empty) { border-top: 1px solid var(--panel-border); padding-top: 1rem; }
body.finance-page .fee-calculation { padding: 1rem; }
@media(max-width:700px) { body.finance-page .fee-band { grid-template-columns: 1fr; } }

html[data-theme] .finance-shell .month-control .audit-status { font-size:14px; font-weight:700; padding:12px 18px; border:1px solid currentColor; }
html[data-theme] .finance-shell .audit-status.warning { color:var(--finance-warning); background:var(--finance-warning-bg); }
html[data-theme] .finance-shell .audit-status.good { color:var(--green); border-color:var(--green); background:var(--status-success-bg, #22c55e16); }

.lifetime-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:700px) { .lifetime-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }

html[data-theme="light"] .finance-shell .workspace-tabs button { background:transparent; border-color:transparent; color:var(--muted); }
html[data-theme="light"] .finance-shell .workspace-tabs button[aria-current=page] { background:var(--finance-selected); border-color:var(--panel-border); color:var(--blue); }

.invoice-batch-ready { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; align-items: center; }
.invoice-batch-ready .invoice-batch-amount { margin: 0; }
@media (max-width: 800px) { .invoice-batch-ready { grid-template-columns: minmax(0, 1fr); gap: 8px; } }

.finance-fee-mode { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 22px; margin-bottom:20px; border:1px solid var(--panel-border); border-radius:20px; background:var(--finance-inset); }
.finance-fee-mode p { margin:6px 0 0; max-width:750px; }
.finance-fee-toggle { display:flex; flex-shrink:0; gap:8px; flex-wrap:wrap; }
.finance-fee-toggle button { font-size:15px; font-weight:700; }
@media(max-width:1000px) { .finance-fee-mode { align-items:flex-start; flex-direction:column; } }

.initial-owner-row { border-bottom: 1px solid var(--panel-border); padding: 12px 0; }
.initial-owner-row > label:first-child { display: flex; align-items: center; gap: 10px; }
.initial-owner-row input[type=checkbox] { width: auto; }

.finance-task-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 15px 0; }
.finance-task-list { margin-top: 18px; }
.finance-task { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--panel-border); }
.finance-task > div { min-width: 0; overflow-wrap: anywhere; }
.finance-task strong { display: block; margin-top: 8px; }
.finance-task .help { margin: 5px 0; }
.finance-task a { flex-shrink: 0; }
@media(max-width:680px) { .finance-task { align-items: flex-start; flex-direction: column; gap: 8px; } }

.finance-currency-control { display:flex; gap:8px; align-items:center; color:var(--muted); font-size:12px; }
.finance-currency-control select { font:inherit; font-weight:700; color:var(--text); background:var(--finance-control); border:1px solid var(--panel-border); border-radius:10px; padding:7px 10px; }
.finance-currency-note { margin:12px 8px; color:var(--muted); font-size:13px; }
.finance-currency-note strong { color:var(--text); }
.finance-currency-note details { margin-top:6px; }
.finance-currency-note summary { cursor:pointer; color:var(--blue); }
.finance-task a.button { flex-shrink:0; border:1px solid var(--blue); border-radius:var(--finance-button-radius); padding:9px 14px; }

.finance-header .finance-brand-title { font-size: clamp(22px, 2.1vw, 30px); line-height: 1.2; margin: 0; }

.finance-header > div { min-width: 0; max-width: 100%; }
@media (max-width: 760px) {
  .finance-page #session-toolbar .product-nav { flex-basis: 100%; }
  .finance-header .month-control { width: 100%; }
  .finance-header .month-control label { min-width: 0; }
}

@media (max-width: 760px) {
  /* Override the shared Dashboard mobile hero heading size. */
  .finance-header .finance-brand-title { font-size: 22px !important; line-height: 1.2 !important; }
}

/* Translated labels can be longer than English: grow and wrap within the card. */
.finance-page :is(button, .button, .badge, summary, label, .help, .muted) {
  overflow-wrap: anywhere;
}
.finance-page :is(button, .button, .badge) { white-space: normal; height: auto; }
.finance-page :is(.section-actions, .month-control, .invoice-review-actions, .invoice-steps, .finance-task-filters) { flex-wrap: wrap; min-width: 0; }
.finance-page :is(.finance-fee-toggle, .invoice-setup-heading, .invoice-line-status) { min-width: 0; max-width: 100%; flex-shrink: 1; }
.finance-page :is(.section-heading, .invoice-setup-heading, .invoice-decision-row) > * { min-width: 0; max-width: 100%; }
.finance-page :is(.form-grid, .invoice-meta, .invoice-target-grid, .split-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.finance-page :is(.form-grid, .invoice-meta, .invoice-target-grid) > * { min-width: 0; }
.finance-page :is(input:not([type=checkbox]), select, textarea) { box-sizing: border-box; min-width: 0; max-width: 100%; }
.finance-page .workspace-tabs { flex-wrap: wrap; overflow: visible; }
.finance-page .workspace-tabs button { flex-shrink: 1; }
.finance-page .invoice-charge-strip { flex-wrap: wrap; }
.finance-page .finance-table th { white-space: normal; overflow-wrap: anywhere; }
.finance-page .invoice-review-actions > * { min-width: 0; }
.finance-page .finance-task { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 700px) {
  .finance-page :is(.form-grid, .invoice-meta, .invoice-target-grid, .split-grid, .finance-task) { grid-template-columns: minmax(0, 1fr); }
  .finance-page .wide { grid-column: 1 / -1; }
  .finance-page .finance-fee-toggle { width: 100%; }
  .finance-page .finance-fee-toggle button { flex: 1 1 145px; }
}

.finance-page .invoice-rack-nav { flex-wrap: wrap; overflow: visible; }
.finance-page .invoice-rack-nav button { min-width: 0; max-width: 100%; white-space: normal; flex-shrink: 1; }
@media (max-width: 480px) {
  .finance-page .finance-fee-toggle button { flex-basis: 100%; }
}

/* A long label and a localized amount may need separate lines inside a narrow card. */
.finance-page .metric-line { flex-wrap: wrap; }
.finance-page .metric-line > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.finance-page .metric-line > strong { margin-inline-start: auto; }

.payment-totals { margin-block: 1.5rem; padding: 1rem; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.payment-totals > details { margin-top: 1rem; }
.payment-totals summary .metric-line { display: inline-flex; width: calc(100% - 24px); vertical-align: middle; font-size: 1.1rem; }
.payment-currency-totals { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px 20px; }
.payment-currency-totals > span { white-space: nowrap; }
.payment-onward-service { text-align: start; }
.payment-onward-service > strong { display: block; color: var(--text); }
.payment-onward-service > small { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.payment-totals .finance-table { width: 100%; min-width: 0; table-layout: fixed; }
.payment-totals .finance-table th, .payment-totals .finance-table td { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .payment-totals .finance-table th, .payment-totals .finance-table td { padding: 10px 4px; }
  .payment-totals .finance-table th:first-child { width: 25%; }
  .payment-totals .finance-table th:last-child { width: 38%; }
}
.recipient-settlements { margin-block: 1.5rem; }

.finance-page .cashflow-in { color: #34d399; font-weight: 700; }
.finance-page .cashflow-out { color: #fbbf24; font-weight: 700; }
html[data-theme="light"] .finance-page .cashflow-in { color: #047857; }
html[data-theme="light"] .finance-page .cashflow-out { color: #b45309; }

.invoice-inbox-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin-block: 16px; }
.invoice-inbox-filters label { flex: 1 1 220px; min-width: 0; }
.invoice-pending-notice { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-block: 16px; padding: 12px; border: 1px solid var(--panel-border); border-radius: 12px; }
.invoice-pending-notice p { flex: 1 1 260px; margin: 0; }

.invoice-totals, .invoice-cost-bridge { margin-block: 1.5rem; }
.invoice-total-card { margin-top: 16px; padding: 18px; border: 1px solid var(--panel-border); border-radius: 16px; background: var(--finance-inset); }
.invoice-total-card h4 { margin: 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.invoice-total-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(155px, 1fr)); gap: 16px; }
.invoice-total-grid > div { min-width: 0; display: grid; gap: 6px; }
.invoice-total-grid span { color: var(--muted); font-size: .9rem; }
.invoice-total-grid strong { font-size: 1.1rem; overflow-wrap: anywhere; }
.invoice-total-card details { margin-block: 16px; }
.invoice-total-card .finance-table { width: 100%; min-width: 0; table-layout: fixed; }
.invoice-total-card .finance-table :is(th, td) { white-space: normal; overflow-wrap: anywhere; }
.invoice-total-card .finance-table :is(th, td):first-child { width: 32%; }
@media (max-width: 650px) {
  .invoice-total-card { padding: 12px; }
  .invoice-total-card .finance-table thead { display: none; }
  .invoice-total-card .finance-table :is(tbody, tr, td) { display: block; width: 100%; }
  .invoice-total-card .finance-table :is(th, td):first-child { width: 100%; }
  .invoice-total-card .finance-table td { padding: 6px 0; }
  .invoice-total-card .finance-table tr { padding-block: 12px; border-bottom: 1px solid var(--panel-border); }
}

.invoice-mobile-label { display: none; }
@media (max-width: 650px) {
  .invoice-total-card .invoice-mobile-label { display: inline; color: var(--muted); }
}

html[data-theme="light"] .finance-shell .workspace-tabs button {background:#e8f0fc;color:#163c75;border-color:#9ab5dc;font-weight:500;}
html[data-theme="light"] .finance-shell .workspace-tabs button[aria-current=page] {background:#215fc1;color:white;border-color:#215fc1;font-weight:750;}
html[data-theme="light"] :is(.finance-shell,dialog) button.primary {font-weight:750;}

.machine-results-heading {margin:24px 0 12px!important;font-size:16px!important;}
.machine-result-kpis {grid-template-columns:repeat(5,minmax(0,1fr));}
.machine-purchase-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px;}
.machine-purchase-grid .kpi strong {font-size:clamp(15px,3vw,22px);}
.machine-payback {border-color:var(--blue);}
.machine-payback-grid {display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-top:16px;}
.machine-payback-grid .kpi strong {font-size:clamp(17px,3vw,28px);}
.machine-result-kpis .kpi, .machine-purchase-grid .kpi, .machine-payback-grid .kpi {min-width:0;overflow-wrap:anywhere;}
@media(max-width:1100px){.machine-result-kpis {grid-template-columns:repeat(3,minmax(0,1fr));}.machine-purchase-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.machine-result-kpis {grid-template-columns:repeat(2,minmax(0,1fr));}.machine-payback-grid {grid-template-columns:1fr;}}

.operating-cost-line > span {display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 20px;min-width:0;}
.operating-cost-parts {display:inline-flex;flex-wrap:wrap;gap:4px 16px;font-size:11px;font-weight:400;color:var(--text);}
.metric-line .operating-cost-parts > span {overflow-wrap:anywhere;color:var(--text);}
.operating-cost-line > strong {flex-shrink:0;}

/* Analytical modes: two groups per row with matching control widths. */
.finance-page .finance-fee-mode { display:block; }
.finance-page .finance-result-toggles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; margin-top:12px; }
.finance-option-group { display:grid; grid-template-rows:auto 1fr; gap:6px; min-width:0; }
.finance-page .finance-fee-toggle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.finance-page .finance-fee-toggle button { width:100%; min-width:0; font-size:13px; line-height:1.35; padding:8px 12px; }
.finance-page .finance-option-group .help { margin:0; font-size:11px; line-height:1.5; }
/* Display-only forecast controls sit above the financial filters. */
.finance-page .finance-forecast-mode {grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto;align-items:center;gap:12px 24px;padding-bottom:14px;border-bottom:1px solid var(--panel-border);}
@media(max-width:700px){.finance-page .finance-forecast-mode {grid-template-columns:minmax(0,1fr);gap:6px;}}
.finance-page .finance-service-toggle button.primary { color:#75e0a7; border-color:#4aa477; background:rgba(52,150,100,.15); box-shadow:none; }
html[data-theme="light"] .finance-page .finance-service-toggle button.primary { color:#17633d; border-color:#5a9d79; background:#e5f2e9; }
.finance-page .service-income-note { display:grid; margin-top:5px; }
.service-income-note > span { grid-area:1 / 1; }
.service-income-note > .inactive-caption { visibility:hidden; }
@media(max-width:700px) { .finance-page .finance-result-toggles { grid-template-columns:minmax(0,1fr); gap:14px; } }

/* Keep the service contribution legible without moving the KPI values. */
.finance-page .service-income-note { min-height:4.5em; line-height:1.5; }
.finance-page .service-income-note .service-income-amount { display:inline; margin:0; letter-spacing:normal; font-size:inherit; font-weight:600; white-space:nowrap; }
.finance-readiness-summary .finance-data-validity { margin-inline-start:18px; color:var(--muted); font-size:12px; line-height:1.5; }
.finance-page .finance-refresh-info { flex-basis:100%; display:grid; gap:3px; min-width:0; text-align:end; color:var(--muted); }
.finance-refresh-info small { font-size:11px; line-height:1.5; overflow-wrap:anywhere; }
.finance-refresh-schedule { font-variant-numeric:tabular-nums; }
@media(max-width:700px) {
  .finance-readiness-summary .finance-data-validity { display:block; margin-inline-start:0; margin-top:4px; }
  .finance-page .finance-refresh-info { text-align:start; }
}

.conversion-basis {display:inline-block;margin:2px 0 0;font-size:11px;line-height:1.5;}

/* Keep both invoice close actions available in narrow and translated layouts. */
.invoice-review > .dialog-heading { flex-wrap: wrap; }
.invoice-heading-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.invoice-heading-actions > button { font-size: 13px; }

/* Keep identity, navigation and access status aligned with the account actions. */
.finance-page #session-toolbar { align-items:flex-end; gap:10px; }
.finance-page #session-toolbar .session-profile-group { flex:1 1 0; }
.finance-page #session-toolbar .session-sign-out { flex:0 0 auto; }
.finance-page #session-toolbar :is(button, .product-nav a) { font-size:13px; min-height:40px; padding:9px 12px; }
.finance-page #session-toolbar .product-nav { gap:8px; }
.finance-page .finance-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:18px; }
.finance-page .finance-header .month-control { max-width:100%; }
@media(max-width:800px) { .finance-page .finance-header { grid-template-columns:minmax(0,1fr); } }
.finance-month-picker { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.finance-month-picker label { margin:0; }
.finance-page .month-control .refresh-pause-control { flex:0 1 auto; }
.finance-page .month-control .finance-refresh-info { flex-basis:100%; }
.finance-page .month-control .refresh-pause-control button { font-size:12px; min-height:38px; }
.finance-page .checklist > span { padding:8px 12px; border:1px solid var(--panel-border); border-radius:8px; }
.finance-conversion-bridge { max-width:760px; margin-top:8px; }
.finance-conversion-bridge .metric-line { font-size:12px; padding:5px 0; gap:16px; }
.finance-conversion-bridge .metric-line strong { flex-shrink:0; }
.finance-conversion-bridge .metric-line:last-child { font-weight:700; }
@media(max-width:760px) {
 .finance-page #session-toolbar .session-profile-group { display:contents; }
 .finance-page #session-toolbar .session-profile-button { flex:1 1 auto; order:0; }
 .finance-page #session-toolbar .session-sign-out { order:1; }
 .finance-page #session-toolbar .product-nav { order:2; flex-basis:auto; }
 .finance-page #session-toolbar #session-scope-notice { order:3; max-width:100%; }
 .finance-page .finance-header .month-control { justify-content:flex-start; }
}

.client-monthly-costs td small {display:block;margin-top:4px;color:var(--muted);font-size:11px;}
.client-monthly-costs td:first-child {text-align:start;}
.client-monthly-costs > .metric-line {font-size:16px;margin-top:14px;}
.payment-service strong,.payment-onward-service strong {font-size:13px;}
.finance-page #session-toolbar #session-scope-notice { margin-bottom:0 !important; }

.finance-page .month-control :is(#current-month,#month-status,#force-recalculate) {order:1;}
.finance-page .month-control .finance-refresh-info {order:2;}

.machine-detail-button {display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid var(--blue);border-radius:20px;color:var(--blue);font-weight:700;text-decoration:none;}
/* Machine inventory fits the page; narrower windows use labelled machine cards. */
.machine-list-controls { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
.machine-list-controls > label { display:grid; gap:6px; min-width:0; font-size:12px; color:var(--muted); }
.machine-list-controls > label:first-child { flex:1 1 240px; }
.machine-list-controls input, .machine-list-controls select { width:100%; box-sizing:border-box; }
.machine-inventory { max-height:none; overflow:visible; }
.machine-inventory .finance-table { width:100%; min-width:0; table-layout:fixed; }
.machine-inventory th:first-child { width:18%; }
.machine-inventory th:nth-child(2) { width:13%; }
.machine-inventory th:nth-child(6) { width:12%; }
.machine-inventory th:nth-child(7) { width:11%; }
.machine-inventory th:nth-child(8) { width:10%; }
.machine-inventory th:last-child { width:9%; }
.machine-inventory td, .machine-inventory th { white-space:normal; overflow-wrap:anywhere; padding:12px 8px; }
.machine-inventory td:first-child a { font-weight:700; }
.machine-inventory td .machine-cell-label { display:none; }
@media(max-width:1300px) {
 .machine-inventory .finance-table { display:block; }
 .machine-inventory thead { display:none; }
 .machine-inventory tbody { display:grid; gap:12px; }
 .machine-inventory tr { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:14px; padding:16px; border:1px solid var(--panel-border); border-radius:12px; background:var(--finance-inset); }
 .machine-inventory td { display:block; min-width:0; width:auto; text-align:start; border:0; padding:0; }
 .machine-inventory td:first-child { grid-column:1 / 4; }
 .machine-inventory td:nth-child(2) { grid-column:4 / 6; }
 .machine-inventory td:nth-child(n+3) { grid-column:span 2; }
 .machine-inventory td:last-child { grid-column:6; grid-row:1; justify-self:end; }
 .machine-inventory td .machine-cell-label { display:block; margin:0 0 5px; color:var(--muted); font-size:11px; line-height:1.4; }
 .machine-inventory .machine-detail-button { padding:7px 9px; }
}
@media(max-width:650px) {
 .machine-inventory tr { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 12px; padding:12px; }
 .machine-inventory td:first-child { grid-column:1; }
 .machine-inventory td:nth-child(2) { grid-column:1 / -1; grid-row:2; }
 .machine-inventory td:nth-child(n+3) { grid-column:span 1; }
 .machine-inventory td:last-child { grid-column:2; grid-row:1; }
 .machine-list-controls > label { flex:1 1 180px; }
}
.machine-inventory th button { border:0; background:transparent; padding:0; border-radius:0; color:inherit; font-weight:600; max-width:calc(100% - 18px); vertical-align:middle; }
.machine-inventory th[aria-sort]:not([aria-sort="none"]) button { color:var(--blue); }
.machine-inventory th .help-info-icon { vertical-align:middle; }


/* One comparable currency layout, with the actual payment currency on each row. */
.payment-comparison .payment-recipient { border: 1px solid var(--panel-border); border-radius: 12px; overflow: hidden; }
.payment-comparison .payment-recipient > summary { padding: 14px 16px; }
.payment-recipient-heading { display: inline-flex; width: calc(100% - 22px); justify-content: space-between; align-items: center; gap: 16px; vertical-align: middle; }
.payment-recipient-heading > div { min-width: 0; }
.payment-recipient-heading strong { font-size: 17px; color: var(--text); }
.payment-recipient-heading small { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; margin-top: 4px; }
.payment-recipient-total { text-align: end; flex-shrink: 0; }
.payment-recipient-total strong { display: block; color: var(--yellow); font-size: 19px; font-variant-numeric: tabular-nums; }
.payment-comparison .payment-comparison-table { margin: 0; padding: 0 16px 8px; }
.payment-comparison .finance-table th, .payment-comparison .finance-table td { text-align: end; padding: 12px 8px; vertical-align: middle; }
.payment-comparison .finance-table th:first-child, .payment-comparison .finance-table td:first-child { width: 34%; text-align: start; }
.payment-comparison .finance-table th:nth-child(2) { width: 19%; }
.payment-comparison .finance-table th:nth-child(3) { width: 27%; }
.payment-comparison .finance-table th:last-child { width: 20%; }
.payment-comparison .payment-number strong { font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.payment-comparison .payment-czk strong { color: var(--yellow); }
.payment-comparison .payment-service small, .payment-comparison .payment-number small, .payment-comparison .payment-rate small { display: block; color: var(--muted); font-size: 11px; line-height: 1.5; margin-top: 5px; }
.payment-comparison .payment-route { color: var(--blue); }
.payment-comparison .payment-beneficiary {margin-top:6px;font-size:12px;font-weight:600;color:var(--text);}
.payment-comparison .payment-rate > span { font-size: 12px; font-variant-numeric: tabular-nums; }
.payment-comparison .payment-settlement-label { font-weight: 600; }
.payment-comparison .payment-mobile-label { display: none; }
.payment-comparison > .help { margin-bottom: 0; }
.payment-calculation-details { margin-top: 12px; padding: 12px 0; }
.payment-calculation-details > summary { color: var(--muted); font-size: 13px; }
@media(max-width:700px){
 .payment-recipient-heading { align-items: start; gap: 8px; }
 .payment-recipient-heading strong { font-size: 15px; }
 .payment-recipient-total strong { font-size: 16px; }
 .payment-comparison .payment-recipient > summary { padding: 12px 8px; }
 .payment-comparison .payment-comparison-table { padding: 0 8px 8px; overflow: visible; }
 .payment-comparison .finance-table, .payment-comparison .finance-table tbody { display: block; width: 100%; }
 .payment-comparison .finance-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
 .payment-comparison .finance-table tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px 12px; padding: 14px 0; border-top: 1px solid var(--panel-border); }
 .payment-comparison .finance-table td { display: block; min-width: 0; width: auto !important; border: 0; padding: 0; text-align: start; }
 .payment-comparison .finance-table td:first-child { grid-column: 1/-1; width: auto; }
 .payment-comparison .finance-table td:nth-child(3) { grid-column: 1/-1; grid-row: 3; }
 .payment-comparison .finance-table td:last-child { grid-column: 2; grid-row: 2; text-align: end; }
 .payment-comparison .payment-mobile-label { display: block; font-size: 10px; color: var(--muted); margin-bottom: 4px; }
 .payment-comparison .finance-table td:first-child .payment-mobile-label, .payment-comparison .finance-table td:nth-child(3) .payment-mobile-label { display: none; }
 .payment-comparison .payment-rate small { display: inline; margin-inline-start: 6px; }
}

.finance-rate-source { display:inline-block; margin-inline-start:12px; font-size:11px; color:var(--muted); font-weight:400; }

.payment-reserve { padding:0 24px 16px; }
.payment-reserve .metric-line:last-of-type {font-weight:700; color:var(--yellow);font-size:16px;}
.payment-reserve .help {margin-bottom:0;}
dialog:has(.fee-example-layout) {width:min(1200px,calc(100vw - 32px));}
.fee-example-layout {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:24px;align-items:start;}
.fee-example-layout > .form-actions,.fee-example-layout > .error-banner {grid-column:1/-1;}
.fee-live-examples {position:sticky;top:68px;max-height:calc(100dvh - 200px);overflow:auto;scrollbar-width:thin;padding:16px;background:var(--finance-inset);border:1px solid var(--panel-border);border-radius:14px;min-width:0;}
.fee-live-examples h3 {margin-top:0;}
.fee-example-card {padding:12px 0;border-top:1px solid var(--panel-border);}
.fee-example-card h4 {margin:8px 0;color:var(--text);font-size:14px;}
.fee-example-card .metric-line {font-size:12px;gap:10px;padding:8px 0;}
.fee-example-card .metric-line strong {text-align:end;white-space:nowrap;}
.fee-example-card [data-example-amount="payable"] {font-weight:700;color:var(--yellow);font-size:14px;}
.fee-example-card .example-fx {display:block;color:var(--muted);font-size:11px;}
@media(max-width:900px){.fee-example-layout {display:block;}.fee-live-examples {position:static;max-height:none;margin-top:18px;}.payment-reserve {padding-inline:12px;}}

.finance-page .fee-month-shortcuts {display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;margin-top:6px;}
.fee-month-shortcuts button {padding:5px 9px;min-height:28px;font-size:11px;}
.fee-month-shortcuts+small {font-size:11px;line-height:1.5;}
.fee-example-controls:empty {display:none;}
.fee-example-controls {display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0;}
.fee-example-controls>p {grid-column:1/-1;margin:0;}
.fee-example-controls label {font-size:11px;}
.fee-live-examples .example-simulation {border-left:3px solid var(--yellow);padding-left:10px;}

.fee-example-layout>.form-grid {align-items:start;}

.rack-totals-heading {text-align:right;margin:8px 0 2px;font-size:.72rem;}
.rack-value-pair {display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;font-variant-numeric:tabular-nums;}
.rack-value-divider {color:var(--muted);font-weight:400;}
.rack-card .finance-line {gap:8px;}

.bulk-price-list {max-height:300px;overflow:auto;border:1px solid var(--panel-border);border-radius:12px;}
.bulk-price-choice {display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--panel-border);}
.bulk-price-choice input{width:auto!important;margin:0;}.bulk-price-choice small{color:var(--muted);}.bulk-price-preview{max-height:220px;overflow:auto;}.bulk-price-preview p{margin:5px 0;}
.personal-finance .metric-line{font-size:1.2rem;margin:16px 0;}.personal-finance td{vertical-align:top;}.personal-finance td small{display:block;max-width:32ch;}.personal-finance .table-wrap{overflow:auto;}

.personal-finance h1{font-size:1.6rem;margin:0;}.personal-finance .section-actions label{display:flex;align-items:center;gap:8px;}

.rack-value-pair>span:not(.rack-value-divider){color:var(--text);}.personal-finance .positive{color:var(--green);}

/* Receiving accounts share the Finance currency bar and compact period overview. */
.personal-finance .receipt-eyebrow { color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; margin:0 0 4px; }
.personal-finance h1 { font-size:26px; margin:0; }
.receipt-tabs { display:flex; gap:8px; margin:12px 0 20px; }
.receipt-tabs button { border-radius:20px; padding:8px 16px; }
.receipt-tabs button.active { background:var(--panel-strong); border-color:var(--accent); color:var(--accent); }
.receipt-cards { display:grid; grid-template-columns:2fr 1fr 1fr; gap:12px; }
.receipt-card { border:1px solid var(--panel-border); border-radius:16px; padding:16px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.receipt-card strong { font-size:clamp(20px,2vw,28px); overflow-wrap:anywhere; }
.receipt-settlement { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; padding:14px 0 0; }
.receipt-native { display:flex; gap:8px 16px; flex-wrap:wrap; font-weight:700; }
.receipt-table { width:100%; font-variant-numeric:tabular-nums; }
.receipt-table th,.receipt-table td { padding:12px 10px; }
.receipt-table td:nth-child(n+3),.receipt-table th:nth-child(n+3) { text-align:right; white-space:nowrap; }
.receipt-table td .help { display:block; font-size:11px; max-width:350px; margin:4px 0 0; }
.receipt-table td .receipt-native { justify-content:flex-end; }
.receipt-history { margin-top:24px; border-top:1px solid var(--panel-border); padding-top:16px; }
.receipt-history h2 { font-size:18px; margin:0 0 12px; }
.receipt-table .receipt-month { color:var(--accent); border:0; background:none; padding:0; text-align:left; }
@media(max-width:700px){ .receipt-cards { grid-template-columns:1fr 1fr; } .receipt-card:first-child { grid-column:1/-1; } .personal-finance .panel { padding:16px; } .receipt-table { min-width:600px; } }

.finance-page #session-toolbar :is(button, select) { min-height:44px; }
.invoice-document {display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:12px 0;}
.invoice-document .help {flex:1 1 300px;margin:0;}
.invoice-source-rows {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0;}
.invoice-source-item {padding:14px;border:1px solid var(--panel-border);border-radius:12px;min-width:0;}
.invoice-source-description {margin:6px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:600;line-height:1.5;}
.invoice-source-item .form-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0;}
.invoice-source-item :is(input, select) {min-width:0;width:100%;}
.invoice-charge-strip span {white-space:normal;overflow-wrap:anywhere;}
@media(max-width:750px){.invoice-source-rows {grid-template-columns:minmax(0,1fr);}.invoice-source-item .form-grid {grid-template-columns:minmax(0,1fr);}}

.invoice-selection-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:12px 0; }
.invoice-setup-card > label:has([data-invoice-cost-scope]) { display:grid; gap:6px; margin:12px 0; }

.finance-header .product-nav {margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.finance-header .product-nav a {font-size:12px;padding:8px 10px;}

@media(max-width:800px){.finance-header .month-control select{width:175px;max-width:100%;font-size:13px;}}

.invoice-line-rack:has(label) { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,32%); gap:12px; align-items:center; margin:10px 0; }
.invoice-line-rack > label { display:grid; gap:6px; font-size:.85rem; color:var(--muted); }
.invoice-line-rack select { width:100%; min-width:0; }
@media(max-width:650px) { .invoice-line-rack:has(label) { grid-template-columns:1fr; padding-bottom:12px; border-bottom:1px solid var(--panel-border); } }

/* Keep bulk power fields and actions aligned; date presets and feedback have their own rows. */
.power-bulk-panel { margin:18px 0 24px; padding:16px; border:1px solid var(--panel-border); border-radius:12px; background:var(--finance-inset); }
.power-bulk-controls { display:grid; grid-template-columns:minmax(160px,1fr) minmax(170px,1fr) auto auto; align-items:end; gap:12px; }
.power-bulk-controls > * { min-width:0; }
.power-review .power-bulk-controls input, .power-review .power-bulk-controls > button { height:42px; min-height:42px; box-sizing:border-box; }
.power-bulk-controls > button { margin:0; font-size:13px; white-space:nowrap; }
.power-date-shortcuts { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.power-date-shortcuts button { margin:0; padding:7px 10px; font-size:12px; }
.power-bulk-panel > .help { margin:12px 0 0; }
.power-bulk-result { margin:14px 0 0; }
.power-bulk-result strong { display:block; }
.power-bulk-result p { margin:6px 0 0; font-size:12px; }
.power-profile-date { display:block; margin-top:5px; font-size:11px; white-space:nowrap; }
@media(max-width:1000px) { .power-bulk-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:520px) { .power-bulk-controls { grid-template-columns:minmax(0,1fr); } .power-bulk-panel { padding:12px; } .power-date-shortcuts > button { width:100%; text-align:left; white-space:normal; } }

.finance-save-progress {display:flex;align-items:center;gap:10px;flex:1 1 240px;margin-right:auto;color:var(--text);font-weight:600;}
.finance-save-progress[hidden] {display:none;}
.finance-save-spinner {width:18px;height:18px;flex:0 0 18px;border:2px solid var(--panel-border);border-top-color:var(--product-gold,#f4bf50);border-radius:50%;animation:finance-save-spin .8s linear infinite;}
@keyframes finance-save-spin {to {transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.finance-save-spinner{animation:none;}}
.electricity-calibration-card{margin:12px 0;padding:14px;border:1px solid var(--border);border-radius:12px;min-width:0}
.calibration-confirmation{display:flex;align-items:flex-start;gap:8px;margin:10px 0;line-height:1.5}
.calibration-confirmation input{width:auto;flex:0 0 auto;margin-top:4px}

.power-single-machine thead{display:none}
.power-single-machine tbody,.power-single-machine tr{display:block}
.power-single-machine tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.power-single-machine td{display:block;text-align:left;padding:10px;min-width:0;white-space:normal}
.power-single-machine td:last-child{grid-column:1/-1}
.power-cell-label{display:block;margin-bottom:6px}
.power-single-machine .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:550px){.power-single-machine .form-grid{grid-template-columns:minmax(0,1fr)}}

.estimate-preview-table{width:100%;min-width:0;overflow:visible}
.estimate-preview-table .finance-table,.estimate-preview-table tbody{display:block;width:100%;min-width:0}
.estimate-preview-table thead{display:none}
.estimate-preview-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 0;border-top:1px solid var(--panel-border)}
.estimate-preview-table td{display:block;min-width:0;white-space:normal;overflow-wrap:anywhere;text-align:start;padding:0;border:0}
.estimate-preview-table td:first-child{grid-column:1/-1;font-weight:700;font-size:1.05rem}
.estimate-cell-label{display:block;margin-bottom:6px}
.estimate-preview-table button{margin-top:8px}
@media(max-width:550px){.estimate-preview-table tr{grid-template-columns:minmax(0,1fr)}}

/* Current values stay primary; month-end forecasts remain a separate caption. */
.finance-stamp {display:inline-flex;align-items:center;padding:3px 7px;border:1px solid currentColor;border-radius:5px;font-size:10px;font-weight:800;line-height:1.25;letter-spacing:.055em;white-space:nowrap;}
.finance-stamp.forecast {color:var(--yellow,#efb742);background:color-mix(in srgb,var(--yellow,#efb742) 8%,transparent);}
.finance-stamp.audited {color:var(--green,#62d6a6);background:color-mix(in srgb,var(--green,#62d6a6) 8%,transparent);}
.overview-kpis .kpi > span:first-child {display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.kpi .month-end-forecast {margin-top:12px;padding-top:9px;border-top:1px solid var(--panel-border);font-size:11px;}
.month-end-forecast > span,.month-end-forecast > b {display:block;}
.month-end-forecast > b {font-size:14px;color:var(--yellow,#efb742);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.month-end-forecast .forecast-basis {font-size:10px;margin-top:4px;}
.operating-cost-parts > span {min-width:0;}
/* Forecast captions use the same projected totals as the headline KPIs. */
.economic-comparison-heading {text-align:end;margin-bottom:4px;font-size:12px;color:var(--muted);}
.economic-results .economic-values {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:4px 8px;}
.economic-values > span,.economic-forecast {white-space:nowrap;}
.economic-results .economic-forecast {color:var(--text);font-size:11px;font-weight:400;font-variant-numeric:tabular-nums;}
.economic-results .operating-cost-parts {display:flex;margin-top:6px;gap:8px 18px;}
.operating-cost-parts .economic-forecast {font-size:10px;}
@media(max-width:640px){
 .economic-results > .metric-line {display:grid;grid-template-columns:minmax(0,1fr);gap:6px;}
 .economic-results .operating-cost-parts {display:grid;grid-template-columns:minmax(0,1fr);}
}
.cost-forecast-basis {display:block;margin-top:4px;font-size:10px;color:var(--muted);white-space:normal;}
.cost-forecast-basis .finance-stamp {font-size:9px;padding:2px 4px;}

.finance-page .finance-header {grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:16px;align-items:center;}
.finance-title-row {display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;}
.finance-title-row > div {min-width:0;}
.finance-header .finance-title-row .product-nav {margin:0;gap:6px;}
.finance-title-row .product-nav a {min-height:38px;}
.finance-page .month-control .finance-refresh-info {order:-1;gap:1px;}
.finance-page .month-control :is(#current-month,#month-status,#force-recalculate) {order:0;}
@media(max-width:1000px){
 .finance-page .finance-header {grid-template-columns:minmax(0,1fr);gap:12px;}
 .finance-page .finance-header .month-control {justify-content:flex-start;max-width:none;}
 .finance-page .finance-refresh-info {text-align:start;}
}
@media(max-width:540px){
 .finance-title-row {gap:8px;}
 .finance-header .finance-title-row .product-nav {width:100%;}
 .finance-title-row .product-nav a {min-height:38px;font-size:11px;padding:7px 9px;}
 .finance-header .month-control {gap:6px;}
 .finance-page .finance-refresh-info {display:flex;flex-wrap:wrap;gap:1px 10px;}
 .finance-refresh-info small {font-size:10px;}
}



@media(min-width:760px) and (max-width:1300px){
 .machine-inventory tbody {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
 .machine-inventory tr {grid-template-columns:repeat(6,minmax(0,1fr));padding:14px;gap:12px 10px;}
 .machine-inventory td:nth-child(n+3):not(:last-child) {grid-column:span 3;}
 .machine-inventory td:first-child {grid-column:1 / 4;}
 .machine-inventory td:nth-child(2) {grid-column:4 / 6;}
 .machine-inventory td:last-child {grid-column:6;}
}
.finance-header #dashboard-link {font-size:12px;}
@media(min-width:760px) and (max-width:1300px){
 .machine-inventory td:first-child {grid-column:1 / 5;}
 .machine-inventory td:nth-child(2) {grid-column:1 / -1;grid-row:2;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
 .machine-inventory td:nth-child(2) > div {display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
 .machine-inventory td:last-child {grid-column:5 / 7;grid-row:1;}
 .machine-inventory .machine-detail-button {white-space:nowrap;}
}

.finance-data-quality{display:flex;flex-direction:column;gap:.25rem;max-width:32rem;font-size:.85rem;line-height:1.4}.finance-data-quality small:empty{display:none}.finance-data-quality .warning{color:var(--warning,#f5bd56)}
@media(max-width:650px){.finance-data-quality{flex-basis:100%;text-align:left}.historical-preview{overflow-wrap:anywhere}}

/* Monthly comparison keeps sorting available when headers become mobile cards. */
.machine-profitability-controls {margin:0 0 16px;}
.machine-profitability-controls > label:first-child {flex:0 1 260px;}

/* Rack identity belongs to the billed cost, including in restricted/view-as statements. */
.client-monthly-costs .allocated-cost-rack {font-size:12px;font-weight:600;color:var(--blue);}
.client-monthly-costs .allocated-cost-cell-label {display:none;}
@media(max-width:850px){
 .allocated-cost-table {max-height:none;overflow:visible;}
 .allocated-cost-table .finance-table,.allocated-cost-table tbody {display:block;width:100%;min-width:0;}
 .allocated-cost-table thead {display:none;}
 .allocated-cost-table tr {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:16px 0;border-bottom:1px solid var(--panel-border);}
 .allocated-cost-table td {display:block;min-width:0;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;text-align:start;}
 .allocated-cost-table td:first-child {grid-column:1 / -1;}
 .allocated-cost-table td:nth-child(3) {grid-column:1 / -1;grid-row:3;}
 .allocated-cost-table td:last-child {grid-column:2;grid-row:2;text-align:end;}
 .client-monthly-costs .allocated-cost-cell-label {display:block;margin:0 0 4px;}
}

/* Payment forecast changes only this comparison, with current amounts as default. */
.payment-comparison-header {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.payment-comparison-header h3 {margin:0;}
.payment-view-controls {display:flex;flex-wrap:wrap;gap:6px;}
.payment-view-controls button {font-size:12px;}
.payment-view-controls button.active {border-color:var(--blue);background:var(--finance-hover);color:var(--blue);}
.payment-comparison-body > details {margin-top:1rem;}
.payment-forecast-notice {color:var(--yellow);}
.payment-forecast-notice[hidden] {display:none;}
@media(max-width:640px){
 .payment-view-controls {width:100%;}
 .payment-view-controls button {flex:1 1 130px;white-space:normal;}
}

/* Month-end comparisons remain secondary to current monthly amounts. */
.overview-comparison {display:inline-flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:4px 7px;}
.metric-line .overview-comparison {color:var(--text);}
.overview-comparison > span {white-space:nowrap;color:inherit;}
.overview-forecast {display:inline;color:var(--text);font-size:11px;font-weight:400;white-space:nowrap;font-variant-numeric:tabular-nums;}
.finance-table .overview-comparison .overview-forecast {display:inline;font-size:11px;color:var(--text);white-space:nowrap;margin:0;}
.revenue-components .metric-line {flex-wrap:wrap;gap:6px 10px;}
.operating-statement details > summary > .overview-comparison {vertical-align:baseline;}
.overview-forecast-note {font-size:12px;}
@media(max-width:640px){
 .operating-statement .metric-line {flex-wrap:wrap;gap:6px;}
 .operating-statement .metric-line > strong {margin-inline-start:auto;}
}

.fee-band-label {display:none;}
.operating-statement .finance-table {table-layout:fixed;}
.operating-statement .finance-table td {white-space:normal;overflow-wrap:anywhere;}
@media(max-width:640px){
 .fee-band-breakdown .finance-table,.fee-band-breakdown tbody {display:block;width:100%;}
 .fee-band-breakdown thead {display:none;}
 .fee-band-breakdown tr {display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px 0;border-bottom:1px solid var(--panel-border);}
 .fee-band-breakdown td {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;min-width:0;padding:0;border:0;white-space:normal;}
 .fee-band-breakdown .fee-band-label {display:block;color:var(--muted);font-size:11px;}
 .fee-band-breakdown .overview-comparison {margin-inline-start:auto;}
}

/* Keep the total aligned with the statement label, with a compact cost breakdown below. */
.economic-results > .operating-cost-line {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:10px 16px;}
.economic-results .operating-cost-line > span {display:block;}
.economic-results .operating-cost-line > .operating-cost-parts {grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 20px;margin:0;}
.cost-forecast-basis {display:flex;align-items:baseline;flex-wrap:wrap;gap:4px;line-height:1.4;}
@media(max-width:640px){
 .economic-results > .operating-cost-line {grid-template-columns:minmax(0,1fr);gap:8px;}
 .economic-results .operating-cost-line > .operating-cost-parts {grid-template-columns:minmax(0,1fr);gap:10px;}
}

/* Recipient payments keep current amounts prominent and month-end estimates underneath. */
.payment-comparison small.payment-amount-forecast {display:block;color:var(--text);font-size:11px;font-weight:400;line-height:1.4;margin-top:4px;font-variant-numeric:tabular-nums;}

/* Keep section headings visible while hiding their contents, like Dashboard. */
[data-finance-panel] > .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px 12px;
}
[data-finance-panel] > .section-heading > .section-actions { grid-column: 1 / -1; grid-row: 2; }
.finance-shell .finance-panel-toggle { grid-column: 2; grid-row: 1; font-size: 12px; white-space: nowrap; }
.finance-panel-hint { display: block; color: var(--finance-warning); font-size: 12px; margin-top: 4px; }
.finance-panel-hint[hidden] { display: none; }
.finance-shell .finance-panel-collapsed { align-self: start; cursor: pointer; }
.finance-panel-collapsed > :not(.section-heading),
.finance-panel-collapsed > .section-heading > .section-actions,
.finance-panel-collapsed > .section-heading > div > p { display: none !important; }
.finance-panel-collapsed > .section-heading { margin-bottom: 0; }
.finance-fee-mode > .section-heading h2 { font-size: 15px; }

/* Share content rows so values and forecast separators align without fixed heights. */
.monthly-kpis > .kpi {
  container-type: normal;
  display: grid;
  grid-row: span 3;
  grid-template-rows: subgrid;
  row-gap: 8px;
  padding: 16px;
}
.monthly-kpis:has(.month-end-forecast) > .kpi { grid-row: span 4; }
.monthly-kpis > .kpi > span:first-child { align-self: start; }
/* Contain the value width here: layout containment on the card disables subgrid. */
.monthly-kpi-value { container-type: inline-size; min-width: 0; align-self: start; }
.monthly-kpi-value > strong { margin: 0; line-height: 1.2; }
.monthly-kpis > .kpi > small { margin: 0; min-height: 0; align-self: start; }
.monthly-kpis .month-end-forecast { padding-top: 8px; }
.monthly-kpis:has(.month-end-forecast) { margin-bottom: 8px; }
.monthly-forecast-basis { margin: 0 0 16px; font-size: 11px; color: var(--muted); }

/* Stable workspace header: title, period/actions, status, then one tab row. */
.finance-page .finance-header {display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:14px 18px;margin-bottom:16px;}
.finance-header-heading {display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;}
.finance-header .finance-brand-title {min-width:0;font-size:24px;overflow-wrap:anywhere;}
.finance-header .product-nav {margin:0;padding:0;gap:6px;}
.finance-header .product-nav a {min-height:36px;padding:7px 10px;font-size:12px;}
.finance-page .finance-header .month-control {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;width:100%;max-width:none;}
.finance-period-controls,.finance-refresh-actions {display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0;}
.finance-header .finance-month-picker {display:grid;grid-template-columns:36px minmax(0,160px) 36px;gap:5px;min-width:0;}
.finance-header .finance-month-picker label {min-width:0;}
.finance-header .finance-month-picker select {width:100%;min-width:0;}
html[data-theme] .finance-page .finance-header .month-control :is(button,select) {box-sizing:border-box;height:36px;min-height:36px;margin:0;padding:7px 10px;font-size:12px;line-height:1.2;}
html[data-theme] .finance-header .finance-month-picker :is(#previous-month,#next-month) {width:36px;padding:0;font-size:20px;}
.finance-header #month-status {min-width:115px;}
.finance-refresh-actions .refresh-pause-control {display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;}
.finance-refresh-actions .refresh-pause-status {flex-basis:100%;text-align:end;font-size:11px;}
.finance-header-status {display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 16px;min-height:34px;}
.finance-review-controls {min-width:0;}
.finance-review-controls .finance-data-quality {max-width:none;text-align:start;font-size:12px;}
.finance-review-controls .finance-data-quality .warning {color:var(--finance-warning);}
.finance-page .finance-header-status .finance-refresh-info {display:grid;gap:1px;text-align:end;}
.finance-header-status .finance-refresh-info small {font-size:10px;line-height:1.4;}
.finance-page .finance-header .workspace-tabs {display:flex;flex-wrap:nowrap;overflow-x:auto;gap:3px;margin:0;padding:8px 0 0;border-top:1px solid var(--panel-border);scrollbar-width:thin;overflow-anchor:none;}
.finance-page .finance-header .workspace-tabs[hidden] {display:none;}
.finance-page .finance-header .workspace-tabs button {flex:0 0 auto;padding:7px 12px;font-size:13px;min-height:36px;}
#audit-account-review {display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--blue);border-radius:var(--finance-button-radius);padding:9px 12px;min-height:38px;text-decoration:none;}
@media(max-width:800px) {
 .finance-page .finance-header {padding:12px;gap:8px;}
 .finance-header-status {grid-template-columns:minmax(0,1fr);gap:6px;}
 .finance-page .finance-header-status .finance-refresh-info {display:grid;gap:2px;text-align:start;}
 .finance-refresh-actions .refresh-pause-status {text-align:start;}
 .finance-header .finance-brand-title {font-size:22px;}
}
@media(max-width:480px) {
 .finance-header-heading {gap:8px;}
 .finance-header .product-nav {width:auto;}
 .finance-header .product-nav a {min-height:32px;padding:6px 9px;}
 .finance-period-controls {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;gap:6px;}
 .finance-header .finance-month-picker {grid-column:1/-1;grid-template-columns:36px minmax(0,1fr) 36px;}
 .finance-period-controls>button {width:100%;min-width:0;}
 .finance-refresh-actions {display:flex;width:100%;align-items:stretch;}
 .finance-refresh-actions>#force-recalculate {flex:0 1 auto;}
 .finance-refresh-actions .refresh-pause-control {flex:1;min-width:0;}
 .finance-refresh-actions .refresh-pause-control>button {flex:1;}
 html[data-theme] .finance-page .finance-header .month-control button {height:auto;min-height:36px;}
 .finance-page .finance-header .workspace-tabs button {padding:7px 10px;font-size:12px;}
}

/* The preview period is separate from the rule's saved validity dates. */
.fee-preview-month { display: flex; align-items: center; gap: 5px; min-width: 0; }
.fee-preview-month input { width: 168px; min-width: 0; font-size: 13px; }
.fee-preview-month button { flex: 0 0 36px; width: 36px; padding: 0; font-size: 20px; }
.finance-page .fee-rule-actions > button,.finance-page .fee-preview-month :is(button,input) { height: 44px; min-height: 44px; box-sizing: border-box; }
@media(max-width:640px){
 dialog .fee-rule-actions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: stretch; gap: 8px; }
 .fee-rule-actions > [data-fee-preview],.fee-rule-actions > .fee-preview-month { grid-column: 1/-1; }
 .fee-preview-month input { flex: 1; width: 0; }
 .finance-page .fee-rule-actions > button { height: auto; min-height: 44px; white-space: normal; }
 .fee-rule-actions > .finance-save-progress { grid-column: 1/-1; }
}

.receipt-section {margin-top:20px;min-width:0;}
.receipt-section-heading {margin-bottom:14px;}
.receipt-section-heading h2 {font-size:17px;margin:0;}

/* Free-form labels stay compact and wrap even on narrow machine cards. */
.finance-tag-chips,.finance-tags-editor-list { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; min-width:0; margin:.4rem 0; }
.finance-tag-chip { display:inline-flex; gap:.35rem; align-items:center; max-width:100%; padding:.2rem .5rem; border:1px solid var(--panel-border); border-radius:999px; font-size:.78rem; overflow-wrap:anywhere; }
.finance-tag-chip span { min-width:0; }
.finance-tag-chip button { flex:none; padding:0 .3rem; border:0; background:transparent; min-height:28px; }
.finance-tags-editor-list { padding:.5rem 0; }
.finance-tag-chips button { font-size:.85rem; padding:.35rem .65rem; overflow-wrap:anywhere; }
.machine-tag-actions { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.machine-tag-actions button { font-size:.8rem; padding:.35rem .6rem; }
.finance-tags-add { justify-self:start; }

/* Task filters, search and bulk actions share a compact, aligned toolbar. */
.finance-task-toolbar {display:flex;align-items:flex-end;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:12px 0;}
.finance-task-toolbar .finance-task-filters {display:flex;gap:6px;flex:1 1 360px;margin:0;}
.finance-task-toolbar .finance-task-filters button {min-height:38px;padding:8px 12px;font-size:13px;}
.finance-task-search {flex:0 1 320px;min-width:220px;}
.finance-task-search label {display:grid;gap:5px;color:var(--muted);font-size:12px;}
.finance-task-search input {box-sizing:border-box;min-width:0;width:100%;height:38px;min-height:38px;padding:8px 10px;}
.finance-task-actions {display:flex;gap:6px;flex-wrap:wrap;margin:0;padding:0 0 14px;border-bottom:1px solid var(--panel-border);}
.finance-task-actions:empty {display:none;}
.finance-task-actions button {min-height:36px;padding:7px 10px;font-size:12px;}
.finance-task-list {margin-top:0;}
@media(max-width:680px){
 .finance-task-toolbar {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
 .finance-task-search {min-width:0;}
 .finance-task-actions button {flex:1 1 180px;}
 .finance-task-toolbar .finance-task-filters button {flex:1 1 auto;}
}

/* Inbox uses the same label-above-field pattern as other Billing filters. */
.invoice-inbox-filters {display:grid;grid-template-columns:minmax(220px,420px) minmax(200px,300px);align-items:end;gap:12px;margin:14px 0;}
.invoice-inbox-filters label {display:grid;gap:5px;color:var(--muted);font-size:12px;min-width:0;}
.invoice-inbox-filters :is(input,select) {box-sizing:border-box;width:100%;min-width:0;height:38px;min-height:38px;padding:8px 10px;font-size:13px;}
@media(max-width:680px){.invoice-inbox-filters {grid-template-columns:minmax(0,1fr);}}

@media(max-width:480px){
 .finance-header .finance-brand-title {font-size:clamp(18px,5.5vw,22px);}
 .finance-period-controls {grid-template-columns:max-content minmax(0,1fr);}
 .finance-header #month-status {white-space:nowrap;}
 .finance-page .finance-header .finance-refresh-actions {display:grid;grid-template-columns:auto minmax(0,1fr);}
 .finance-page .finance-header .finance-refresh-actions .refresh-pause-control {display:grid;grid-template-columns:minmax(0,1fr);}
 .finance-page .finance-header .finance-refresh-actions .refresh-pause-control.is-paused {grid-template-columns:repeat(2,minmax(0,1fr));}
 .finance-page .finance-header .finance-refresh-actions .refresh-pause-status {grid-column:1/-1;}
 .finance-page .finance-header .finance-refresh-actions button {white-space:normal;height:100%;}
}

/* Keep each original charge in place while changing its allocation. */
.invoice-setup-method { display:grid; gap:6px; margin:12px 0; }
.invoice-setup-method select, .invoice-setup-card select { width:100%; min-width:0; }
.invoice-shared-energy { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:10px 12px; margin:12px 0; border:1px solid var(--panel-border); border-radius:10px; }
.invoice-shared-energy p { flex:1 1 240px; margin:0; }
.invoice-shared-energy button { flex:0 1 auto; white-space:normal; }
@media(max-width:650px) { .invoice-setup-card { padding:12px; } .invoice-shared-energy button { width:100%; } }

.invoice-setup-controls { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); align-items:end; gap:12px; margin:10px 0; }
.invoice-setup-controls > label { display:grid; gap:6px; min-width:0; margin:0; font-size:.85rem; color:var(--muted); }
.invoice-setup-controls:empty { display:none; }

.invoice-setup-amount { white-space:nowrap; font-weight:700; font-variant-numeric:tabular-nums; }

/* Keep temporal confidence visible even on systems without color emoji fonts. */
.invoice-recipient-picker [data-invoice-timing] { border-inline-start: 3px solid transparent; }
[data-invoice-timing="exact"] { --invoice-timing-color: #169b68; }
[data-invoice-timing="nearby"] { --invoice-timing-color: #cf870b; }
[data-invoice-timing="outside"] { --invoice-timing-color: #df5353; }
.invoice-recipient-picker [data-invoice-timing] { border-inline-start-color: var(--invoice-timing-color, transparent); }
option[data-invoice-timing] { color: var(--invoice-timing-color); }

.finance-header .product-nav a {color:var(--product-gold);background:var(--surface-secondary);border:1px solid color-mix(in srgb,var(--product-gold) 65%,var(--border-subtle));border-radius:10px;padding:9px 14px;min-height:40px;display:inline-flex;align-items:center;}
.finance-header .product-nav a:hover {background:color-mix(in srgb,var(--product-gold) 10%,var(--surface-secondary));border-color:var(--product-gold);}
.finance-header .product-nav a[aria-current] {box-shadow:inset 0 -2px var(--product-gold);}
@media(max-width:600px){
 .finance-period-controls {display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:6px;}
 .finance-month-picker {width:100%;}
 .finance-period-controls #month-status {grid-row:2;max-width:100%;}
 .finance-header .product-nav {display:flex;flex-wrap:wrap;gap:6px;}
 .finance-header .product-nav a {padding:8px;font-size:.8rem;}
}

/* Explicit inventory layout; profitability tables keep their existing behavior. */
.machine-layout-toggle {display:flex;gap:3px;padding:3px;border:1px solid var(--panel-border);border-radius:10px;}
.machine-layout-toggle button {border:0;background:transparent;padding:8px 12px;color:var(--muted);}
.machine-layout-toggle button[aria-pressed="true"] {background:var(--finance-inset);color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);}
.machine-management.machine-detailed .finance-table {display:block;}
.machine-management.machine-detailed thead {display:none;}
.machine-management.machine-detailed tbody {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:12px;}
.machine-management.machine-detailed tr {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 10px;padding:14px;border:1px solid var(--panel-border);border-radius:12px;background:var(--finance-inset);}
.machine-management.machine-detailed td {display:block;width:auto;min-width:0;padding:0;border:0;text-align:start;}
.machine-management.machine-detailed td:first-child {grid-column:1 / 5;}
.machine-management.machine-detailed td:nth-child(2) {grid-column:1 / -1;grid-row:2;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.machine-management.machine-detailed td:nth-child(2) > div {display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.machine-management.machine-detailed td:nth-child(n+3):not(:last-child) {grid-column:span 3;}
.machine-management.machine-detailed td:last-child {grid-column:5 / 7;grid-row:1;justify-self:end;}
.machine-management.machine-detailed .machine-cell-label {display:block;margin:0 0 5px;color:var(--muted);font-size:11px;line-height:1.4;}
.machine-management.machine-detailed .machine-detail-button {white-space:nowrap;padding:7px 9px;}
.machine-management.machine-compact {overflow-x:auto;max-width:100%;}
.machine-management.machine-compact .finance-table {display:table;width:100%;min-width:1050px;table-layout:fixed;}
.machine-management.machine-compact thead {display:table-header-group;}
.machine-management.machine-compact tbody {display:table-row-group;}
.machine-management.machine-compact tr {display:table-row;padding:0;border-radius:0;background:transparent;}
.machine-management.machine-compact :is(td,th) {display:table-cell;width:auto;padding:7px 8px;font-size:12px;vertical-align:middle;text-align:start;border-bottom:1px solid var(--panel-border);}
.machine-management.machine-compact .machine-cell-label {display:none;}
.machine-management.machine-compact td:nth-child(2) > div {display:block;}
.machine-management.machine-compact .machine-identity > a {display:block;}
.machine-management.machine-compact .machine-identity > small:not(.machine-operating-age) {display:inline;}
.machine-management.machine-compact .machine-identity > small + small:not(.machine-operating-age)::before {content:' · ';}
.machine-management.machine-compact .machine-operating-age {display:block;font-size:10px;}
.machine-management.machine-compact .machine-detail-button {padding:4px 7px;font-size:11px;white-space:nowrap;}
.machine-management.machine-compact .machine-tag-actions {gap:3px;}
.machine-management.machine-compact .machine-tag-actions button {font-size:11px;padding:3px 6px;}
.machine-management.machine-compact th button {max-width:100%;}
.machine-management.machine-compact th:first-child {width:21%;}
.machine-management.machine-compact th:nth-child(2) {width:12%;}
.machine-management.machine-compact th:nth-child(n+3):nth-child(-n+6) {width:10%;}
.machine-management.machine-compact th:nth-child(7) {width:8%;}
.machine-management.machine-compact th:nth-child(8) {width:10%;}
.machine-management.machine-compact th:last-child {width:9%;}

/* Keep invoice selection controls outside the scrolling machine list. */
.invoice-selection-picker { min-width:0; max-width:100%; }
.invoice-picker-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0; }
.invoice-review .invoice-picker-toolbar > input { position:static; box-sizing:border-box; flex:1 1 240px; min-width:0; width:auto; max-width:100%; margin:0; }
.invoice-picker-toolbar > button { flex:0 0 auto; }
.invoice-selection-picker .invoice-recipient-picker { box-sizing:border-box; max-width:100%; max-height:300px; overflow:auto; }
.invoice-selection-picker .invoice-recipient-picker label { min-width:0; overflow-wrap:anywhere; }
.invoice-selection-picker .invoice-recipient-picker input[type=checkbox] { flex:0 0 auto; }

dialog .allocation-machine-label { display:flex; align-items:center; gap:10px; min-width:0; }
dialog .allocation-machine-label input[type=checkbox] { flex:0 0 auto; width:18px; height:18px; margin:0; }
dialog .allocation-machine-label span { min-width:0; overflow-wrap:anywhere; }

.invoice-review-tasks { border:1px solid var(--border-color, #344653); border-radius:12px; padding:16px; margin:16px 0; }
.invoice-review-task { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:12px 0; border-top:1px solid var(--border-color, #344653); }
.invoice-review-task > div { min-width:0; overflow-wrap:anywhere; }
.invoice-review-task p { margin:4px 0; }
.invoice-review-task button { flex-shrink:0; }
@media(max-width:640px){ .invoice-review-task { align-items:stretch; flex-direction:column; } }

.month-cost-sources { border:1px solid var(--border-color,#344653); border-radius:16px; padding:20px; margin:20px 0; }
.month-cost-source-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:12px; }
.month-cost-source-card { min-width:0; border:1px solid var(--border-color,#344653); border-radius:12px; padding:16px; overflow-wrap:anywhere; }
.month-cost-source-value { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin:8px 0; }
.month-cost-source-item { border-top:1px solid var(--border-color,#344653); padding:12px 0; }
.month-cost-source-item p { margin:4px 0; }
.month-cost-source-card details { margin-top:14px; }

.invoice-posted-items{display:grid;gap:1rem;min-width:0}
.invoice-posted-item{border:1px solid var(--border-color,#314857);border-radius:12px;padding:1rem;min-width:0;overflow-wrap:anywhere}
.invoice-posted-item h4{margin:0 0 .75rem}
.invoice-posted-cost{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1rem}
.invoice-posted-cost button{margin-left:auto;white-space:normal;max-width:100%}
@media(max-width:650px){.invoice-posted-cost{align-items:flex-start;flex-direction:column}.invoice-posted-cost button{margin-left:0}}

.finance-summary-heading {display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.finance-summary-heading h2 {margin:0;min-width:0;}
.finance-compact-totals {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;margin-top:14px;}
.finance-compact-totals > div {display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere;}
.finance-compact-totals span {color:var(--muted-text,#9fb4c0);font-size:.85rem;}
.month-cost-sources [hidden],.payment-comparison [hidden] {display:none!important;}
.payment-comparison-header {flex-wrap:wrap;gap:12px;}
.payment-comparison-header > h3 {margin-right:auto;}
.payment-comparison-header .payment-recipient-total {max-width:100%;overflow-wrap:anywhere;}
.finance-display-rate {padding:10px 14px;border:1px solid var(--border-color,#344653);border-radius:10px;overflow-wrap:anywhere;}
.machine-third-party {color:var(--danger-color,#ff9292);font-weight:600;font-size:.85em;white-space:normal;}
.machine-third-party-choice {border-left:3px solid var(--danger-color,#ff9292);padding-left:8px;}
[data-theme="light"] .machine-third-party {color:#b42332;}

.cost-source-amount {display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0;max-width:100%;}
.cost-source-forecast {display:block;color:var(--warning-color,#ffb547);font-size:.78rem;font-weight:500;overflow-wrap:anywhere;}
[data-theme="light"] .cost-source-forecast {color:#925b00;}

[data-cost-source-mode="forecast"] .month-cost-source-value strong,[data-cost-source-mode="forecast"] .finance-compact-totals strong {color:var(--warning-color,#ffb547);}

.month-document-control {display:inline-flex;align-items:center;gap:8px;}
.month-document-control[hidden] {display:none;}
button.month-document-ready {background:#146444;color:#fff;border-color:#258b62;}
button.month-document-pending:disabled {background:#4b371c;color:#ffd089;border-color:#a87935;opacity:1;cursor:not-allowed;}

.finance-document-dialog {width:min(520px,90vw);padding:24px;box-sizing:border-box;}
.finance-document-dialog label {display:flex;flex-direction:column;gap:8px;margin:14px 0;}

/* An estimate is distinct from missing evidence; keep the status text visible. */
.month-cost-sources .cost-estimate-status {font-weight:600;}
.month-cost-sources .cost-estimate-clear {color:var(--status-success,#68d5a5);}
.month-cost-sources .cost-estimate-present {color:var(--status-danger,#ff9b9f);}

.finance-document-months {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-height:190px;overflow:auto;}
.finance-document-dialog .finance-document-months label {flex-direction:row;align-items:center;gap:6px;margin:0;padding:5px;}
.finance-document-months input {width:auto;}
.finance-document-dialog {max-height:90vh;overflow:auto;}
@media(max-width:480px){.finance-document-months {grid-template-columns:repeat(2,minmax(0,1fr));}}
