/* DashF 3.0 — warm surfaces, navy structure and restrained gold accents. */
:root {
    --ink: #14253d; --muted: #626b74; --line: #e3dfd4;
    --canvas: #f2eee3; --surface: #fffdf8; --navy: #14253d; --navy-soft: #24364f;
    --gold: #d6ad46; --radius: 24px; --shadow: 0 3px 14px rgba(40, 36, 24, .035);
}
body { background: var(--canvas); color: var(--ink); line-height: 1.55; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.legend-item:focus-visible, .category-row:focus-visible, .merchant-item:focus-visible { outline: 3px solid #9c7524; outline-offset: 4px; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 150; padding: 12px 20px; background: var(--navy); color: white; border-radius: 12px; }
.skip-link:focus { top: 12px; }
.sidebar { width: 228px; background: var(--navy); padding: 32px 18px 24px; }
.brand { line-height: 1.3; gap: 12px; padding: 0 8px; }
.brand-mark { background: var(--gold); color: var(--navy); border-radius: 13px; width: 40px; height: 40px; }
.nav-list { margin-top: 46px; gap: 9px; }
.nav-item { min-height: 52px; padding: 14px; color: #b8c3d3; border-radius: 12px; font-size: .92rem; }
.nav-item:hover { color: #fffdf8; background: var(--navy-soft); }
.nav-item.active { color: #fffdf8; background: var(--navy-soft); box-shadow: inset 3px 0 var(--gold); }
.nav-item.active svg { color: var(--gold); }
.sidebar-account { border-color: #33445d; }
.sidebar-account small { color: #b8c3d3; }
.account-avatar { background: var(--navy-soft); color: var(--gold); }
.main-content { margin-left: 228px; padding: 0 clamp(24px, 3vw, 56px) 56px; max-width: 1920px; }
.topbar { min-height: 100px; gap: 16px; border-color: var(--line); }
.topbar-title .eyebrow { color: var(--muted); }
.topbar-title h1 { font-size: 1.35rem; }
.topbar-actions { gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.mobile-session, .mobile-menu { display: none; }
.period-navigation { display: flex; align-items: center; gap: 4px; min-width: 0; }
.period-control select { width: 205px; }
.period-navigation .icon-button { background: transparent; border: 0; width: 32px; flex: 0 0 32px; }
.icon-button { min-width: 44px; min-height: 44px; border-radius: 12px; }
.period-navigation .icon-button { min-width: 32px; }
.button { min-height: 48px; border-radius: 13px; padding: 10px 18px; font-size: .88rem; box-shadow: none; }
.button.primary { color: var(--navy); background: var(--gold); border-color: var(--gold); box-shadow: none; }
.button.primary:hover { color: var(--navy); background: #e0ba5b; border-color: #e0ba5b; }
.button:disabled { opacity: .5; cursor: not-allowed; }
input:not([type=checkbox]):not([type=hidden]):not([type=file]), select, textarea { min-height: 48px; background-color: var(--surface); border-color: #d6d3ca; border-radius: 12px; color: var(--ink); }
input:focus, select:focus, textarea:focus { border-color: #9c7524; box-shadow: 0 0 0 3px rgba(214,173,70,.16); }
.view { padding-top: 36px; }
h1, h2, h3 { color: var(--ink); letter-spacing: -.035em; }
h2 { font-size: clamp(1.8rem, 2.8vw, 2.65rem); line-height: 1.15; }
h3 { font-size: 1.12rem; line-height: 1.35; }
.eyebrow { color: #727367; font-size: .72rem; letter-spacing: .1em; }
.month-heading { align-items: flex-end; margin-bottom: 28px; }
.month-heading h2 { font-size: clamp(2rem, 3.3vw, 3.4rem); margin-top: 9px; }
.month-context { color: var(--muted); font-size: .9rem; line-height: 1.6; }
.kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.kpi-card { min-height: 190px; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); box-shadow: var(--shadow); }
.kpi-card::after { display: none; }
.kpi-label { color: var(--muted); font-size: .86rem; font-weight: 600; }
.kpi-label svg { color: #7561a9; }
.kpi-card > .amount-link:not(.kpi-change) { font-size: clamp(1.6rem, 2.7vw, 2.8rem); margin: 18px 0 12px; font-variant-numeric: tabular-nums; letter-spacing: -.05em; }
.kpi-card .kpi-change, .kpi-income-card .kpi-meta { color: var(--muted); font-size: .8rem; }
.kpi-savings-card { color: #fffdf8; background: #14253d; border-color: var(--navy); }
.kpi-savings-card .kpi-label, .kpi-savings-card .kpi-savings-detail small { color: #bac5d4; }
.kpi-savings-card .kpi-label svg { color: var(--gold); }
.kpi-savings-card .negative { color: #ffb6b6; }
.kpi-savings-detail { border-color: #3d4c61; }
.kpi-savings-detail strong { color: var(--gold); }
.info-dot { border-color: #9e9582; color: var(--muted); }
.dashboard-grid { gap: 20px; margin-top: 20px; }
.primary-grid, .secondary-grid { grid-template-columns: minmax(0, 1.5fr) minmax(300px, 1fr); }
.analysis-grid { grid-template-columns: minmax(300px, 1fr) minmax(0, 1.5fr); }
.card { border-color: var(--line); }
.chart-card, .category-list-card, .merchants-card, .balance-card, .history-card, .import-info,
.rule-form-card, .comparison-card, .management-card, .rules-layout > .card { padding: 28px; }
.card-header { margin-bottom: 24px; flex-wrap: wrap; }
.chart-legend, .chart-caption, .helper-copy, .management-help { font-size: .8rem; color: var(--muted); line-height: 1.6; }
.chart-box { height: clamp(300px, 25vw, 390px); }
.donut-box { width: 210px; height: 210px; }
.composition-donut-box { width: 200px; height: 200px; }
.donut-center span { font-size: .8rem; }
.donut-center strong { font-size: 1.22rem; }
.category-legend { grid-template-columns: 1fr; gap: 3px; margin-top: 24px; }
.legend-item { font-size: .88rem; min-height: 44px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.legend-item:last-child { border-bottom: 0; }
.legend-item span { white-space: normal; overflow-wrap: anywhere; }
.legend-item strong { font-size: .83rem; white-space: nowrap; }
.legend-item i { width: 10px; height: 10px; }
.legend-item:hover, .category-row:hover, .merchant-item:hover { background: #f4f0e6; }
.category-row { grid-template-columns: minmax(130px, 1fr) minmax(70px, 1fr) 92px; min-height: 48px; }
.category-name { font-size: .88rem; }
.category-name span, .category-name small { white-space: normal; }
.category-name small, .category-value small { font-size: .73rem; }
.category-value strong { font-size: .96rem; }
.progress-track { height: 8px; background: #eeeadf; }
.composition-legend > div, .comparison-total, .manage-row, .category-manage-row { background: #f3f0e7; border-radius: 13px; }
.composition-legend > div { padding: 15px; gap: 6px; }
.composition-legend span, .composition-legend small { font-size: .8rem; }
.composition-legend strong { font-size: 1.08rem; }
.insights-card { padding: 26px 28px; background: #e9e2d1; border-color: #ddd3bb; margin-top: 24px; }
#insights-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 12px; }
.insight-item { background: var(--surface); border-color: #ddd3bb; padding: 16px; border-radius: 14px; }
.insight-item:hover { border-color: #9c7524; }
.text-button { color: var(--navy); font-size: .83rem; min-height: 44px; }
.section-heading { margin-bottom: 28px; }
.section-heading p:last-child { margin-top: 12px; line-height: 1.6; }
.filter-bar { gap: 12px; padding: 18px; border-radius: 20px; }
.multi-select summary { min-height: 48px; border-color: #d6d3ca; background: var(--surface); border-radius: 12px; }
.multi-menu { background: var(--surface); border-color: var(--line); max-height: 320px; overflow-y: auto; z-index: 45; }
.multi-menu label { min-height: 44px; font-size: .85rem; }
.filtered-summary { gap: 16px; padding: 20px 0; }
.filtered-summary > span { padding: 12px 16px; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; flex: 1; }
.filtered-summary small { font-size: .75rem; }
.filtered-summary strong { font-size: 1.05rem; }
th { color: var(--muted); background: #f3f0e7; font-size: .72rem; }
td { font-size: .85rem; border-color: var(--line); padding-top: 17px; padding-bottom: 17px; }
tbody tr:hover { background: #f8f5ec; }
.transaction-title strong { font-size: .86rem; }
.transaction-title span, .note-cell, .account-cell small { font-size: .76rem; }
.category-select { min-height: 44px; font-size: .82rem; }
.status-pill { font-size: .73rem; padding: 6px 9px; }
.pagination { padding: 18px; font-size: .83rem; }
.row-action { min-height: 44px; min-width: 44px; }
.bulk-toolbar { background: #e9e2d1; padding: 18px; }
.import-layout, .rules-layout, .management-grid { gap: 20px; }
.management-grid { margin-bottom: 20px; }
.drop-zone { background: #f6f3ea; border-color: #baaa82; min-height: 330px; border-radius: 18px; }
.drop-zone:hover, .drop-zone.dragging { background: #efe7d0; border-color: #9c7524; }
.upload-icon { background: var(--navy); color: var(--gold); }
.drop-zone small, .process-list p, .history-row, .stack-form label, .sheet-form > label, .sheet-form > label > small { font-size: .85rem; color: var(--muted); }
.process-list strong { font-size: .95rem; }
.stack-form { gap: 18px; }
.form-row { gap: 16px; }
.check-field, .stack-form .check-field { min-height: 44px; }
.manage-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.manage-row input[type=text], .manage-row select { min-height: 44px; font-size: .85rem; }
.manage-label strong, .category-manage-row strong { font-size: .88rem; }
.manage-label span, .rule-row small { font-size: .8rem; }
.rule-row { padding: 18px 0; }
.rule-row strong { font-size: .98rem; }
.rule-row .row-buttons { gap: 8px; }
.audit-entry { padding: 24px; }
.audit-type { background: #eee7d4; color: #735b24; }
.audit-action, .audit-entry .audit-meta { font-size: .83rem; }
.audit-table thead th, .audit-table tbody th { background: #f3f0e7; }
.audit-table .audit-before { background: var(--surface); }
.audit-table-wrap { border-color: var(--line); }
.audit-actions .button { min-height: 44px; font-size: .83rem; }
.comparison-table th, .comparison-table td { font-size: .85rem; }
.comparison-table thead th { font-size: .75rem; }
.merchant-item { grid-template-columns: 28px minmax(120px, 1.4fr) repeat(3, minmax(80px, .7fr)) minmax(90px, .7fr); gap: 12px; padding: 18px 0; }
.merchant-main strong { white-space: normal; font-size: .92rem; }
.merchant-stat small, .merchant-main span, .merchant-total small { font-size: .75rem; }
.merchant-stat strong, .merchant-total strong { font-size: .86rem; }
.sheet { background: var(--surface); width: min(500px, 100%); padding: 36px 28px; }
.sheet-form { gap: 20px; padding-bottom: env(safe-area-inset-bottom); }
.sheet-meta { font-size: .85rem; }
.decision-button { background: var(--surface); padding: 16px; }
.decision-button strong { font-size: .88rem; }
.decision-button small { font-size: .78rem; }
.confirm-dialog { background: var(--surface); border-radius: 24px; }
.toast { background: var(--navy); font-size: .88rem; padding: 16px 20px; }
.login-page { background: var(--navy); }
.login-shell { width: min(480px, 100%); padding: 36px 20px; }
.login-brand { color: var(--surface); margin-bottom: 30px; }
.login-card { background: var(--surface); border: 1px solid var(--line); border-radius: 28px; padding: 36px; box-shadow: 0 20px 60px #08162955; }
.login-card h1 { font-size: 2rem; margin-top: 10px; }
.login-footnote { color: #b8c3d3; font-size: .8rem; }
@media (max-width: 1280px) {
    .topbar { flex-wrap: wrap; padding: 20px 0; }
    .topbar-actions { flex: 1 1 auto; }
    .primary-grid, .secondary-grid, .analysis-grid { grid-template-columns: minmax(0, 1fr); }
    .management-grid { grid-template-columns: minmax(0, 1fr); }
    .category-legend { grid-template-columns: 1fr 1fr; }
    .income-card .category-legend { grid-template-columns: 1fr; }
}
@media (max-width: 1000px) {
    .import-layout, .rules-layout { grid-template-columns: minmax(0, 1fr); }
    .merchant-item { grid-template-columns: 28px minmax(0, 1fr) repeat(2, minmax(90px, .6fr)); }
    .merchant-main { grid-column: 2 / -1; }
    .merchant-stat { grid-column: auto; }
    .merchant-item > .merchant-stat:nth-of-type(3) { grid-column: 2; }
    .merchant-total { grid-column: auto; }
    .kpi-card { padding: 20px; }
}
@media (max-width: 900px) {
    .sidebar, body.menu-open .sidebar { position: fixed; inset: auto 0 0; width: 100%; height: auto; transform: none; padding: 6px 8px max(8px, env(safe-area-inset-bottom)); z-index: 40; border-top: 1px solid #314258; border-radius: 20px 20px 0 0; }
    .sidebar .brand, .sidebar-account { display: none; }
    .nav-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin: 0; }
    .nav-item { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 9px 2px; min-height: 60px; font-size: .7rem; border-radius: 12px; }
    .nav-item span { display: block; }
    .nav-item svg { width: 21px; height: 21px; }
    .nav-item.active { box-shadow: inset 0 -3px var(--gold); }
    .main-content { margin-left: 0; padding: 0 24px calc(112px + env(safe-area-inset-bottom)); }
    .mobile-session { display: block; }
    .mobile-menu { display: none; }
    .topbar-title { flex: 1; }
    .topbar-actions { order: 3; flex: 1 0 100%; justify-content: flex-start; }
    .topbar { min-height: 0; gap: 16px; }
    .toast { bottom: calc(94px + env(safe-area-inset-bottom)); }
    .month-heading { align-items: flex-start; }
}
@media (max-width: 620px) {
    .main-content { padding-left: 16px; padding-right: 16px; }
    .topbar-title .eyebrow { display: block; font-size: .65rem; }
    .topbar-title h1 { font-size: 1.25rem; }
    .topbar-actions { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: 10px; }
    .period-navigation { grid-column: 1 / -1; justify-content: space-between; }
    .period-control { flex: 1; }
    .period-control select { max-width: none; width: 100%; padding-left: 40px; text-align: center; }
    .period-control svg { display: block; }
    .period-navigation .icon-button { min-width: 44px; flex-basis: 44px; background: var(--surface); border: 1px solid var(--line); }
    .group-control { width: 100%; }
    .group-control select { width: 100%; }
    .topbar-actions > .button { width: 48px; padding: 0; }
    .topbar-actions > .button span { display: none; }
    input:not([type=checkbox]), select, textarea { font-size: 16px; }
    .view { padding-top: 28px; }
    .month-heading { display: block; margin-bottom: 24px; }
    .month-heading h2 { font-size: clamp(1.8rem, 8vw, 2.6rem); }
    .month-heading .eyebrow { font-size: .75rem; }
    .month-context { margin-top: 12px; font-size: .85rem; max-width: none; }
    .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .kpi-card { min-height: 164px; padding: 18px 14px; border-radius: 20px; }
    .kpi-card > .amount-link:not(.kpi-change) { font-size: clamp(1.2rem, 5.4vw, 2rem); margin: 16px 0 12px; }
    .kpi-label { font-size: .78rem; }
    .kpi-savings-card { grid-column: 1 / -1; min-height: 170px; padding: 22px; }
    .kpi-savings-card > .amount-link:not(.kpi-change) { font-size: 2.25rem; }
    .kpi-card .kpi-change, .kpi-income-card .kpi-meta { font-size: .73rem; }
    .dashboard-grid { gap: 16px; margin-top: 16px; }
    .chart-card, .category-list-card, .merchants-card, .balance-card, .history-card, .import-info,
    .rule-form-card, .comparison-card, .management-card, .rules-layout > .card, .insights-card { padding: 20px; border-radius: 20px; }
    .card-header { margin-bottom: 20px; gap: 12px; }
    .chart-box { height: 280px; }
    .category-legend { grid-template-columns: 1fr; }
    .category-row { grid-template-columns: minmax(0, 1fr) 88px; gap: 8px 12px; padding: 8px 0; }
    .category-row .progress-track { grid-column: 1; grid-row: 2; }
    .category-value { grid-column: 2; grid-row: 1 / 3; }
    .category-bars { gap: 6px; }
    .category-name { font-size: .85rem; }
    .filter-bar { grid-template-columns: minmax(0, 1fr); padding: 16px; }
    .filtered-summary { gap: 6px; }
    .filtered-summary > span { padding: 10px 8px; min-width: 0; }
    .filtered-summary small { font-size: .64rem; }
    .filtered-summary strong { font-size: .85rem; }
    .mobile-transaction { background: var(--surface); border-radius: 18px; padding: 18px; }
    .mobile-transaction-title { font-size: 1rem; line-height: 1.4; }
    .mobile-transaction p, .mobile-transaction-bottom, .mobile-transaction-top label { font-size: .8rem; }
    .mobile-note { background: #f3f0e7; }
    .transaction-tools .button { font-size: .83rem; }
    .manage-row { grid-template-columns: minmax(0, 1fr) auto; padding: 14px; }
    .manage-row .manage-label { grid-column: 1 / -1; }
    .manage-row input[type=text] { grid-column: 1 / -1; }
    .manage-row select { width: 100%; }
    .category-manage-row { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; }
    .category-manage-row .fixed-toggle { grid-column: 2; }
    .new-category-form { grid-template-columns: minmax(0, 1fr) 48px; }
    .new-category-form input[type=text], .new-category-form select, .new-category-form .fixed-toggle { grid-column: 1 / -1; }
    .new-category-form .button { grid-column: 1 / -1; }
    .rule-row { grid-template-columns: 28px minmax(0, 1fr); }
    .rule-row .row-buttons { grid-column: 2; flex-wrap: wrap; }
    .audit-entry { padding: 20px; }
    .audit-actions { align-items: center; }
    .merchant-item { grid-template-columns: 26px minmax(0, 1fr) minmax(0, 1fr); gap: 10px; }
    .merchant-main { grid-column: 2 / -1; }
    .merchant-item .merchant-stat { display: grid; grid-column: auto; }
    .merchant-item > .merchant-stat:nth-of-type(3) { grid-column: 2; }
    .merchant-total { grid-column: 3; }
    .merchant-stat strong { white-space: normal; }
    .sheet { padding: 32px 20px; }
    .sheet h2 { padding-right: 35px; }
    .decision-grid.two-options { grid-template-columns: minmax(0, 1fr); }
    .toast { left: 16px; right: 16px; max-width: none; }
    .login-card { padding: 28px 24px; }
}
/* Management rows retain their own field structure at each breakpoint. */
.small-action { width: 44px; height: 44px; }
.category-manage-row { grid-template-columns: 44px minmax(0, 1fr) auto auto 44px 44px; }
.group-manage-row { grid-template-columns: 44px minmax(0, 1fr) 44px 44px; }
.category-manage-row input[type=color], .new-category-form input[type=color] { width: 44px; min-width: 44px; height: 48px; }
.rule-row { background: #f3f0e7; padding: 16px; }
.rule-row span { font-size: .8rem; }
@media (max-width: 620px) {
    .category-manage-row { grid-template-columns: 44px minmax(0, 1fr) 44px 44px; }
    .category-manage-row input[type=text] { grid-column: 2 / -1; grid-row: 1; }
    .category-manage-row .fixed-toggle { grid-column: 2; grid-row: 2; }
    .group-manage-row { grid-template-columns: 44px minmax(0, 1fr) 44px 44px; }
    .group-manage-row .manage-label { grid-column: 2 / -1; }
    .group-manage-row .small-action { grid-row: 2; }
    #group-form { grid-template-columns: minmax(0,1fr) 44px; }
    #group-form input[type=text] { grid-column: 1; }
    #group-form .button { grid-column: 1 / -1; }
}
.kpi-expense-card .kpi-label, .kpi-income-card .kpi-label { color: #626b74; }
.kpi-expense-card .kpi-change.neutral { color: #626b74; }
.kpi-expense-card .kpi-change.positive { color: #17674f; }
.kpi-expense-card .kpi-change.negative { color: #a94253; }
.kpi-savings-card .negative-value { color: #ffb6b6; }
.multi-select[open] summary { border-color: #9c7524; box-shadow: 0 0 0 3px rgba(214,173,70,.16); }
@media (max-width: 620px) { .login-page { padding: 12px; } .login-shell { padding: 24px 8px; } }
/* 3.1 — consistent management controls, priority badges and branded checkboxes. */
.manage-row { align-items: center; gap: 10px; }
.manage-row input[type=text], .manage-row select, .new-category-form input:not([type=checkbox]),
.new-category-form select, .new-category-form .button { height: 48px; min-height: 48px; }
.small-action { width: 48px; height: 48px; border-radius: 12px; flex-shrink: 0; }
.category-manage-row { grid-template-columns: 48px minmax(0, 1fr) auto auto 48px 48px; }
.group-manage-row { grid-template-columns: 48px minmax(0, 1fr) 48px 48px; row-gap: 4px; }
.group-manage-row .manage-label { display: contents; }
.group-manage-row .manage-label input { grid-column: 2; grid-row: 1; margin: 0; }
.group-manage-row .manage-label span { grid-column: 2 / -1; grid-row: 2; padding-top: 3px; white-space: normal; }
.group-manage-row > input[type=color] { grid-column: 1; grid-row: 1; }
.group-manage-row > .small-action { grid-row: 1; }
.group-manage-row > .small-action:not(.delete) { grid-column: 3; }
.group-manage-row > .small-action.delete { grid-column: 4; }
.new-category-form { align-items: center; grid-template-columns: minmax(0, 1fr) 110px auto 48px auto; }
#group-form { grid-template-columns: minmax(0, 1fr) 48px auto; }
.manage-row .kind-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 12px; border-radius: 12px; font-size: .75rem; }
.manage-row .fixed-toggle, .new-category-form .fixed-toggle { min-height: 48px; height: 48px; padding: 0 12px; border-radius: 12px; font-size: .8rem; gap: 8px; }
input[type=color], .category-manage-row input[type=color], .new-category-form input[type=color] {
    appearance: none; -webkit-appearance: none; box-sizing: border-box;
    width: 48px; min-width: 48px; height: 48px; min-height: 48px;
    padding: 0; border: 1px solid #14253d26; border-radius: 12px; overflow: hidden;
    background: transparent; cursor: pointer; box-shadow: none;
}
input[type=color]::-webkit-color-swatch-wrapper { padding: 0; }
input[type=color]::-webkit-color-swatch { border: 0; border-radius: 10px; }
input[type=color]::-moz-color-swatch { border: 0; border-radius: 10px; }
.rule-row { grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 16px; }
.rule-content { min-width: 0; }
.rule-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-bottom: 8px; }
.rule-heading > strong { min-width: 0; overflow-wrap: anywhere; }
.rule-heading .rule-priority { display: inline-flex; align-items: center; gap: 6px; padding: 4px 9px; border: 1px solid #d8c79f; border-radius: 8px; color: #735b24; background: #eee7d4; font-size: .72rem; line-height: 1.5; white-space: nowrap; }
.rule-priority b { color: #14253d; font-variant-numeric: tabular-nums; }
.rule-content > span, .rule-content > small { overflow-wrap: anywhere; }
.rule-row .row-buttons { align-self: center; justify-content: flex-end; }
input[type=checkbox], .stack-form input[type=checkbox], .fixed-toggle input, .new-category-form .fixed-toggle input {
    appearance: none; -webkit-appearance: none; display: inline-block;
    width: 18px; height: 18px; min-width: 18px; min-height: 18px; flex: 0 0 18px;
    padding: 0; margin: 0; border: 1.5px solid #97988f; border-radius: 5px;
    background: #fffdf8; box-shadow: none; vertical-align: middle;
    background-position: center; background-size: 14px 14px; background-repeat: no-repeat;
}
input[type=checkbox]:checked, input[type=checkbox]:indeterminate,
.stack-form input[type=checkbox]:checked, .fixed-toggle input[type=checkbox]:checked,
.new-category-form .fixed-toggle input[type=checkbox]:checked {
    background-color: #14253d; border-color: #b68b2e;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3 3 7-7' fill='none' stroke='%23e7c468' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
input[type=checkbox]:indeterminate { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8h8' stroke='%23e7c468' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E"); }
input[type=checkbox]:hover:not(:disabled) { border-color: #9c7524; }
input[type=checkbox]:focus-visible { outline: 3px solid #9c7524; outline-offset: 3px; }
input[type=checkbox]:disabled { opacity: .45; cursor: not-allowed; }
@media (min-width: 1281px) { .management-grid > .management-card:nth-child(3) { grid-column: 1 / -1; } }
@media (max-width: 760px) { .rule-row { grid-template-columns: minmax(0, 1fr); } .rule-row .row-buttons { grid-column: 1; justify-content: flex-start; } }
@media (max-width: 620px) {
    .category-manage-row, .group-manage-row { grid-template-columns: 48px minmax(0, 1fr) 48px 48px; }
    .category-manage-row > input[type=color] { grid-column: 1; grid-row: 1; }
    .category-manage-row > input[type=text] { grid-column: 2 / -1; grid-row: 1; }
    .category-manage-row .kind-badge { display: inline-flex; grid-column: 1 / 3; grid-row: 2; justify-self: start; }
    .category-manage-row .fixed-toggle { grid-column: 1 / 3; grid-row: 3; justify-self: start; }
    .category-manage-row > .small-action { grid-row: 2; }
    .category-manage-row > .small-action:not(.delete) { grid-column: 3; }
    .category-manage-row > .small-action.delete { grid-column: 4; }
    .group-manage-row .manage-label input { grid-column: 2 / -1; grid-row: 1; }
    .group-manage-row .manage-label span { grid-column: 1 / -1; grid-row: 3; }
    .group-manage-row > .small-action { grid-row: 2; }
    .new-category-form { grid-template-columns: minmax(0, 1fr) 48px; }
    .new-category-form input:not([type=color]):not([type=checkbox]), .new-category-form select { grid-column: 1 / -1; }
    .new-category-form .fixed-toggle { grid-column: 1; grid-row: auto; }
    .new-category-form input[type=color] { grid-column: 2; }
    .new-category-form .button { grid-column: 1 / -1; }
    #group-form { grid-template-columns: minmax(0, 1fr) 48px; }
    #group-form input[name=name] { grid-column: 1; }
}
@media (forced-colors: active) {
    input[type=checkbox], .stack-form input[type=checkbox], .fixed-toggle input, .new-category-form .fixed-toggle input { appearance: auto; background-image: none; forced-color-adjust: auto; }
}
/* 3.3 — circular colour controls and compact rule priorities. */
input[type=color]:not([type=checkbox]):not([type=hidden]):not([type=file]) {
    width: 32px; min-width: 32px; height: 32px; min-height: 32px;
    border-radius: 50%; justify-self: center; align-self: center;
}
input[type=color]::-webkit-color-swatch { border-radius: 50%; }
input[type=color]::-moz-color-swatch { border-radius: 50%; }
input[type=checkbox], .stack-form input[type=checkbox], .fixed-toggle input, .new-category-form .fixed-toggle input {
    width: 24px; min-width: 24px; height: 24px; min-height: 24px; flex-basis: 24px;
    border-radius: 8px; background-size: 18px 18px;
}
.rule-row { grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px; }
.rule-priority-column { align-self: stretch; display: flex; align-items: center; justify-content: center; padding-right: 10px; border-right: 1px solid #d5cbb5; min-width: 0; }
.rule-priority-column > strong { color: #735b24; font-size: .95rem; line-height: 1.3; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-align: center; }
.rule-heading { margin-bottom: 6px; }
.rule-row .row-buttons { flex-wrap: nowrap; gap: 8px; margin: 0; }
.rule-toggle.is-paused { background: #eee7d4; border-color: #d8c79f; }
@media (max-width: 1000px) {
    .rule-row { grid-template-columns: 40px minmax(0, 1fr); gap: 10px 12px; }
    .rule-priority-column { grid-column: 1; grid-row: 1 / 3; }
    .rule-content { grid-column: 2; }
    .rule-row .row-buttons { grid-column: 2; justify-content: flex-start; }
}
@media (max-width: 620px) {
    .rule-row { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 12px; }
    .rule-priority-column { padding-right: 8px; }
    .rule-priority-column > strong { font-size: .9rem; }
}
/* 3.4 — refined rhythm and consistent layouts, without changing the palette. */
html { scrollbar-gutter: stable; }
:root { --control-radius: 12px; }
.main-content { max-width: 1840px; }
.card, .kpi-card { box-shadow: 0 2px 4px #14253d03, 0 8px 24px #14253d04; }
.card-header { align-items: center; gap: 12px 20px; }
.card-header > div { min-width: 0; }
.card-header .eyebrow { margin-bottom: 6px; }
.card-header > svg { flex: 0 0 20px; color: #8c928e; }
.section-heading h2 { margin-bottom: 12px; }
.section-heading p:last-child { max-width: 72ch; }
.month-context { max-width: 46ch; }
.secondary-grid, .analysis-grid { align-items: stretch; }
.kpi-card > .kpi-change, .kpi-income-card > .kpi-meta { margin-top: auto; padding-top: 10px; }
.kpi-savings-detail { padding-top: 12px; }
.kpi-savings-detail small { line-height: 1.5; }
button, a, select, input, textarea { transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease; }
.button, .icon-button, .small-action { border-radius: var(--control-radius); }
.button:not(.primary):not(.danger-button):hover, .icon-button:not(:disabled):hover { background-color: #f1eddf; border-color: #c6bda8; }
.small-action:hover { background-color: #f1eddf; border-color: #b8aa8d; color: #14253d; }
.small-action.delete:hover { color: #a94253; background-color: #fcf0ee; border-color: #ddb1b1; }
button:disabled:hover { box-shadow: none; }
.amount-link { font-variant-numeric: tabular-nums; }
.legend-item, .category-row { border-radius: 8px; }
.legend-item { padding-left: 6px; padding-right: 6px; gap: 10px; }
.legend-item strong { flex: 0 0 auto; }
.category-name small { line-height: 1.4; }
.category-row { padding-left: 6px; padding-right: 6px; }
.composition-legend > div { border: 1px solid #e3dfd4; }
.merchants-card > .helper-copy { margin-top: -8px; margin-bottom: 10px; max-width: 90ch; }
.merchant-list .merchant-item:last-child { border-bottom: 0; }
.merchant-item { border-color: #e3dfd4; }
.merchant-rank { background: #eae5d8; color: #626b74; border-radius: 8px; }
.compact-select select { min-height: 44px; font-size: .8rem; }
.transaction-tools { margin: 0 0 16px; gap: 10px; }
.transaction-tools > .helper-copy { margin: 0; }
.filter-bar { align-items: start; }
.search-field svg { top: 50%; transform: translateY(-50%); }
.multi-select summary { font-size: .85rem; gap: 10px; }
.multi-menu { left: 0; right: 0; width: auto; min-width: 0; border-radius: 14px; padding: 12px; box-shadow: 0 12px 32px #14253d15; }
.multi-options label:hover { background: #f1eddf; }
.multi-menu-head { padding: 4px 4px 10px; border-bottom: 1px solid #e3dfd4; }
.multi-menu-head strong { font-size: .8rem; }
.multi-menu-head button { min-height: 36px; font-size: .8rem; color: #735b24; }
.multi-options { padding-top: 8px; scrollbar-width: thin; scrollbar-color: #c6bda8 transparent; }
.multi-options label { padding: 10px 8px; gap: 12px; }
.multi-options label span { min-width: 0; overflow-wrap: anywhere; }
.table-wrap { scrollbar-width: thin; scrollbar-color: #c6bda8 transparent; }
#view-transactions table td:first-child, #view-transactions table th:first-child { text-align: center; width: 56px; }
#view-transactions table .amount { font-variant-numeric: tabular-nums; }
.transaction-title span { margin-top: 4px; line-height: 1.45; }
.table-wrap .row-action { display: grid; place-items: center; border: 1px solid transparent; }
.table-wrap .row-action:hover { border-color: #d6d3ca; background: #f1eddf; }
.pagination { border-top: 1px solid #e3dfd4; min-height: 76px; }
.mobile-transaction .mobile-transaction-top { align-items: center; }
.mobile-transaction-title { padding-top: 14px; padding-bottom: 6px; overflow-wrap: anywhere; }
.mobile-transaction-bottom { padding-top: 8px; border-top: 1px solid #e3dfd4; margin-top: 12px; }
.mobile-transaction-bottom > span { min-width: 0; overflow-wrap: anywhere; }
.mobile-transaction .mobile-note { margin-top: 12px; padding: 12px; }
.management-help { margin-bottom: 20px; }
.manage-row { padding: 12px; }
.manage-list { gap: 10px; }
.manage-row[data-account-row] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 48px; }
.manage-row[data-account-row] .manage-label { grid-column: 1 / -1; }
.manage-label strong { white-space: normal; overflow-wrap: anywhere; }
.category-manage-row { grid-template-columns: 48px minmax(0, 1fr) auto 48px 48px; }
.category-properties { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.category-properties .kind-badge { font-weight: 600; }
.category-properties .fixed-toggle { cursor: pointer; }
.category-manage-list { max-height: 480px; padding: 3px 8px 3px 3px; scrollbar-width: thin; scrollbar-color: #c6bda8 transparent; }
.new-category-form { margin-top: 18px; padding-top: 18px; gap: 10px; }
#group-form { grid-template-columns: minmax(0,1fr) 48px auto; }
.rule-row { border: 1px solid #e7e1d3; }
.rule-content > span { line-height: 1.5; }
.rule-content > small { margin-top: 5px; line-height: 1.5; }
.rule-row.inactive { opacity: 1; background: #f6f4ed; }
.rule-row.inactive .rule-content { opacity: .65; }
.rule-form-card .stack-form > label { gap: 8px; }
.form-row > label { gap: 8px; }
.form-actions { border-top: 1px solid #e3dfd4; margin-top: 2px; padding-top: 18px; }
.stack-form .check-field { font-weight: 600; }
.import-layout { align-items: stretch; }
.drop-zone { min-height: 320px; gap: 6px; }
.selected-file { background: #f3f0e7; padding: 12px; overflow-wrap: anywhere; }
.selected-file span { flex: 0 0 auto; }
.import-account { background: #f3f0e7; padding: 16px; }
.import-preview-file summary { cursor: pointer; min-height: 44px; padding: 10px 0; }
.history-row { align-items: start; gap: 16px; padding: 16px 0; }
.history-row strong { overflow-wrap: anywhere; }
.audit-entry { border-color: #e3dfd4; }
.audit-header { gap: 16px; }
.audit-heading h3 { font-weight: 700; }
.audit-meta { line-height: 1.6; }
.audit-table th, .audit-table td { border-color: #e3dfd4; }
.audit-actions { min-width: 0; }
.sheet { height: 100dvh; position: relative; overscroll-behavior: contain; scrollbar-width: thin; }
.sheet-close { position: sticky; float: right; top: 0; right: auto; margin: -12px -4px 8px 12px; z-index: 2; background: #fffdf8; }
.sheet h2 { clear: none; font-size: 1.65rem; line-height: 1.25; overflow-wrap: anywhere; }
.sheet-amount { font-variant-numeric: tabular-nums; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid #e3dfd4; }
.sheet-form > label { gap: 8px; }
.sheet-save-bar { position: sticky; bottom: 0; margin-bottom: -12px; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); background: #fffdf8; border-top: 1px solid #e3dfd4; z-index: 2; }
.decision-button.selected { background: #eee7d4; border-color: #b68b2e; }
.decision-button.selected > svg { color: #735b24; }
#split-details { padding: 16px; background: #f6f3ea; }
#split-details > summary { min-height: 32px; }
#split-details .helper-copy { margin-top: 12px; }
.split-row { border-color: #e3dfd4; }
.confirm-dialog { max-height: calc(100dvh - 32px); overflow-y: auto; }
.confirm-actions { flex-wrap: wrap; gap: 10px; }
.toast { border: 1px solid #35455a; line-height: 1.5; }
.empty-state { min-height: min(520px, 65vh); padding: 32px 0; }
.empty-state p { font-size: .95rem; line-height: 1.6; }
.login-form label { gap: 8px; }
.login-intro { line-height: 1.6; }
@media (max-width: 900px) {
    .topbar-actions { align-items: center; }
    .period-navigation { flex: 1; }
    .sheet-backdrop { padding: 0; }
}
@media (max-width: 760px) {
    #view-transactions .table-card { border: 0; background: transparent; box-shadow: none; overflow: visible; }
    .transaction-mobile-list { gap: 12px; }
    .pagination { padding: 16px 0; }
    .filtered-summary > span { display: flex; flex-direction: column; justify-content: space-between; }
}
@media (max-width: 620px) {
    .card-header { gap: 12px; }
    .card-header h3 { font-size: 1.05rem; }
    .chart-legend { flex-wrap: wrap; }
    .legend-item { padding: 8px 2px; }
    .category-row { padding-left: 0; padding-right: 0; }
    .transaction-tools .button { flex: 1 1 auto; padding: 10px 12px; }
    .bulk-toolbar { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
    .bulk-toolbar select, .bulk-toolbar .button { max-width: none; width: 100%; }
    .manage-row[data-account-row] { grid-template-columns: minmax(0,1fr) 48px; }
    .manage-row[data-account-row] > input[type=text] { grid-column: 1 / -1; }
    .manage-row[data-account-row] > select { grid-column: 1; }
    .category-manage-row { grid-template-columns: 48px minmax(0, 1fr) 48px 48px; gap: 10px; }
    .category-manage-row > input[type=text] { grid-column: 2 / -1; }
    .category-properties { grid-column: 1 / 3; grid-row: 2; }
    .category-properties .kind-badge { min-height: 32px; padding: 0 8px; }
    .category-properties .fixed-toggle { padding: 0 8px; }
    .new-category-form { grid-template-columns: minmax(0,1fr) 48px; }
    #group-form { grid-template-columns: minmax(0,1fr) 48px; }
    .new-category-form .button { grid-column: 1 / -1; }
    .sheet { padding: 28px 20px; }
    .sheet-close { margin-right: 0; }
    .sheet h2 { font-size: 1.5rem; }
    .confirm-dialog form { padding: 24px 20px; }
    .confirm-actions .button { flex: 1 1 auto; }
}
/* Importació: revisió compacta i decisions explícites. */
#view-import .import-layout{display:block;margin-bottom:24px}
#view-import .upload-card{padding:24px}
#view-import .drop-zone{min-height:104px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:18px;padding:20px 24px;text-align:left;border-radius:18px}
#view-import .upload-icon{width:48px;height:48px;flex:0 0 48px;margin:0;background:var(--navy,#14253d);color:#d4ac43;border-radius:14px}
#view-import .upload-copy{display:grid;gap:6px}
#view-import .upload-copy strong{font-size:17px}
#view-import .upload-copy small{line-height:1.5}
#view-import #import-submit{width:auto;margin-top:16px}
#view-import .selected-files{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
#view-import .selected-file{flex:1 1 240px;min-width:0;padding:12px 16px;border-radius:12px}
#view-import .selected-file strong{overflow-wrap:anywhere}
#view-import .import-result{background:transparent;border:0;padding:0;margin-top:24px;color:inherit}
#view-import .import-preview-file{padding:20px;margin-bottom:16px;border:1px solid #e3dfd5;border-radius:16px;background:#fffdf8}
.import-file-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.import-file-heading h3{margin:0;overflow-wrap:anywhere}
.import-file-heading>span{font-size:13px;color:#6c716f;flex-shrink:0}
#view-import .import-accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;margin:16px 0}
#view-import .import-account{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border-radius:12px;background:#f2efe6}
.import-account>div{display:grid;gap:5px;min-width:0}
.import-account strong{overflow-wrap:anywhere;font-size:14px}
.import-account small{color:#6e746f;font-size:12px}
.import-account label{min-width:160px;margin:0}
#view-import details>summary{cursor:pointer;padding:12px 0;font-weight:600;font-size:14px}
.import-list{max-height:320px;overflow:auto;overscroll-behavior:contain;padding-right:4px}
.import-movement{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #e8e4dc;min-width:0}
.import-movement>div{display:grid;gap:5px;min-width:0}
.import-movement strong{font-size:14px;overflow-wrap:anywhere}
.import-movement>strong{white-space:nowrap;flex-shrink:0}
.import-movement small{font-size:12px;color:#777e80;overflow-wrap:anywhere}
.import-confirmation{display:flex;flex-direction:column;align-items:flex-start;gap:14px;border-top:2px solid #d5af50;padding-top:20px;margin-top:20px}
.import-confirmation p{margin:6px 0}
.import-file-status:empty{display:none}
.import-file-status{font-size:14px;font-weight:600;color:#786322}
#view-import .import-history-entry{border-bottom:1px solid #e3dfd5;padding:12px 0}
#view-import .import-history-entry>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;list-style:none;padding:8px 0}
.import-history-entry>summary::after{content:'⌄';font-size:22px;color:#9c802f}
.import-history-entry[open]>summary::after{content:'⌃'}
.import-history-entry>summary>div{display:grid;gap:6px;min-width:0;flex:1}
.import-history-entry>summary strong{overflow-wrap:anywhere}
.import-history-entry>summary small,.import-history-counts{font-size:12px;color:#707775;line-height:1.5}
.import-history-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 6px}
.import-history-tabs [aria-pressed=true]{background:#14253d;color:#fff8e5;border-color:#14253d}
.import-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:16px;font-size:12px;color:#707775}
.import-help-dialog{width:min(680px,calc(100% - 32px));max-height:85dvh;overflow:auto;padding:32px;border:1px solid #e3dfd5;border-radius:24px;background:#fffdf8;color:#14253d;box-shadow:0 24px 80px #14253d40}
.import-help-dialog::backdrop{background:#14253d99;backdrop-filter:blur(3px)}
.import-help-dialog>form{float:right}
.import-help-dialog h2{font-size:25px;margin:8px 0 24px}
.import-help-dialog .process-list{gap:20px}
.import-help-dialog p{line-height:1.65;font-size:14px}
@media(max-width:620px){
 #view-import .upload-card,#view-import .import-preview-file{padding:16px}
 #view-import .drop-zone{padding:16px;gap:12px;min-height:100px}
 #view-import .upload-copy strong{font-size:15px}
 #view-import .upload-copy small{font-size:11px}
 #view-import #import-submit,.import-confirmation>button{width:100%}
 .import-file-heading{align-items:flex-start;flex-direction:column;gap:6px}
 #view-import .import-account{align-items:flex-start;flex-wrap:wrap;gap:12px}
 #view-import .import-account label{width:100%}
 #view-import .import-history-entry>summary{flex-wrap:wrap;gap:8px}
 .import-history-counts{width:100%;order:3}
 .import-pagination{flex-wrap:wrap;justify-content:center}
 .import-help-dialog{padding:20px}
}
/* Una zona de fitxer i una revisió guiada, amb passos estables. */
#view-import .drop-zone{border-style:solid;background:#fffdf8;min-height:96px;cursor:pointer;transition:border-color .18s,background .18s}
#view-import .drop-zone:hover,#view-import .drop-zone.dragging{background:#f4efe1;border-color:#b28d37}
#view-import .drop-zone:focus-within{outline:3px solid #d4ac43;outline-offset:3px}
#view-import .upload-copy{flex:1;min-width:0}
#view-import .selected-files{margin:0;flex:1;min-width:0;display:block}
#view-import .selected-file{display:grid;gap:5px;background:transparent;padding:0}
#view-import .selected-file strong{font-size:16px;line-height:1.5}
#view-import .selected-file small{font-size:12px;color:#717775}
#view-import .drop-zone.has-file{border-color:#c3b489;background:#f7f3e9}
#view-import .drop-zone.has-file .upload-copy{display:none}
#view-import .upload-change{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid #ded7c5;border-radius:10px;background:#fffdf8;white-space:nowrap;color:#14253d;font-size:13px;font-weight:600;min-height:44px}
.upload-change svg{width:16px;height:16px}
#view-import .import-preview-file{padding:0;border:0;background:transparent}
#view-import .import-file-heading{padding:4px 0 16px;border-bottom:1px solid #e4dfd2;margin-bottom:18px}
#view-import .import-review-step{border:1px solid #e2ddd0;border-radius:16px;margin:12px 0;background:#fffdf8;overflow:hidden}
#view-import .import-step-heading{display:flex;align-items:center;gap:14px;padding:18px 20px;margin:0;list-style:none;text-align:left}
.import-step-heading::-webkit-details-marker{display:none}
.import-step-heading::marker{content:''}
.import-step-number{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:50%;background:#14253d;color:#e4c469;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}
.import-step-heading h4,.import-step-copy>strong{display:block;font-size:15px;font-weight:700;color:#14253d;margin:0}
#view-import .import-step-heading p,.import-step-copy small{display:block;margin:5px 0 0;font-size:12px;font-weight:400;color:#717775;line-height:1.5}
.import-step-copy,.import-step-heading>div{flex:1;min-width:0}
.import-step-chevron{margin-left:auto;font-size:22px;color:#9f812f;transition:transform .18s}
.import-review-step[open] .import-step-chevron{transform:rotate(180deg)}
#view-import .import-review-step[open]>summary{border-bottom:1px solid #e8e2d4;background:#f7f3e9}
#view-import .import-step-body{padding:16px 20px 20px}
#view-import .import-information .import-accounts{padding:0 20px;margin:0 0 16px;gap:10px}
#view-import .import-account{margin:0}
#view-import .import-information .import-sample{margin:0;border-top:1px solid #e8e2d4;padding:0 20px}
#view-import .import-sample>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 0;list-style:none}
.import-sample>summary::after{content:'⌄';font-size:20px;color:#9f812f}
.import-sample[open]>summary::after{content:'⌃'}
.import-sample>summary>span{margin-left:auto;font-size:12px;font-weight:400;color:#717775}
.import-sample .import-list{margin-bottom:16px}
.import-sample-row{border-bottom:1px solid #e8e4dc;padding-bottom:8px}
.import-sample-row .import-movement{border:0}
.import-match-badge{display:inline-block;font-size:11px;color:#83671e;background:#f4ecd5;border-radius:6px;padding:3px 8px;line-height:1.5}
.import-clear-mark{margin-left:auto;color:#6b7b70;font-size:19px}
#view-import .import-confirmation{border:1px solid #d5bd7a;border-radius:16px;background:#f8f3e5;padding:20px;gap:16px}
#view-import .import-confirmation .import-step-heading{padding:0;width:100%}
#view-import #import-final-counts{font-size:16px;line-height:1.6;display:block}
@media(max-width:620px){
 #view-import .drop-zone{flex-wrap:wrap;gap:12px}
 #view-import .upload-change{width:100%;margin-top:2px}
 #view-import .import-step-heading{padding:16px 14px;gap:10px}
 #view-import .import-step-body{padding:14px}
 #view-import .import-information .import-accounts{padding:0 14px}
 #view-import .import-information .import-sample{padding:0 14px}
 #view-import .import-confirmation{padding:16px}
 .import-step-heading h4,.import-step-copy>strong{font-size:14px}
}
/* Classificació de moviments durant la revisió del XML. */
.import-rule-movements{max-height:520px;overflow:auto;overscroll-behavior:contain}
.import-rule-movement{display:grid;grid-template-columns:minmax(180px,1fr) 110px minmax(160px,.7fr) 150px;align-items:center;gap:18px;padding:16px 4px;border-bottom:1px solid #e8e2d4}
.import-rule-movement-main{display:grid;gap:6px;min-width:0}
.import-rule-movement-main>strong{font-size:14px;overflow-wrap:anywhere}
.import-rule-movement-main small,.import-rule-status small{font-size:12px;color:#737975;line-height:1.5}
.import-rule-movement-main .import-match-badge{justify-self:start}
.import-rule-amount{text-align:right;white-space:nowrap;font-size:14px}
.import-rule-status{display:grid;gap:5px;min-width:0;font-size:12px;color:#747974}
.import-rule-status>span{display:flex;align-items:center;gap:7px;overflow-wrap:anywhere}
.import-rule-status svg{width:16px;height:16px;flex-shrink:0}
.import-rule-status.has-rule>span{color:#334f47;font-weight:600}
.import-rule-status.paused-rule>span{color:#94762c}
.import-rule-button{justify-content:center;gap:7px;font-size:12px;padding:10px 12px}
.import-rule-button svg{width:16px;height:16px}
.import-rule-dialog{width:min(660px,calc(100% - 32px));max-height:90dvh;overflow:auto;border:1px solid #ded7c5;border-radius:24px;padding:28px;background:#fffdf8;color:#14253d;box-shadow:0 24px 80px #14253d40}
.import-rule-dialog::backdrop{background:#14253d99;backdrop-filter:blur(3px)}
.import-rule-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.import-rule-header h2{font-size:24px;margin:5px 0 0}
.import-rule-source{padding:14px 16px;background:#f2eee2;border-radius:12px;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.import-rule-dialog .helper-copy{font-size:12px;line-height:1.7;margin:12px 0 20px}
.import-rule-dialog .stack-form{gap:16px}
.import-rule-dialog label small{font-size:11px;line-height:1.5;color:#737975;font-weight:400}
.import-rule-dialog .form-row{align-items:center}
.import-rule-dialog .check-field{display:flex;align-items:center;gap:10px}
.import-rule-actions{display:flex;justify-content:space-between;gap:12px;padding-top:16px;border-top:1px solid #e3ddce}
.import-rule-actions #save-import-rule{margin-left:auto}
#import-rule-error:empty{display:none}
.import-rule-delete-confirm{padding:16px;background:#faf0ed;border:1px solid #e4c9c1;border-radius:12px;font-size:13px;line-height:1.6}
.import-rule-delete-confirm button{margin:8px 4px 0 0;font-size:12px}
@media(max-width:1000px){.import-rule-movement{grid-template-columns:minmax(0,1fr) 110px;gap:12px}.import-rule-status{grid-column:1}.import-rule-button{grid-column:2;justify-self:end}}
@media(max-width:620px){.import-rule-movement{grid-template-columns:minmax(0,1fr) auto;gap:12px}.import-rule-status{grid-column:1/-1}.import-rule-button{grid-column:1/-1;justify-self:stretch}.import-rule-dialog{padding:20px;border-radius:18px}.import-rule-dialog .form-row{grid-template-columns:1fr}.import-rule-actions{flex-wrap:wrap}.import-rule-actions .button{flex:1}}
.import-classification-column{display:grid;gap:10px;min-width:0}
.import-category-preview{display:grid;gap:4px;padding-bottom:10px;border-bottom:1px solid #e8e2d4}
.import-category-preview>strong{display:flex;align-items:center;gap:7px;font-size:13px;color:#14253d;overflow-wrap:anywhere}
.import-category-preview svg{width:16px;height:16px;flex-shrink:0;color:#9a7a2c}
.import-category-preview small{font-size:11px;line-height:1.5;color:#717775}
.import-category-preview.needs-category>strong{color:#92702b}
.import-rule-movement-main .import-bank-category{font-size:11px}
.import-rule-status .import-rule-match{font-size:11px;overflow-wrap:anywhere}
@media(max-width:1000px){.import-classification-column{grid-column:1}}
@media(max-width:620px){.import-classification-column{grid-column:1/-1}}
/* Taula de treball del XML: decisions individuals abans de confirmar. */
.import-review-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin:16px 0}
.import-review-toolbar label{display:grid;gap:6px;font-size:12px;color:#69716e;flex:1;min-width:180px}
.import-review-toolbar .button{font-size:12px}
.import-ledger-summary{display:flex;flex-wrap:wrap;gap:12px 22px;padding:16px;border:1px solid #e3d9bf;border-radius:12px;background:#f7f1df;font-size:12px;line-height:1.6;margin:12px 0 18px}
.import-ledger-summary strong{color:#14253d;font-variant-numeric:tabular-nums}
.import-ledger-summary .negative-value strong{color:#aa4855}
.import-category-bulk{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;background:#edf1f4;border-radius:12px;margin-bottom:12px;font-size:12px}
.import-category-bulk select{max-width:260px}
.import-rule-movement{grid-template-columns:24px minmax(150px,1fr) 95px minmax(210px,.9fr) 145px;gap:14px;padding:18px 4px}
.import-row-select{align-self:start;padding-top:4px}
.import-category-control{display:grid;gap:6px;font-size:11px;color:#717775;margin:0}
.import-category-control select{font-size:13px;min-height:44px;height:44px}
.import-row-actions{display:grid;gap:8px}
.import-row-actions .check-field{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600}
.import-row-actions small{font-size:11px;color:#747975}
.import-rule-movement.will-omit{background:#f6f4ef}
.import-rule-movement.will-omit .import-rule-movement-main>strong{color:#7c807d}
.import-row-more{grid-column:2/-1;border-top:1px solid #eee8dc;margin:0!important}
#import-result .import-row-more>summary{font-size:11px;font-weight:500;padding:10px 0;color:#717775}
.import-row-extra{display:grid;grid-template-columns:170px minmax(140px,1fr) auto;gap:16px;align-items:center;padding:6px 0 12px}
.import-row-extra label{display:grid;gap:6px;font-size:11px}
.import-row-extra .check-field{display:flex;align-items:center;gap:8px;font-size:12px}
.import-row-extra input:not([type=checkbox]){height:44px;min-height:44px}
.import-category-preview{padding-bottom:6px}
@media(max-width:1150px){.import-rule-movement{grid-template-columns:24px minmax(0,1fr) 100px}.import-rule-movement-main{grid-column:2}.import-rule-amount{grid-column:3}.import-classification-column{grid-column:2}.import-row-actions{grid-column:3}.import-row-extra{grid-template-columns:1fr 1fr}.import-row-extra .check-field{grid-column:1/-1}}
@media(max-width:620px){.import-review-toolbar{display:grid;grid-template-columns:1fr}.import-review-toolbar label{min-width:0}.import-ledger-summary{gap:8px 14px}.import-rule-movement{grid-template-columns:24px minmax(0,1fr);gap:12px}.import-rule-amount{grid-column:2;text-align:left}.import-classification-column{grid-column:2}.import-row-actions{grid-column:2}.import-row-more{grid-column:1/-1}.import-row-extra{grid-template-columns:1fr}.import-category-bulk>*{width:100%;max-width:none!important}}

/* Els botons i l’estat de regla s’alineen dins de la seva columna. */
.import-row-actions .import-rule-button{grid-column:auto;justify-self:stretch}
.import-classification-column .import-rule-status{grid-column:auto}

/* Revisió contínua: més espai i separadors clars, sense paginació. */
.import-rule-movements{max-height:1040px;scrollbar-gutter:stable;overflow-anchor:none;padding:2px 4px}
.import-rule-movement{border:1px solid #ded8ca;border-radius:14px;margin:0 0 14px;padding:18px 16px;background:#fffdf8;align-items:start}
.import-classification-column{border-left:1px solid #e2dccf;padding-left:16px}
.import-row-actions{border-left:1px solid #e2dccf;padding-left:16px}
.import-rule-status{border-top:1px solid #e2dccf;padding-top:10px}
.import-rule-action{display:grid;gap:8px;border-top:1px solid #e2dccf;padding-top:12px;margin-top:4px}
.import-rule-action>small{font-size:11px;color:#6f776f}
.import-row-more{border-top:1px solid #d9d1bf;padding-top:4px}
@media(max-width:1150px){.import-classification-column{border-left:0;border-top:1px solid #e2dccf;padding:12px 0 0}.import-row-actions{padding-left:12px}}
@media(max-width:620px){.import-rule-movement{padding:16px 12px}.import-row-actions{border-left:0;border-top:1px solid #e2dccf;padding:12px 0 0}.import-row-more{margin-top:6px!important}}

/* Compte de destí de cada registre, separat de les dades bancàries. */
.import-account-identity{display:grid;gap:7px;border-top:1px solid #e2dccf;padding-top:12px;margin-top:8px}
.import-account-identity>strong{display:flex;align-items:center;gap:9px;padding:9px 11px;border-radius:10px;background:#edf1f5;color:#14253d;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.import-account-identity>strong svg{width:19px;height:19px;flex-shrink:0;color:#a58130}
.import-account-identity>small{font-size:11px;color:#727975}
.import-row-actions .import-inclusion-status{display:block;line-height:1.5;height:4.5em;min-height:4.5em;margin:0}

.import-completion{display:flex;align-items:flex-start;gap:18px;padding:24px;border:1px solid #d4dfd5;border-radius:16px;background:#f2f6ee;margin:0 0 18px}
.import-completion-icon{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;background:#14253d;color:#ddbb66;border-radius:50%}
.import-completion-icon svg{width:25px;height:25px}
.import-completion>div{min-width:0;overflow-wrap:anywhere}
.import-completion h3{margin:5px 0 10px}
.import-completion p:last-child{margin:0;color:#657064;line-height:1.6}
.import-completion-error{background:#fcf2ee;border-color:#e5cfc7}
@media(max-width:620px){.import-completion{gap:12px;padding:18px}.import-completion-icon{width:38px;height:38px}}

/* Identitat i selectors contextuals. */
.sidebar .brand{display:flex;align-items:center;justify-content:center;gap:13px;padding:14px 4px 22px;margin-bottom:8px;border-bottom:1px solid rgba(221,187,102,.18)}
.sidebar .brand-mark{width:46px;height:46px;min-width:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#e5c873,#c9a548);box-shadow:0 3px 10px rgba(0,0,0,.14)}
.sidebar .brand-mark svg{width:27px;height:27px;stroke-width:1.8}
.sidebar .brand-name{font-size:12px;line-height:1.65;letter-spacing:.1em;font-weight:750;max-width:135px;text-transform:uppercase}
.topbar-actions{display:flex;gap:12px;align-items:center}
.period-navigation{display:block;min-width:230px}
.context-select{display:grid;gap:3px;min-height:62px;padding:10px 14px 10px 46px;border:1px solid #ded6c2;border-radius:13px;background:#fffdf8;box-shadow:0 2px 5px rgba(20,37,61,.03)}
.context-select>svg{left:15px;width:20px;height:20px;color:#a58130;top:50%;transform:translateY(-50%)}
.context-select-label{font-size:10px;line-height:1.3;letter-spacing:.09em;text-transform:uppercase;color:#7c786d;font-weight:650}
.context-select select{appearance:none;width:100%;min-width:0;min-height:24px;height:24px;border:0;box-shadow:none;background-color:transparent;color:#14253d;padding:0 23px 0 0;font-size:14px;font-weight:600;text-align:left;background-image:linear-gradient(45deg,transparent 50%,#8b815e 50%),linear-gradient(135deg,#8b815e 50%,transparent 50%);background-position:calc(100% - 5px) 10px,100% 10px;background-size:5px 5px;background-repeat:no-repeat}
.context-select select:focus{outline:none;box-shadow:none}
.context-select:focus-within{border-color:#b6933b;box-shadow:0 0 0 3px rgba(205,170,73,.16)}
.topbar-actions .group-control{min-width:185px}
.filter-bar{grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(135px,1fr));align-items:center}
.filter-bar .period-navigation{min-width:0}
.filter-bar .context-select{min-height:48px;padding:10px 12px 10px 40px;border-color:#e2ddd0}
.filter-bar .context-select-label{display:none}
.filter-bar .context-select>svg{left:12px}
@media(max-width:1150px){.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar .search-field{grid-column:1/-1}}
@media(max-width:620px){.topbar-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.topbar-actions .period-navigation{grid-column:auto;min-width:0}.topbar-actions .group-control{min-width:0}.context-select{padding:10px 10px 10px 36px;min-height:60px}.context-select>svg{left:10px;width:18px;height:18px}.context-select select{font-size:12px;padding-left:0;text-align:left}.filter-bar{grid-template-columns:minmax(0, 1fr)}.sidebar .brand{display:none}}

@media(max-width:900px){.sidebar .brand{display:none}}

/* Menús d’una sola selecció amb el mateix acabat que Categories. */
.context-select.single-select{padding:0;border:0;background:none;box-shadow:none;min-height:0;display:block}
.single-select-menu>summary{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:62px}
.single-select-menu>summary>svg{position:static;transform:none;width:19px;height:19px;flex-shrink:0;color:#a58130}
.single-select-menu>summary>svg:last-child{width:16px;height:16px;margin-left:auto;color:#77745f}
.single-select-copy{display:grid;gap:3px;min-width:0}
.single-select-copy small{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#7c786d}
.single-select-copy strong{font-size:14px;font-weight:600;overflow-wrap:anywhere;color:#14253d}
.single-select-options{display:grid;gap:3px;padding-top:8px}
.single-select-options button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:10px 9px;border:0;border-radius:8px;background:transparent;text-align:left;color:#14253d;font-size:.85rem}
.single-select-options button:before{content:'';width:16px;height:16px;border:1px solid #c9c5b7;border-radius:50%;flex-shrink:0}
.single-select-options button[aria-pressed=true]{background:#edf1f4;font-weight:650}
.single-select-options button[aria-pressed=true]:before{border-color:#14253d;background:#14253d;box-shadow:inset 0 0 0 4px #edf1f4}
.single-select-options button:hover{background:#f5f0df}
.single-select-options button:focus-visible{outline:2px solid #b6933b;outline-offset:-2px}
.single-select-menu summary[aria-disabled=true]{opacity:.6;cursor:default}
.filter-bar .single-select-menu>summary{min-height:48px;padding:10px 12px}
.filter-bar .single-select-copy small{display:none}
@media(max-width:620px){.single-select-copy strong{font-size:12px}.single-select-menu>summary{gap:8px;padding:10px;min-height:60px}.filter-bar .single-select-menu>summary{min-height:48px}}

.context-select.single-select:focus-within{box-shadow:none}

.filter-bar .multi-select summary svg.filter-icon{width:19px;height:19px;color:#a58130;flex-shrink:0}

/* Cashflow cards: neutral surfaces, clear direction and visible internal transfers. */
.kpi-grid .kpi-card { display: flex; flex-direction: column; min-width: 0; min-height: 250px; padding: 24px; background: var(--surface); color: var(--ink); border-color: var(--line); }
.kpi-grid .kpi-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 40px; color: var(--ink); font-size: .88rem; }
.kpi-icon { display: inline-flex; flex: 0 0 40px; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 13px; }
.kpi-grid .kpi-icon svg { width: 21px; height: 21px; }
.kpi-expense-card .kpi-icon svg { color: #a34e56; }
.kpi-income-card .kpi-icon svg { color: #237763; }
.kpi-savings-card .kpi-icon svg { color: #947631; }
.kpi-grid .kpi-main-amount { display: block; align-self: flex-start; text-align: left; max-width: 100%; margin: 16px 0 10px; font-size: clamp(1.65rem, 2.7vw, 2.8rem); line-height: 1.2; }
.kpi-grid .kpi-main-amount strong { overflow-wrap: anywhere; }
.kpi-grid .kpi-card > .kpi-change, .kpi-grid .kpi-card > .kpi-meta { min-height: 34px; padding: 0; margin: 0 0 16px; color: var(--muted); font-size: .78rem; line-height: 1.5; text-align: left; }
.kpi-grid .kpi-card > .kpi-change.negative { color: var(--navy); }
.kpi-grid .kpi-card > .kpi-change.positive { color: var(--navy); }
.kpi-transfer-detail, .kpi-result-detail { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; width: 100%; min-width: 0; min-height: 60px; margin-top: auto; padding: 16px 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; color: var(--ink); text-align: left; }
.kpi-transfer-detail > span { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; line-height: 1.4; }
.kpi-transfer-detail svg { width: 17px; height: 17px; flex-shrink: 0; color: #947631; }
.kpi-transfer-detail strong { font-size: 1.22rem; font-variant-numeric: tabular-nums; line-height: 1.4; }
.kpi-transfer-detail:hover { color: var(--navy); }
.kpi-transfer-detail:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.kpi-result-detail span { color: var(--muted); font-size: .82rem; }
.kpi-result-detail strong { color: var(--ink); font-size: .82rem; font-weight: 600; }
.kpi-savings-card .negative-value { color: #a34e56; }
.chart-transfer-toggle { display: inline-flex; align-items: center; gap: 9px; flex-wrap: nowrap; margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.4; cursor: pointer; }
.chart-transfer-toggle input[type=checkbox] { flex: 0 0 24px; margin: 0; }
.system-category-note { grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid var(--line); font-size: .76rem; line-height: 1.5; color: var(--muted); }
.system-category-lock:disabled { opacity: .65; cursor: default; }
@media (max-width: 1100px) { .chart-card .card-header { flex-wrap: wrap; gap: 12px; } }
@media (max-width: 620px) {
    .kpi-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .kpi-grid .kpi-card { min-height: 230px; padding: 20px; }
    .kpi-grid .kpi-savings-card { grid-column: auto; }
    .kpi-grid .kpi-main-amount { font-size: clamp(1.8rem, 8vw, 2.5rem); }
    .kpi-grid .kpi-label { font-size: .88rem; }
    .kpi-transfer-detail strong { font-size: 1.22rem; }
}

/* Refined summary hierarchy: navy result, restrained flow colors and quiet insights. */
.kpi-grid .kpi-savings-card { background: var(--navy); border-color: var(--navy); color: #fffdf8; }
.kpi-grid .kpi-savings-card .kpi-label { color: #fffdf8; }
.kpi-grid .kpi-savings-card .kpi-main-amount,
.kpi-grid .kpi-savings-card .kpi-main-amount strong,
.kpi-grid .kpi-savings-card .negative-value { color: #fffdf8; }
.kpi-grid .kpi-savings-card .kpi-icon { background: #ffffff05; border-color: #d6ad4640; }
.kpi-grid .kpi-savings-card .kpi-icon svg { color: var(--gold); }
.kpi-grid .kpi-savings-card > .kpi-meta,
.kpi-grid .kpi-savings-card .kpi-result-detail span { color: #c4cddd; }
.kpi-grid .kpi-savings-card .kpi-result-detail { border-color: #d6ad4638; }
.kpi-grid .kpi-savings-card .kpi-result-detail strong { color: #e5c577; }
.kpi-grid .kpi-expense-card .kpi-main-amount, .kpi-grid .kpi-expense-card .kpi-label { color: var(--navy); }
.kpi-grid .kpi-income-card .kpi-main-amount, .kpi-grid .kpi-income-card .kpi-label { color: var(--navy); }
.kpi-expense-card .kpi-icon { background: #a34e561c; border-color: #a34e563b; }
.kpi-income-card .kpi-icon { background: #2377631c; border-color: #2377633b; }
.chart-legend .income-dot { background: #237763; }
.insights-card { padding: 20px 24px; background: var(--surface); border: 1px solid var(--line); margin-top: 20px; box-shadow: none; }
.insights-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.insights-heading-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 34px; border: 1px solid #d6ad463b; border-radius: 11px; }
.insights-heading-icon svg { width: 18px; height: 18px; color: #947631; }
.insights-heading .eyebrow { margin: 0; color: #8b743c; }
.insights-scope { margin-left: auto; color: var(--muted); font-size: .73rem; }
#insights-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
#insights-list[data-count="2"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#insights-list[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
.insight-item { display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 12px 18px; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; font-size: .79rem; line-height: 1.55; }
.insight-item:first-child { border-left: 0; padding-left: 0; }
.insight-item:last-child { padding-right: 0; }
.insight-item > svg { width: 17px; height: 17px; flex: 0 0 17px; margin-top: 2px; color: #947631; }
.insight-content { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.insight-content > strong { color: var(--navy); font-size: .78rem; font-weight: 650; }
.insight-content > span { color: var(--muted); }
.insight-item:hover { background: #d6ad4606; border-color: var(--line); }
.chart-card .card-header h3, .category-list-card .card-header h3, .comparison-card .card-header h3 { color: var(--navy); }
.chart-card .card-header .eyebrow, .category-list-card .card-header .eyebrow, .comparison-card .card-header .eyebrow { color: #8b743c; }
.card-header .text-button { color: var(--navy); }
.card-header .text-button svg { color: #947631; }
@media (max-width: 1000px) {
    #insights-list[data-count] { grid-template-columns: minmax(0, 1fr); }
    .insight-item, .insight-item:first-child, .insight-item:last-child { padding: 12px 0; border-left: 0; border-top: 1px solid var(--line); }
    .insight-item:first-child { border-top: 0; }
}
@media (max-width: 620px) {
    .insights-card { padding: 18px 20px; }
    .insights-heading { flex-wrap: wrap; gap: 8px 12px; }
    .insights-scope { flex-basis: 100%; margin-left: 46px; }
}

/* Subtle navy outline keeps the ordinary cards aligned with the result card. */
.kpi-grid .kpi-expense-card, .kpi-grid .kpi-income-card { border-color: #14253d40; }
.kpi-grid .kpi-expense-card > .kpi-change.neutral { color: var(--navy); }
