:root {
  --finance-border: #dfe5ec;
  --finance-muted: #667085;
  --finance-ink: #182433;
  --finance-blue: #206bc4;
  --finance-green: #2b8a3e;
  --finance-red: #c92a2a;
  --finance-amber: #a15c00;
}

.nav-link.active { background: rgba(32, 107, 196, .15) !important; border-left: 3px solid #206bc4; font-weight: 600; }
.nav-section-label { padding: .9rem 1rem .3rem; color: rgba(255, 255, 255, .48); font-size: .68rem; font-weight: 700; }
.bottom-tab-bar { display: none; position: fixed; right: 0; bottom: 0; left: 0; z-index: 1050; padding: 4px 0 env(safe-area-inset-bottom, 4px); border-top: 1px solid #e6e8eb; background: #fff; }
.bottom-tab-bar .tab-items { display: flex; align-items: center; justify-content: space-around; }
.bottom-tab-bar .tab-item { display: flex; flex-direction: column; align-items: center; min-width: 62px; padding: 4px 8px; color: #667085; font-size: .7rem; text-decoration: none; }
.bottom-tab-bar .tab-item i { margin-bottom: 2px; font-size: 1.3rem; }
.bottom-tab-bar .tab-item.active { color: var(--finance-blue); font-weight: 700; }

.finance-shell { color: var(--finance-ink); }
.finance-loading, .finance-empty { display: flex; gap: 9px; align-items: center; justify-content: center; min-height: 180px; color: var(--finance-muted); }
.finance-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; min-height: 42px; margin-bottom: 16px; }
.finance-toolbar .form-select, .finance-toolbar .form-control { width: auto; min-width: 150px; }
.finance-toolbar-spacer { flex: 1 1 auto; }
.finance-status { display: inline-flex; gap: 6px; align-items: center; min-height: 30px; padding: 4px 9px; border: 1px solid var(--finance-border); border-radius: 6px; background: #fff; color: var(--finance-muted); font-size: 12px; }
.finance-status.is-ready { border-color: #b7dfc2; color: var(--finance-green); }
.finance-status.is-missing { border-color: #f1cf9c; color: var(--finance-amber); }

.finance-tabs { display: flex; gap: 4px; margin-bottom: 16px; overflow-x: auto; border-bottom: 1px solid var(--finance-border); }
.finance-tabs a, .finance-tabs button { flex: 0 0 auto; padding: 9px 13px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--finance-muted); font-weight: 600; text-decoration: none; }
.finance-tabs .active { border-bottom-color: var(--finance-blue); color: var(--finance-blue); }

.finance-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin-bottom: 20px; overflow: hidden; border: 1px solid var(--finance-border); border-radius: 7px; background: var(--finance-border); }
.finance-kpi { min-width: 0; padding: 16px; background: #fff; }
.finance-kpi span { display: block; color: var(--finance-muted); font-size: 12px; }
.finance-kpi strong { display: block; margin-top: 5px; overflow: hidden; font-size: 22px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.finance-kpi strong.positive { color: var(--finance-green); }
.finance-kpi strong.negative { color: var(--finance-red); }

.finance-report { display: grid; gap: 18px; }
.finance-section { border-top: 2px solid #cfd7e3; }
.finance-section-header { display: flex; align-items: center; justify-content: space-between; min-height: 42px; padding: 8px 4px; }
.finance-section-header h3 { margin: 0; font-size: 15px; }
.finance-line { display: grid; grid-template-columns: minmax(180px, 1fr) 130px 44px 38px; gap: 8px; align-items: center; min-height: 48px; padding: 8px 4px; border-top: 1px solid #edf0f4; }
.finance-line.is-result { background: #f8fafc; font-weight: 700; }
.finance-line.is-missing .finance-amount { color: var(--finance-amber); }
.finance-line-label { min-width: 0; overflow-wrap: anywhere; }
.finance-amount { font-variant-numeric: tabular-nums; text-align: right; }
.finance-line-origin { display: inline-flex; gap: 4px; align-items: center; margin-left: 7px; color: var(--finance-blue); font-size: 11px; font-weight: 600; }
.finance-icon-button { display: inline-grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--finance-muted); }
.finance-icon-button:hover, .finance-icon-button:focus-visible { border-color: #b7cce6; background: #edf4fc; color: var(--finance-blue); }

.finance-source-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.finance-source-item { display: grid; gap: 5px; min-height: 94px; padding: 13px; border: 1px solid var(--finance-border); border-radius: 7px; background: #fff; text-align: left; }
button.finance-source-item { cursor: pointer; }
.finance-source-item.active { border-color: var(--finance-blue); box-shadow: inset 0 0 0 1px var(--finance-blue); }
.finance-source-item span { color: var(--finance-muted); font-size: 11px; }
.finance-source-item strong { font-size: 17px; }
.finance-source-item small { overflow: hidden; color: var(--finance-muted); text-overflow: ellipsis; white-space: nowrap; }

.finance-table-wrap { overflow: auto; border: 1px solid var(--finance-border); border-radius: 7px; background: #fff; }
.finance-table { width: 100%; min-width: 760px; margin: 0; border-collapse: collapse; }
.finance-table th { position: sticky; top: 0; z-index: 1; padding: 9px 11px; border-bottom: 1px solid var(--finance-border); background: #f6f8fb; color: #475467; font-size: 12px; text-align: left; white-space: nowrap; }
.finance-table td { padding: 9px 11px; border-bottom: 1px solid #edf0f4; vertical-align: top; }
.finance-table tbody tr:last-child td { border-bottom: 0; }
.finance-table .number { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.finance-table .subtle { max-width: 280px; overflow: hidden; color: var(--finance-muted); text-overflow: ellipsis; white-space: nowrap; }
.finance-pager { display: flex; gap: 8px; align-items: center; justify-content: flex-end; padding: 10px 0; }

.finance-dialog { width: min(620px, calc(100vw - 24px)); max-height: calc(100dvh - 30px); padding: 0; overflow: hidden; border: 0; border-radius: 8px; box-shadow: 0 20px 60px rgba(15, 23, 42, .26); }
.finance-dialog::backdrop { background: rgba(15, 23, 42, .45); }
.finance-dialog form { display: grid; grid-template-rows: auto minmax(0, 1fr); max-height: inherit; margin: 0; }
.finance-dialog header { display: flex; align-items: center; justify-content: space-between; padding: 15px 18px; border-bottom: 1px solid var(--finance-border); }
.finance-dialog header h3 { margin: 0; font-size: 17px; }
.finance-dialog-body { min-height: 0; padding: 16px 18px; overflow: auto; -webkit-overflow-scrolling: touch; }
.finance-dialog-body label { display: grid; gap: 6px; margin-bottom: 13px; font-weight: 600; }
.finance-dialog-body footer { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.finance-trace { display: grid; gap: 12px; }
.finance-trace dl { display: grid; grid-template-columns: 90px 1fr; gap: 7px 12px; margin: 0; }
.finance-trace dt { color: var(--finance-muted); font-weight: 500; }
.finance-trace dd { margin: 0; overflow-wrap: anywhere; }
.finance-trace pre { max-height: 260px; margin: 0; padding: 12px; overflow: auto; border-radius: 6px; background: #f3f5f8; color: #344054; font-size: 11px; white-space: pre-wrap; }
.finance-trace-amount { padding: 0; border: 0; border-bottom: 1px dashed #9bb6d5; background: transparent; color: inherit; font: inherit; font-weight: inherit; font-variant-numeric: tabular-nums; }
.finance-trace-amount:hover, .finance-trace-amount:focus-visible { color: var(--finance-blue); border-bottom-color: var(--finance-blue); }
.finance-lineage-links { display: grid; gap: 7px; padding-top: 11px; border-top: 1px solid var(--finance-border); }
.finance-lineage-links > span { color: var(--finance-muted); font-size: 11px; font-weight: 600; }
.finance-lineage-chip { padding: 8px 10px; border: 1px solid var(--finance-border); border-radius: 6px; background: #f8fafc; color: #344054; text-align: left; }
.finance-lineage-chip:hover { border-color: #9bbce1; background: #edf4fc; color: var(--finance-blue); }
.finance-lineage-source { padding-top: 4px; }
.finance-note { color: var(--finance-muted); font-size: 12px; }
.finance-error { padding: 13px; border: 1px solid #efb7b7; border-radius: 7px; background: #fff5f5; color: var(--finance-red); }

@media (max-width: 991px) {
  .bottom-tab-bar { display: block; }
  .page-body { padding-bottom: 76px; }
  .finance-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finance-source-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  body[data-jun-page^="finance-"] .page-header { min-height: auto; margin-top: 0; padding-top: 12px; }
  body[data-jun-page^="finance-"] .page-body { margin-top: 12px; }
  .finance-toolbar { align-items: stretch; }
  .finance-toolbar .form-select, .finance-toolbar .form-control { flex: 1 1 140px; width: 100%; min-width: 0; }
  .finance-toolbar-spacer { display: none; }
  .finance-kpi { padding: 12px; }
  .finance-kpi strong { font-size: 18px; }
  .finance-line { grid-template-columns: minmax(0, 1fr) 105px 34px 34px; gap: 3px; }
  .finance-icon-button { width: 32px; height: 32px; }
  .finance-source-grid { grid-template-columns: 1fr; }
  .finance-source-item { min-height: 82px; }
}

/* The monthly report intentionally follows the established local report. */
.finance-report-wrap { max-width: 1080px; margin: 0 auto; color: #222; line-height: 1.45; }
.finance-report-title { margin-bottom: 20px; }
.finance-report-title h1 { margin: 0 0 4px; font-size: 22px; letter-spacing: 0; }
.finance-report-title div { color: #777; font-size: 13px; }
.finance-report-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 24px; }
.finance-report-kpis article, .finance-report-card, .finance-report-category { margin-bottom: 18px; padding: 18px; border: 0; border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .08); }
.finance-report-kpis span { display: block; color: #666; font-size: 13px; }
.finance-report-kpis strong { display: block; margin: 4px 0; overflow-wrap: anywhere; font-size: 24px; letter-spacing: 0; }
.finance-report-kpis small { display: block; color: #888; font-size: 12px; }
.finance-report-kpis em { display: block; color: #2e7d32; font-size: 12px; font-style: normal; font-weight: 600; }
.finance-report-card h2 { margin: 0 0 12px; font-size: 16px; letter-spacing: 0; }
.finance-report-ok { border-left: 4px solid #2e7d32; background: #f3fbf4; color: #55605a; font-size: 12.5px; line-height: 1.8; }
.finance-waterfall { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.finance-waterfall svg { width: 100%; min-width: 760px; height: auto; }
.finance-detail-title { margin: 18px 0 12px; font-size: 18px; letter-spacing: 0; }
.finance-category-head { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; justify-content: space-between; }
.finance-category-name { font-size: 15px; font-weight: 700; }
.finance-category-add { margin-left: 8px; border: 0; border-radius: 999px; padding: 3px 8px; background: #eaf2ff; color: #1756a9; font-size: 11px; font-weight: 600; vertical-align: 1px; }
.finance-category-add:hover { background: #dceaff; }
.finance-category-add i { margin-right: 2px; }
.finance-category-total { font-size: 14px; font-weight: 600; }
.finance-category-total .pct { color: #888; font-size: 12px; font-weight: 400; }
.finance-category-bar { height: 8px; margin: 8px 0 10px; overflow: hidden; border-radius: 4px; background: #eceff1; }
.finance-category-bar div { height: 100%; border-radius: 4px; background: linear-gradient(90deg, #1565c0, #42a5f5); }
.finance-subs-wrap { margin: 0 -2px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.finance-subs { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 13px; }
.finance-subs th { padding: 4px 6px; border-bottom: 1px solid #eee; color: #999; font-size: 12px; font-weight: 500; text-align: right; }
.finance-subs th:first-child { text-align: left; }
.finance-subs td { padding: 5px 6px; border-bottom: 1px solid #f3f3f3; }
.finance-subs .sub-name { display: flex; gap: 5px; align-items: center; justify-content: space-between; color: #444; }
.finance-subs .num { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.finance-subs .prev, .finance-subs .pct { color: #888; }
.finance-subs tr.is-missing td:nth-child(2) { color: var(--finance-amber); font-weight: 600; }
.report-row-actions { display: inline-flex; flex: 0 0 auto; }
.report-row-actions .finance-icon-button { width: 26px; height: 26px; font-size: 14px; }
.finance-category-note { margin-top: 8px; color: #8a6500; font-size: 12.5px; line-height: 1.7; }
.finance-entry-action { display: inline-flex; align-items: center; gap: 3px; border: 0; border-radius: 999px; padding: 3px 7px; background: #edf3fb; color: #325b8c; font-size: 11px; }
.finance-entry-action.is-required { background: #fff0cf; color: #8a5b00; font-weight: 700; }
.delta { font-size: 12px; font-weight: 600; }
.delta.up { color: #c62828; }
.delta.down, .delta.good { color: #2e7d32; }
.delta.flat { color: #999; font-weight: 400; }
.finance-settlement-card dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 18px; margin: 0; }
.finance-settlement-card dt { color: #667085; font-weight: 500; }
.finance-settlement-card dd { margin: 0; font-variant-numeric: tabular-nums; text-align: right; }

.finance-analysis-region { max-width: 1080px; margin: 0 auto 20px; padding: 14px 16px; border: 1px solid #d9e4f0; border-radius: 10px; background: linear-gradient(135deg, #f7fbff, #fff); }
.finance-analysis-region-head { display: flex; gap: 16px; align-items: end; justify-content: space-between; margin-bottom: 10px; }
.finance-analysis-region-head h2 { margin: 1px 0 0; font-size: 16px; }
.finance-analysis-region-head > span { color: var(--finance-muted); font-size: 11px; }
.finance-analysis-eyebrow { color: var(--finance-blue); font-size: 10px; font-weight: 700; letter-spacing: .08em; }
.finance-analysis-link { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 11px 12px; border: 1px solid #dbe5ef; border-radius: 8px; background: #fff; color: var(--finance-ink); text-decoration: none; }
.finance-analysis-link:hover, .finance-analysis-link:focus-visible, .finance-analysis-link.active { border-color: #8eb8e8; background: #f1f7fe; color: var(--finance-blue); }
.finance-analysis-link-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 8px; background: #e9f2fd; color: var(--finance-blue); font-size: 22px; }
.finance-analysis-link strong, .finance-analysis-link small { display: block; }
.finance-analysis-link strong { font-size: 14px; }
.finance-analysis-link small { margin-top: 2px; color: var(--finance-muted); font-size: 11px; }
.finance-analysis-page { max-width: 1080px; margin: 0 auto; }
.finance-analysis-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.finance-analysis-kpis article, .finance-analysis-card, .finance-analysis-method { border: 1px solid var(--finance-border); border-radius: 10px; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .05); }
.finance-analysis-kpis article { min-width: 0; padding: 15px 17px; }
.finance-analysis-kpis span, .finance-analysis-kpis small { display: block; color: var(--finance-muted); font-size: 11px; }
.finance-analysis-kpis strong { display: block; margin: 4px 0; color: #173b67; font-size: 25px; font-variant-numeric: tabular-nums; }
.finance-analysis-notice, .finance-analysis-warning, .finance-analysis-reference { display: flex; gap: 8px 16px; align-items: baseline; margin-bottom: 14px; padding: 11px 14px; border-radius: 8px; font-size: 12px; line-height: 1.55; }
.finance-analysis-notice { border: 1px solid #cfe0f3; background: #f3f8fe; color: #284b72; }
.finance-analysis-warning { border: 1px solid #f1d59b; background: #fff8e8; color: #7a5210; }
.finance-analysis-reference { border: 1px solid #d9dee6; background: #f7f8fa; color: #596574; }
.finance-analysis-notice strong, .finance-analysis-warning strong, .finance-analysis-reference strong { flex: 0 0 auto; }
.finance-analysis-card { margin-bottom: 16px; padding: 17px; overflow: hidden; }
.finance-analysis-card-head { display: flex; gap: 16px; align-items: start; justify-content: space-between; margin-bottom: 8px; }
.finance-analysis-card-head h2, .finance-analysis-method h2 { margin: 0; font-size: 16px; }
.finance-analysis-card-head p { margin: 3px 0 0; color: var(--finance-muted); font-size: 11px; }
.finance-combo-legend { display: flex; flex-wrap: wrap; gap: 8px 15px; align-items: center; margin: 12px 0 8px; color: #607184; font-size: 10px; }
.finance-combo-legend span { display: inline-flex; gap: 6px; align-items: center; }
.finance-combo-legend i { display: inline-block; flex: 0 0 auto; width: 20px; }
.finance-combo-legend .bar { height: 8px; border-radius: 2px; }
.finance-combo-legend .net.previous { background: #adc7df; }
.finance-combo-legend .net.current { background: #2f6fae; }
.finance-combo-legend .promotion.previous { background: #f6c98e; }
.finance-combo-legend .promotion.current { background: #e88a2a; }
.finance-combo-legend .line { height: 0; border-top: 2px solid #7048a8; }
.finance-combo-legend .line.previous { border-top-color: #a890c8; border-top-style: dashed; }
.finance-combo-chart-shell { width: 100%; overflow: hidden; border: 1px solid #e1e7ee; border-radius: 8px; background: linear-gradient(180deg, #fbfcfe 0%, #fff 100%); }
.finance-combo-chart { display: block; width: 100%; height: auto; }
.finance-combo-chart.mobile, .finance-combo-mobile-charts { display: none; }
.finance-combo-grid { stroke: #e6ebf1; stroke-width: 1; }
.finance-combo-axis-label { fill: #8290a0; font-size: 10px; font-variant-numeric: tabular-nums; }
.finance-combo-panel-title { fill: #2c455f; font-size: 13px; font-weight: 700; }
.finance-combo-panel-title.right { fill: #7048a8; }
.finance-combo-bar.net.previous { fill: #adc7df; }
.finance-combo-bar.net.current { fill: #2f6fae; }
.finance-combo-bar.promotion.previous { fill: #f6c98e; }
.finance-combo-bar.promotion.current { fill: #e88a2a; }
.finance-combo-bar.partial { opacity: .82; }
.finance-combo-value { fill: #63758a; font-size: 9px; font-variant-numeric: tabular-nums; }
.finance-combo-value.current { fill: #244d77; font-weight: 700; }
.finance-combo-value.promotion.previous { fill: #735a38; }
.finance-combo-value.promotion.current { fill: #fff; font-weight: 700; }
.finance-combo-line { fill: none; stroke: #7048a8; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.finance-combo-line.previous { stroke: #a890c8; stroke-dasharray: 7 5; }
.finance-combo-dot { fill: #fff; stroke: #7048a8; stroke-width: 2.5; }
.finance-combo-dot.previous { stroke: #a890c8; }
.finance-combo-rate-label { fill: #654293; font-size: 9px; font-weight: 700; font-variant-numeric: tabular-nums; }
.finance-combo-rate-label.previous { fill: #8876a3; font-weight: 500; }
.finance-combo-month { fill: #4c6075; font-size: 11px; font-weight: 700; }
.finance-combo-interactive { cursor: pointer; }
.finance-combo-interactive:focus { outline: none; }
.finance-combo-interactive:focus .finance-combo-bar, .finance-combo-interactive:hover .finance-combo-bar { filter: brightness(.88); stroke: #163f68; stroke-width: 1.5; }
.finance-combo-interactive:focus .finance-combo-dot, .finance-combo-interactive:hover .finance-combo-dot { r: 6px; }
.finance-combo-note { margin: 8px 0 0; color: #6e7f91; font-size: 10px; }
.finance-efficiency-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
.finance-efficiency-summary article { min-width: 0; padding: 14px 15px; border: 1px solid #dfe6ed; border-radius: 9px; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .05); }
.finance-efficiency-summary span, .finance-efficiency-summary small { display: block; color: #6b7c8f; font-size: 10px; line-height: 1.45; }
.finance-efficiency-summary strong { display: block; margin: 5px 0 4px; color: #173b67; font-size: 21px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.finance-efficiency-summary article.effective { border-color: #b9e1ce; background: #f4fbf7; }
.finance-efficiency-summary article.effective strong { color: #18734d; }
.finance-efficiency-summary article.borderline { border-color: #efd59b; background: #fff9eb; }
.finance-efficiency-summary article.borderline strong { color: #93610b; }
.finance-efficiency-summary article.loss { border-color: #efc3bd; background: #fff6f4; }
.finance-efficiency-summary article.loss strong { color: #b33b30; }
.finance-budget-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin: 12px 0; }
.finance-budget-summary article { min-width: 0; padding: 11px 12px; border: 1px solid #dce5ee; border-radius: 8px; background: #f8fbfe; }
.finance-budget-summary span, .finance-budget-summary small { display: block; color: #718092; font-size: 9px; line-height: 1.45; }
.finance-budget-summary strong { display: block; margin: 3px 0; color: #214f7d; font-size: 17px; font-variant-numeric: tabular-nums; }
.finance-budget-months { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.finance-budget-month { min-width: 0; padding: 9px 10px; border: 1px solid #dfe5eb; border-radius: 8px; background: #fff; color: #2b435b; text-align: left; cursor: pointer; }
.finance-budget-month:hover, .finance-budget-month:focus-visible { outline: none; border-color: #82add8; box-shadow: 0 0 0 2px rgba(47, 111, 174, .13); }
.finance-budget-month > span { display: flex; gap: 5px; align-items: center; justify-content: space-between; }
.finance-budget-month > span strong { font-size: 11px; }
.finance-budget-month em { padding: 2px 5px; border-radius: 999px; background: #eef3f7; color: #65788b; font-size: 8px; font-style: normal; white-space: nowrap; }
.finance-budget-month b, .finance-budget-month small { display: block; font-variant-numeric: tabular-nums; }
.finance-budget-month b { margin: 6px 0 3px; color: #173f68; font-size: 16px; }
.finance-budget-month small { overflow: hidden; color: #718092; font-size: 8px; line-height: 1.55; text-overflow: ellipsis; white-space: nowrap; }
.finance-budget-month small.variance.over { color: #b3473e; }
.finance-budget-month small.variance.under { color: #247452; }
.finance-budget-month small.decision { margin-top: 3px; color: #4b657d; }
.finance-budget-month.effective { border-color: #b9e1ce; background: #f5fbf7; }
.finance-budget-month.effective em { background: #dff3e8; color: #18734d; }
.finance-budget-month.borderline { border-color: #ecd59f; background: #fffaf0; }
.finance-budget-month.borderline em { background: #f7e9c7; color: #8b620f; }
.finance-budget-month.loss { border-color: #edc5bf; background: #fff7f5; }
.finance-budget-month.loss em { background: #f9dfdb; color: #a54036; }
.finance-budget-month.current { border-color: #b9d3ec; background: #f3f8fd; }
.finance-budget-month.future { border-style: dashed; background: #fafbfc; }
.finance-budget-note { margin: 10px 0 0; color: #697a8c; font-size: 10px; line-height: 1.55; }
.finance-budget-note strong { color: #385a7b; }
.finance-efficiency-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 12px 0 9px; color: #607184; font-size: 10px; }
.finance-efficiency-legend span { display: inline-flex; gap: 6px; align-items: center; }
.finance-efficiency-legend i { display: inline-block; width: 20px; height: 8px; border-radius: 2px; background: #2f6fae; }
.finance-efficiency-legend i.previous { background: #adc7df; }
.finance-efficiency-legend i.break-even { height: 0; border-top: 2px dashed #c14a3d; border-radius: 0; background: transparent; }
.finance-efficiency-chart-shell { width: 100%; overflow: hidden; border: 1px solid #e1e7ee; border-radius: 8px; background: linear-gradient(180deg, #fbfcfe 0%, #fff 100%); }
.finance-efficiency-chart { display: block; width: 100%; height: auto; }
.finance-efficiency-chart.mobile, .finance-efficiency-mobile-charts { display: none; }
.finance-efficiency-bar.previous { fill: #adc7df; }
.finance-efficiency-bar.current { fill: #2f6fae; }
.finance-efficiency-bar.partial { opacity: .65; }
.finance-efficiency-value { fill: #617488; font-size: 9px; font-variant-numeric: tabular-nums; }
.finance-efficiency-value.current { fill: #244d77; font-weight: 700; }
.finance-break-even-line { stroke: #c14a3d; stroke-width: 2; stroke-dasharray: 7 5; }
.finance-break-even-label { fill: #a83e33; font-size: 10px; font-weight: 700; }
.finance-increment-head { display: flex; gap: 8px 16px; align-items: baseline; justify-content: space-between; margin: 16px 0 8px; }
.finance-increment-head strong { color: #294965; font-size: 13px; }
.finance-increment-head span { color: #708091; font-size: 10px; text-align: right; }
.finance-increment-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.finance-increment-grid article { min-width: 0; padding: 10px 11px; border: 1px solid #dce4eb; border-radius: 8px; background: #f8fafc; }
.finance-increment-grid article[role="button"] { cursor: pointer; }
.finance-increment-grid article[role="button"]:hover, .finance-increment-grid article[role="button"]:focus { outline: none; box-shadow: 0 0 0 2px rgba(47, 111, 174, .16); }
.finance-increment-grid span, .finance-increment-grid small { display: block; color: #6d7c8b; font-size: 9px; line-height: 1.45; }
.finance-increment-grid strong { display: block; margin: 4px 0 3px; color: #294965; font-size: 15px; font-variant-numeric: tabular-nums; }
.finance-increment-grid article.effective { border-color: #b9e1ce; background: #f4fbf7; }
.finance-increment-grid article.effective strong { color: #18734d; }
.finance-increment-grid article.borderline { border-color: #efd59b; background: #fff9eb; }
.finance-increment-grid article.borderline strong { color: #93610b; }
.finance-increment-grid article.loss { border-color: #efc3bd; background: #fff6f4; }
.finance-increment-grid article.loss strong { color: #b33b30; }
.finance-analysis-table-details { padding: 0; }
.finance-analysis-table-details > summary { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; cursor: pointer; list-style: none; }
.finance-analysis-table-details > summary::-webkit-details-marker { display: none; }
.finance-analysis-table-details > summary span, .finance-analysis-table-details > summary strong, .finance-analysis-table-details > summary small { display: block; }
.finance-analysis-table-details > summary strong { color: #2e465f; font-size: 13px; }
.finance-analysis-table-details > summary small { margin-top: 2px; color: var(--finance-muted); font-size: 10px; font-weight: 400; }
.finance-analysis-table-details[open] > summary { border-bottom: 1px solid #e4e8ed; }
.finance-analysis-table-details[open] > summary > i { transform: rotate(180deg); }
.finance-analysis-table-details .finance-comparison-guide { margin: 12px 14px 10px; }
.finance-analysis-table-details .finance-analysis-table-wrap { margin: 0 14px 14px; }
.finance-comparison-guide { display: flex; gap: 8px 16px; align-items: baseline; margin-bottom: 10px; padding: 9px 11px; border-radius: 7px; background: #f4f8fc; color: #49637f; font-size: 11px; }
.finance-comparison-guide strong { flex: 0 0 auto; color: #204f7f; font-size: 12px; }
.finance-analysis-table-wrap { max-width: 100%; max-height: min(72vh, 740px); overflow: auto; border: 1px solid #dfe5ec; border-radius: 7px; background: #fff; -webkit-overflow-scrolling: touch; }
.finance-analysis-table { width: 100%; min-width: 900px; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.finance-analysis-table th, .finance-analysis-table td { padding: 8px 9px; border-right: 1px solid #edf0f3; border-bottom: 1px solid #edf0f3; white-space: nowrap; }
.finance-analysis-table thead th { position: sticky; top: 0; z-index: 3; background: #eef3f8; color: #42566d; font-weight: 700; text-align: center; box-shadow: 0 1px 0 #dfe5ec; }
.finance-analysis-table thead th:first-child { left: 0; z-index: 5; text-align: left; box-shadow: 1px 1px 0 #d3dbe5; }
.finance-analysis-table thead th small { display: block; margin-top: 3px; color: #768596; font-size: 9px; font-weight: 500; }
.finance-analysis-table tbody th { position: sticky; left: 0; z-index: 2; min-width: 112px; background: #fff; text-align: left; box-shadow: 1px 0 0 #e2e7ed; }
.finance-analysis-table tbody th strong { display: block; color: #243b53; font-size: 14px; }
.finance-analysis-table tbody tr:last-child > * { border-bottom: 0; }
.finance-analysis-table tr > *:last-child { border-right: 0; }
.finance-analysis-table .num { font-variant-numeric: tabular-nums; text-align: right; }
.finance-analysis-table .muted { color: #a2aab3; text-align: center; }
.finance-analysis-table .ratio { background: #fffaf3; }
.finance-analysis-table .strong { color: #194f48; font-weight: 700; }
.finance-analysis-table td small { display: block; margin-top: 2px; color: var(--finance-muted); font-size: 9px; }
.finance-year-comparison-table { min-width: 1220px; }
.finance-analysis-comparison-cell { min-width: 176px; padding: 8px 10px !important; vertical-align: top; }
.analysis-year-value { display: flex; gap: 10px; align-items: center; justify-content: space-between; min-height: 27px; font-variant-numeric: tabular-nums; }
.analysis-year-value + .analysis-year-value { border-top: 1px dashed #e7ebf0; }
.analysis-year-value > span { color: #8190a0; font-size: 10px; }
.analysis-year-value.current .finance-analysis-value { color: #173b67; font-weight: 700; }
.analysis-year-value.previous .finance-analysis-value { color: #66778a; }
.analysis-value-missing { color: #a2aab3; }
.analysis-delta { display: flex; gap: 4px 8px; align-items: center; justify-content: space-between; margin-top: 5px; padding: 4px 6px; border-radius: 5px; background: #edf5ff; color: #275d91; font-size: 9px; font-variant-numeric: tabular-nums; }
.analysis-delta strong { font-size: 10px; }
.analysis-delta.good { background: #edf7f2; color: #23704c; }
.analysis-delta.bad { background: #fff3ef; color: #a44b31; }
.analysis-delta.change { background: #edf5ff; color: #275d91; }
.analysis-delta.flat, .analysis-delta.unavailable { background: #f4f5f7; color: #7f8994; font-weight: 500; }
.analysis-coverage { display: inline-flex; margin-top: 3px; padding: 2px 5px; border-radius: 4px; color: #587087; background: #edf4fa; font-size: 9px; font-weight: 500; }
.analysis-coverage.partial { color: #8a5a0a; background: #fff0cf; }
.analysis-coverage.missing { color: #9b3d3d; background: #fde8e8; }
.analysis-source-ready, .analysis-source-missing { display: inline-flex; padding: 3px 6px; border-radius: 5px; font-size: 10px; }
.analysis-source-ready { color: #237044; background: #e4f5eb; }
.analysis-source-missing { color: #8a5a0a; background: #fff0cf; }
.finance-analysis-value { padding: 0; border: 0; border-bottom: 1px dashed #9bb6d5; background: transparent; color: inherit; font: inherit; font-variant-numeric: inherit; white-space: nowrap; }
.finance-analysis-value:hover, .finance-analysis-value:focus-visible { border-bottom-color: var(--finance-blue); color: var(--finance-blue); }
.finance-analysis-method { margin-bottom: 20px; padding: 17px; }
.finance-analysis-method dl { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 8px 14px; margin: 12px 0 0; font-size: 12px; }
.finance-analysis-method dt { color: var(--finance-muted); font-weight: 500; }
.finance-analysis-method dd { margin: 0; overflow-wrap: anywhere; }
.finance-analysis-empty { display: grid; place-items: center; min-height: 180px; color: var(--finance-muted); font-size: 12px; }

.payroll-sheet { max-width: 1080px; margin: 0 auto; color: #1a1a1a; }
.payroll-title { text-align: center; }
.payroll-title h1 { margin: 0; font-size: 22px; letter-spacing: 0; }
.payroll-title p { margin: 6px 0 18px; color: #666; font-size: 13px; }
.payroll-total-band { display: flex; gap: 14px; align-items: baseline; justify-content: space-between; margin-bottom: 16px; padding: 14px 20px; border-radius: 8px; background: #1d3557; color: #fff; }
.payroll-total-band span { opacity: .8; font-size: 13px; }
.payroll-total-band strong { font-size: 20px; letter-spacing: 0; }
.payroll-total-band em { opacity: .88; font-size: 13px; font-style: normal; }
.payroll-card { position: relative; margin-bottom: 10px; padding: 14px 16px; border: 1px solid #e3e6ea; border-radius: 8px; background: #fff; page-break-inside: avoid; }
.payroll-card.is-missing { border-left: 4px solid #c92a2a; }
.payroll-card.is-pending { border-left: 4px solid #e07b00; }
.payroll-card-head { display: flex; gap: 16px; align-items: flex-start; justify-content: space-between; }
.payroll-card-head h2 { margin: 0; font-size: 17px; letter-spacing: 0; }
.payroll-card-head p { margin: 2px 0; color: #555; font-size: 13px; }
.payroll-card-head span { color: #777; font-size: 11px; }
.payroll-card-pay { flex: 0 0 auto; text-align: right; }
.payroll-card-pay small, .payroll-card-pay em { display: block; color: #777; font-size: 11px; font-style: normal; }
.payroll-card-pay strong { display: block; color: #1d3557; font-size: 19px; letter-spacing: 0; white-space: nowrap; }
.payroll-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.payroll-tags span { padding: 2px 6px; border-radius: 4px; background: #e7f4ec; color: #1d6f42; font-size: 11px; }
.payroll-tags .is-excluded { background: #fff1db; color: #985600; }
.payroll-tags .is-warning { background: #fff4e6; color: #b35c00; }
.payroll-breakdown { display: grid; gap: 0; margin: 10px 0 0; padding: 0; list-style: none; }
.payroll-breakdown li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; padding: 5px 0; border-top: 1px solid #f0f2f4; font-size: 12px; }
.payroll-breakdown li small { grid-column: 1 / -1; color: #888; }
.payroll-breakdown li strong { font-variant-numeric: tabular-nums; }
.payroll-deductions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 9px 0 0; border: 1px solid #edf0f3; border-radius: 6px; }
.payroll-deductions div { min-width: 0; padding: 7px; border-right: 1px solid #edf0f3; }
.payroll-deductions div:last-child { border-right: 0; }
.payroll-deductions dt { color: #777; font-size: 10px; font-weight: 500; }
.payroll-deductions dd { margin: 2px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
.payroll-bank { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 7px; align-items: center; margin-top: 9px; color: #4c5665; font-size: 12px; }
.payroll-bank strong { overflow-wrap: anywhere; font-family: "SF Mono", Menlo, Consolas, monospace; font-size: 12px; letter-spacing: 0; text-align: right; }
.payroll-note { margin: 8px 34px 0 0; color: #777; font-size: 12px; line-height: 1.5; }
.payroll-adjust { position: absolute; right: 10px; bottom: 8px; }

.payroll-payment-list { overflow: hidden; border: 1px solid var(--finance-border); border-radius: 7px; background: #fff; }
.payroll-payment-row { display: grid; grid-template-columns: 150px minmax(230px, 1fr) 190px 78px; gap: 14px; align-items: center; min-height: 78px; padding: 11px 14px; border-bottom: 1px solid #edf0f4; }
.payroll-payment-row:last-child { border-bottom: 0; }
.payroll-payment-row.is-missing { box-shadow: inset 4px 0 #c92a2a; }
.payroll-payment-row.is-pending { box-shadow: inset 4px 0 #e07b00; }
.payroll-payment-person, .payroll-payment-bank, .payroll-payment-amount, .payroll-payment-state { min-width: 0; }
.payroll-payment-person strong, .payroll-payment-person span, .payroll-payment-detail strong, .payroll-payment-detail span, .payroll-payment-bank span, .payroll-payment-bank strong, .payroll-payment-amount small, .payroll-payment-amount span { display: block; }
.payroll-payment-person strong { font-size: 14px; }
.payroll-payment-person span, .payroll-payment-detail span, .payroll-payment-bank span, .payroll-payment-amount small, .payroll-payment-amount span { color: var(--finance-muted); font-size: 11px; }
.payroll-payment-detail strong { overflow: hidden; color: #344054; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.payroll-payment-bank { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1px 7px; align-items: center; }
.payroll-payment-bank i { grid-row: 1 / 3; color: var(--finance-muted); }
.payroll-payment-bank strong { overflow: hidden; font-family: "SF Mono", Menlo, Consolas, monospace; font-size: 11px; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }
.payroll-payment-amount { padding: 8px 10px; border: 1px solid #b8cce4; border-radius: 7px; background: #f3f7fc; text-align: right; }
.payroll-payment-amount:hover, .payroll-payment-amount:focus-visible { border-color: var(--finance-blue); background: #e9f2fc; }
.payroll-payment-amount strong { display: block; color: #153e75; font-size: 22px; font-variant-numeric: tabular-nums; letter-spacing: -.02em; white-space: nowrap; }
.payroll-payment-amount span { color: #153e75; font-weight: 700; }
.payroll-payment-state { display: flex; justify-content: flex-end; }
.payroll-paid-control { display: inline-flex; gap: 6px; align-items: center; margin: 0; padding: 6px 8px; border: 1px solid var(--finance-border); border-radius: 6px; color: #667085; font-size: 12px; font-weight: 600; }
.payroll-paid-control.is-paid, .payroll-paid-state.is-paid { border-color: #a9d9b6; color: var(--finance-green); }
.payroll-paid-control input { width: 15px; height: 15px; margin: 0; }
.payroll-paid-state { padding: 3px 7px; border: 1px solid var(--finance-border); border-radius: 5px; color: var(--finance-muted); font-size: 11px; }
.payroll-detail-dialog { display: grid; gap: 15px; }
.payroll-detail-net { display: flex; align-items: baseline; justify-content: space-between; padding: 13px 15px; border-radius: 7px; background: #153e75; color: #fff; }
.payroll-detail-net span { opacity: .78; font-size: 12px; }
.payroll-detail-net strong { font-size: 25px; }
.payroll-net-formula { display: grid; grid-template-columns: repeat(7, auto); gap: 5px; align-items: center; justify-content: center; padding: 12px; border: 1px solid var(--finance-border); border-radius: 7px; font-variant-numeric: tabular-nums; }
.payroll-net-formula i { color: var(--finance-muted); font-style: normal; }
.payroll-net-formula strong { color: #153e75; }
.payroll-net-formula small { grid-column: 1 / -1; color: var(--finance-muted); font-size: 10px; text-align: center; word-spacing: 15px; }
.payroll-net-pending { padding: 11px; border: 1px solid #efcf9c; border-radius: 7px; background: #fff8eb; color: #8a5b00; font-size: 12px; }
.payroll-detail-dialog h4 { margin: 0; font-size: 14px; }
.payroll-detail-dialog ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.payroll-detail-dialog li { padding: 10px 11px; border: 1px solid var(--finance-border); border-radius: 7px; }
.payroll-detail-dialog li div { display: flex; justify-content: space-between; }
.payroll-detail-dialog li p { margin: 4px 0; color: var(--finance-muted); font-size: 11px; }
.payroll-detail-dialog li a { display: inline-flex; gap: 4px; align-items: center; font-size: 11px; text-decoration: none; }

.company-payroll-sheet { display: grid; gap: 14px; }
.company-payroll-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--finance-border); border-radius: 7px; background: var(--finance-border); }
.company-payroll-summary div { padding: 12px 14px; background: #fff; }
.company-payroll-summary span { display: block; color: var(--finance-muted); font-size: 11px; }
.company-payroll-summary strong { display: block; margin-top: 2px; font-size: 19px; font-variant-numeric: tabular-nums; }
.company-payroll-switch { display: flex; gap: 3px; overflow-x: auto; padding: 3px; border: 1px solid var(--finance-border); border-radius: 6px; background: #f4f6f8; }
.company-payroll-switch button { flex: 0 0 auto; min-height: 32px; padding: 5px 10px; border: 0; border-radius: 4px; background: transparent; color: #596579; font-size: 12px; font-weight: 600; }
.company-payroll-switch button.active { background: #fff; color: var(--finance-blue); box-shadow: 0 1px 2px rgba(16, 24, 40, .12); }
.company-payroll-switch span { margin-left: 3px; color: #98a2b3; font-size: 10px; }
.company-payroll-modules { display: grid; gap: 16px; }
.company-payroll-module { min-width: 0; }
.company-payroll-module > header { display: flex; align-items: end; justify-content: space-between; padding: 7px 2px; }
.company-payroll-module > header div { display: flex; gap: 8px; align-items: baseline; }
.company-payroll-module > header h2 { margin: 0; font-size: 15px; letter-spacing: 0; }
.company-payroll-module > header span { color: var(--finance-muted); font-size: 11px; }
.company-payroll-module > header > strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.company-payroll-table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--finance-border); border-radius: 6px; background: #fff; }
.company-payroll-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.company-payroll-table th { position: sticky; top: 0; z-index: 2; padding: 8px 9px; border-bottom: 1px solid var(--finance-border); background: #f6f8fb; color: #475467; font-weight: 600; text-align: left; white-space: nowrap; }
.company-payroll-table td { min-height: 42px; padding: 7px 9px; border-bottom: 1px solid #edf0f4; background: #fff; vertical-align: middle; white-space: nowrap; }
.company-payroll-table tbody tr:last-child td { border-bottom: 0; }
.company-payroll-table tbody tr.is-missing td { background: #fff8f7; }
.company-payroll-table tbody tr.is-pending td { background: #fffaf0; }
.company-payroll-table .number { min-width: 94px; font-variant-numeric: tabular-nums; text-align: right; }
.company-payroll-table .total { color: #1d3557; font-weight: 700; }
.company-payroll-name { position: sticky !important; left: 0; z-index: 3 !important; width: 118px; min-width: 118px; box-shadow: 2px 0 0 #e3e7ec; }
th.company-payroll-name { z-index: 5 !important; background: #f6f8fb !important; }
.company-payroll-name strong, .company-payroll-name span { display: block; }
.company-payroll-name span { color: var(--finance-muted); font-size: 10px; }
.company-payroll-note { max-width: 220px; overflow: hidden; color: var(--finance-muted); text-overflow: ellipsis; }
.company-payroll-note-button { display: inline-flex; max-width: 210px; gap: 6px; align-items: center; padding: 0; border: 0; border-bottom: 1px dashed #8ca6c0; background: transparent; color: #315f8c; font: inherit; text-align: left; }
.company-payroll-note-button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.company-payroll-note-button i { flex: 0 0 auto; }
.company-payroll-value { display: inline-flex; gap: 4px; align-items: center; padding: 3px 5px; border: 0; border-radius: 4px; background: transparent; color: inherit; font: inherit; font-variant-numeric: tabular-nums; }
.company-payroll-value.is-manual-source { background: #fff7df; color: #8a5b00; box-shadow: inset 0 0 0 1px #eed08a; }
.company-payroll-value.is-linked-source { color: #3b5f87; }
.company-payroll-value:hover { background: #edf4fc; color: var(--finance-blue); }
.company-payroll-value i { font-size: 11px; }
.company-payroll-total-link { padding: 0; border: 0; border-bottom: 1px dashed #9bb6d5; background: transparent; color: inherit; font: inherit; font-weight: inherit; font-variant-numeric: tabular-nums; }
.company-payroll-total-link.is-net { color: #153e75; }
.company-payroll-table tr.is-lineage-target td { box-shadow: inset 0 2px #206bc4, inset 0 -2px #206bc4; }
.company-payroll-empty { color: #98a2b3; }
.company-payroll-na { color: #98a2b3; font-size: 10px; white-space: nowrap; }
.company-payroll-status { display: inline-flex; padding: 2px 6px; border-radius: 4px; background: #e7f4ec; color: #1d6f42; font-size: 10px; }
.company-payroll-status.is-pending { background: #fff1db; color: #985600; }
.company-payroll-status.is-missing { background: #fff0f0; color: #b42318; }
.company-payroll-current { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin-bottom: 14px; overflow: hidden; border: 1px solid var(--finance-border); border-radius: 6px; background: var(--finance-border); }
.company-payroll-current div { min-width: 0; padding: 8px 9px; background: #f8fafc; }
.company-payroll-current span, .company-payroll-current strong { display: block; }
.company-payroll-current span { overflow: hidden; color: var(--finance-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.company-payroll-current strong { margin-top: 2px; font-size: 12px; font-variant-numeric: tabular-nums; }

.employee-panel { display: grid; gap: 14px; }
.employee-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--finance-border); border-radius: 7px; background: var(--finance-border); }
.employee-summary div { padding: 14px; background: #fff; }
.employee-summary strong { display: block; font-size: 22px; }
.employee-summary span { color: var(--finance-muted); font-size: 12px; }
.employee-table tr.is-inactive { opacity: .58; }
.employee-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.employee-form-grid .span-2 { grid-column: 1 / -1; }
.employee-checks { display: flex; flex-wrap: wrap; gap: 16px; margin: 3px 0 14px; }
.employee-checks label { display: flex; margin: 0; }
.finance-dialog details { margin-bottom: 13px; padding: 9px 11px; border: 1px solid var(--finance-border); border-radius: 6px; }
.finance-dialog details summary { cursor: pointer; color: var(--finance-muted); font-weight: 600; }
.finance-dialog details label { margin: 10px 0 0; }

.finance-entry-groups { display: grid; gap: 18px; margin-top: 14px; min-width: 0; }
.finance-entry-group { min-width: 0; }
.finance-entry-group .finance-table-wrap { width: 100%; max-width: 100%; }
.finance-entry-group > header { display: flex; align-items: baseline; justify-content: space-between; padding: 0 2px 7px; }
.finance-entry-group > header h3 { margin: 0; font-size: 15px; }
.finance-entry-group > header span { color: var(--finance-muted); font-size: 11px; }
.finance-entry-table { min-width: 980px; }
.finance-entry-table td.subtle { max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.shipment-overview { display: grid; gap: 14px; margin-bottom: 20px; }
.shipment-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.shipment-kpis article, .shipment-chart-card { border: 1px solid var(--finance-border); border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgba(15, 23, 42, .05); }
.shipment-kpis article { padding: 14px 16px; }
.shipment-kpis span, .shipment-kpis small { display: block; color: var(--finance-muted); font-size: 11px; }
.shipment-kpis strong { display: block; margin: 3px 0; color: #172b4d; font-size: 25px; font-variant-numeric: tabular-nums; }
.shipment-chart-card { padding: 15px 16px 8px; overflow: hidden; }
.shipment-chart-card > header { display: flex; gap: 20px; align-items: start; justify-content: space-between; }
.shipment-chart-card h2 { margin: 0; font-size: 16px; }
.shipment-chart-card p { margin: 3px 0 0; color: var(--finance-muted); font-size: 11px; }
.shipment-legend { display: flex; gap: 12px; color: var(--finance-muted); font-size: 11px; white-space: nowrap; }
.shipment-legend span { display: inline-flex; gap: 5px; align-items: center; }
.shipment-legend i { width: 16px; height: 3px; border-radius: 2px; background: #206bc4; }
.shipment-legend i.compare { background: repeating-linear-gradient(90deg,#e07b00 0 6px,transparent 6px 9px); }
.shipment-trend { display: block; width: 100%; height: auto; min-width: 720px; }

@media (max-width: 760px) {
  .finance-analysis-region { margin-bottom: 14px; padding: 12px; }
  .finance-analysis-region-head { align-items: start; }
  .finance-analysis-region-head > span { max-width: 118px; text-align: right; }
  .finance-analysis-link { grid-template-columns: 38px minmax(0, 1fr) auto; padding: 10px; }
  .finance-analysis-link-icon { width: 38px; height: 38px; }
  .finance-analysis-kpis { grid-template-columns: 1fr; gap: 9px; }
  .finance-efficiency-summary { grid-template-columns: 1fr 1fr; gap: 8px; }
  .finance-efficiency-summary article { padding: 12px; }
  .finance-efficiency-summary strong { font-size: 17px; }
  .finance-budget-summary { grid-template-columns: 1fr 1fr; gap: 7px; }
  .finance-budget-summary strong { font-size: 15px; }
  .finance-budget-months { grid-template-columns: 1fr 1fr; }
  .finance-analysis-kpis article { padding: 13px 14px; }
  .finance-analysis-card { margin-bottom: 12px; padding: 13px; }
  .finance-analysis-card-head { margin-bottom: 10px; }
  .finance-combo-legend { gap: 6px 10px; font-size: 9px; }
  .finance-combo-chart-shell { margin: 0 -5px; width: calc(100% + 10px); }
  .finance-combo-chart.desktop { display: none; }
  .finance-combo-mobile-charts, .finance-combo-chart.mobile { display: block; }
  .finance-combo-mobile-part { padding: 9px 4px 2px; }
  .finance-combo-mobile-part + .finance-combo-mobile-part { border-top: 1px dashed #dfe5eb; }
  .finance-combo-mobile-part > strong { display: block; padding-left: 8px; color: #2d4965; font-size: 11px; }
  .finance-combo-axis-label { font-size: 20px; }
  .finance-combo-panel-title { font-size: 22px; }
  .finance-combo-value, .finance-combo-rate-label { font-size: 21px; }
  .finance-combo-month { font-size: 22px; }
  .finance-combo-line { stroke-width: 5; }
  .finance-combo-dot { r: 7px; stroke-width: 4; }
  .finance-combo-note { line-height: 1.55; }
  .finance-efficiency-chart.desktop { display: none; }
  .finance-efficiency-mobile-charts, .finance-efficiency-chart.mobile { display: block; }
  .finance-efficiency-mobile-part { padding: 9px 4px 2px; }
  .finance-efficiency-mobile-part + .finance-efficiency-mobile-part { border-top: 1px dashed #dfe5eb; }
  .finance-efficiency-mobile-part > strong { display: block; padding-left: 8px; color: #2d4965; font-size: 11px; }
  .finance-efficiency-chart .finance-combo-axis-label { font-size: 20px; }
  .finance-efficiency-chart .finance-combo-panel-title { font-size: 22px; }
  .finance-efficiency-value, .finance-break-even-label { font-size: 20px; }
  .finance-increment-head { display: grid; gap: 3px; }
  .finance-increment-head span { text-align: left; }
  .finance-increment-grid { grid-template-columns: 1fr 1fr; }
  .finance-analysis-table-details { padding: 0; }
  .finance-analysis-table-details .finance-comparison-guide { margin: 10px; }
  .finance-analysis-table-details .finance-analysis-table-wrap { margin: 0 0 10px; border-right: 0; border-left: 0; border-radius: 0; }
  .finance-analysis-table-wrap { margin: 0 -5px; }
  .finance-comparison-guide { display: grid; gap: 3px; }
  .finance-analysis-method { padding: 14px; }
  .finance-analysis-method dl { grid-template-columns: 1fr; gap: 3px; }
  .finance-analysis-method dd { margin-bottom: 8px; }
  .finance-analysis-notice, .finance-analysis-warning, .finance-analysis-reference { display: grid; gap: 3px; padding: 10px 12px; }
  .finance-report-title { margin-bottom: 14px; }
  .finance-report-title h1 { font-size: 20px; }
  .finance-report-kpis { grid-template-columns: 1fr; gap: 10px; margin-bottom: 14px; }
  .finance-report-kpis article, .finance-report-card, .finance-report-category { margin-bottom: 12px; padding: 14px; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
  .finance-report-kpis strong { font-size: 25px; }
  .finance-category-head { align-items: flex-start; }
  .finance-category-name { font-size: 14px; }
  .finance-category-total { width: 100%; font-size: 13px; }
  .finance-category-bar { height: 6px; margin: 7px 0; }
  .finance-waterfall { padding-bottom: 8px; }
  .finance-waterfall svg { min-width: 860px; }
  .finance-waterfall::after { display: block; margin-top: 8px; padding: 6px 8px; border: 1px solid #f0d58c; border-radius: 6px; background: #fff7e0; color: #8a6d1f; content: "左右滑动查看图表"; font-size: 12px; }
  .finance-subs-wrap { margin: 0 -8px; padding: 0 8px; }
  .finance-subs { min-width: 640px; font-size: 12px; }
  .finance-subs th, .finance-subs td { padding: 6px; }
  .payroll-total-band { flex-wrap: wrap; padding: 12px 14px; }
  .payroll-total-band strong { width: 100%; font-size: 20px; }
  .payroll-card { padding: 12px; }
  .payroll-card-head { gap: 10px; }
  .payroll-card-pay strong { font-size: 17px; }
  .payroll-deductions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-deductions div:nth-child(2) { border-right: 0; }
  .payroll-deductions div:nth-child(-n+2) { border-bottom: 1px solid #edf0f3; }
  .payroll-bank { grid-template-columns: auto minmax(0, 1fr); }
  .payroll-bank strong { grid-column: 2; text-align: left; }
  .payroll-payment-row { grid-template-columns: minmax(0, 1fr) auto; gap: 9px 12px; min-height: 0; padding: 12px; }
  .payroll-payment-bank { grid-column: 1 / -1; grid-row: 2; }
  .payroll-payment-amount { grid-column: 2; grid-row: 1; }
  .payroll-payment-state { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; }
  .payroll-net-formula { grid-template-columns: repeat(7, auto); overflow-x: auto; justify-content: start; font-size: 12px; }
  .company-payroll-summary { grid-template-columns: 1fr 1fr; }
  .company-payroll-summary div:nth-child(2) { grid-column: span 1; }
  .company-payroll-summary div:last-child { grid-column: 1 / -1; }
  .company-payroll-current { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-summary { grid-template-columns: 1fr; }
  .employee-form-grid { grid-template-columns: 1fr; }
  .employee-form-grid .span-2 { grid-column: auto; }
  .shipment-kpis { grid-template-columns: 1fr; }
  .shipment-chart-card { overflow-x: auto; }
  .shipment-chart-card > header { position: sticky; left: 0; flex-direction: column; gap: 8px; }
}

@media print {
  .finance-tabs, .finance-toolbar, .page-header, .navbar, .bottom-tab-bar, .payroll-adjust { display: none !important; }
  .page-wrapper { margin: 0 !important; }
  .page-body { padding: 0 !important; }
  .finance-report-kpis article, .finance-report-card, .finance-report-category, .payroll-card { box-shadow: none; border: 1px solid #ddd; }
  .payroll-total-band { print-color-adjust: exact; }
}
