/* Shared finance content, two authenticated navigation shells. */
.finance-report-format{width:min(26rem,calc(100vw - 32px));box-sizing:border-box;padding:24px;border:1px solid var(--fin-line);border-radius:8px;background:oklch(98% .006 240);color:var(--fin-ink)}
.finance-report-format::backdrop{background:oklch(21% .035 245 / .62)}
.finance-report-format h3{margin:0;font-size:1.25rem}
.finance-report-format p{font-size:.9rem;line-height:1.5;margin:12px 0 20px}
.finance-report-options{display:flex;gap:12px;margin-bottom:12px}
.finance-report-format button{padding:10px 16px;border:1px solid var(--fin-line);border-radius:5px;font:inherit;color:inherit;background:oklch(96% .008 240)}
.finance-report-options button{flex:1;font-weight:600}
.finance-report-format button:hover,.finance-report-format button:focus-visible{background:var(--fin-accent);border-color:var(--fin-accent);color:oklch(99% .005 240)}
#financials { --fin-ink:oklch(29% .055 245); --fin-line:oklch(83% .022 240); --fin-accent:oklch(48% .19 258); font-family:system-ui,-apple-system,"Segoe UI",sans-serif;min-width:0;color:var(--fin-ink) }
#financials [hidden],#financePagination[hidden],.dashboard-nav nav[hidden] {display:none!important}
.finance-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
#financials h2,#financials h3,#financials button,#financials input,#financials select {font-family:inherit}
#financials h2 {font-size:1.75rem;font-weight:700;letter-spacing:-.03em}
#financeNavigation {display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--fin-line);margin-bottom:24px}
#financeNavigation button {flex-shrink:0;border:0;border-bottom:2px solid transparent;background:transparent;padding:12px 16px;min-height:44px;font:inherit;color:inherit;cursor:pointer}
#financeNavigation button[aria-current=page] {color:var(--fin-accent);border-bottom-color:var(--fin-accent);font-weight:700}
.finance-filters {display:flex;align-items:end;flex-wrap:wrap;gap:16px}
.finance-filters label,.finance-search {display:grid;gap:6px;font-size:.875rem;font-weight:600}
#financials input,#financials select {max-width:100%;min-height:44px;border:1px solid var(--fin-line);border-radius:5px;background:oklch(99% .005 240);padding:8px 12px;color:var(--fin-ink)}
#financials button:not(.button) {min-height:44px;cursor:pointer}
#financials button:disabled {cursor:not-allowed;opacity:.5}
#financials :focus-visible,#financeNavigation button:focus-visible {outline:3px solid oklch(60% .15 255);outline-offset:3px}
.finance-help,.finance-section>p,.finance-month-summary>p {max-width:75ch;font-size:.875rem;line-height:1.65}
.finance-status {min-height:24px;margin:16px 0;color:var(--fin-ink)}
.finance-status.is-error,.finance-variance {color:oklch(43% .16 27);font-weight:600}
.finance-section[aria-busy=true] {opacity:.45;pointer-events:none}
.finance-section[data-load-failed=true]>* {visibility:hidden}
.finance-section {min-width:0}
.finance-section .dash-section-head h2 {font-size:1.2rem}
#financials .finance-snapshot-rows {display:block;margin-bottom:24px}
#financials .finance-snapshot-rows article {display:grid;grid-template-columns:1.1fr .8fr 1.5fr;align-items:center;gap:16px;padding:16px 0;min-height:0;height:auto;margin:0;background:transparent;border:0;border-bottom:1px solid var(--fin-line)}
#financials .finance-snapshot-rows article>span {font-size:.875rem}
#financials .finance-snapshot-rows strong {font:650 1.15rem/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0;margin:0}
#financials .finance-snapshot-rows small {margin:0}
.finance-scroll {overflow-x:auto;max-width:100%}
.finance-scroll table {width:100%;border-collapse:collapse;font-size:.875rem;min-width:720px}
.finance-scroll th,.finance-scroll td {text-align:left;padding:14px 12px;border-bottom:1px solid var(--fin-line);vertical-align:top}
.finance-scroll th {font-size:.75rem;font-weight:600}
.finance-scroll td small {display:block;overflow-wrap:anywhere;max-width:30ch;margin-top:4px}
.finance-search {max-width:480px;margin-bottom:16px}
.finance-month-summary {border-top:1px solid var(--fin-line);margin-top:32px;padding-top:24px}
.finance-month-summary dl {max-width:650px}
.finance-month-summary dl>div {display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--fin-line)}
.finance-month-summary dd {font-weight:650;margin:0}
#financeExpenseHistory {margin-top:24px;padding-top:24px;border-top:1px solid var(--fin-line);max-width:75ch;overflow-wrap:anywhere}
#financeExpenseHistory dl>div {display:grid;grid-template-columns:1fr 2fr;gap:12px;padding:8px 0;border-bottom:1px solid var(--fin-line)}
#financeExpenseHistory dd {margin:0}
#expenseLedgerBody [data-expense-history] {display:block;margin-top:4px;background:transparent;border:0;color:var(--fin-accent);text-align:left}
.finance-pagination {display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-top:20px}
.finance-supplier-invoices {border-bottom:1px solid var(--fin-line);padding-bottom:24px;margin-bottom:28px}
.finance-supplier-review {width:min(720px,calc(100vw - 24px));max-height:min(90vh,900px);padding:24px;border:1px solid var(--fin-line);border-radius:8px;color:var(--fin-ink);background:oklch(99% .005 240);overflow:auto}
.finance-supplier-review::backdrop {background:oklch(21% .035 245 / .62)}
.finance-review-heading {display:flex;align-items:start;justify-content:space-between;gap:18px}
.finance-review-heading h3 {margin:0}
.finance-review-key {font-size:.8rem;overflow-wrap:anywhere}
.finance-review-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.finance-review-help,.finance-review-hold {font-size:.83rem;line-height:1.5}
.finance-review-actions {display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.finance-review-actions button {padding:10px 16px;border:1px solid var(--fin-line);border-radius:5px;background:transparent;color:var(--fin-ink)}
.finance-review-actions [type=submit] {border-color:var(--fin-accent);background:var(--fin-accent);color:oklch(99% .005 240);font-weight:650}
.finance-review-actions [type=submit]:hover {filter:brightness(.92)}
.finance-supplier-review details {border-top:1px solid var(--fin-line);padding-top:10px}
.finance-supplier-review summary {cursor:pointer}
.finance-supplier-review code {overflow-wrap:anywhere}
.finance-supplier-review form {display:grid;gap:14px}
.finance-supplier-review label {display:grid;gap:6px;font-size:.875rem}
.finance-supplier-review input,.finance-supplier-review select {min-width:0;width:100%;padding:9px;border:1px solid var(--fin-line);border-radius:5px}
.finance-supplier-review .finance-supplier-confirm {display:flex;align-items:center}
.finance-supplier-review .finance-supplier-confirm input {width:auto}
@media(max-width:600px){.finance-review-fields{grid-template-columns:1fr}.finance-supplier-review{padding:16px}}
.finance-ledger-totals {max-width:720px;margin-top:18px;font-size:.875rem}
.finance-income-totals,.finance-ledger-totals {max-width:780px;margin:0 0 26px;padding:16px 0;border-top:1px solid var(--fin-line);border-bottom:1px solid var(--fin-line)}
.finance-income-totals h3,.finance-ledger-totals h3 {margin:0 0 12px;font-size:1.1rem}
.finance-income-totals dl,.finance-ledger-totals dl {margin:0}
.finance-income-totals dl>div,.finance-ledger-totals dl>div {display:flex;justify-content:space-between;gap:20px;padding:8px 0}
.finance-income-totals dd,.finance-ledger-totals dd {margin:0;font-weight:650;text-align:right;font-variant-numeric:tabular-nums}
.finance-income-totals p,.finance-ledger-totals p {max-width:70ch;font-size:.8rem;line-height:1.5}
.finance-upload-dialog {width:min(920px,calc(100vw - 24px));max-height:min(90vh,900px);padding:18px;border:1px solid var(--fin-line);border-radius:8px;color:var(--fin-ink);background:oklch(98% .006 240);overflow:auto}
.finance-upload-dialog::backdrop {background:oklch(21% .035 245 / .62)}
.finance-upload-dialog .expense-intake {margin:0;border:0;padding:6px;background:transparent}
.finance-dialog-close {display:block;margin:0 0 12px auto;padding:8px 14px;border:1px solid var(--fin-line);border-radius:5px;background:transparent;color:var(--fin-ink);cursor:pointer}
#financeIncomeDocument:not([hidden]) {max-width:480px;margin:24px 0;padding:20px;border:1px solid var(--fin-line);border-radius:6px;background:oklch(99% .005 240)}
.finance-receipt-heading {display:flex;justify-content:space-between;gap:20px;align-items:start}
.finance-receipt-heading p {margin:0;font-size:.75rem}
#financeIncomeDocument table {width:100%;border-collapse:collapse;font-size:.875rem}
#financeIncomeDocument td,#financeIncomeDocument th {padding:7px 0;border-bottom:1px solid var(--fin-line);text-align:left}
#financeIncomeDocument td:last-child,#financeIncomeDocument th:last-child {text-align:right}
#financeIncomeDocument dl>div {display:flex;justify-content:space-between;gap:12px;padding:5px 0}
#financeIncomeDocument dd {margin:0;font-weight:650;font-variant-numeric:tabular-nums}
#finance-expenses .expense-ledger table {min-width:420px;font-size:.875rem}
.finance-export-list {display:flex;align-items:flex-start;flex-direction:column;gap:12px;margin:24px 0}
.finance-export-list button,.finance-filters>button,.finance-pagination button,.finance-scroll button,.finance-month-summary button {padding:10px 16px;border:1px solid var(--fin-line);border-radius:5px;background:oklch(99% .005 240);color:var(--fin-ink)}
[data-dashboard-role=accountant] .dash-panel:not(#financials),[data-dashboard-role=accountant] .dashboard-nav>.dash-exit {display:none!important}
.dashboard:has(#financials.active) .dash-header h1 {display:none}
.dashboard:has(#financials.active) .dash-header {margin-bottom:24px}
[data-dashboard-role=accountant] .dashboard-nav #financeNavigation {flex-direction:column;border:0;margin:28px 0;color:oklch(97% .01 240);width:100%}
[data-dashboard-role=accountant] #financeNavigation button {text-align:left;white-space:normal;border:0;border-radius:5px;margin:2px 12px}
[data-dashboard-role=accountant] #financeNavigation button[aria-current=page] {background:oklch(37% .055 245);color:oklch(97% .01 240)}
@media(max-width:800px) {
  .finance-heading{align-items:start}.finance-heading h2{font-size:1.4rem!important}
  .finance-filters label{min-width:0;flex:1 1 150px}
  .finance-filters input,.finance-filters select{width:100%}
  #financials .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  [data-dashboard-role=accountant] .dashboard-nav #financeNavigation{flex-direction:row;overflow-x:auto;margin:0}
  [data-dashboard-role=accountant] #financeNavigation button{margin:0;white-space:nowrap}
}
@media(max-width:460px){.finance-heading{flex-direction:column}#financials .finance-snapshot-rows article{grid-template-columns:1fr auto;gap:6px}#financials .finance-snapshot-rows small{grid-column:1/-1}.finance-pagination{justify-content:space-between;gap:8px}}
@media(max-width:600px){.finance-upload-dialog .expense-intake{grid-template-columns:1fr}.finance-income-totals dl>div,.finance-ledger-totals dl>div{align-items:start}}
.finance-supplier-pdf{width:min(1120px,calc(100vw - 24px));height:90dvh;max-height:960px;padding:20px;border:1px solid var(--fin-line);border-radius:8px;color:var(--fin-ink);background:oklch(98% .006 240);overflow:auto}
.finance-supplier-pdf[open]{display:flex;flex-direction:column;gap:12px}
.finance-supplier-pdf::backdrop{background:oklch(21% .035 245 / .62)}
.finance-supplier-pdf header,.finance-pdf-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.finance-supplier-pdf h3{margin:0;font-size:1.25rem}
.finance-supplier-pdf p{margin:4px 0;font-size:.9rem;overflow-wrap:anywhere}
.finance-supplier-pdf header>div{min-width:0}
.finance-supplier-pdf button{min-height:44px;flex-shrink:0;padding:8px 16px;font:inherit;font-weight:600;color:inherit;border:1px solid var(--fin-line);border-radius:4px;background:oklch(95% .008 240);cursor:pointer}
.finance-supplier-pdf button:hover{background:oklch(91% .015 240)}
.finance-supplier-pdf :is(button,a):focus-visible{outline:2px solid oklch(45% .16 255);outline-offset:3px}
.finance-pdf-toolbar{align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--fin-line);padding-bottom:10px}
.finance-pdf-toolbar a{color:var(--fin-accent,oklch(45% .16 255));text-decoration:underline;min-height:44px;align-content:center}
.finance-supplier-pdf iframe{width:100%;flex:1;min-height:240px;border:1px solid var(--fin-line);background:oklch(93% .006 240)}
.finance-supplier-pdf [hidden]{display:none!important}
.finance-supplier-pdf header{flex-wrap:wrap}
.finance-supplier-pdf [data-pdf-actions]{flex:0 0 100%;max-height:40dvh;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,11.5rem));gap:.65rem;align-items:start}
.finance-supplier-pdf [data-pdf-actions]>p{grid-column:1/-1;margin:0}
.finance-supplier-pdf [data-pdf-actions]>p:empty{display:none}
.finance-supplier-pdf [data-pdf-actions] details{min-width:0}
.finance-supplier-pdf [data-pdf-actions] summary{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:100%;height:3rem;cursor:pointer;padding:.35rem .65rem;border:1px solid var(--fin-line);border-radius:6px;font-size:.8125rem;font-weight:600;line-height:1.2;text-align:center;list-style:none;transition:background-color 150ms ease-out,color 150ms ease-out,border-color 150ms ease-out}
.finance-supplier-pdf [data-pdf-actions] summary:hover,.finance-supplier-pdf [data-pdf-actions] summary:focus-visible{background:#155ec8;border-color:#155ec8;color:#fff}
.finance-supplier-pdf [data-pdf-actions] summary:focus-visible{outline:2px solid var(--fin-accent);outline-offset:2px}
.finance-supplier-pdf [data-pdf-actions] form{display:grid;gap:.6rem;padding-block:.75rem}
.finance-supplier-pdf [data-pdf-actions] label{display:grid;gap:.35rem}
.finance-supplier-pdf [data-pdf-actions] textarea{font:inherit;min-height:4rem;width:100%}
.finance-supplier-pdf [data-invoice-image]{min-height:0;flex:1;width:100%;object-fit:contain}
@media(max-width:600px){.finance-supplier-pdf{padding:12px;height:94dvh}.finance-supplier-pdf header{gap:8px}.finance-pdf-toolbar{gap:4px}}

.finance-exclude { margin-top: .75rem; min-width: 12rem; }
.finance-exclude summary { cursor: pointer; text-decoration: underline; }
.finance-exclude form { display: grid; gap: .65rem; padding-block: .75rem; max-width: 28rem; }
.finance-exclude p { white-space: normal; font-size: .85rem; }
.finance-exclude label { display: grid; gap: .35rem; }
.finance-exclude textarea { width: 100%; min-height: 5rem; font: inherit; }

.finance-closing-total { margin-top: 1.5rem; padding-block: 1.25rem; border-block: 1px solid oklch(85% .015 245); }
.finance-closing-total p { display: flex; justify-content: space-between; gap: 1rem; margin-block: .75rem; }
.finance-closing-result { font-size: 1.2rem; padding-top: .75rem; border-top: 1px solid oklch(85% .015 245); }
.finance-closing-total strong { font-variant-numeric: tabular-nums; white-space: nowrap; }

#tillReportBody .till-report-columns { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
#tillReportBody .till-report-columns > section { border: 0; border-radius: 0; padding: 0; background: transparent; }
#tillReportBody .till-report-columns > section:last-child { grid-column: 1 / -1; }
#tillReportBody .till-report-columns dt, #tillReportBody .till-report-columns dd { font-size: .95rem; }
#tillReportBody .till-report-columns h3 { font-size: 1.05rem; text-transform: none; letter-spacing: 0; }
#tillReportBody .till-report-columns dl > div { padding-block: .65rem; }
#tillReportBody .till-report-columns dl > div:last-child { font-weight: 700; }
#tillReportBody .finance-closing-total { margin: 1.5rem 1.75rem; }
@media(max-width:600px) {
  #tillReportBody .till-report-columns { grid-template-columns: minmax(0,1fr); }
  #tillReportBody .finance-closing-total { margin-inline: 1.125rem; }
  .finance-closing-total p { flex-wrap: wrap; }
}
