.finance-page { --fin-line: #dce4e8; --fin-muted: #5d6a72; --fin-green: #187445; --fin-red: #a32635; color: #1c2931; max-width: 1600px; margin-inline: auto; letter-spacing: 0; }
.finance-page *, .fin-dialog * { box-sizing: border-box; }
.finance-page [hidden] { display: none !important; }
.finance-page button, .finance-page input, .finance-page select, .finance-page textarea { font: inherit; letter-spacing: 0; }
.finance-page input:not([type="range"]):not([type="checkbox"]), .finance-page select, .finance-page textarea { width: 100%; min-width: 0; min-height: 44px; border: 1px solid #bccbd2; border-radius: 6px; padding: 9px 12px; background: white; color: #1c2931; font-size: 16px; font-weight: 400; }
.finance-page label { display: block; margin: 0; font-size: 13px; font-weight: 600; }
.finance-page label > input, .finance-page label > select, .finance-page label > textarea { margin-top: 5px; }
.finance-page button:focus-visible, .finance-page input:focus-visible, .finance-page select:focus-visible, .finance-page textarea:focus-visible, .fin-product-scroll:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.finance-page .btn { min-height: 44px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; white-space: normal; font-size: 14px; }
.finance-page .btn-primary { background: #187445; border-color: #187445; }
.finance-page .btn-primary:hover { background: #125c36; }
.finance-page .btn-outline-primary { color: #16673e; border-color: #b1cfc0; background: white; }
.finance-page .btn-outline-primary:hover { background: #eaf4ed; }
.fin-toolbar { display: flex; align-items: end; gap: 16px; flex-wrap: wrap; padding: 0 0 20px; }
.fin-period { width: 240px; flex: 0 0 auto; }
.fin-period > div { display: grid; grid-template-columns: 36px minmax(0, 1fr) 36px; align-items: center; gap: 4px; margin-top: 5px; }
.finance-page .fin-period input { padding-inline: 8px; }
.fin-scope { flex: 1 1 220px; max-width: 420px; }
.fin-scope select { margin-top: 5px; }
.fin-primary-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.fin-icon { border: 1px solid transparent; border-radius: 6px; background: transparent; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 44px; flex: 0 0 40px; padding: 0; color: #526570; }
.fin-icon:hover { border-color: #c5d6dc; background: #edf3f5; color: #183c49; }
.fin-icon:disabled { opacity: .45; }
.fin-period .fin-icon { width: 36px; flex-basis: 36px; }
.fin-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--fin-line); gap: 4px 24px; margin-bottom: 20px; }
.fin-tabs button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 12px 2px; color: #65747c; font-weight: 600; font-size: 15px; }
.fin-tabs button[aria-pressed="true"] { color: #17643c; border-bottom-color: #187445; }
.fin-summary, .fin-statement { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding: 8px 0 24px; border-bottom: 1px solid var(--fin-line); margin-bottom: 24px; }
.fin-statement { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fin-result-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 28px; padding: 16px 0 20px; margin-bottom: 24px; border-bottom: 1px solid var(--fin-line); }
.fin-result-overview .fin-stat > strong { font-size: 32px; }
.fin-result-overview .fin-stat.fin-overview-secondary > strong { font-size: 24px; color: #1c2931; }
.fin-result-status { grid-column: 1 / -1; margin: 0; font-size: 14px; line-height: 1.5; }
.fin-result-status p { margin: 4px 0 0; }
.fin-result-status .fin-muted { font-size: 13px; }
.fin-result-positive .fin-stat > strong { color: var(--fin-green); }
.fin-result-loss .fin-stat > strong { color: var(--fin-red); }
.fin-result-provisional .fin-stat > strong, .fin-provisional > strong { color: #855919; }
.fin-erp-status { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px 12px; padding: 12px 16px; margin-bottom: 20px; border-left: 3px solid #5b879c; background: #edf4f7; color: #234958; font-size: 14px; line-height: 1.5; }
.fin-erp-status.fin-error { border-color: #b74350; background: #fcf0f1; color: #8b2734; }
.fin-erp-status-icon { display: flex; flex: 0 0 20px; padding-top: 2px; }
.fin-erp-status-content { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
.fin-erp-status-content > strong { display: block; font-size: 15px; }
.fin-erp-status-content > p { margin: 4px 0 0; }
.fin-erp-status-note { color: var(--fin-muted); font-size: 13px; }
.fin-erp-status > .btn { flex: 0 0 auto; max-width: 100%; background: white; border-color: #c4cdd2; color: #334f5e; }
.fin-erp-status > .btn svg { flex-shrink: 0; }
.fin-erp-status-loading > .fin-erp-status-icon svg { animation: fin-erp-spin 1.5s linear infinite; }
@keyframes fin-erp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .fin-erp-status-loading > .fin-erp-status-icon svg { animation: none; } }
@media (max-width: 380px) { .fin-erp-status { padding: 12px; } .fin-erp-status-content { flex-basis: 180px; } }
.fin-stat { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.fin-stat > span { font-size: 13px; color: var(--fin-muted); }
.fin-stat > strong { font-size: 24px; line-height: 1.25; font-weight: 700; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.fin-stat > small { color: var(--fin-muted); font-size: 12px; line-height: 1.5; }
.fin-positive > strong { color: var(--fin-green); }
.fin-loss > strong { color: var(--fin-red); }
.fin-expense-layout { display: grid; grid-template-columns: minmax(0, 1fr) 384px; gap: 32px; }
.fin-expense-total strong { color: #234958; }
.fin-expense-context { border-left: 3px solid #b99852; padding: 0 0 0 12px; margin: 0 0 24px; color: #72551d; font-size: 13px; }
.fin-expense-context p { margin: 4px 0; }
.fin-expense-context strong { font-variant-numeric: tabular-nums; white-space: nowrap; }
.fin-cash-breakdown { padding-bottom: 20px; border-bottom: 1px solid var(--fin-line); }
.fin-cash-breakdown > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 20px; flex-wrap: wrap; margin-bottom: 8px; }
.fin-cash-breakdown h2 { margin: 0; }
.fin-cash-breakdown dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; margin: 0; }
.fin-cash-breakdown dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 4px 16px; flex-wrap: wrap; padding: 10px 0; border-bottom: 1px solid var(--fin-line); }
.fin-cash-breakdown dt { font-size: 14px; color: var(--fin-muted); font-weight: 400; }
.fin-cash-breakdown dd { margin: 0 0 0 auto; font-size: 16px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fin-cash-breakdown > p { font-size: 12px; margin: 12px 0 0; }
.fin-source-documents { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--fin-line); }
.fin-source-documents h2 { margin-bottom: 8px; }
.fin-writeoffs { margin: 28px 0 20px; padding: 16px; border-left: 3px solid #6d91a4; background: #eaf1f5; min-width: 0; max-width: 680px; }
.fin-writeoff-title { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 12px; }
.finance-page .fin-writeoffs h2 { font-size: 16px; margin: 0 0 3px; }
.fin-writeoff-kicker { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; color: #3f6275; line-height: 1.5; }
.fin-writeoff-kicker svg { flex: 0 0 16px; width: 16px; height: 16px; }
.fin-writeoffs .fin-writeoff-basis { margin: 4px 0 0; font-size: 12px; color: #3f6275; line-height: 1.5; }
.finance-page .fin-writeoff-status { margin: 16px 0 0; font-size: 13px; font-weight: 600; color: #465b67; }
.fin-writeoff-meta, .fin-writeoff-note { font-size: 12px; color: var(--fin-muted); line-height: 1.5; }
.fin-writeoff-valuations { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; margin: 12px 0 0; }
.fin-writeoff-valuations > div { min-width: 0; }
.fin-writeoff-valuations dt { font-size: 12px; font-weight: 400; color: var(--fin-muted); }
.fin-writeoff-valuations dd { margin: 4px 0 0; }
.fin-writeoff-valuations strong { display: block; font-size: 22px; font-variant-numeric: tabular-nums; line-height: 1.35; overflow-wrap: anywhere; }
.fin-writeoff-valuations small { display: block; font-size: 12px; color: #855919; margin-top: 4px; }
.fin-writeoffs p { margin: 8px 0 0; }
.fin-writeoff-warning { color: #855919; font-size: 13px; }
.fin-writeoff-details { margin-top: 8px; }
.fin-writeoff-details > summary { min-height: 44px; padding: 10px 0; font-size: 14px; cursor: pointer; color: #234958; font-weight: 600; }
.fin-writeoff-details > summary:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.fin-writeoff-details > p:not([class]) { font-size: 13px; }
.finance-page .fin-writeoff-link { display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 6px 0; text-align: left; border: 0; background: none; color: #234958; font-size: 13px; }
.finance-page .fin-writeoff-link.fin-writeoff-warning { color: #855919; }
.fin-writeoff-link svg, .fin-writeoff-pending svg { flex-shrink: 0; }
.fin-writeoff-pending-group { border-block: 1px solid #cbd9e1; padding: 8px 0 12px; margin-top: 8px; }
.finance-page .fin-writeoff-pending { display: grid; grid-template-columns: minmax(0, 1fr) 18px; gap: 8px 16px; align-items: center; width: 100%; min-height: 44px; padding: 2px 0; background: none; border: 0; text-align: left; color: #5d6a72; font-size: 14px; }
.fin-writeoff-pending small { display: block; font-size: 12px; font-weight: 400; margin-top: 4px; }
.fin-writeoff-pending-group .fin-writeoff-valuations strong { font-size: 18px; }
.fin-writeoff-pending:hover, .fin-writeoff-link:hover { text-decoration: underline; }
.fin-writeoffs-compact { grid-column: 1 / -1; }
.fin-writeoffs-compact .fin-writeoff-valuations { gap: 8px 12px; }
.fin-writeoffs-compact .fin-writeoff-valuations strong { font-size: 16px; }
.fin-source-documents .fin-definitions { margin-top: 0; padding-top: 12px; }
.fin-source-documents .fin-tax-panel { margin-bottom: 12px; border: 0; }
.fin-definitions > summary { min-height: 32px; }
.fin-definitions > summary:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.fin-ledger { min-width: 0; }
.fin-filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin-bottom: 16px; }
.fin-filters label { flex: 1 1 180px; }
.fin-filters .fin-search { flex-basis: 210px; }
.finance-page h2 { font-size: 18px; line-height: 1.4; margin: 0 0 20px; }
.finance-page h3 { font-size: 18px; }
.fin-categories { min-width: 0; border-left: 1px solid var(--fin-line); padding-left: 24px; }
.finance-page .fin-categories h2 { margin-bottom: 8px; font-size: 17px; font-weight: 600; }
.fin-tax-panel { border-bottom: 1px solid var(--fin-line); padding-bottom: 16px; margin: 0 0 24px; }
.fin-tax-panel > header, .fin-store-report > header { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; }
.fin-tax-panel h2, .fin-store-report h2 { margin-bottom: 12px; }
.fin-tax-panel > header { max-width: 680px; }
.fin-tax-panel dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; max-width: 680px; margin-bottom: 12px; }
.fin-tax-panel dt, .fin-store-result dt { font-size: 13px; color: var(--fin-muted); font-weight: 400; }
.fin-tax-panel dd { font-size: 20px; font-weight: 650; font-variant-numeric: tabular-nums; margin: 4px 0 0; }
.fin-tax-panel .fin-definitions { padding: 0; margin: 0; border: 0; }
.fin-store-report { margin: 28px 0; }
.fin-store-results { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
.fin-store-result { min-width: 0; border: 1px solid var(--fin-line); border-radius: 8px; padding: 16px 20px; background: white; }
.fin-store-result > header { margin-bottom: 16px; }
.finance-page .fin-store-result h3 { font-size: 17px; margin: 0; }
.fin-store-open { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; width: 100%; text-align: left; font-weight: 650; padding: 0; border: 0; background: transparent; color: #234958; }
.fin-store-open span { min-width: 0; overflow-wrap: anywhere; }
.fin-store-open svg { flex: 0 0 18px; color: #5d7884; }
.fin-store-open:hover span { text-decoration: underline; }
.fin-store-result dl { margin: 0; }
.fin-store-result dd { font-size: 16px; font-weight: 600; margin: 3px 0 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.fin-store-key-metrics { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px 24px; }
.fin-store-key-metrics > div { min-width: 0; }
.fin-store-key-metrics dd { font-size: 24px; margin-top: 6px; line-height: 1.3; }
.fin-store-margin { text-align: right; }
.fin-store-positive .fin-store-profit dd { color: var(--fin-green); }
.fin-store-loss .fin-store-profit dd { color: var(--fin-red); }
.fin-store-pending .fin-store-profit dd { color: #855919; }
.fin-store-basis { margin: 8px 0 0; font-size: 12px; color: var(--fin-muted); }
.fin-store-result .fin-store-revenue { border-top: 1px solid var(--fin-line); padding: 12px 0 0; margin-top: 16px; }
.fin-store-revenue > div, .fin-store-costs dl > div { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; }
.fin-store-revenue dd, .fin-store-costs dd { margin: 0 0 0 auto; text-align: right; }
.fin-store-revenue dt { font-size: 14px; }
.fin-store-costs > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 44px; padding: 8px 0; list-style: none; cursor: pointer; font-size: 14px; }
.fin-store-costs > summary > span { display: flex; gap: 8px; align-items: center; }
.fin-store-costs > summary svg { flex: 0 0 18px; }
.fin-store-costs > summary::-webkit-details-marker { display: none; }
.fin-store-costs > summary strong { font-size: 16px; font-variant-numeric: tabular-nums; text-align: right; }
.fin-store-costs[open] > summary svg { transform: rotate(180deg); }
.fin-store-costs > summary:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.fin-store-costs dl { display: grid; gap: 10px; border-top: 1px solid var(--fin-line); padding: 12px 0 4px; }
.fin-store-costs dd { font-size: 14px; }
.fin-store-warning { margin: 10px 0 0; color: #855919; font-size: 13px; }
.fin-store-common { border-left: 3px solid #b99852; padding: 4px 0 4px 14px; margin: 0 0 20px; }
.fin-store-common > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; }
.fin-store-common strong { font-size: 16px; font-variant-numeric: tabular-nums; }
.fin-store-common p { font-size: 13px; color: var(--fin-muted); margin: 6px 0 0; }
.fin-loss-text { color: var(--fin-red); }
.fin-scenario-tax { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 12px 0 0; }
.fin-scenario-tax dt { color: var(--fin-muted); font-size: 12px; }
.fin-scenario-tax dd { margin: 2px 0 0; font-size: 14px; font-variant-numeric: tabular-nums; }
@media (max-width: 820px) { .fin-store-results { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 440px) {
  .fin-tax-panel dd { font-size: 16px; }
  .fin-store-result { padding: 12px 14px; }
  .fin-store-key-metrics { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .fin-store-margin { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; text-align: left; }
  .fin-store-margin dd { margin: 0; font-size: 18px; }
}
.fin-category-total { min-width: 0; border-bottom: 1px solid var(--fin-line); }
.fin-category-main { display: grid; grid-template-columns: minmax(0, 1fr) auto 16px; align-items: center; gap: 8px; width: 100%; min-height: 44px; padding: 8px 0; font-size: 14px; line-height: 1.4; text-align: left; }
.finance-page button.fin-category-main { border: 0; border-radius: 0; background: transparent; color: inherit; font-size: 14px; cursor: pointer; }
.finance-page button.fin-category-main:hover { background: #eaf0f3; }
.fin-category-name { min-width: 0; overflow-wrap: anywhere; }
.fin-category-main strong { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; text-align: right; }
.fin-category-marker { display: flex; align-items: center; justify-content: center; color: #69808d; }
.fin-category-marker svg { width: 16px; height: 16px; }
.fin-category-sources { margin: 0 24px 4px 0; padding-left: 10px; border-left: 2px solid #d6be89; font-size: 12px; line-height: 1.4; color: var(--fin-muted); }
.fin-category-sources > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 24px; }
.fin-category-sources dt { min-width: 0; font-weight: 400; }
.fin-category-sources dd { margin: 0; white-space: nowrap; font-variant-numeric: tabular-nums; }
.finance-page .fin-category-link { display: inline-flex; align-items: center; gap: 4px; min-height: 28px; padding: 0; border: 0; background: transparent; color: #31758b; font: inherit; text-align: left; cursor: pointer; }
.fin-category-link:hover { text-decoration: underline; }
.fin-category-link svg { flex: 0 0 14px; width: 14px; height: 14px; }
.fin-category-overlap { display: flex; align-items: center; gap: 5px; margin: 4px 0 10px; color: #855919; font-size: 12px; line-height: 1.4; }
.fin-category-overlap svg { flex: 0 0 14px; width: 14px; height: 14px; }
.fin-category-grand-total { grid-column: 1 / -1; margin-top: 10px; padding: 12px 0; border-top: 2px solid #8aaf9e; background: #e7f0eb; font-weight: 600; }
.fin-category-grand-total strong { font-size: 16px; font-weight: 700; color: #234958; }
.fin-source-warning { display: flex; gap: 10px; margin: 12px 0 0; padding: 8px 0; color: #755016; font-size: 13px; line-height: 1.5; }
.fin-source-warning > svg { flex: 0 0 18px; margin-top: 1px; }
.fin-source-warning > div { min-width: 0; }
.fin-source-warning p { margin: 3px 0; }
.fin-source-warning .fin-reset { min-height: 32px; text-align: left; }
.finance-page table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; }
.finance-page th { font-size: 12px; color: var(--fin-muted); padding: 12px 8px; text-align: left; background: #eef3f5; font-weight: 600; }
.finance-page td { padding: 14px 8px; border-bottom: 1px solid var(--fin-line); vertical-align: middle; overflow-wrap: anywhere; }
.finance-page td small, .fin-description > span { display: block; font-size: 12px; color: var(--fin-muted); margin-top: 4px; }
.fin-description > strong { font-weight: 600; }
.fin-table thead th:first-child { width: 110px; }
.fin-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
.fin-table thead th:nth-child(3) { width: 18%; }
.fin-table thead th:nth-child(4) { width: 180px; }
.fin-table thead th:last-child { width: 126px; }
.finance-page .fin-number, .finance-page .fin-amount { text-align: right; }
.fin-amount { font-weight: 650; font-variant-numeric: tabular-nums; }
.fin-actions { white-space: nowrap; }
.finance-page .fin-actions { padding-inline: 2px; }
.fin-actions .fin-icon { width: 40px; height: 40px; }
.fin-table .fin-add-row > td { padding: 12px 8px; border-bottom: 0; }
.fin-add-expense { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid #b1cfc0; border-radius: 6px; color: #16673e; background: #eaf4ed; }
.fin-add-expense svg { flex: 0 0 20px; }
.fin-add-expense:hover:not(:disabled) { background: #d5ebdd; border-color: #187445; }
.fin-add-expense:disabled { opacity: .45; }
.fin-table tfoot th, .fin-table tfoot td { padding: 14px 8px; border-bottom: 0; background: transparent; font-size: 14px; color: inherit; }
.fin-table .fin-filter-total { color: var(--fin-muted); }
.fin-table .fin-manual-total { border-top: 2px solid #b5c7cc; background: #eef3f5; }
.fin-table .fin-manual-total th, .fin-table .fin-manual-total td { font-weight: 700; font-size: 16px; }
.fin-table tfoot .fin-amount { white-space: nowrap; }
.fin-notice { background: #edf3f8; border-left: 3px solid #357999; padding: 14px 16px; margin-bottom: 20px; font-size: 14px; line-height: 1.6; }
.fin-notice > span { display: block; }
.fin-warning { background: #fff8e9; border-color: #c59533; color: #705016; }
.fin-danger { background: #fff0f0; border-color: var(--fin-red); }
.fin-notice a { color: #17637c; text-decoration: underline; }
.fin-error { color: #a32635; font-size: 14px; }
.fin-success { color: #166d40; font-size: 14px; }
.fin-error:empty, .fin-success:empty { display: none; }
.fin-muted, .fin-field-note { color: var(--fin-muted); font-size: 13px; line-height: 1.55; }
.fin-loading { padding: 40px 0; color: var(--fin-muted); }
.fin-empty { text-align: center; padding: 40px 12px; }
.fin-empty > svg { width: 32px; height: 32px; color: #7d919a; margin-bottom: 16px; }
.fin-empty p { color: var(--fin-muted); font-size: 14px; }
.fin-paging { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 16px; }
.fin-dialog { border: 1px solid var(--fin-line); border-radius: 8px; width: min(560px, calc(100% - 24px)); max-height: calc(100dvh - 24px); padding: 0; color: #1c2931; overscroll-behavior: contain; background: white; }
.fin-dialog::backdrop { background: rgb(20 32 40 / 45%); }
.fin-dialog > header { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; border-bottom: 1px solid var(--fin-line); position: sticky; top: 0; background: white; z-index: 1; }
.fin-dialog h2 { margin: 0; }
.fin-purchase-dialog { width: min(760px, calc(100% - 24px)); }
.fin-writeoff-dialog { width: min(880px, calc(100% - 24px)); }
.fin-writeoff-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
.fin-writeoff-dialog > header { gap: 12px; flex: 0 0 auto; }
.fin-writeoff-dialog > header h2 { font-size: 19px; }
.fin-writeoff-dialog > header p { font-size: 12px; color: #5d6a72; margin: 4px 0 0; }
.fin-writeoff-filters { display: flex; gap: 12px 24px; align-items: end; flex-wrap: wrap; padding: 12px 24px; border-bottom: 1px solid var(--fin-line); }
.fin-writeoff-filters > label:first-child { flex: 1 1 210px; }
.fin-writeoff-filters .fin-checkbox { min-height: 44px; align-items: center; }
.fin-writeoff-body { min-height: 0; min-width: 0; overflow: auto; padding: 0 24px; }
.fin-writeoff-items { list-style: none; padding: 0; margin: 0; }
.fin-writeoff-items > li { padding: 14px 0; border-bottom: 1px solid var(--fin-line); }
.fin-writeoff-item-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 4px 16px; flex-wrap: wrap; font-size: 12px; color: #5d6a72; }
.fin-writeoff-item-meta time { white-space: nowrap; }
.fin-writeoff-item-title { display: flex; justify-content: space-between; gap: 4px 16px; flex-wrap: wrap; margin-top: 6px; }
.fin-writeoff-item-title > strong { font-size: 15px; overflow-wrap: anywhere; }
.fin-writeoff-item-title > span { font-size: 12px; color: #5d6a72; }
.fin-writeoff-items dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 10px 0 0; }
.fin-writeoff-items dl > div { min-width: 0; }
.fin-writeoff-items dt { font-size: 12px; color: #5d6a72; font-weight: 400; }
.fin-writeoff-items dd { font-size: 15px; font-variant-numeric: tabular-nums; margin: 4px 0 0; overflow-wrap: anywhere; }
.fin-writeoff-line-prices dd + dt { margin-top: 12px; }
.fin-writeoff-cost { border-left: 1px solid var(--fin-line); padding-left: 16px; }
.fin-writeoff-items dd.fin-writeoff-cost-note { display: flex; flex-direction: column; gap: 2px; margin-top: 10px; padding-left: 8px; border-left: 2px solid #c89235; font-size: 12px; line-height: 1.5; color: #79551b; }
.fin-writeoff-items dd.fin-writeoff-cost-history { border-color: #9cb3bf; color: #4f6470; }
.fin-writeoff-sources { font-size: 13px; margin-top: 10px; }
.fin-writeoff-sources summary { cursor: pointer; min-height: 36px; padding: 8px 0; color: #315b6b; }
.fin-writeoff-sources p { color: #5d6a72; line-height: 1.5; }
.fin-writeoff-sources a { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 4px 12px; min-height: 44px; padding: 6px 0; border-bottom: 1px solid var(--fin-line); }
.fin-writeoff-sources a span:last-child { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.fin-writeoff-sources svg { flex-shrink: 0; }
.fin-writeoff-items p { margin: 8px 0 0; }
.fin-writeoff-quantity { font-size: 13px; color: #5d6a72; }
.fin-writeoff-quantity strong { color: #1c2931; font-variant-numeric: tabular-nums; }
.fin-writeoff-method { margin: 0; padding: 8px 24px; font-size: 12px; color: #5d6a72; border-bottom: 1px solid var(--fin-line); }
.fin-writeoff-comment { font-size: 13px; margin-top: 6px; overflow-wrap: anywhere; }
.fin-writeoff-comment summary { cursor: pointer; min-height: 32px; padding: 6px 0; color: #5d6a72; }
.fin-dialog > footer.fin-writeoff-paging { display: flex; flex-direction: row; align-items: center; justify-content: center; padding: 8px 16px; border-top: 1px solid var(--fin-line); flex: 0 0 auto; }
.fin-writeoff-paging span { min-width: 120px; text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.fin-dialog > footer.fin-writeoff-paging button { flex: 0 0 40px; }
@media (max-width: 480px) {
  .fin-writeoffs { padding: 12px; }
  .fin-writeoff-valuations { gap: 8px 12px; }
  .fin-writeoff-valuations strong { font-size: 18px; }
  .fin-writeoff-filters { padding: 10px 12px; gap: 8px; }
  .fin-writeoff-body { padding: 0 12px; }
  .fin-writeoff-method { padding: 8px 12px; }
  .fin-writeoff-items dl { gap: 6px; }
  .fin-writeoff-items dd { font-size: 13px; }
  .fin-writeoff-cost { padding-left: 10px; }
}
.fin-purchase-body { padding: 16px; }
.fin-purchase-address { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }
.fin-purchase-dialog .fin-purchase-total { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; padding: 12px 0; border-block: 1px solid var(--fin-line); margin-bottom: 16px; }
.fin-purchase-dialog .fin-purchase-total strong { font-size: 22px; }
.fin-purchase-items { list-style: none; margin: 0; padding: 0; }
.fin-purchase-items li { padding: 12px 0; border-bottom: 1px solid var(--fin-line); overflow-wrap: anywhere; }
.fin-purchase-items small { display: block; color: var(--fin-muted); }
.fin-purchase-items dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) max-content; gap: 8px; margin: 8px 0 0; }
.fin-purchase-items dt { font-size: 12px; font-weight: 400; color: var(--fin-muted); }
.fin-purchase-items dd { margin: 4px 0 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
@media (max-width: 360px) {
  .fin-purchase-items dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fin-purchase-items dl > div:last-child { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
}
.fin-dialog > header h2 { min-width: 0; overflow-wrap: anywhere; }
.finance-page [data-fin="comparison"] { max-width: 1000px; margin-inline: auto; }
.finance-page [data-fin="comparison"] .fin-product-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 320px); }
.finance-page [data-fin="comparison"] .fin-product-tools > label { max-width: none; }
.fin-cost-scroll { max-height: 620px; overflow: auto; overscroll-behavior: contain; margin-top: 12px; border-top: 1px solid var(--fin-line); }
.fin-cost-scroll table { min-width: 0; }
.fin-cost-scroll th:first-child { width: 60%; }
.fin-cost-scroll th:last-child { width: 48px; }
.fin-cost-scroll th { position: sticky; top: 0; }
.fin-cost-scroll td, .fin-cost-detail-scroll td { font-variant-numeric: tabular-nums; }
.fin-purchase-documents { max-height: 480px; overflow: auto; overscroll-behavior: contain; }
.fin-purchase-ledger { margin: 28px 0; }
.fin-purchase-store { border-bottom: 1px solid var(--fin-line); }
.fin-purchase-store > summary { list-style: none; display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; align-items: center; gap: 12px 24px; cursor: pointer; padding: 14px 0; }
.fin-purchase-store > summary::-webkit-details-marker, .fin-model-panel > summary::-webkit-details-marker { display: none; }
.fin-purchase-store > summary:focus-visible, .fin-model-panel > summary:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.fin-purchase-name { font-size: 16px; min-width: 0; overflow-wrap: anywhere; }
.fin-purchase-name small { display: block; color: var(--fin-muted); font-size: 12px; font-weight: 400; margin-top: 4px; }
.fin-purchase-store > summary > strong { font-size: 18px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fin-purchase-store > summary > svg, .fin-model-panel > summary > svg { width: 20px; height: 20px; }
.fin-purchase-store[open] > summary > svg, .fin-model-panel[open] > summary > svg { transform: rotate(180deg); }
.fin-purchase-detail { padding: 4px 0 16px; }
.fin-purchase-total { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; padding: 16px 0; font-variant-numeric: tabular-nums; }
.fin-purchase-total strong { white-space: nowrap; }
.fin-model-panel { border-top: 1px solid var(--fin-line); margin-top: 20px; }
.fin-model-panel > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 20px; gap: 12px 24px; align-items: center; list-style: none; padding: 20px 0; cursor: pointer; font-weight: 600; }
.fin-model-panel > summary small { font-size: 13px; font-weight: 400; color: var(--fin-muted); }
.fin-purchase-documents th { position: sticky; top: 0; }
.fin-purchase-documents th:first-child { width: 52%; }
.fin-purchase-documents a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.fin-purchase-documents a svg { width: 14px; height: 14px; }
.fin-purchase-documents strong { font-variant-numeric: tabular-nums; }
.fin-cost-scroll td strong { font-weight: 600; }
.fin-cost-scroll .fin-cost-issue { color: #855919; }
.fin-cost-scroll th:nth-child(2), .fin-cost-scroll td:nth-child(2) { text-align: right; }
.fin-cost-scroll .fin-icon { min-width: 44px; min-height: 44px; }
.fin-cost-action { text-align: right; }
.fin-cost-dialog { width: min(900px, calc(100% - 24px)); }
.fin-cost-dialog [data-cost-body] { padding: 16px 20px; }
.fin-cost-dialog footer { padding: 8px 20px 16px; margin: 0; border-top: 1px solid var(--fin-line); }
.finance-page .fin-cost-dialog footer.fin-paging { flex-direction: row; flex-wrap: nowrap; align-items: center; }
.fin-cost-dialog footer button { flex: 0 0 40px; }
.fin-cost-summary { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-bottom: 16px; font-size: 14px; }
.fin-cost-summary strong { white-space: normal; }
.fin-cost-detail-scroll { max-height: 50dvh; overflow: auto; overscroll-behavior: contain; }
.fin-cost-detail-scroll th:first-child { width: 40%; }
.fin-cost-detail-scroll th { position: sticky; top: 0; }
.fin-cost-detail-scroll a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; }
.fin-cost-detail-scroll a svg { width: 14px; height: 14px; }
@media (max-width: 700px) {
  .finance-page [data-fin="comparison"] .fin-product-tools { grid-template-columns: minmax(0, 1fr); }
  .fin-purchase-documents thead { display: none; }
  .fin-purchase-documents tbody { display: block; }
  .fin-purchase-documents tr { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--fin-line); }
  .fin-purchase-documents td { display: block; padding: 0; border: 0; min-width: 0; }
  .fin-purchase-documents td:first-child { grid-column: 1 / -1; }
  .fin-purchase-documents td[data-label]::before { content: attr(data-label); display: block; color: var(--fin-muted); font-size: 12px; margin-bottom: 4px; }
  .finance-page > .fin-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .finance-page > .fin-tabs button { min-width: 0; min-height: 56px; padding-inline: 0; }
  .fin-tabs { gap: 4px 16px; }
  .fin-tabs button { font-size: 14px; }
  .fin-cost-scroll table, .fin-cost-detail-scroll table { min-width: 0; }
  .fin-cost-scroll thead, .fin-cost-detail-scroll thead { display: none; }
  .fin-cost-scroll tbody, .fin-cost-detail-scroll tbody { display: block; }
  .fin-cost-scroll tr, .fin-cost-detail-scroll tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px 0; gap: 12px; border-bottom: 1px solid var(--fin-line); }
  .fin-cost-scroll td, .fin-cost-detail-scroll td { display: block; padding: 0; border: 0; min-width: 0; }
  .fin-cost-scroll tr { grid-template-columns: minmax(0, 1fr) 44px; gap: 6px 12px; }
  .fin-cost-scroll td:nth-child(2) { text-align: left; }
  .fin-cost-scroll td:first-child, .fin-cost-detail-scroll td:first-child { grid-column: 1 / -1; }
  .fin-cost-scroll td[data-label]::before, .fin-cost-detail-scroll td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; line-height: 1.4; color: var(--fin-muted); margin-bottom: 5px; }
  .fin-cost-dialog [data-cost-body] { padding: 12px; }
  .fin-cost-summary { flex-direction: column; gap: 6px; }
}
.fin-dialog form { padding: 20px 24px 24px; }
.fin-dialog fieldset { display: grid; gap: 16px; min-width: 0; }
.finance-page .fin-dialog .fin-amount-field input { font-size: 26px; font-weight: 650; padding-block: 12px; }
.fin-dialog .fin-form-row { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 16px; }
.fin-dialog textarea { resize: vertical; max-height: 180px; }
.fin-dialog .fin-field-note { margin: -4px 0 0; font-size: 12px; }
.fin-dialog .fin-notice { margin: 0; }
.fin-dialog footer { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 8px; }
.fin-dialog footer button { flex: 1; }
.fin-model-layout { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 32px; padding: 8px 0 20px; }
.fin-model-controls { max-width: 380px; min-width: 0; }
.fin-model-controls h2, .fin-model-result h2 { font-size: 16px; font-weight: 600; margin: 0 0 8px; line-height: 1.4; }
.fin-baseline { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; justify-content: space-between; margin-bottom: 16px; font-size: 13px; color: var(--fin-muted); }
.fin-baseline strong { font-size: 20px; color: #1c2931; }
.fin-model-controls > label { margin-bottom: 6px; }
.fin-target { display: flex; align-items: center; gap: 8px; }
.finance-page #finTarget { font-size: 24px; font-weight: 600; min-height: 52px; border-color: #619384; }
.fin-target .fin-icon { width: 44px; flex-basis: 44px; }
.fin-reset { background: none; border: 0; font-size: 13px; text-decoration: underline; color: #31758b; }
.fin-model-controls input[type="range"] { width: 100%; accent-color: #25759c; margin: 4px 0 0; height: 44px; }
.fin-assumption { margin: 0; }
.fin-model-result { padding-left: 32px; border-left: 1px solid var(--fin-line); min-width: 0; container: finance-result / inline-size; }
.fin-scenario-outcome { border-left: 3px solid #82949d; padding: 12px 16px; background: #edf2f5; }
.fin-scenario-outcome h2 { margin: 0; }
.fin-scenario-outcome p { margin: 4px 0 0; font-size: 13px; }
.fin-scenario-amount { display: block; font-size: 30px; line-height: 1.3; margin: 8px 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.fin-outcome-positive { background: #edf6f0; border-color: #288257; }
.fin-outcome-positive .fin-scenario-amount { color: #18633f; }
.fin-outcome-loss { background: #fcf0f0; border-color: var(--fin-red); }
.fin-outcome-loss .fin-scenario-amount { color: var(--fin-red); }
.fin-scenario-change { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; min-height: 27px; font-size: 13px; }
.fin-scenario-change strong { font-size: 18px; font-variant-numeric: tabular-nums; }
.fin-change-up strong { color: var(--fin-green); }
.fin-change-down strong { color: var(--fin-red); }
.fin-scenario-current { color: var(--fin-muted); }
.fin-scenario-current strong { font-weight: 500; white-space: nowrap; }
.fin-scenario-comparison { width: 100%; margin-top: 12px; table-layout: fixed; border-collapse: collapse; }
.finance-page .fin-scenario-comparison th, .finance-page .fin-scenario-comparison td { padding: 8px 0 8px 12px; font-size: 14px; border-bottom: 1px solid var(--fin-line); text-align: right; vertical-align: top; background: transparent; font-variant-numeric: tabular-nums; }
.finance-page .fin-scenario-comparison th { color: var(--fin-muted); font-weight: 400; }
.finance-page .fin-scenario-comparison thead th { font-size: 12px; }
.finance-page .fin-scenario-comparison tr > :first-child { text-align: left; padding-left: 0; width: 29%; }
.finance-page .fin-scenario-comparison td:last-child { font-weight: 600; color: #234958; }
.fin-scenario-empty { padding: 16px; border-left: 3px solid #b99852; background: #fffbf0; }
.fin-scenario-empty p { margin: 0; font-size: 14px; }
.fin-model-scope { font-size: 13px; line-height: 1.5; color: var(--fin-muted); }
.fin-model-scope p { margin: 0 0 6px; }
.fin-model-scope strong { color: #344d58; }
.fin-model-panel > .fin-definitions { margin-top: 12px; padding-top: 12px; }
.fin-investment-layout { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 16px 24px; padding-bottom: 12px; align-items: start; }
@media (max-width: 767px) {
  .fin-model-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fin-model-controls { max-width: none; }
  .fin-model-result { padding: 0; border: 0; }
}
.fin-break-even { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin: 24px 0 16px; padding: 16px 0; border-top: 1px solid var(--fin-line); border-bottom: 1px solid var(--fin-line); font-size: 14px; }
.fin-break-even strong { font-size: 22px; color: #246a87; }
.fin-products { padding-top: 24px; }
.fin-products header { display: flex; gap: 20px; justify-content: space-between; flex-wrap: wrap; align-items: baseline; margin-bottom: 12px; }
.fin-products header h2 { margin-bottom: 5px; }
.fin-products header p { margin: 0; }
.finance-page .fin-checkbox { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.fin-checkbox input { accent-color: #187445; width: 18px; height: 18px; flex: 0 0 18px; }
.fin-product-scroll { overflow: auto; max-height: 540px; overscroll-behavior: contain; scrollbar-width: auto; }
.fin-product-scroll table { min-width: 800px; }
.fin-product-scroll th { position: sticky; top: 0; }
.fin-product-scroll th:first-child { width: 26%; }
.fin-product-scroll td { font-variant-numeric: tabular-nums; }
.fin-product-price-link, .fin-price-value-link { border: 0; background: none; padding: 0; text-align: left; color: #226779; cursor: pointer; font: inherit; min-height: 44px; }
.fin-product-price-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 650; }
.fin-product-price-link svg { flex: 0 0 18px; }
.fin-price-value-link { text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 4px; }
.fin-price-dialog { width: min(960px, calc(100% - 24px)); }
.fin-price-dialog[open] { display: flex; flex-direction: column; max-height: calc(100dvh - 24px); }
.fin-price-dialog > header { flex: 0 0 auto; gap: 12px; padding: 16px 20px; }
.fin-price-dialog > header h2 { font-size: 19px; }
.fin-price-dialog > header p { margin: 5px 0 0; font-size: 12px; }
.fin-price-dialog > header > button { flex: 0 0 44px; }
.fin-price-body { overflow: auto; min-height: 0; padding: 0 20px 20px; overscroll-behavior: contain; }
.fin-price-controls { padding-top: 12px; }
.fin-price-controls .fin-tabs { margin: 0; }
.fin-price-controls p { font-size: 13px; margin: 8px 0 16px; }
.fin-price-address { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.fin-price-address label { min-width: 0; flex: 1; }
.fin-price-address select { width: 100%; }
.fin-price-overview-heading, .fin-price-days-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 0; }
.fin-price-dialog h3 { font-size: 16px; margin: 0; }
.fin-price-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 12px 0; gap: 12px; border-block: 1px solid var(--fin-line); margin-bottom: 12px; }
.fin-price-totals > div { min-width: 0; }
.fin-price-totals span { display: block; color: var(--fin-muted); font-size: 12px; margin-bottom: 6px; }
.fin-price-totals strong { font-size: 20px; font-variant-numeric: tabular-nums; }
.fin-price-totals small, .fin-price-table small { display: block; font-size: 12px; color: var(--fin-muted); font-weight: 400; margin-top: 4px; }
.fin-price-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; }
.fin-price-table th:first-child { width: 36%; }
.fin-price-days th:first-child { width: 20%; }
.fin-price-table th, .fin-price-table td { padding: 12px 8px; border-bottom: 1px solid var(--fin-line); vertical-align: top; text-align: right; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.fin-price-table th:first-child { text-align: left; padding-left: 0; }
.fin-price-table thead th { color: var(--fin-muted); font-size: 12px; font-weight: 500; }
.fin-price-store-link, .fin-price-day-link { display: flex; align-items: center; gap: 6px; width: 100%; min-height: 44px; padding: 0; background: none; border: 0; text-align: left; color: #226779; font: inherit; font-weight: 600; cursor: pointer; }
.fin-price-store-link svg, .fin-price-day-link svg { flex: 0 0 16px; }
.fin-price-day-link { white-space: nowrap; }
.fin-price-day-link[aria-expanded="true"] svg { transform: rotate(180deg); }
.fin-price-markup { color: #177148; white-space: nowrap; }
.fin-price-markup.is-loss { color: #af3535; }
.fin-price-table .fin-price-warning { color: #926321; }
.fin-price-day-detail td { text-align: left; background: #f5f8fa; padding: 12px; }
.fin-price-day-detail p { font-size: 13px; margin: 0 0 10px; }
.fin-price-day-detail ul { margin: 0; padding: 0; list-style: none; }
.fin-price-day-detail li { padding: 10px 0; border-top: 1px solid var(--fin-line); }
.fin-price-day-detail a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.fin-price-day-detail li > span { display: block; font-size: 12px; margin: 4px 0; color: var(--fin-muted); }
.fin-price-day-detail dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 8px 0 0; }
.fin-price-day-detail dt { font-size: 12px; font-weight: 400; color: var(--fin-muted); }
.fin-price-day-detail dd { margin: 4px 0 0; font-weight: 600; }
.fin-price-method { margin-top: 20px; border-top: 1px solid var(--fin-line); padding-top: 12px; font-size: 13px; color: var(--fin-muted); }
.fin-price-method summary { cursor: pointer; }
@media (max-width: 600px) {
  .fin-price-dialog { width: calc(100% - 16px); max-width: none; }
  .fin-price-dialog > header { padding: 12px; }
  .fin-price-body { padding: 0 12px 16px; }
  .fin-price-controls .fin-tabs button { flex: 1; padding-inline: 8px; }
  .fin-price-table { font-size: 13px; }
  .fin-price-table th, .fin-price-table td { padding: 10px 3px; }
  .fin-price-stores, .fin-price-stores tbody { display: block; }
  .fin-price-stores thead { display: none; }
  .fin-price-stores tr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 8px; border-bottom: 1px solid var(--fin-line); padding: 6px 0 12px; }
  .fin-price-stores th:first-child { grid-column: 1 / -1; width: auto; padding: 0; }
  .fin-price-stores th, .fin-price-stores td { border: 0; text-align: left; padding: 4px 0; }
  .fin-price-stores td::before { content: attr(data-label); display: block; font-size: 11px; color: var(--fin-muted); margin-bottom: 4px; }
  .fin-price-days th:first-child { width: 22%; }
  .fin-price-day-link { gap: 2px; font-size: 12px; }
  .fin-price-day-link svg { width: 12px; flex-basis: 12px; }
  .fin-price-days td:last-child { width: 29%; }
  .fin-price-days .fin-price-day-detail td { padding: 10px; }
  .fin-price-table small { font-size: 10px; }
  .fin-price-totals { gap: 8px; }
  .fin-price-totals strong { font-size: 16px; }
  .fin-price-totals small { font-size: 10px; }
  .fin-price-totals span { font-size: 11px; min-height: 45px; }
}
.fin-product-scroll td:last-child:not([colspan]) { color: #234958; font-weight: 600; }
.fin-products > button { margin-top: 16px; }
.fin-product-tools { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.fin-product-tools > label { flex: 1 1 200px; max-width: 420px; }
.fin-product-tools .fin-paging { margin: 0; gap: 8px; }
.fin-product-tools .fin-paging span { min-width: 110px; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.fin-product-paged .fin-product-scroll { height: 540px; }
.fin-product-paged .fin-product-issues { height: 420px; }
.fin-product-issues { list-style: none; padding: 0; margin: 0; max-height: 420px; overflow: auto; overscroll-behavior: contain; }
.fin-product-issues li { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 0; border-bottom: 1px solid var(--fin-line); font-size: 14px; }
.fin-product-issues span { color: var(--fin-muted); font-size: 13px; }
.fin-definitions { border-top: 1px solid var(--fin-line); margin-top: 24px; padding-top: 16px; font-size: 13px; line-height: 1.65; color: var(--fin-muted); }
.fin-definitions summary { cursor: pointer; font-size: 14px; font-weight: 600; color: #234958; margin-bottom: 12px; }
.fin-erp:empty { display: none; }
.fin-erp .fin-loading { padding: 12px 0 0; margin: 0; }
.fin-erp { border-bottom: 1px solid var(--fin-line); padding: 12px 0 20px; margin-bottom: 24px; }
.fin-erp-heading { display: grid; grid-template-columns: minmax(0, 1fr) 40px; align-items: center; gap: 12px; }
.fin-erp-heading > div { display: grid; gap: 4px; }
.fin-erp-heading button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.fin-erp-groups { margin-top: 16px; }
.fin-erp-groups summary { cursor: pointer; font-weight: 600; padding: 10px 0; }
.fin-erp-group { display: grid; grid-template-columns: minmax(0, 1fr) auto 44px; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--fin-line); }
.fin-erp-label { min-width: 0; overflow-wrap: anywhere; font-size: 14px; }
.fin-erp-group small { display: block; color: var(--fin-muted); font-weight: 400; }
.fin-erp-group > strong { text-align: right; font-variant-numeric: tabular-nums; }
.fin-erp-detail-body { padding: 0 20px; max-height: 60dvh; overflow: auto; overscroll-behavior: contain; }
.fin-erp-entry { border-bottom: 1px solid var(--fin-line); padding: 16px 0; }
.fin-erp-entry > div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.fin-erp-entry p { margin: 8px 0 0; overflow-wrap: anywhere; font-size: 13px; color: var(--fin-muted); white-space: pre-line; }
.fin-erp-entry summary { display: grid; grid-template-columns: minmax(0, 1fr) 20px; align-items: start; gap: 8px; min-height: 44px; font-size: 14px; line-height: 1.5; color: #344d58; cursor: pointer; list-style: none; }
.fin-erp-entry summary::-webkit-details-marker { display: none; }
.fin-erp-entry summary:focus-visible { outline: 3px solid #338bc6; outline-offset: 2px; }
.fin-erp-entry summary > span { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.fin-erp-entry summary > svg { width: 20px; height: 20px; }
.fin-erp-entry details[open] > summary > span { display: block; -webkit-line-clamp: unset; overflow: visible; white-space: pre-line; }
.fin-erp-entry details[open] > summary > svg { transform: rotate(180deg); }
.fin-erp-entry details { margin-top: 8px; }
.fin-erp-record > summary > small { grid-column: 1; font-size: 13px; color: var(--fin-muted); overflow-wrap: anywhere; }
.fin-erp-entry-detail { margin-top: 8px; border-top: 1px solid var(--fin-line); padding-top: 12px; }
.fin-erp-entry-detail dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 20px; margin: 0 0 16px; }
.fin-erp-entry-detail dl > div { min-width: 0; }
.fin-erp-entry-detail dt { font-size: 12px; color: var(--fin-muted); font-weight: 400; }
.fin-erp-entry-detail dd { margin: 3px 0 0; font-size: 14px; overflow-wrap: anywhere; white-space: pre-line; }
.fin-erp-document-fields > div:first-child { grid-column: 1 / -1; }
.fin-erp-analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.fin-erp-analytics h3 { font-size: 13px; margin: 0 0 10px; }
.fin-erp-analytics dl { grid-template-columns: minmax(0, 1fr); }
.fin-erp-source { border-top: 1px solid var(--fin-line); padding-top: 4px; }
.fin-erp-source pre { max-height: 320px; padding: 12px; background: #edf1f3; font-size: 12px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 575px) {
  .fin-erp-entry-detail dl { gap: 10px; }
  .fin-erp-analytics-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
.fin-erp-dialog .fin-paging { flex-direction: row; padding: 12px 20px; justify-content: space-between; }
.fin-erp-dialog[open] { display: flex; flex-direction: column; overflow: hidden; }
.fin-erp-dialog > header { position: static; flex: none; }
.fin-erp-dialog .fin-erp-detail-body { min-height: 0; flex: 1 1 auto; }
.fin-erp-dialog > footer { flex: none; }
@media (max-width: 520px) {
  .fin-erp-group { grid-template-columns: minmax(0, 1fr) 44px; gap: 8px; }
  .fin-erp-label { grid-column: 1 / -1; }
  .fin-erp-group > strong { text-align: left; }
}
@media (max-width: 1280px) {
  .fin-result-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fin-expense-layout { grid-template-columns: minmax(0, 1fr); }
  .fin-categories { border-left: 0; border-top: 1px solid var(--fin-line); padding: 16px 0 0; }
  .fin-categories > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 0 32px; }
  .fin-statement { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .fin-cash-breakdown dl { grid-template-columns: minmax(0, 1fr); }
  .fin-statement > .fin-stat:first-child { grid-column: 1 / -1; }
  .fin-product-scroll table, .fin-product-scroll tbody { display: block; min-width: 0; }
  .fin-product-scroll thead { display: none; }
  .fin-product-scroll tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; border-bottom: 1px solid var(--fin-line); padding: 14px 0; }
  .fin-product-scroll td { border: 0; padding: 0; font-size: 14px; }
  .fin-product-scroll td:first-child, .fin-product-scroll td:last-child { grid-column: 1 / -1; }
  .fin-product-scroll td[data-label]::before { content: attr(data-label); display: block; font-size: 12px; color: var(--fin-muted); margin-bottom: 4px; }
  .fin-product-scroll td:last-child[data-label] { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; font-weight: 600; }
  .fin-product-scroll td:last-child small { grid-column: 1 / -1; font-weight: 400; margin-top: 0; text-align: right; }
  .fin-toolbar { gap: 12px; }
  .fin-period { width: 228px; }
  .fin-scope { max-width: none; }
  .fin-primary-actions { margin-left: 0; }
  .fin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .fin-summary .fin-stat:first-child { grid-column: 1 / -1; }
  .fin-model-layout { padding-top: 0; }
  .fin-model-controls h2 { display: none; }
  .fin-baseline { margin-bottom: 8px; }
  .fin-scenario-amount { font-size: 26px; }
  .fin-investment-layout { grid-template-columns: minmax(0, 1fr); }
  .fin-categories > div { grid-template-columns: minmax(0, 1fr); }
  .fin-table table, .fin-table tbody, .fin-table tfoot { display: block; }
  .fin-table thead { display: none; }
  .fin-table .fin-expense-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 2px 8px; padding: 10px 0 6px; border-bottom: 1px solid var(--fin-line); }
  .fin-table td { padding: 0; border: 0; }
  .fin-table .fin-add-row { display: block; }
  .fin-table .fin-add-row > td { display: block; padding: 12px 0; }
  .fin-table .fin-date { grid-column: 1; grid-row: 3; display: flex; flex-wrap: wrap; align-self: center; gap: 0 8px; font-size: 12px; line-height: 1.4; color: var(--fin-muted); white-space: normal; }
  .fin-table .fin-date time, .fin-table .fin-date small { white-space: nowrap; }
  .fin-table .fin-date small { margin: 0; font: inherit; }
  .fin-table .fin-description { grid-column: 1; grid-row: 1; min-width: 0; line-height: 1.4; }
  .fin-table .fin-description > strong { font-size: 15px; }
  .fin-table .fin-amount { grid-column: 2; grid-row: 1; font-size: 16px; line-height: 1.4; white-space: nowrap; }
  .fin-table .fin-store { grid-column: 1 / -1; grid-row: 2; font-size: 13px; line-height: 1.4; color: var(--fin-muted); }
  .fin-table .fin-actions { grid-column: 2; grid-row: 3; display: flex; gap: 4px; justify-content: flex-end; padding: 0; }
  .fin-table tfoot tr { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding: 14px 8px; }
  .fin-table tfoot th, .fin-table tfoot td { padding: 0; }
  .fin-table tfoot .fin-amount { max-width: none; margin-left: auto; white-space: nowrap; }
  .fin-table tfoot .fin-total-spacer { display: none; }
  .fin-actions .fin-icon { width: 44px; height: 44px; flex-basis: 44px; }
  .fin-stat > strong { font-size: 22px; }
}
@media (max-width: 440px) {
  .fin-result-overview { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fin-result-overview .fin-stat > strong { font-size: 28px; }
  .fin-result-overview .fin-stat:nth-child(2) > strong { font-size: 24px; }
  .fin-result-overview .fin-stat:not(:first-child) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 4px 12px; }
  .fin-result-overview .fin-stat:not(:first-child) > small { grid-column: 1 / -1; }
  .fin-result-overview .fin-stat.fin-overview-secondary > strong { font-size: 20px; }
  .fin-summary { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .fin-summary .fin-stat:not(:first-child) { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
  .fin-summary .fin-stat:not(:first-child) > small { flex-basis: 100%; }
  .fin-purchase-store > summary, .fin-model-panel > summary { grid-template-columns: minmax(0, 1fr) 20px; gap: 8px 12px; }
  .fin-purchase-store > summary > strong, .fin-model-panel > summary > small { grid-column: 1; }
  .fin-purchase-store > summary > svg, .fin-model-panel > summary > svg { grid-column: 2; grid-row: 1 / 3; }
  .fin-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); }
  .fin-period { width: 100%; }
  .fin-primary-actions { justify-content: space-between; }
  .fin-primary-actions > .btn { flex: 1; }
  .fin-tabs { gap: 20px; }
  .fin-tabs button { font-size: 14px; }
  .fin-categories > div { grid-template-columns: minmax(0, 1fr); }
  .fin-filters { display: grid; grid-template-columns: minmax(0, 1fr) 44px; }
  .fin-search { grid-column: 1 / -1; }
  .fin-dialog form { padding: 16px; }
  .fin-dialog > header { padding: 10px 16px; }
  .fin-dialog .fin-form-row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fin-dialog footer { flex-direction: column; }
  .fin-scenario-outcome { padding: 12px; }
  .fin-statement { gap: 20px 14px; }
  .fin-stat > strong { font-size: 20px; }
}
@media (max-width: 380px) {
  .fin-statement, .fin-summary { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .fin-stat { gap: 4px; }
}
@container finance-result (max-width: 470px) {
  .fin-scenario-amount { font-size: 26px; }
  .fin-scenario-change { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; min-height: 46px; align-content: start; }
  .finance-page .fin-scenario-comparison, .fin-scenario-comparison tbody { display: block; }
  .fin-scenario-comparison thead { display: none; }
  .fin-scenario-comparison tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 12px; padding: 8px 0; border-bottom: 1px solid var(--fin-line); }
  .finance-page .fin-scenario-comparison th, .finance-page .fin-scenario-comparison td { padding: 0; border: 0; text-align: left; font-size: 16px; }
  .finance-page .fin-scenario-comparison tr > th { grid-column: 1 / -1; width: auto; font-size: 13px; color: #1c2931; font-weight: 600; }
  .fin-scenario-comparison td::before { content: 'Сейчас'; display: block; font-size: 12px; color: var(--fin-muted); font-weight: 400; }
  .fin-scenario-comparison td:last-child::before { content: 'В сценарии'; }
}
