:root {
  color-scheme: light;
  --ink: #202b38;
  --muted: #87919f;
  --soft: #f5f7f9;
  --line: #edf0f3;
  --orange: #f36f50;
  --orange-dark: #e55f42;
  --orange-soft: #fff1ec;
  --green: #28a87b;
  --green-soft: #e9f7f1;
  --blue: #628ce5;
  --purple: #9278d8;
  --sidebar: #fbfcfd;
  font-family: 'DM Sans', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

.finance-calendar-day.is-work-selected { border-color: #d78d6d; background: #fffaf6; }
.finance-calendar-day small.work-hours { color: #a56c44; font-weight: 700; }
.finance-calendar-day small.work-earned { color: #b7775b; }
.finance-calendar-day small.work-paid { color: #27846d; font-weight: 700; }
.finance-calendar-day small.work-planned { color: #6686bf; }
.finance-work-income-card { min-width: 0; overflow: hidden; }
.finance-work-income-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; padding: 0 20px 12px; }
.finance-work-income-summary > div { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.finance-work-income-summary small, .finance-work-income-summary span { color: var(--muted); font-size: 10px; }
.finance-work-income-summary strong { color: var(--ink); font-size: 17px; }
.finance-work-income-note { display: block; margin: 0 20px 14px; color: var(--muted); font-size: 10px; line-height: 1.55; }
.finance-work-income-selected { display: grid; gap: 5px; margin: 0 20px 14px; padding: 12px; border-radius: 10px; background: #f7faf9; font-size: 11px; }
.finance-work-income-selected span { color: var(--muted); }
.finance-work-income-monthly { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 0 20px 10px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; font-size: 11px; }
.finance-work-income-list { display: grid; margin: 0 20px 18px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.finance-work-income-row { display: grid; grid-template-columns: 100px 80px minmax(0, 1fr); gap: 9px; align-items: center; width: 100%; padding: 9px 11px; border: 0; border-bottom: 1px solid var(--line); background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.finance-work-income-row:last-child { border-bottom: 0; }
.finance-work-income-row:hover { background: var(--soft); }
.finance-work-income-row small, .finance-work-income-empty { color: var(--muted); font-size: 10px; }
.finance-work-income-empty { margin: 13px; }
@media (max-width: 700px) {
  .finance-work-income-summary { grid-template-columns: 1fr 1fr; padding: 0 14px 12px; }
  .finance-work-income-summary > div { padding: 10px; }
  .finance-work-income-note, .finance-work-income-selected, .finance-work-income-monthly, .finance-work-income-list { margin-right: 14px; margin-left: 14px; }
  .finance-work-income-row { grid-template-columns: 1fr auto; gap: 3px; }
  .finance-work-income-row small { grid-column: 1 / -1; }
  .finance-calendar-view-switch { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

* { box-sizing: border-box; }
body { margin: 0; background: #f6f8fa; color: var(--ink); min-width: 320px; }
[data-theme="mint"] { --orange: #33a889; --orange-dark: #278a70; --orange-soft: #e9f8f3; --green: #239b78; }
[data-theme="night"] { color-scheme: dark; --ink: #e7edf3; --muted: #a6b2bf; --soft: #202b38; --line: #344250; --orange: #72a9e8; --orange-dark: #5d92d0; --orange-soft: #253950; --sidebar: #18222c; }
[data-theme="night"] body { background: #111a22; color: var(--ink); }
[data-theme="night"] .card, [data-theme="night"] .topbar { background: #1a2631; border-color: #344250; }
[data-theme="night"] .sidebar { border-color: #344250; }
[data-theme="night"] .sidebar-version { color: #8d9aa7; }
[data-theme="night"] .modal-backdrop .entry-modal { background: #1a2631; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid rgba(243,111,80,.22); outline-offset: 2px; }
.app-shell { min-height: 100vh; display: flex; }

.sidebar {
  width: 248px; flex: 0 0 248px; background: var(--sidebar); border-right: 1px solid #edf0f3;
  padding: 27px 16px 18px; display: flex; flex-direction: column; min-height: 100vh; position: sticky; top: 0; height: 100vh;
}
.brand { display: flex; align-items: center; gap: 11px; padding: 0 10px 27px; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; overflow: hidden; border-radius: 13px 13px 13px 5px; background: linear-gradient(140deg,#ff9776,#ed6447); color: white; font-size: 18px; font-weight: 700; box-shadow: 0 7px 16px #f36f5038; }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand strong { display: block; font-size: 17px; letter-spacing: .3px; }
.brand span { display: block; font-size: 10px; color: #a0a8b2; margin-top: 2px; letter-spacing: .3px; }
.ledger-switch { display: flex; width: 100%; border: 1px solid #eef0f2; border-radius: 12px; background: white; padding: 11px; align-items: center; text-align: left; gap: 10px; color: var(--ink); box-shadow: 0 3px 10px #27384a06; }
.ledger-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--orange); background: var(--orange-soft); font-size: 17px; }
.ledger-copy { flex: 1; }
.ledger-copy small, .ledger-copy strong { display: block; }
.ledger-copy small { color: #a0a8b2; font-size: 10px; margin-bottom: 3px; }
.ledger-copy strong { font-size: 12px; }
.chevron { color: #9aa4af; font-size: 17px; }
.ledger-modal { width: min(440px,100%); }
.ledger-modal-body { overflow-y: auto; padding: 3px 22px 22px; }
.ledger-list-heading { display: flex; align-items: center; justify-content: space-between; margin: 4px 0 9px; color: #8893a0; font-size: 10px; font-weight: 600; }
.ledger-list-heading span { color: #a7afb8; font-weight: 400; }
.ledger-list { display: grid; gap: 8px; max-height: min(38vh,300px); overflow-y: auto; }
.ledger-option { display: flex; align-items: stretch; overflow: hidden; border: 1px solid #edf0f3; border-radius: 11px; background: white; }
.ledger-option.selected { border-color: #f5c9bd; background: #fffaf8; }
.ledger-option-button { display: flex; width: auto; min-width: 0; flex: 1; min-height: 59px; align-items: center; gap: 11px; border: 0; padding: 10px 12px; color: var(--ink); background: transparent; text-align: left; }
.ledger-delete-button { flex: 0 0 54px; border: 0; border-left: 1px solid #f0f2f4; background: transparent; color: #bd7772; font-size: 9px; cursor: pointer; }
.ledger-delete-button:hover:not(:disabled) { color: #c64d49; background: #fff7f6; }
.ledger-delete-button:disabled { color: #c4cbd1; cursor: not-allowed; }
.ledger-option-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; color: var(--orange); background: var(--orange-soft); font-size: 16px; }
.ledger-option-copy { min-width: 0; flex: 1; }
.ledger-option-copy strong,.ledger-option-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ledger-option-copy strong { font-size: 12px; font-weight: 600; }
.ledger-option-copy small { margin-top: 4px; color: #a0a8b2; font-size: 9px; }
.ledger-current-tag,.ledger-select-tag { flex: 0 0 auto; color: var(--orange-dark); font-size: 9px; }
.ledger-select-tag { color: #99a3ad; }
.backup-manager-modal { width: min(570px,100%); }
.backup-manager-body { overflow-y: auto; padding: 3px 24px 23px; }
.backup-policy-note { display: grid; gap: 4px; margin: 4px 0 16px; padding: 12px 14px; border: 1px solid #f6e5dc; border-radius: 11px; background: #fff9f6; }
.backup-policy-note strong { color: #bf694d; font-size: 10px; }
.backup-policy-note span,.backup-footnote { color: #98a2ad; font-size: 9px; line-height: 1.7; }
.backup-manager-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 9px; }
.backup-manager-toolbar > div { min-width: 0; }
.backup-manager-toolbar strong,.backup-manager-toolbar small { display: block; }
.backup-manager-toolbar strong { color: #4a5663; font-size: 11px; }
.backup-manager-toolbar small { margin-top: 4px; color: #a0a9b2; font-size: 8px; }
.backup-manager-toolbar .secondary-button { flex: 0 0 auto; min-height: 32px; padding: 0 10px; font-size: 9px; }
.backup-list { display: grid; gap: 7px; max-height: min(43vh,360px); overflow-y: auto; padding: 1px 2px 3px 0; }
.backup-row { display: flex; align-items: center; gap: 10px; border: 1px solid #edf0f3; border-radius: 10px; padding: 10px; background: white; }
.backup-kind-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 9px; color: #e17b5d; background: #fff1eb; font-size: 16px; }
.backup-row-main { min-width: 0; flex: 1; }
.backup-row-main strong,.backup-row-main span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.backup-row-main strong { color: #4a5663; font-size: 9px; font-weight: 600; }
.backup-row-main span { margin-top: 4px; color: #a0a9b2; font-size: 8px; }
.backup-row-actions { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; }
.backup-row-actions button { min-height: 28px; padding: 0 8px; border: 1px solid #edf0f2; border-radius: 7px; color: #72808d; background: #fff; font-size: 8px; }
.backup-row-actions button:hover { border-color: #f2c6b7; color: var(--orange-dark); background: #fff8f5; }
.backup-row-actions .backup-restore-button { border-color: #f5d5ca; color: var(--orange-dark); background: #fff7f3; }
.backup-empty { padding: 25px 12px; border: 1px dashed #e7ebef; border-radius: 10px; color: #9ba5af; text-align: center; font-size: 9px; }
.backup-footnote { display: block; margin-top: 11px; }
.bill-import-open { flex: 0 0 auto; min-height: 35px; }
.bill-import-modal { width: min(1040px,100%); }
.bill-import-body { overflow: auto; padding: 3px 22px 20px; }
.bill-import-file-card { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 1px dashed #e6eaee; border-radius: 10px; background: #fbfcfd; }
.bill-import-file-card > div { min-width: 0; }
.bill-import-file-card strong,.bill-import-file-card small { display: block; }
.bill-import-file-card strong { overflow: hidden; color: #53606d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.bill-import-file-card small { margin-top: 4px; color: #9ca6af; font-size: 8px; line-height: 1.55; }
.bill-import-file-card .secondary-button { flex: 0 0 auto; }
.bill-import-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 13px; }
.bill-import-options .form-field > span { margin-bottom: 5px; }
.bill-import-options .form-field select { height: 35px; }
.bill-import-summary { margin: 12px 0 0; color: #64717f; font-size: 10px; line-height: 1.6; }
.bill-import-warning { min-height: 0; margin: 5px 0 0; color: #bd7857; font-size: 9px; line-height: 1.55; }
.bill-import-warning:empty { display: none; }
.bill-import-duplicate-option { display: inline-flex; align-items: center; gap: 7px; margin: 10px 0; color: #87929e; font-size: 9px; }
.bill-import-duplicate-option input { accent-color: var(--orange); }
.bill-import-preview { max-height: min(39vh,390px); overflow: auto; border: 1px solid #edf0f3; border-radius: 9px; }
.bill-import-table { width: 100%; min-width: 850px; border-collapse: collapse; }
.bill-import-table th,.bill-import-table td { padding: 8px 9px; border-bottom: 1px solid #f0f2f4; text-align: left; font-size: 8px; white-space: nowrap; }
.bill-import-table th { position: sticky; top: 0; z-index: 1; background: #fafbfc; color: #929ca7; font-weight: 500; }
.bill-import-table td:nth-child(4) { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
.bill-import-table tr:last-child td { border-bottom: 0; }
.bill-import-row-duplicate { background: #fffbf4; }
.bill-import-row-invalid { background: #fff8f6; }
.bill-import-row-skipped { color: #aab2ba; }
.bill-import-amount { text-align: right !important; font-variant-numeric: tabular-nums; }
.bill-import-state { color: #4d9b78; }
.bill-import-state-duplicate { color: #c08443; }
.bill-import-state-invalid { color: #d66e5e; }
.bill-import-state-skipped { color: #aab2ba; }
.bill-import-empty { padding: 30px 12px; color: #a0a9b2; text-align: center; font-size: 9px; }
.bill-import-more { display: block; padding: 7px 9px; color: #9aa4ae; font-size: 8px; }
.bill-import-footer { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eff1f3; }
.bill-import-footer > small { max-width: 560px; color: #98a2ad; font-size: 8px; line-height: 1.6; }
.bill-import-footer > div { display: flex; flex: 0 0 auto; gap: 7px; }
.bill-import-footer button { min-height: 34px; }
.create-ledger-form { display: grid; gap: 12px; margin-top: 17px; padding-top: 16px; border-top: 1px solid var(--line); }
.create-ledger-form .form-field { gap: 7px; }
.create-ledger-form input { width: 100%; height: 40px; border: 1px solid #e8ecf0; border-radius: 9px; padding: 0 11px; font-size: 11px; }
.create-ledger-form .primary-button { min-height: 40px; justify-content: center; }
.create-ledger-form > small { color: #9da7b0; font-size: 9px; }
.nav-caption { color: #a3abb4; font-size: 10px; font-weight: 700; letter-spacing: 1.2px; padding: 16px 12px 10px; }
.primary-nav { display: grid; gap: 5px; }
.nav-item { border: 0; background: transparent; color: #798593; border-radius: 10px; text-align: left; display: flex; align-items: center; gap: 12px; padding: 11px 12px; font-size: 12px; transition: .18s ease; }
.nav-item:hover { background: #f4f6f8; color: var(--ink); }
.nav-item.active { background: var(--orange-soft); color: var(--orange-dark); font-weight: 600; }
.nav-icon { width: 18px; font-size: 19px; text-align: center; line-height: 18px; font-family: Arial,sans-serif; }
.nav-count { margin-left: auto; color: #a6afb8; font-size: 10px; }
.sidebar-spacer { flex: 1; }
.sidebar-version { align-self: stretch; margin: 9px 3px 0; padding: 0 4px; border: 0; color: #9ba5af; font-size: 9px; letter-spacing: .25px; text-align: right; white-space: nowrap; }
.sidebar-profile { display: flex; align-items: center; gap: 10px; border-top: 1px solid #eef0f2; padding: 16px 4px 0; }
.avatar { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 50%; background: #f7ddcc; color: #aa684b; font-size: 13px; font-weight: 700; }
.profile-copy { flex: 1; min-width: 0; }
.profile-copy strong,.profile-copy span { display: block; }
.profile-copy strong { font-size: 11px; }
.profile-copy span { color: #a3abb4; font-size: 9px; margin-top: 3px; white-space: nowrap; }
.more-button { background: none; border: 0; color: #99a3ad; font-size: 20px; line-height: 1; padding: 3px 6px; letter-spacing: 1px; }
.backup-button { color: #71808e; font-size: 15px; letter-spacing: 0; }
.server-login-screen { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 50% 0,#fff0e9 0,transparent 42%),#f6f8fa; }
.server-login-screen[hidden] { display: none; }
#app-shell[hidden],#mobile-nav[hidden] { display: none !important; }
.server-login-card { width: min(390px,100%); padding: 34px; border: 1px solid #edf0f3; border-radius: 20px; background: white; box-shadow: 0 22px 60px #26374812; }
.server-login-mark { margin-bottom: 22px; }
.server-login-card h1 { margin: 5px 0 7px; font-size: 21px; }
.server-login-card > p { margin: 0 0 22px; color: #8d98a4; font-size: 11px; line-height: 1.7; }
.server-login-card form { display: grid; gap: 13px; }
.server-login-card .form-field input { height: 42px; border: 1px solid #e8ecf0; border-radius: 9px; padding: 0 11px; font-size: 12px; }
.server-login-card form .primary-button { min-height: 42px; justify-content: center; }
.server-login-card > small { display: block; margin-top: 18px; color: #a1aab3; font-size: 9px; line-height: 1.6; }

.workspace { min-width: 0; flex: 1; }
.topbar { height: 75px; background: rgba(255,255,255,.88); border-bottom: 1px solid #edf0f3; display: flex; align-items: center; padding: 0 38px; position: sticky; top: 0; z-index: 5; backdrop-filter: blur(12px); }
.topbar-heading { display: flex; align-items: baseline; gap: 12px; font-weight: 700; font-size: 14px; }
.topbar-heading small { color: #a3abb4; font-size: 10px; font-weight: 400; }
.topbar-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.notification-shortcut { position: relative; display: grid; width: 37px; height: 37px; flex: 0 0 37px; place-items: center; padding: 0; border: 1px solid #e9edf0; border-radius: 10px; background: #fff; color: #687584; transition: .18s ease; }
.notification-shortcut:hover { border-color: #ffd4c9; background: #fff8f5; color: var(--orange-dark); }
.notification-shortcut svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.notification-shortcut-count { position: absolute; top: -7px; right: -7px; display: grid; min-width: 17px; height: 17px; place-items: center; padding: 0 4px; border: 2px solid #fff; border-radius: 10px; background: #ef4d4f; color: #fff; font-size: 9px; font-weight: 700; line-height: 1; }
.notification-shortcut-count[hidden] { display: none; }
.quiet-button, .primary-button { height: 37px; border-radius: 9px; border: 1px solid #e9edf0; padding: 0 14px; background: #fff; color: #687584; font-size: 11px; transition: .18s ease; }
.quiet-button:hover { background: #f8f9fa; color: var(--ink); }
.quiet-button span { color: var(--orange); font-size: 16px; vertical-align: -1px; margin-right: 3px; }
.primary-button { background: var(--orange); border-color: var(--orange); color: white; box-shadow: 0 5px 12px #f36f5026; font-weight: 600; }
.primary-button:hover { background: var(--orange-dark); border-color: var(--orange-dark); transform: translateY(-1px); }
.top-add-button span { font-size: 17px; vertical-align: -1px; margin-right: 3px; }
.mobile-menu { display: none; border: 0; background: none; color: #65717f; font-size: 18px; margin-right: 12px; }
.page-content { width: min(1280px, 100%); margin: 0 auto; padding: 30px 38px 55px; }

.view-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 23px; }
.eyebrow { display: block; color: #a0a9b3; text-transform: uppercase; font-size: 9px; letter-spacing: 1.3px; font-weight: 700; margin-bottom: 7px; }
.view-heading h1 { font-size: 24px; letter-spacing: -.5px; margin: 0; line-height: 1.25; }
.view-heading p { margin: 7px 0 0; color: #929daa; font-size: 11px; }
.heading-tools { display: flex; align-items: center; gap: 9px; }
.month-switch { display: flex; align-items: center; background: white; border: 1px solid #edf0f2; border-radius: 10px; padding: 4px; gap: 8px; box-shadow: 0 2px 6px #27384a05; }
.month-switch strong { min-width: 78px; text-align: center; font-size: 11px; }
.month-switch button { background: transparent; border: 0; color: #8994a0; border-radius: 6px; width: 27px; height: 27px; font-size: 17px; }
.month-switch button:hover { background: #f5f6f8; color: var(--ink); }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.72fr) minmax(260px,.88fr); gap: 18px; align-items: start; }
.overview-card-grid { display: grid; grid-template-columns: minmax(0,1.72fr) minmax(260px,.88fr); gap: 18px; align-items: start; }
.overview-dashboard-card { min-width: 0; }
.overview-dashboard-card[data-overview-section="period"] { grid-column: 1 / -1; }
.overview-dashboard-card[data-overview-section="cashflow"] { grid-column: 1 / -1; }
.overview-card-grid .period-overview { margin-bottom: 0; }
.cashflow-forecast-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; padding: 16px 20px 8px; }
.cashflow-forecast-item { display: grid; min-width: 0; gap: 6px; padding: 14px 15px; border: 1px solid #edf0f2; border-radius: 11px; background: linear-gradient(145deg,#fbfcfd,#f7f9fa); }
.cashflow-forecast-item > span { color: #8995a1; font-size: 10px; }
.cashflow-forecast-item > strong { overflow: hidden; color: #34404d; font-size: 21px; font-weight: 600; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-forecast-item > small { color: #a2abb4; font-size: 9px; }
.cashflow-forecast-item.income > strong { color: #d86c52; }
.cashflow-forecast-item.expense > strong { color: #168b8b; }
.cashflow-forecast-item.net.positive > strong { color: #2a9a7d; }
.cashflow-forecast-item.net.negative > strong { color: #d86c52; }
.cashflow-forecast-item.net > strong { color: #111827 !important; }
.cashflow-expense-trend { display: inline-flex; align-items: center; gap: 3px; margin-left: 3px; padding: 2px 5px 2px 3px; border-radius: 9px; font-size: 11px; font-weight: 700; line-height: 1; vertical-align: 1px; white-space: nowrap; }
.cashflow-expense-trend b { font-size: 14px; line-height: 1; }
.cashflow-expense-trend em { font-size: 8px; font-style: normal; font-weight: 600; }
.cashflow-expense-trend.is-up { background: #fff0ed; color: #d85f4e; }
.cashflow-expense-trend.is-down { background: #edf9f4; color: #299675; }
.cashflow-forecast-note { margin: 3px 20px 16px; color: #a0a9b3; font-size: 9px; line-height: 1.6; }
.health-score-card { padding-bottom: 16px; }
.health-score-level { padding: 4px 8px; border-radius: 999px; background: #edf8f4; color: #2a987b; font-size: 10px; font-weight: 600; }
.health-score-level.is-good { background: #eaf7f1; color: #4b9879; }
.health-score-level.is-okay { background: #fff6df; color: #ad8535; }
.health-score-level.is-warn { background: #fff3da; color: #ad8535; }
.health-score-level.is-danger { background: #fff0ec; color: #c76851; }
.health-score-level.is-neutral { background: #f0f3f5; color: #7d8991; }
.health-score-level.is-muted { background: #f0f3f5; color: #7d8991; }
.health-score-main { display: grid; grid-template-columns: auto auto 1fr; align-items: end; gap: 5px; padding: 8px 20px 10px; }
.health-score-main > strong { color: var(--ink); font-size: 34px; line-height: 1; }
.health-score-main > span { padding-bottom: 3px; color: var(--muted); font-size: 11px; }
.health-score-track { grid-column: 1 / -1; height: 7px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.health-score-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f0b35b, #2b9c7d); }
.health-score-coverage { margin: -3px 20px 8px; color: var(--muted); font-size: 8px; }
.health-score-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 20px; color: var(--muted); font-size: 9px; }
.health-score-metrics span { display: grid; grid-template-columns: 1fr auto; gap: 3px 7px; padding: 9px; border: 1px solid transparent; border-radius: 9px; background: var(--soft); }
.health-score-metrics span.is-good { border-color: #dcefe8; background: #f3fbf8; }
.health-score-metrics span.is-okay { border-color: #f3e7c6; background: #fffaf0; }
.health-score-metrics span.is-warn { border-color: #f4ddd7; background: #fff6f3; }
.health-score-metrics span.is-muted { background: #f6f8f9; }
.health-score-metrics small { grid-column: 1 / -1; font-size: 9px; }
.health-score-metrics small em { margin-left: 3px; color: #8997a0; font-size: 8px; font-style: normal; }
.health-score-metrics b { color: var(--ink); font-size: 11px; }
.health-score-metrics .health-score-metric-score { align-self: center; color: #82909a; font-size: 9px; font-weight: 600; }
.health-score-metrics .is-good .health-score-metric-score { color: #4b9879; }
.health-score-metrics .is-okay .health-score-metric-score { color: #ad8535; }
.health-score-metrics .is-warn .health-score-metric-score { color: #c76851; }
.health-score-metric-track { grid-column: 1 / -1; height: 4px; overflow: hidden; border-radius: 99px; background: #e7ecee; }
.health-score-metric-track u { display: block; height: 100%; border-radius: inherit; background: #819099; text-decoration: none; }
.health-score-metrics .is-good .health-score-metric-track u { background: #52ad8d; }
.health-score-metrics .is-okay .health-score-metric-track u { background: #d6a64f; }
.health-score-metrics .is-warn .health-score-metric-track u { background: #d8755e; }
.health-score-dimensions { display: grid; gap: 6px; padding: 0 20px; }
.health-score-dimension { overflow: hidden; border: 1px solid #e8edf0; border-radius: 10px; background: #fbfcfc; }
.health-score-dimension > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto 12px; align-items: center; gap: 9px; padding: 9px 11px; cursor: pointer; list-style: none; }
.health-score-dimension > summary::-webkit-details-marker { display: none; }
.health-score-dimension > summary > span { display: grid; gap: 3px; }
.health-score-dimension > summary strong { color: var(--ink); font-size: 10px; }
.health-score-dimension > summary small { color: var(--muted); font-size: 8px; }
.health-score-dimension > summary > b { color: #5b8e7f; font-size: 10px; }
.health-score-dimension.is-okay > summary > b { color: #ad8535; }
.health-score-dimension.is-warn > summary > b { color: #c76851; }
.health-score-dimension.is-muted > summary > b { color: #8997a0; }
.health-score-dimension > summary > i { color: #9aa5ad; font-size: 10px; font-style: normal; transition: transform .15s ease; }
.health-score-dimension[open] > summary > i { transform: rotate(180deg); }
.health-score-dimension-body { padding: 0 10px 10px; }
.health-score-dimension-body .health-score-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 0; }
.health-score-dimension-body .health-score-metrics > span { padding: 7px; }
[data-theme="night"] .health-score-dimension { border-color: #344250; background: #18242d; }
[data-theme="night"] .health-score-dimension-body .health-score-metrics span { border-color: #344250; background: #202b38; }
[data-theme="night"] .health-score-dimension-body .health-score-metrics span.is-good { border-color: #315345; background: #1c3029; }
[data-theme="night"] .health-score-dimension-body .health-score-metrics span.is-okay { border-color: #51432d; background: #302a20; }
[data-theme="night"] .health-score-dimension-body .health-score-metrics span.is-warn { border-color: #55372f; background: #33241f; }
[data-theme="night"] .cash-reserve-insufficient,[data-theme="night"] .monthly-report-future-note,[data-theme="night"] .report-period-note { border-color: #344250; background: #202b38; color: #a6b2bf; }
.health-score-advice { margin: 10px 20px 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.consumption-habit-no-score { padding: 10px 12px; border: 1px solid #e8edf0; border-radius: 10px; background: #f8fafb; }
.consumption-habit-details { margin: 12px 20px 0; overflow: hidden; border: 1px solid #e8edf0; border-radius: 11px; background: #fbfcfc; }
.consumption-habit-details > summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 11px 12px; cursor: pointer; list-style: none; }
.consumption-habit-details > summary::-webkit-details-marker { display: none; }
.consumption-habit-details > summary strong { color: var(--ink); font-size: 10px; }
.consumption-habit-details > summary span { color: var(--muted); font-size: 8px; text-align: right; }
.consumption-habit-detail-body { display: grid; gap: 10px; padding: 0 12px 12px; }
.consumption-habit-group-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.consumption-habit-group-row { display: grid; gap: 4px; padding: 8px; border-radius: 8px; background: var(--soft); }
.consumption-habit-group-row span,.consumption-habit-group-row small { color: var(--muted); font-size: 8px; }
.consumption-habit-group-row strong { color: var(--ink); font-size: 11px; }
.consumption-habit-reasons { display: grid; gap: 6px; }
.consumption-habit-reason { padding: 8px 0; border-bottom: 1px solid #edf0f2; }
.consumption-habit-reason > div { display: flex; justify-content: space-between; gap: 8px; }
.consumption-habit-reason strong,.consumption-habit-reason span { color: var(--ink); font-size: 9px; }
.consumption-habit-reason p,.consumption-habit-method-note { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.55; }
.consumption-habit-large-list { display: grid; gap: 6px; }
.consumption-habit-detail-heading { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; }
.consumption-habit-detail-heading strong { color: var(--ink); font-size: 9px; }
.consumption-habit-detail-heading span { color: var(--muted); font-size: 8px; text-align: right; }
.consumption-habit-large-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(112px, 145px); align-items: center; gap: 8px; padding: 8px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; }
.consumption-habit-large-row > span { display: grid; gap: 3px; min-width: 0; }
.consumption-habit-large-row > span strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-habit-large-row small { color: var(--muted); font-size: 8px; }
.consumption-habit-large-row > b { color: var(--ink); font-size: 9px; white-space: nowrap; }
.consumption-habit-large-row label { display: grid; gap: 3px; color: var(--muted); font-size: 8px; }
.consumption-habit-large-row select { width: 100%; min-width: 0; padding: 6px 7px; border: 1px solid #e4e9ec; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
.consumption-habit-method-note { margin: 0; }
[data-theme="night"] .consumption-habit-details { border-color: #344250; background: #18242d; }
[data-theme="night"] .consumption-habit-no-score,[data-theme="night"] .consumption-habit-large-row { border-color: #344250; background: #202b38; }
[data-theme="night"] .consumption-habit-large-row select { border-color: #425262; background: #18242d; color: var(--ink); }
.shopping-page-stack,.tools-page-stack { max-width: 820px; }
.shopping-add-card { padding: 18px 20px; }
.shopping-add-card form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: end; gap: 10px; }
.shopping-add-card .form-field { margin: 0; }
.shopping-add-card form > .form-field:first-child,.shopping-stock-prompt-host { grid-column: 1 / -1; }
.shopping-stock-prompt-host:empty { display: none; }
.shopping-stock-prompt { display: grid; gap: 9px; padding: 12px 14px; border: 1px solid #dcebe5; border-radius: 13px; background: #f5faf7; }
.shopping-stock-prompt.is-empty { border-color: #e7ebee; background: #f8f9fa; }
.shopping-stock-prompt-heading { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.shopping-stock-prompt-heading strong,.shopping-stock-match b { color: #526a60; font-size: 12px; }
.shopping-stock-prompt small,.shopping-stock-match small { color: #82918d; font-size: 11px; line-height: 1.5; }
.shopping-stock-match { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid #e5eee9; }
.shopping-stock-match > span { display: grid; min-width: 0; gap: 3px; }
.shopping-stock-match button { flex: 0 0 auto; min-height: 32px; padding: 0 10px; border: 1px solid #dce7e2; border-radius: 9px; background: #fff; color: #548775; font-size: 11px; }
.shopping-stock-prompt-note { color: #99a5a1 !important; }
.shopping-add-card .primary-button { height: 38px; white-space: nowrap; }
.shopping-price-reference { grid-column: 1 / -1; padding: 10px 12px; border: 1px solid #dcece7; border-radius: 10px; background: #f5fbf8; }
.shopping-edit-modal .shopping-price-reference { grid-column: 1 / -1; }
.shopping-price-reference[hidden] { display: none; }
.shopping-price-reference-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.shopping-price-reference-heading strong { color: #347f6c; font-size: 10px; }
.shopping-price-reference-heading span { color: var(--muted); font-size: 8px; text-align: right; }
.shopping-price-reference-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.shopping-price-reference-metrics span { display: grid; min-width: 0; gap: 3px; padding: 7px 8px; border-radius: 8px; background: #fff; }
.shopping-price-reference-metrics small,.shopping-price-reference-metrics i { color: var(--muted); font-size: 8px; font-style: normal; }
.shopping-price-reference-metrics b { overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-price-reference-apply { margin-top: 8px; padding: 0; border: 0; background: transparent; color: #368d76; font: inherit; font-size: 9px; cursor: pointer; }
.shopping-price-reference-apply:hover { text-decoration: underline; }
.shopping-price-reference-empty { grid-column: 1 / -1; padding: 8px 10px; border: 1px dashed #dce8e5; border-radius: 8px; color: var(--muted); font-size: 9px; }
.shopping-price-judgment { display: grid; gap: 4px; margin-top: 8px; padding: 8px 10px; border: 1px solid #e6eeea; border-radius: 8px; background: #fff; }
.shopping-price-judgment > span { color: #84938c; font-size: 8px; }
.shopping-price-judgment > strong { color: #687a71; font-size: 10px; font-weight: 650; }
.shopping-price-judgment > strong.is-saving,.price-archive-judgment.is-saving { color: #348d71; }
.shopping-price-judgment > strong.is-over,.price-archive-judgment.is-over { color: #cf6e58; }
.shopping-price-judgment > strong.is-typical,.price-archive-judgment.is-typical { color: #667d73; }
.shopping-price-judgment > small { color: #96a19b; font-size: 8px; line-height: 1.5; }
.price-archive-modal-judgment { margin: 0; }
.price-archive-judgment { margin-left: 5px; font-style: normal; font-weight: 600; }
.shopping-list-card { overflow: hidden; }
.shopping-list { padding: 4px 20px 10px; }
.shopping-item { display: flex; align-items: center; gap: 10px; min-height: 50px; border-bottom: 1px solid var(--line); }
.shopping-item:last-child { border-bottom: 0; }
.shopping-item label { display: flex; align-items: center; min-width: 0; flex: 1; gap: 10px; cursor: pointer; }
.shopping-item > label:first-child > input[type="checkbox"] { position: absolute; opacity: 0; pointer-events: none; }
.shopping-item-check { display: grid; width: 19px; height: 19px; flex: 0 0 19px; place-items: center; border: 1px solid #ccd6dc; border-radius: 6px; color: #fff; font-size: 12px; }
.shopping-item input:checked + .shopping-item-check { border-color: var(--teal); background: var(--teal); }
.shopping-item input:checked + .shopping-item-check::after { content: '✓'; }
.shopping-item-copy { display: grid; min-width: 0; gap: 2px; }
.shopping-item-name { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-item-category { display: inline-block; margin-left: 7px; padding: 2px 5px; border-radius: 5px; background: var(--shopping-category-bg, #eef6f5); color: var(--shopping-category-color, #5b9188); font-size: 9px; font-style: normal; font-weight: 600; vertical-align: 1px; }
.shopping-item-meta { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-item-work-time { color: #477f6c; font-size: 10px; line-height: 1.4; }
[data-theme="night"] .shopping-item-work-time { color: #8ac9aa; }
.shopping-item-plan { overflow: hidden; color: #5d9a8d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-item-note { overflow: hidden; color: #87949d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-item-date-field { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; white-space: nowrap; cursor: pointer; }
.shopping-item-date { width: 112px; padding: 5px 6px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--muted); font: inherit; font-size: 10px; cursor: pointer; }
.shopping-item.is-checked .shopping-item-name { color: #a3adb5; text-decoration: line-through; }
.shopping-stock-in { flex: 0 0 auto; min-height: 30px; padding: 0 9px; border: 1px solid #cfe7dc; border-radius: 7px; background: #f1faf6; color: #31765e; font: inherit; font-size: 10px; cursor: pointer; }
.shopping-stock-in:hover { border-color: #83c5a8; background: #e8f6ef; }
.shopping-stock-in.is-done { border-color: #e5ece9; background: #f7f9f8; color: #788a82; }
.shopping-ledger-link { flex: 0 0 auto; min-height: 30px; padding: 0 8px; border: 1px solid #dce6fb; border-radius: 7px; background: #f5f8ff; color: #607cc4; font: inherit; font-size: 10px; cursor: pointer; }
.shopping-ledger-link:hover { border-color: #aebfe9; background: #eef3ff; }
.shopping-reconcile-card { overflow: hidden; }
.shopping-reconcile-summary { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; padding: 0 20px 16px; }
.shopping-reconcile-summary span { display: grid; gap: 2px; padding: 10px; border-radius: 10px; background: var(--soft); }
.shopping-reconcile-summary strong { color: var(--ink); font-size: 17px; }
.shopping-reconcile-summary small { color: var(--muted); font-size: 9px; }
.shopping-reconcile-list { display: grid; gap: 9px; padding: 0 20px 14px; }
.shopping-reconcile-row { display: grid; gap: 9px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; }
.shopping-reconcile-row-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.shopping-reconcile-row-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.shopping-reconcile-row-head span { flex: 0 0 auto; color: #b57e40; font-size: 10px; }
.shopping-reconcile-row.is-complete .shopping-reconcile-row-head span { color: #3e9876; }
.shopping-reconcile-states { display: flex; flex-wrap: wrap; gap: 5px; }
.shopping-reconcile-states span { padding: 5px 7px; border-radius: 7px; font-size: 10px; line-height: 1.4; }
.shopping-reconcile-states .is-done { color: #34816c; background: #edf8f2; }
.shopping-reconcile-states .is-pending { color: #a77b41; background: #fff7e9; }
.shopping-reconcile-warning { color: #b26350; font-size: 10px; line-height: 1.5; }
.shopping-reconcile-warning button { margin-left: 5px; padding: 0; border: 0; color: #c36c54; background: none; text-decoration: underline; }
.shopping-reconcile-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.shopping-reconcile-actions button { min-height: 29px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--soft); font-size: 10px; }
.shopping-reconcile-actions button:hover { border-color: #a0cbbb; }
.shopping-reconcile-completed { border-top: 1px solid var(--line); }
.shopping-reconcile-completed summary { padding: 12px 20px; color: #438f78; font-size: 10px; cursor: pointer; }
.shopping-reconcile-note,.shopping-reconcile-empty { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.shopping-reconcile-note { padding: 0 20px 16px; }
.shopping-reconcile-picker { padding: 4px 20px 20px; }
.shopping-reconcile-picker .form-field { margin-bottom: 12px; }
.shopping-reconcile-candidates { display: grid; gap: 7px; max-height: min(50vh,420px); overflow-y: auto; }
.shopping-reconcile-candidates button { display: flex; align-items: center; gap: 8px; width: 100%; padding: 10px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--soft); text-align: left; }
.shopping-reconcile-candidates button strong { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.shopping-reconcile-candidates button small { min-width: 0; color: var(--muted); font-size: 9px; }
.shopping-reconcile-candidates button span { color: #358b6f; font-size: 10px; }
[data-theme="night"] .shopping-reconcile-states .is-done { color: #88c9ae; background: #1d3a33; }
[data-theme="night"] .shopping-reconcile-states .is-pending { color: #e1bd81; background: #3a3124; }
.shopping-item-edit, .shopping-item-delete { display: grid; place-items: center; }
.shopping-item-edit { width: 24px; height: 24px; border: 0; border-radius: 6px; background: transparent; color: #84939c; font-size: 16px; cursor: pointer; }
.shopping-item-edit:hover { background: #eef8f6; color: var(--teal); }
.shopping-item-delete { width: 24px; height: 24px; border: 0; border-radius: 6px; background: transparent; color: #a5afb7; font-size: 17px; cursor: pointer; }
.shopping-item-delete:hover { background: #fff1ed; color: var(--orange); }
.entry-draft-card { overflow: hidden; }
.entry-draft-card > .card-header > span { flex: 0 0 auto; color: #7181ac; font-size: 10px; }
.quick-draft-form { display: grid; grid-template-columns: minmax(85px,.7fr) minmax(100px,.8fr) minmax(150px,1.6fr) auto; align-items: end; gap: 10px; padding: 0 20px 14px; }
.quick-draft-form .form-field > span { margin-bottom: 5px; }
.quick-draft-form .primary-button { min-height: 38px; white-space: nowrap; }
.entry-draft-list { display: grid; padding: 0 20px; }
.entry-draft-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; min-height: 58px; border-top: 1px solid #edf0f2; }
.entry-draft-row > div:first-child { display: grid; min-width: 0; gap: 4px; }
.entry-draft-row strong { overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.entry-draft-row small { color: var(--muted); font-size: 9px; }
.entry-draft-row > span { color: #5a6877; font-size: 11px; font-weight: 700; white-space: nowrap; }
.entry-draft-actions { display: flex; gap: 6px; }
.entry-draft-actions .secondary-button { min-height: 30px; padding: 0 8px; font-size: 9px; }
.entry-draft-empty { margin: 0; padding: 12px 0; color: var(--muted); font-size: 10px; }
.shopping-empty { padding: 18px 0; color: var(--muted); font-size: 10px; text-align: center; }
.storage-photo-upload-button, .storage-photo-remove-button { border: 1px solid #dbe9e3; border-radius: 7px; background: #f7fbf9; color: #477b6b; padding: 7px 10px; font-size: 10px; cursor: pointer; }
.storage-photo-upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.storage-photo-remove-button { color: #a66c5d; background: #fff; border-color: #f0ddd7; }
.stock-image-dialog { position: relative; max-width: min(90vw, 720px); max-height: 85vh; padding: 20px; border-radius: 14px; background: #fff; }
.stock-image-dialog img { display: block; max-width: 100%; max-height: calc(85vh - 40px); object-fit: contain; }
.stock-image-dialog .modal-close { position: absolute; right: 8px; top: 8px; z-index: 1; }
.storage-page-stack { gap: 16px; }
.storage-search-card { overflow: hidden; }
.storage-search-control { display: flex; align-items: center; gap: 8px; margin: 15px 20px 0; }
.storage-search-control input { flex: 1 1 auto; min-width: 0; height: 40px; padding: 0 12px; border: 1px solid #dce7e2; border-radius: 9px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.storage-search-control input:focus { outline: 2px solid #b8dfd0; border-color: #65ae92; }
.storage-search-control button { flex: 0 0 auto; height: 38px; padding: 0 10px; border: 0; background: transparent; color: #6b8e80; font: inherit; font-size: 11px; cursor: pointer; }
.storage-search-control button[hidden] { display: none; }
.storage-search-type-filter { display: flex; align-items: center; gap: 8px; margin: 10px 20px 0; color: var(--muted); font-size: 10px; }
.storage-search-type-filter select { min-width: 140px; height: 36px; padding: 0 10px; border: 1px solid #dce7e2; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.storage-search-results { padding: 11px 20px 17px; }
.storage-temp-out-card { overflow: hidden; }
.storage-temp-out-card .card-header { align-items: center; }
.storage-temp-out-count { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; background: #f1f4f6; color: #687786; font-size: 10px; }
.storage-temp-out-list { display: grid; padding: 9px 20px 15px; }
.storage-temp-out-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 11px 0; border-bottom: 1px solid #edf1ef; }
.storage-temp-out-entry:last-child > .storage-temp-out-row { border-bottom: 0; }
.storage-temp-out-copy { display: grid; flex: 1 1 auto; min-width: 0; gap: 5px; }
.storage-temp-out-copy strong { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; color: var(--ink); font-size: 12px; overflow-wrap: anywhere; }
.storage-temp-out-copy small { color: var(--muted); font-size: 10px; line-height: 1.5; overflow-wrap: anywhere; }
.storage-temp-out-bag-trigger { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; padding: 0; border: 0; background: transparent; color: #617e70; font: inherit; text-align: left; cursor: pointer; }
.storage-temp-out-bag-trigger:hover strong { color: #31765e; }
.storage-temp-out-bag-items { display: grid; margin: 0 0 10px; padding: 3px 12px; border: 1px solid #e5eee9; border-radius: 10px; background: #f8fbf9; }
.storage-temp-out-bag-items[hidden] { display: none; }
.storage-temp-out-bag-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #e5eee9; }
.storage-temp-out-bag-item:last-child { border-bottom: 0; }
.storage-temp-out-bag-item-copy { display: grid; min-width: 0; gap: 3px; }
.storage-temp-out-bag-item-copy strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.storage-temp-out-bag-item-copy small { color: var(--muted); font-size: 10px; }
.storage-temp-out-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.storage-temp-out-reminder { flex: 0 0 auto; min-height: 34px; padding: 0 10px; border: 1px solid #dce7e2; border-radius: 8px; background: #fff; color: #617e70; font: inherit; font-size: 10px; cursor: pointer; }
.storage-temp-out-reminder:hover { border-color: #a9cdbc; background: #f6fbf8; }
.storage-temp-out-return { flex: 0 0 auto; min-height: 34px; padding: 0 12px; border: 1px solid #cfe7dc; border-radius: 8px; background: #f1faf6; color: #31765e; font: inherit; font-size: 10px; cursor: pointer; }
.storage-temp-out-return:hover { border-color: #83c5a8; background: #e8f6ef; }
.storage-temp-out-empty { margin: 0; padding: 16px 20px 18px; color: var(--muted); font-size: 11px; }
.storage-temporary-out-modal .entry-modal { max-height: min(78vh, 520px); }
.storage-search-hint { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.storage-search-count { margin-bottom: 8px; color: #688375; font-size: 10px; }
.storage-search-list { display: grid; max-height: 420px; overflow-y: auto; border: 1px solid #edf1ef; border-radius: 9px; }
.storage-search-item { min-width: 0; border-bottom: 1px solid #edf1ef; background: #fff; }
.storage-search-item:last-child { border-bottom: 0; }
.storage-search-result { display: flex; align-items: center; gap: 9px; width: 100%; min-width: 0; padding: 9px 10px 5px; border: 0; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.storage-search-result:hover { background: #f7fbf9; }
.storage-search-result img, .storage-search-placeholder { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 7px; background: #f2f8f5; color: #9ab7a9; object-fit: cover; }
.storage-search-copy { display: grid; flex: 1 1 auto; min-width: 0; gap: 3px; }
.storage-search-title { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; }
.storage-search-copy strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.storage-search-copy small { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.storage-search-copy .storage-search-stock { color: #688375; }
.storage-search-arrow { color: #8ca89b; font-size: 19px; }
.storage-search-actions { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 10px 9px 55px; }
.storage-search-actions button { min-height: 29px; padding: 0 9px; border: 1px solid #dce9e4; border-radius: 7px; background: #f8fbfa; color: #467a69; font: inherit; font-size: 9px; cursor: pointer; }
.storage-search-actions button:first-child { border-color: #cce9da; background: #edf8f1; color: #28765d; }
.storage-search-actions button[data-toggle-storage-temporary-out] { border-color: #d8e0e8; background: #f4f7fa; color: #5c6b79; }
.storage-search-actions button:hover:not(:disabled) { border-color: #a9cdbc; background: #f0f8f4; }
.storage-search-actions button:disabled { opacity: .48; cursor: not-allowed; }
[data-theme="night"] .storage-search-list { border-color: #344250; }
[data-theme="night"] .storage-search-item,
[data-theme="night"] .storage-search-result { border-color: #344250; background: #1a2631; }
[data-theme="night"] .storage-search-result:hover { background: #202e3a; }
[data-theme="night"] .storage-search-actions button { border-color: #344250; background: #202e3a; color: #b7d4c8; }
[data-theme="night"] .storage-search-actions button:first-child { border-color: #315345; background: #1c3029; color: #94d1b2; }
[data-theme="night"] .storage-search-actions button[data-toggle-storage-temporary-out] { border-color: #344250; background: #202a34; color: #b5c2ce; }
.stored-item-row.is-found { outline: 2px solid #6abc9b; outline-offset: -2px; background: #f1faf6; scroll-margin-top: 90px; }
.storage-house-panel .card-header { flex-wrap: wrap; }
.storage-house-panel .card-header > div:first-child { flex: 1 1 180px; min-width: 0; }
.storage-house-controls { display: flex; flex-wrap: wrap; gap: 6px; }
.storage-house-controls button { min-height: 32px; padding: 7px 9px; border: 1px solid #dce9e4; border-radius: 7px; background: #f8fbfa; color: #467a69; font: inherit; font-size: 10px; cursor: pointer; }
.storage-house-controls .is-danger { border-color: #f0ddd7; background: #fff; color: #b06554; }
.storage-house-controls button:disabled { opacity: .5; cursor: default; }
.storage-house-tabs { display: flex; gap: 9px; overflow-x: auto; padding: 14px 20px 18px; }
.storage-house-tab { flex: 0 0 auto; display: grid; gap: 5px; min-width: 145px; padding: 11px 14px; border: 1px solid #e1e9e6; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.storage-house-tab strong { font-size: 12px; }
.storage-house-tab small { color: var(--muted); font-size: 10px; }
.storage-house-tab.active { border-color: #57ad91; background: #f1faf6; color: #26765d; }
.storage-room-panel .card-header, .storage-room-detail .card-header { flex-wrap: wrap; }
.storage-room-panel .card-header > div, .storage-room-detail .card-header > div { flex: 1 1 170px; min-width: 0; }
.storage-room-tabs { display: flex; gap: 9px; overflow-x: auto; padding: 17px 20px 20px; }
.storage-room-tab { flex: 0 0 auto; display: grid; gap: 5px; min-width: 110px; padding: 11px 14px; border: 1px solid #e1e9e6; border-radius: 10px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; text-align: left; cursor: pointer; }
.storage-room-tab small { color: var(--muted); font-size: 10px; }
.storage-room-tab.active { border-color: #57ad91; background: #f1faf6; color: #26765d; }
.storage-intro-empty { padding: 30px 20px; color: var(--muted); font-size: 12px; text-align: center; }
.storage-room-controls, .storage-cabinet-controls { display: flex; flex-wrap: wrap; gap: 6px; }
.storage-room-controls button, .storage-cabinet-controls button, .stored-item-actions button { border: 1px solid #dce9e4; border-radius: 7px; background: #f8fbfa; color: #467a69; padding: 7px 9px; font: inherit; font-size: 10px; cursor: pointer; }
.storage-room-controls .is-danger, .storage-cabinet-controls .is-danger, .stored-item-actions .is-danger { border-color: #f0ddd7; background: #fff; color: #b06554; }
.storage-cabinet-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 18px 20px 20px; }
.storage-cabinet-card { min-width: 0; border: 1px solid #e7eeeb; border-radius: 12px; background: #fff; overflow: hidden; }
.storage-fridge-badge { display: inline-flex; vertical-align: middle; padding: 2px 7px; border-radius: 999px; background: #e9f4fb; color: #3a7896; font-size: 9px; }
.stored-item-fridge-info { color: #3a7896 !important; }
#stored-item-form:is([data-action-mode="move"], [data-action-mode="temporary"]) > .storage-fridge-fields > :nth-child(2):not([hidden]) { display: grid; }
[data-theme="night"] .storage-fridge-badge { background: #234457; color: #b3dcec; }
.storage-cabinet-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 13px; background: #f8fbfa; }
.storage-cabinet-head h3 { margin: 0 0 4px; color: var(--ink); font-size: 12px; }
.storage-cabinet-head small { color: var(--muted); font-size: 10px; }
.storage-cabinet-media { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 10px 12px 0; }
.storage-cabinet-photo { flex: 0 0 100%; width: 100%; max-height: 150px; aspect-ratio: 16 / 7; padding: 0; border: 1px solid #e5eeea; border-radius: 8px; background: #f4f9f6; overflow: hidden; cursor: pointer; }
.storage-cabinet-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.storage-cabinet-media .storage-photo-upload-button, .storage-cabinet-media .storage-photo-remove-button { min-height: 30px; }
.stored-item-list { display: grid; }
.stored-item-row { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 10px 12px; border-top: 1px solid #edf1ef; }
.stored-item-photo, .stored-item-placeholder { display: grid; flex: 0 0 43px; width: 43px; height: 43px; place-items: center; padding: 0; border: 1px solid #e5eeea; border-radius: 8px; background: #f4f9f6; color: #8bac9d; overflow: hidden; }
.stored-item-photo { cursor: pointer; }
.stored-item-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.stored-item-copy { display: grid; flex: 1 1 auto; min-width: 0; gap: 3px; }
.stored-item-copy strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.stored-item-copy small { color: var(--muted); font-size: 9px; overflow-wrap: anywhere; }
.stored-item-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.storage-type-badge, .storage-status-badge, .storage-low-stock-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #edf6f1; color: #4e8169; font-size: 9px; line-height: 1.3; }
.storage-type-badge { background: #eef3fb; color: #647c9e; }
.storage-laundry-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #fff3e6; color: #a76732; font-size: 9px; line-height: 1.3; }
.storage-laundry-badge.is-washed { background: #edf7f1; color: #34785f; }
.storage-temporary-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #fff3e7; color: #a56735; font-size: 9px; line-height: 1.3; }
.storage-temporary-info { color: #a56735 !important; }
.storage-temporary-out-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #edf1f5; color: #627080; font-size: 9px; line-height: 1.3; }
.storage-temporary-out-info { color: #687786 !important; }
.stored-item-row.is-temporary-out { background: #fafbfc; }
.storage-cabinet-card.is-temporary-out { border-color: #d7dfe6; background: #fbfcfd; }
.storage-restock-info { color: #4e8169 !important; }
.stored-item-dates { color: #9a8064 !important; }
.storage-item-date-fields[hidden] { display: none; }
.storage-product-catalog { padding: 14px 16px; }
.storage-product-catalog > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ink); cursor: pointer; list-style: none; }
.storage-product-catalog > summary::-webkit-details-marker { display: none; }
.storage-product-catalog > summary::after { content: '⌄'; color: var(--muted); }
.storage-product-catalog[open] > summary::after { content: '⌃'; }
.storage-product-catalog > summary span { color: var(--muted); font-size: 10px; }
.storage-product-catalog > p { margin: 8px 0 10px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.storage-product-profile-list { display: grid; gap: 6px; }
.storage-product-profile-row { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 8px 0; border-top: 1px solid #edf1ef; }
.storage-product-profile-row > span { display: grid; min-width: 0; gap: 3px; }
.storage-product-profile-row strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.storage-product-profile-row small, .storage-product-catalog-more { color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.storage-product-profile-row button { flex: 0 0 auto; min-height: 32px; padding: 5px 8px; font-size: 9px; }
.storage-related-groups { padding: 14px 16px; }
.storage-item-group-count { color: var(--muted); font-size: 9px; text-align: right; }





.storage-related-groups-body { display: grid; gap: 10px; margin-top: 10px; }
.storage-item-group-list { display: grid; gap: 7px; }
.storage-item-group-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.storage-item-group-row > div:first-child { display: grid; min-width: 0; gap: 3px; }
.storage-item-group-row strong { color: var(--ink); font-size: 11px; }
.storage-item-group-row small, .storage-item-group-empty { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.storage-item-group-actions, .storage-item-group-form-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 6px; }
.storage-item-group-actions button, .storage-related-groups-body > button { min-height: 32px; padding: 5px 9px; font-size: 9px; }
.storage-item-group-form { display: grid; gap: 11px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: var(--paper); }
.storage-item-group-form[hidden] { display: none; }
.storage-item-group-form fieldset { min-width: 0; margin: 0; padding: 9px; border: 1px solid var(--line); border-radius: 9px; }
.storage-item-group-form legend { padding: 0 5px; color: var(--muted); font-size: 10px; }
.storage-item-group-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; max-height: 250px; overflow: auto; }
.storage-item-group-choice { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card, #fff); cursor: pointer; }
.storage-item-group-choice input { flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--teal); }
.storage-item-group-choice span { display: grid; min-width: 0; gap: 3px; }
.storage-item-group-choice strong { color: var(--ink); font-size: 10px; overflow-wrap: anywhere; }
.storage-item-group-choice small { color: var(--muted); font-size: 8px; line-height: 1.4; overflow-wrap: anywhere; }
.storage-related-item-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #edf6f3; color: #3e806c; font-size: 9px; line-height: 1.3; }
.storage-status-badge.is-idle { background: #f2f3f5; color: #717b86; }
.storage-status-badge.is-repair, .storage-status-badge.is-pending { background: #fff6e6; color: #a57b2d; }
.storage-status-badge.is-damaged, .storage-low-stock-badge { background: #fff0ed; color: #b35d4b; }
.stored-item-history { margin-top: 2px; color: #5f8273; font-size: 9px; }
.stored-item-history summary, .storage-count-history summary { width: fit-content; cursor: pointer; }
.stored-item-history ul, .storage-count-history ul { display: grid; gap: 6px; margin: 6px 0 0; padding: 0 0 0 14px; }
.stored-item-history li, .storage-count-history li { color: #52685f; font-size: 9px; line-height: 1.5; }
.stored-item-history li small { display: block; margin-top: 2px; }
.stored-item-copy small.stored-item-use-cost { color: #557c69; font-size: 9px; line-height: 1.5; }
.stored-item-use-cost strong { color: #267654; font-size: 10px; }
[data-theme="night"] .stored-item-copy small.stored-item-use-cost { color: #a1c9b1; }
[data-theme="night"] .stored-item-use-cost strong { color: #a5e1bc; }
.stored-item-reservations { margin-top: 2px; color: #567caa; font-size: 9px; }
.stored-item-reservations summary { width: fit-content; cursor: pointer; }
.stored-item-reservations ul { display: grid; gap: 5px; margin: 5px 0 0; padding: 0; list-style: none; }
.stored-item-reservations li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 7px; border: 1px solid #e6edf5; border-radius: 7px; background: #f8fbff; }
.stored-item-reservations li > span { display: grid; min-width: 0; gap: 2px; }
.stored-item-reservations li strong { color: #425e7c; font-size: 9px; overflow-wrap: anywhere; }
.stored-item-reservations li small { color: var(--muted); font-size: 8px; }
.stored-item-reservations li button { flex: 0 0 auto; min-height: 26px; padding: 3px 7px; border: 1px solid #dce7f0; border-radius: 6px; background: #fff; color: #607991; font: inherit; font-size: 9px; cursor: pointer; }
.storage-reservation-stock { margin: 0; padding: 9px 11px; border: 1px solid #e3edf6; border-radius: 8px; background: #f6faff; color: #557394; font-size: 10px; line-height: 1.5; }
.storage-count-history { padding: 10px 13px 12px; border-top: 1px solid #edf1ef; color: #5f8273; font-size: 9px; }
.storage-count-history li strong, .storage-count-history li span { display: block; }
.storage-count-location { margin: 0; padding: 0 24px; color: var(--muted); font-size: 11px; }
.storage-count-location strong { color: var(--ink); }
.storage-count-hint { margin: 0; padding: 0 24px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.storage-count-items { display: grid; gap: 8px; }
.storage-count-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; padding: 10px 11px; border: 1px solid #e8eeeb; border-radius: 9px; background: #fbfdfc; }
.storage-count-row > span:first-child { display: grid; min-width: 0; gap: 4px; }
.storage-count-row strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.storage-count-row small { color: var(--muted); font-size: 9px; }
.storage-count-input { display: flex; flex: 0 0 128px; align-items: center; gap: 6px; }
.storage-count-input input { width: 100%; min-width: 0; height: 38px; padding: 0 8px; border: 1px solid #dce7e2; border-radius: 8px; color: var(--ink); font: inherit; font-size: 12px; }
.storage-count-input > small { flex: 0 0 auto; }
.stored-item-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.stored-item-actions button { min-height: 32px; }
.stored-item-actions [data-use-storage-item] { border-color: #cce9da; background: #edf8f1; color: #28765d; }
.stored-item-actions [data-record-storage-use] { border-color: #cbded4; background: #f4faf6; color: #3c8062; }
.stored-item-actions [data-toggle-storage-temporary-out], .storage-cabinet-controls [data-toggle-luggage-temporary-out] { border-color: #d8e0e8; background: #f4f7fa; color: #5c6b79; }
.stored-item-actions button:disabled { opacity: .48; cursor: not-allowed; }
#stored-item-form:is([data-action-mode="move"], [data-action-mode="consume"], [data-action-mode="temporary"]) > :not(.storage-form-grid):not(.modal-actions):not(#storage-temporary-return-field):not(#storage-fefo-hint), #stored-item-form:is([data-action-mode="move"], [data-action-mode="consume"], [data-action-mode="temporary"]) > .storage-item-date-fields { display: none; }
#stored-item-form[data-action-mode="temporary"] > #storage-temporary-return-field { display: grid; }
#stored-item-form:is([data-action-mode="move"], [data-action-mode="temporary"]) > .storage-form-grid:not(.storage-item-date-fields) > :nth-child(2), #stored-item-form[data-action-mode="consume"] > .storage-form-grid:not(.storage-item-date-fields) > :not(:first-child) { display: none; }
#stored-item-form[data-action-mode="consume"] > .storage-form-grid:not(.storage-item-date-fields) { grid-template-columns: 1fr; }
.storage-empty-note { margin: 0; padding: 18px 12px; color: var(--muted); font-size: 10px; }
.storage-edit-modal form { display: grid; flex: 0 1 auto; gap: 12px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 24px 24px; }
.storage-edit-modal form[hidden] { display: none; }
.storage-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.storage-form-grid[hidden] { display: none; }
.storage-shelf-life-help { grid-column: 1 / -1; color: #728b7c; font-size: 10px; line-height: 1.5; }
.storage-shelf-life-help[hidden] { display: none; }
.storage-package-converter { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px 12px; padding: 10px 12px; border: 1px solid #e4eee9; border-radius: 10px; background: #f8fbf9; }
.storage-package-converter .form-field { margin: 0; }
.storage-package-converter > small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; line-height: 1.45; }
.storage-package-converter[hidden] { display: none; }
.storage-barcode-match-actions { display: grid; gap: 7px; margin-top: 8px; padding: 10px 12px; border: 1px solid #dcebe3; border-radius: 10px; background: #f4faf6; }
.storage-barcode-match-actions[hidden] { display: none; }
.storage-barcode-match-actions strong { color: #436c58; font-size: 11px; }
.storage-barcode-match-actions small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.storage-barcode-match-actions > button { justify-self: start; }
.storage-barcode-action-buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.storage-barcode-action-buttons button { min-height: 34px; padding: 6px 9px; font-size: 10px; }
.storage-fefo-hint { margin: 0; padding: 9px 11px; border: 1px solid #f0dfb7; border-radius: 9px; background: #fff9e9; color: #896a2a; font-size: 11px; line-height: 1.5; }
.storage-fefo-hint[hidden] { display: none; }
.storage-barcode-control { display: flex; align-items: stretch; gap: 7px; min-width: 0; }
.storage-barcode-control input { flex: 1 1 auto; min-width: 0; }
.storage-barcode-control button { flex: 0 0 auto; white-space: nowrap; }
.storage-barcode-modal { z-index: 35; }
.storage-barcode-dialog { gap: 10px; padding-bottom: 18px; }
.storage-barcode-dialog .modal-header { justify-content: space-between; }
.storage-barcode-viewport { position: relative; display: grid; min-height: 230px; margin: 6px 18px 0; place-items: center; overflow: hidden; border-radius: 12px; background: #101719; }
.storage-barcode-viewport video { display: block; width: 100%; max-height: min(58vh, 460px); aspect-ratio: 4 / 3; object-fit: cover; }
.storage-barcode-viewport > span { position: absolute; width: min(78%, 360px); height: 94px; border: 2px solid #7be0ad; border-radius: 10px; box-shadow: 0 0 0 999px #08110d48; pointer-events: none; }
.storage-barcode-hint { margin: 0 20px; color: var(--muted); font-size: 11px; line-height: 1.6; text-align: center; }
.storage-remove-image { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.storage-edit-modal .modal-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
@media (max-width: 560px) {
  .quick-draft-form { grid-template-columns: 1fr 1fr; gap: 8px; padding-right: 14px; padding-left: 14px; }
  .quick-draft-form .form-field:nth-child(3) { grid-column: 1 / -1; }
  .quick-draft-form .primary-button { grid-column: 1 / -1; width: 100%; }
  .entry-draft-list { padding-right: 14px; padding-left: 14px; }
  .entry-draft-row { grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; padding: 9px 0; }
  .entry-draft-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .shopping-ledger-link { min-height: 32px; padding: 0 6px; font-size: 9px; }
  .shopping-stock-in { padding-right: 6px; padding-left: 6px; font-size: 9px; }
  .shopping-reconcile-summary { grid-template-columns: repeat(3,minmax(0,1fr)); padding-right: 14px; padding-left: 14px; }
  .shopping-reconcile-list { padding-right: 14px; padding-left: 14px; }
  .shopping-reconcile-actions button { min-height: 34px; }
  .shopping-reconcile-candidates button { flex-wrap: wrap; }
  .shopping-reconcile-candidates button strong { flex-basis: calc(100% - 45px); }
  .shopping-reconcile-candidates button small { order: 3; flex-basis: 100%; }
  .entry-modal .modal-footer #entry-save-draft { min-height: 38px; padding-right: 9px; padding-left: 9px; font-size: 10px; }
  .entry-modal .modal-footer .save-entry { min-width: 90px; }
  .storage-house-tabs { padding-right: 14px; padding-left: 14px; }
  .storage-house-controls { width: 100%; }
  .storage-house-controls button { min-height: 36px; }
  .storage-room-tabs { padding-right: 14px; padding-left: 14px; }
  .storage-search-control { margin-right: 14px; margin-left: 14px; }
  .storage-search-type-filter { margin-right: 14px; margin-left: 14px; }
  .storage-search-results { padding-right: 14px; padding-left: 14px; }
  .storage-search-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-left: 10px; }
  .storage-search-actions button { min-height: 36px; font-size: 10px; }
  .storage-temp-out-list { padding-right: 14px; padding-left: 14px; }
  .storage-temp-out-row { align-items: flex-start; flex-direction: column; gap: 9px; }
  .storage-temp-out-actions { width: 100%; justify-content: flex-start; }
  .storage-temp-out-actions button { min-height: 38px; font-size: 11px; }
  .storage-cabinet-grid { grid-template-columns: 1fr; padding-right: 14px; padding-left: 14px; }
  .stored-item-row { align-items: flex-start; flex-wrap: wrap; }
  .stored-item-actions { width: calc(100% - 52px); justify-content: flex-start; margin-left: 52px; }
  .stored-item-actions button { min-height: 38px; font-size: 11px; }
  .storage-form-grid { grid-template-columns: 1fr 1fr; }
  .storage-edit-modal form { padding-right: 18px; padding-left: 18px; }
  .storage-temporary-out-modal .entry-modal { max-height: min(78vh, 520px); max-height: min(78dvh, 520px); }
  .shopping-stock-in { min-height: 34px; padding-right: 8px; padding-left: 8px; font-size: 10px; }
  .storage-barcode-viewport { min-height: 210px; margin-right: 14px; margin-left: 14px; }
  .storage-barcode-hint { margin-right: 16px; margin-left: 16px; }
  .storage-count-location, .storage-count-hint { padding-right: 18px; padding-left: 18px; }
  .storage-count-row { align-items: flex-start; }
  .storage-count-input { flex-basis: 112px; }
}
.price-archive-card { overflow: hidden; }
.price-archive-card .card-header { align-items: center; }
.price-archive-add { min-height: 32px; white-space: nowrap; }
.price-archive-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 20px 12px; overflow: hidden; border: 1px solid #e7edef; border-radius: 10px; background: #e7edef; }
.price-archive-stats > span { display: grid; min-width: 0; gap: 3px; padding: 10px 11px; background: #fbfdfd; }
.price-archive-stats small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.price-archive-stats b { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.price-archive-stats .is-saving b { color: #339578; }
.price-archive-stats .is-over b { color: #d56e5b; }
.household-basket-card { overflow: hidden; }
.household-basket-card .card-header { align-items: center; }
.household-basket-card .card-header > div { display: grid; gap: 4px; min-width: 0; }
.household-basket-card .card-header h2 { margin: 0; font-size: 14px; }
.household-basket-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.household-basket-change { flex: 0 0 auto; font-size: 13px; font-weight: 700; }
.household-basket-change.is-over,.household-basket-row .is-over { color: #d56e5b; }
.household-basket-change.is-saving,.household-basket-row .is-saving { color: #339578; }
.household-basket-change.is-flat,.household-basket-row .is-flat { color: #8b98a1; }
.household-basket-summary { display: flex; align-items: center; gap: 16px; margin: 0 20px 12px; padding: 11px 13px; border: 1px solid #e7efed; border-radius: 10px; background: #f9fcfb; }
.household-basket-summary > div { display: grid; min-width: 0; gap: 3px; }
.household-basket-summary span,.household-basket-summary small { color: var(--muted); font-size: 8px; }
.household-basket-summary strong { color: var(--ink); font-size: 14px; }
.household-basket-summary i,.living-cost-summary i { width: 1px; height: 27px; flex: 0 0 auto; background: #e4eae8; }
.household-basket-list { display: grid; padding: 0 20px 9px; }
.household-basket-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid #edf1ef; }
.household-basket-row:last-child { border-bottom: 0; }
.household-basket-copy { display: grid; min-width: 0; gap: 3px; }
.household-basket-copy strong { overflow-wrap: anywhere; color: var(--ink); font-size: 10px; }
.household-basket-copy small { overflow-wrap: anywhere; color: var(--muted); font-size: 8px; }
.household-basket-row > b { flex: 0 0 auto; font-size: 10px; }
.household-basket-empty { margin: 0 20px 12px; padding: 12px; border: 1px dashed #dce8e4; border-radius: 9px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.household-basket-method { display: block; padding: 0 20px 14px; color: #9aa6ad; font-size: 8px; line-height: 1.55; }
.price-archive-filter { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0 20px 10px; color: var(--muted); font-size: 10px; }
.price-archive-filter select { min-width: 110px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.price-archive-product-summary { display: grid; gap: 1px; margin: 0 20px 12px; overflow: hidden; border: 1px solid #e7efed; border-radius: 10px; background: #e7efed; }
.price-archive-product-summary > span { padding: 8px 10px; background: #f5faf8; color: #528d80; font-size: 9px; font-weight: 600; }
.price-archive-product-summary > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; background: #fff; }
.price-archive-product-summary strong { min-width: 0; overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.price-archive-product-summary small { flex: 0 0 auto; color: var(--muted); font-size: 9px; }
.price-trend-panel { margin: 0 20px 14px; padding: 13px 14px 11px; border: 1px solid #e3eeeb; border-radius: 11px; background: linear-gradient(145deg, #fbfefd, #f7fafb); }
.price-trend-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.price-trend-heading h3 { margin: 0; color: var(--ink); font-size: 12px; }
.price-trend-heading p { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.price-trend-controls { display: flex; flex: 0 0 auto; gap: 6px; }
.price-trend-controls select { max-width: 210px; min-width: 92px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 9px; }
.price-trend-controls select:first-child { min-width: 150px; }
.price-trend-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 11px; }
.price-trend-stats > span { display: grid; min-width: 0; gap: 4px; padding: 8px 9px; border: 1px solid #e8efee; border-radius: 8px; background: rgba(255,255,255,.86); }
.price-trend-stats small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.price-trend-stats b { color: var(--ink); font-size: 12px; }
.price-trend-stats .is-saving b { color: #339578; }
.price-trend-stats .is-over b { color: #d56e5b; }
.price-trend-chart-scroll { overflow-x: auto; margin: 5px -3px 0; scrollbar-width: thin; }
.price-trend-chart { display: block; max-width: none; overflow: visible; }
.price-trend-chart > line { stroke: #e6eeed; stroke-width: 1; }
.price-trend-chart > text { fill: #92a0a5; font-size: 8px; }
.price-trend-line path { fill: none; stroke: #42a990; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.price-trend-dots circle { fill: #fff; stroke: #369c82; stroke-width: 2; }
.price-trend-note { display: block; color: #8a999f; font-size: 8px; line-height: 1.5; }
.price-trend-empty { margin-top: 10px; padding: 15px 10px; border-radius: 8px; background: rgba(255,255,255,.75); color: var(--muted); font-size: 10px; line-height: 1.6; text-align: center; }
.price-archive-list { padding: 0 20px; }
.price-archive-row { display: grid; grid-template-columns: minmax(0, 1fr) auto 26px; align-items: center; gap: 10px; min-height: 56px; border-bottom: 1px solid var(--line); }
.price-archive-row:last-child { border-bottom: 0; }
.price-archive-copy { display: grid; min-width: 0; gap: 4px; }
.price-archive-copy strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.price-archive-copy strong b { font-weight: 500; }
.price-archive-copy > span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.price-archive-value { display: grid; justify-items: end; gap: 3px; }
.price-archive-value b { color: var(--ink); font-size: 12px; }
.price-archive-value small { color: var(--muted); font-size: 9px; white-space: nowrap; }
.price-archive-value .is-saving { color: #339578; }
.price-archive-value .is-over { color: #d56e5b; }
.price-archive-edit { display: grid; width: 24px; height: 24px; place-items: center; border: 0; border-radius: 6px; background: transparent; color: #84939c; font-size: 16px; cursor: pointer; }
.price-archive-edit:hover { background: #eef8f6; color: var(--teal); }
.price-archive-empty { padding: 18px 20px; color: var(--muted); font-size: 10px; text-align: center; }
.price-archive-toggle { display: flex; width: calc(100% - 40px); justify-content: center; margin: 10px 20px 14px; }
.price-archive-modal form { display: grid; min-height: 0; flex: 1 1 auto; gap: 12px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 24px 24px; }
.price-archive-modal .modal-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding-top: 6px; }
.price-archive-delete-button { margin-right: auto; color: #c96957; }
.price-archive-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.shopping-category-filter { display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: -3px 0 10px; color: var(--muted); font-size: 10px; }
.shopping-category-filter select { min-width: 110px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.shopping-budget-bar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: -2px 0 12px; padding: 12px 15px; border: 1px solid #e8eeee; border-radius: 12px; background: #fbfdfd; }
.shopping-budget-bar > div { display: grid; gap: 3px; }
.shopping-budget-bar strong { color: var(--ink); font-size: 13px; }
.shopping-budget-bar small { color: var(--muted); font-size: 10px; }
.shopping-budget-bar label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 10px; white-space: nowrap; }
.shopping-budget-bar input { width: 105px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font: inherit; font-size: 10px; }
.shopping-affordability-card { overflow: hidden; padding-bottom: 15px; }
.shopping-affordability-card .card-header { align-items: center; }
.shopping-affordability-badge { padding: 4px 8px; border-radius: 999px; background: #eef2f4; color: #77858f; font-size: 10px; font-weight: 600; white-space: nowrap; }
.shopping-affordability-badge.is-good { background: #eaf7f1; color: #4b9879; }
.shopping-affordability-badge.is-warn { background: #fff6df; color: #ad8535; }
.shopping-affordability-badge.is-danger { background: #fff0ec; color: #c76851; }
.shopping-affordability-form { display: grid; grid-template-columns: minmax(180px, 1fr) auto; align-items: end; gap: 9px; margin: 0 20px 12px; }
.shopping-affordability-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.shopping-affordability-form input { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.shopping-affordability-form label small { color: #9aa5ad; font-size: 8px; line-height: 1.25; }
.shopping-affordability-form .secondary-button { min-height: 35px; white-space: nowrap; }
.shopping-affordability-source { display: block; margin: -5px 20px 10px; color: var(--muted); font-size: 9px; }
.shopping-affordability-scenario { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 20px 12px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.shopping-affordability-scenario > div { display: grid; gap: 4px; padding: 10px 11px; background: #fbfdfd; }
.shopping-affordability-scenario small { color: var(--muted); font-size: 9px; }
.shopping-affordability-scenario strong { color: var(--ink); font-size: 13px; }
.shopping-affordability-main { display: grid; grid-template-columns: auto 1fr; align-items: end; gap: 10px; padding: 0 20px 11px; }
.shopping-affordability-score { display: flex; align-items: baseline; min-width: 72px; gap: 3px; }
.shopping-affordability-score strong { color: var(--ink); font-size: 28px; line-height: 1; }
.shopping-affordability-score span { color: var(--muted); font-size: 10px; }
.shopping-affordability-track { height: 8px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.shopping-affordability-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #efb458, #49ab8a); transition: width .2s ease; }
.shopping-affordability-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; padding: 0 20px; }
.shopping-affordability-metrics span { display: grid; grid-template-columns: 1fr auto; gap: 3px 7px; padding: 9px; border: 1px solid transparent; border-radius: 9px; background: var(--soft); color: var(--muted); }
.shopping-affordability-metrics span.is-good { border-color: #dcefe8; background: #f3fbf8; }
.shopping-affordability-metrics span.is-warn { border-color: #f3e7c6; background: #fffaf0; }
.shopping-affordability-metrics span.is-danger { border-color: #f4ddd7; background: #fff6f3; }
.shopping-affordability-metrics small { grid-column: 1 / -1; font-size: 9px; }
.shopping-affordability-metrics b { color: var(--ink); font-size: 12px; }
.shopping-affordability-metrics em { align-self: center; color: #82909a; font-size: 9px; font-style: normal; }
.shopping-affordability-metrics span.is-good em { color: #4b9879; }
.shopping-affordability-metrics span.is-warn em { color: #ad8535; }
.shopping-affordability-metrics span.is-danger em { color: #c76851; }
.shopping-affordability-metrics i { grid-column: 1 / -1; height: 4px; overflow: hidden; border-radius: 99px; background: #e7ecee; }
.shopping-affordability-metrics u { display: block; height: 100%; border-radius: inherit; background: #819099; text-decoration: none; }
.shopping-affordability-metrics span.is-good u { background: #52ad8d; }
.shopping-affordability-metrics span.is-warn u { background: #d6a64f; }
.shopping-affordability-metrics span.is-danger u { background: #d8755e; }
.shopping-affordability-advice { margin: 10px 20px 0; color: var(--muted); font-size: 10px; line-height: 1.6; }
.shopping-affordability-method { margin: 9px 20px 0; color: var(--muted); font-size: 9px; }
.shopping-affordability-method summary { width: max-content; color: #5b8f86; cursor: pointer; }
.shopping-affordability-method p { margin: 7px 0 0; padding: 9px 10px; border-radius: 8px; background: #f7faf9; line-height: 1.65; }
.shopping-affordability-reverse-card { overflow: hidden; }
.shopping-affordability-reverse-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0 20px 12px; }
.shopping-affordability-reverse-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.shopping-affordability-reverse-form select,.shopping-affordability-reverse-form input { width: 100%; box-sizing: border-box; min-height: 35px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.shopping-affordability-reverse-form small { color: #9aa5ad; font-size: 8px; line-height: 1.25; }
.shopping-affordability-budget-toggle { display: flex; align-items: flex-start; gap: 8px; margin: 0 20px 12px; padding: 10px 11px; border: 1px solid #f0e4c5; border-radius: 9px; background: #fffaf0; color: var(--ink); cursor: pointer; }
.shopping-affordability-budget-toggle input { flex: 0 0 auto; width: 15px; height: 15px; margin: 1px 0 0; accent-color: #d6a64f; }
.shopping-affordability-budget-toggle span { display: grid; gap: 3px; }
.shopping-affordability-budget-toggle strong { font-size: 10px; }
.shopping-affordability-budget-toggle small { color: #9a8250; font-size: 8px; line-height: 1.35; }
.shopping-affordability-reverse-result { display: grid; gap: 4px; margin: 0 20px 12px; padding: 14px 15px; border: 1px solid #dcefe8; border-radius: 11px; background: #f3fbf8; }
.shopping-affordability-reverse-result small { color: #4b9879; font-size: 10px; }
.shopping-affordability-reverse-result strong { color: #338e70; font-size: 26px; line-height: 1.1; }
.shopping-affordability-reverse-result span { color: var(--muted); font-size: 9px; }
.shopping-affordability-caps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0 20px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.shopping-affordability-caps > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; background: #fbfdfd; }
.shopping-affordability-caps span { display: grid; gap: 3px; min-width: 0; }
.shopping-affordability-caps strong { color: var(--ink); font-size: 10px; }
.shopping-affordability-caps small { color: var(--muted); font-size: 8px; }
.shopping-affordability-caps b { color: var(--ink); font-size: 11px; white-space: nowrap; }
.shopping-affordability-method-note { margin: 8px 20px 0; color: #9aa5ad; font-size: 9px; line-height: 1.5; }
.shopping-affordability-price-band { margin: 12px 20px; padding: 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fbfdfd; }
.shopping-affordability-price-band-heading,.shopping-affordability-chart-heading,.shopping-affordability-timing-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.shopping-affordability-price-band-heading strong,.shopping-affordability-chart-heading strong,.shopping-affordability-timing-head strong { color: var(--ink); font-size: 11px; }
.shopping-affordability-price-band-heading span,.shopping-affordability-chart-heading span,.shopping-affordability-timing-head span { color: var(--muted); font-size: 9px; text-align: right; }
.shopping-affordability-price-band-track { display: flex; height: 11px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.shopping-affordability-price-band-track i { display: block; min-width: 0; }
.shopping-affordability-price-band-track .is-safe,.shopping-affordability-price-band-legend .is-safe { background: #54ad8d; }
.shopping-affordability-price-band-track .is-cautious,.shopping-affordability-price-band-legend .is-cautious { background: #e4b45b; }
.shopping-affordability-price-band-track .is-limit,.shopping-affordability-price-band-legend .is-limit { background: #dd8a77; }
.shopping-affordability-price-band-legend { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 8px; color: var(--muted); font-size: 8px; }
.shopping-affordability-price-band-legend span { display: inline-flex; align-items: center; gap: 4px; }
.shopping-affordability-price-band-legend i,.shopping-affordability-chart-legend i { display: inline-block; width: 9px; height: 4px; border-radius: 4px; }
.shopping-affordability-price-band > small,.shopping-affordability-chart-note { display: block; margin-top: 7px; color: #95a0a6; font-size: 8px; line-height: 1.45; }
.shopping-affordability-timing { margin: 12px 20px; padding: 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fff; }
.shopping-affordability-timing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.shopping-affordability-timing-grid article { display: grid; gap: 5px; min-width: 0; padding: 10px; border: 1px solid #e6eeeb; border-radius: 9px; background: #f7fbf9; }
.shopping-affordability-timing-grid article:nth-child(2) { border-color: #e7eaf2; background: #f8f9fc; }
.shopping-affordability-timing-grid article.is-muted { opacity: .7; }
.shopping-affordability-timing-grid small,.shopping-affordability-timing-grid span { color: var(--muted); font-size: 8px; line-height: 1.45; }
.shopping-affordability-timing-grid b { color: var(--ink); font-size: 12px; line-height: 1.45; }
.shopping-affordability-timing-grid em { color: #438f76; font-size: 9px; font-style: normal; font-weight: 650; }
.shopping-affordability-chart { margin: 12px 20px; padding: 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fff; }
.shopping-affordability-chart svg { display: block; width: 100%; overflow: visible; }
.shopping-affordability-chart svg g line { stroke: #edf1f2; stroke-width: 1; }
.shopping-affordability-chart svg text { fill: #89959c; font-size: 9px; font-family: inherit; }
.shopping-affordability-chart svg g text { text-anchor: end; }
.shopping-affordability-chart .curve-now,.shopping-affordability-chart .curve-payday { fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.shopping-affordability-chart .curve-now { stroke: #4cae8d; }
.shopping-affordability-chart .curve-payday { stroke: #6288d8; }
.shopping-affordability-chart .curve-dot-now { fill: #4cae8d; stroke: #fff; stroke-width: 1.5; }
.shopping-affordability-chart .curve-dot-payday { fill: #6288d8; stroke: #fff; stroke-width: 1.5; }
.shopping-affordability-chart .reserve-line { stroke: #dda947; stroke-width: 1.4; stroke-dasharray: 4 4; }
.shopping-affordability-chart .reserve-label { fill: #b78a36; font-size: 8px; }
.shopping-affordability-chart .payday-line { stroke: #8997a0; stroke-width: 1; stroke-dasharray: 3 4; }
.shopping-affordability-chart .payday-label { fill: #73818a; font-size: 8px; }
.shopping-affordability-chart-legend { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 3px; color: var(--muted); font-size: 8px; }
.shopping-affordability-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.shopping-affordability-chart-legend .curve-now { background: #4cae8d; }
.shopping-affordability-chart-legend .curve-payday { background: #6288d8; }
.shopping-affordability-chart-legend .curve-reserve { height: 0; border-top: 1px dashed #dda947; }
.shopping-affordability-plans,.shopping-affordability-explanation { margin: 10px 20px 0; color: var(--muted); font-size: 9px; }
.shopping-affordability-plans summary,.shopping-affordability-explanation summary { width: fit-content; color: #5b8f86; cursor: pointer; font-weight: 600; }
.shopping-affordability-plan-list { display: grid; margin-top: 6px; border-top: 1px solid #edf1f2; }
.shopping-affordability-plan-list > div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; border-bottom: 1px solid #edf1f2; }
.shopping-affordability-plan-list > div span { display: grid; gap: 3px; }
.shopping-affordability-plan-list strong { color: var(--ink); font-size: 9px; }
.shopping-affordability-plan-list small,.shopping-affordability-plans > small { color: #929da3; font-size: 8px; line-height: 1.5; }
.shopping-affordability-plan-list b { color: var(--ink); font-size: 9px; white-space: nowrap; }
.shopping-affordability-explanation > div { margin-top: 7px; padding: 9px 10px; border-radius: 8px; background: #f7faf9; line-height: 1.55; }
.shopping-affordability-explanation p { margin: 0 0 5px; }
.shopping-affordability-explanation p:last-of-type { margin-bottom: 5px; }
.shopping-affordability-explanation small { color: #929da3; font-size: 8px; }
.tool-affordability-list-card { overflow: hidden; }
.tool-affordability-list { padding: 5px 20px 12px; }
.tool-affordability-row { display: flex; min-height: 48px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.tool-affordability-row:last-child { border-bottom: 0; }
.tool-affordability-row > div { display: grid; min-width: 0; gap: 3px; }
.tool-affordability-row > div strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.tool-affordability-row > div small { color: var(--muted); font-size: 9px; }
.tool-affordability-row > span { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.tool-affordability-row > span b { color: var(--ink); font-size: 12px; }
.tool-affordability-row > span em { padding: 3px 6px; border-radius: 999px; background: #eef2f4; color: #77858f; font-size: 9px; font-style: normal; }
.tool-affordability-row > span em.is-good { background: #eaf7f1; color: #4b9879; }
.tool-affordability-row > span em.is-warn { background: #fff6df; color: #ad8535; }
.tool-affordability-row > span em.is-danger { background: #fff0ec; color: #c76851; }
.tools-directory-card { overflow: hidden; }
.tools-directory-list { padding: 4px 20px 12px; }
.tools-directory-item { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; width: 100%; gap: 12px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: inherit; text-align: left; cursor: pointer; }
.tools-directory-item:last-child { border-bottom: 0; }
.tools-directory-item:hover .tools-directory-copy strong { color: #d76c4e; }
.tools-directory-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 11px; background: #fff1e8; color: #e17654; font-size: 18px; }
.tools-directory-copy { display: grid; min-width: 0; gap: 4px; }
.tools-directory-copy strong { color: var(--ink); font-size: 13px; transition: color .18s ease; }
.tools-directory-copy small { color: var(--muted); font-size: 10px; line-height: 1.5; }
.tools-directory-chevron { color: #9aa5ad; font-size: 20px; }
.tools-detail-back { display: inline-flex; align-items: center; min-height: 30px; margin: 0 20px 11px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--muted); font: inherit; font-size: 10px; cursor: pointer; }
.tools-detail-back:hover { border-color: #efc5b8; color: #d76c4e; }
.safe-spending-page { gap: 12px; }
.safe-spending-page > .tools-detail-back { align-self: start; margin: 0 0 -2px; }
.safe-spend-card { overflow: hidden; padding-bottom: 16px; }
.safe-spend-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 19px 20px 13px; }
.safe-spend-heading h2 { margin: 5px 0 4px; color: var(--ink); font-size: 16px; }
.safe-spend-heading p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.safe-spend-status-pill { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; background: #eef2f4; color: #77858f; font-size: 9px; }
.safe-spend-status-pill.is-good { background: #eaf7f1; color: #4b9879; }
.safe-spend-status-pill.is-warn { background: #fff0ec; color: #c76851; }
.safe-spend-status { margin: 0 20px 12px; padding: 10px 12px; border: 1px solid #e5ecef; border-radius: 9px; background: #f7fafb; color: #65737e; font-size: 10px; line-height: 1.6; }
.safe-spend-status.is-good { border-color: #dcefe8; background: #f3fbf8; color: #4b806d; }
.safe-spend-status.is-warn { border-color: #f4ddd7; background: #fff6f3; color: #a95f4e; }
.safe-spend-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 0 20px 13px; }
.safe-spend-metrics article { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 11px 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fbfcfd; }
.safe-spend-metrics article.is-primary { border-color: #dcefe8; background: #f4fbf8; }
.safe-spend-metrics small { color: var(--muted); font-size: 9px; }
.safe-spend-metrics strong { color: var(--ink); font-size: 20px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.safe-spend-metrics article.is-primary strong { color: #398b70; }
.safe-spend-metrics span { color: #8c989f; font-size: 8px; line-height: 1.45; }
.safe-spend-breakdown { margin: 0 20px 12px; padding: 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fff; }
.safe-spend-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.safe-spend-section-heading strong { color: var(--ink); font-size: 10px; }
.safe-spend-section-heading span { color: var(--muted); font-size: 8px; }
.safe-spend-breakdown-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.safe-spend-breakdown-grid > span { display: grid; gap: 4px; min-width: 0; padding: 8px 9px; border-radius: 8px; background: var(--soft); }
.safe-spend-breakdown-grid small { color: var(--muted); font-size: 8px; }
.safe-spend-breakdown-grid b { color: var(--ink); font-size: 12px; font-variant-numeric: tabular-nums; }
.safe-spend-breakdown-grid em { color: #8c989f; font-size: 8px; font-style: normal; line-height: 1.45; }
.safe-spend-plans,.safe-spend-method { margin: 0 20px; color: var(--muted); font-size: 9px; }
.safe-spend-plans summary,.safe-spend-method summary { width: fit-content; color: #5b8f86; cursor: pointer; }
.safe-spend-plan-list { display: grid; gap: 0; margin-top: 7px; border: 1px solid #e8eef0; border-radius: 9px; overflow: hidden; }
.safe-spend-plan-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 10px; border-bottom: 1px solid #edf1f2; background: #fff; }
.safe-spend-plan-row:last-child { border-bottom: 0; }
.safe-spend-plan-row > span { display: grid; gap: 3px; min-width: 0; }
.safe-spend-plan-row strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.safe-spend-plan-row small,.safe-spend-plans > small { color: #8c989f; font-size: 8px; line-height: 1.5; }
.safe-spend-plan-row b { color: var(--ink); font-size: 10px; white-space: nowrap; }
.safe-spend-plans > small { display: block; margin-top: 6px; }
.safe-spend-empty { margin: 0; padding: 11px; color: var(--muted); }
.safe-spend-method { margin-top: 11px; }
.safe-spend-method p { margin: 7px 0 0; padding: 9px 10px; border-radius: 8px; background: #f7faf9; line-height: 1.6; }
[data-theme="night"] .safe-spend-metrics article,[data-theme="night"] .safe-spend-breakdown,[data-theme="night"] .safe-spend-plan-row { border-color: #344250; background: #1a2631; }
[data-theme="night"] .safe-spend-metrics article.is-primary,[data-theme="night"] .safe-spend-status.is-good { border-color: #315345; background: #1c3029; }
[data-theme="night"] .safe-spend-breakdown-grid > span,[data-theme="night"] .safe-spend-method p { background: #202b38; }
[data-theme="night"] .safe-spend-status { border-color: #344250; background: #202b38; color: #a6b2bf; }
[data-theme="night"] .safe-spend-status.is-warn,[data-theme="night"] .safe-spend-status-pill.is-warn { border-color: #55372f; background: #33241f; color: #df9b88; }
@media (max-width: 700px) {
  .safe-spend-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-right: 14px; padding-left: 14px; }
  .safe-spend-heading { padding-right: 14px; padding-left: 14px; }
  .safe-spend-status,.safe-spend-breakdown,.safe-spend-plans,.safe-spend-method { margin-right: 14px; margin-left: 14px; }
  .safe-spend-metrics strong { font-size: 17px; }
  .safe-spend-allocation-legend { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 380px) {
  .safe-spend-metrics { grid-template-columns: 1fr 1fr; gap: 6px; }
  .safe-spend-metrics article { padding: 9px; }
  .safe-spend-breakdown-grid { grid-template-columns: 1fr; }
}
.safe-spend-basis-switch { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 20px 12px; }
.safe-spend-basis-switch button { display: grid; gap: 4px; padding: 9px 11px; border: 1px solid #e5ecef; border-radius: 9px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.safe-spend-basis-switch button.is-active { border-color: #84bda8; background: #f2faf6; box-shadow: inset 0 0 0 1px #84bda8; }
.safe-spend-basis-switch strong { font-size: 10px; }
.safe-spend-basis-switch small { color: var(--muted); font-size: 8px; }
.safe-spend-current-postpay { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin: 0 20px 12px; padding: 11px 13px; border: 1px solid #e8eef0; border-radius: 10px; background: #fbfcfd; }
.safe-spend-current-postpay > div { display: grid; gap: 4px; min-width: 0; }
.safe-spend-current-postpay small { color: var(--muted); font-size: 8px; }
.safe-spend-current-postpay strong { color: var(--ink); font-size: 15px; font-variant-numeric: tabular-nums; }
.safe-spend-current-postpay span { color: #8c989f; font-size: 8px; line-height: 1.4; }
.safe-spend-current-postpay > i { color: #a3adb4; font-size: 17px; font-style: normal; }
.safe-spend-current-postpay .is-muted strong { color: #9aa5ad; font-size: 11px; }
.safe-spend-low-point { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 20px 12px; padding: 10px 12px; border: 1px solid #e8eef0; border-radius: 9px; background: #fff; }
.safe-spend-low-point > span { display: grid; gap: 4px; }
.safe-spend-low-point small { color: var(--muted); font-size: 8px; }
.safe-spend-low-point strong { color: var(--ink); font-size: 11px; font-variant-numeric: tabular-nums; }
.safe-spend-low-point em { color: #8c989f; font-size: 8px; font-style: normal; text-align: right; }
.safe-spend-low-point-reason { color: #8c989f; font-size: 8px; line-height: 1.4; }
.safe-spend-allocation,.safe-spend-trial,.safe-spend-curve,.safe-spend-change { margin: 0 20px 13px; padding: 11px 12px; border: 1px solid #e8eef0; border-radius: 10px; background: #fff; }
.safe-spend-allocation-bar { display: flex; height: 12px; margin: 10px 0 8px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.safe-spend-allocation-bar i { display: block; min-width: 0; }
.safe-spend-allocation-bar .is-reserve { background: #91a6b7; }
.safe-spend-allocation-bar .is-planned { background: #e6b35c; }
.safe-spend-allocation-bar .is-routine { background: #78a6bd; }
.safe-spend-allocation-bar .is-free { background: #55aa8b; }
.safe-spend-allocation-bar .is-pending { background: #c8d0d5; }
.safe-spend-allocation-bar .is-empty { background: #e4e9ec; }
.safe-spend-allocation-legend { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.safe-spend-allocation-legend span { display: grid; grid-template-columns: 8px 1fr; gap: 4px 5px; align-items: center; color: var(--muted); font-size: 8px; }
.safe-spend-allocation-legend span > i { width: 7px; height: 7px; border-radius: 99px; }
.safe-spend-allocation-legend span > i.is-reserve { background: #91a6b7; }
.safe-spend-allocation-legend span > i.is-planned { background: #e6b35c; }
.safe-spend-allocation-legend span > i.is-routine { background: #78a6bd; }
.safe-spend-allocation-legend span > i.is-free { background: #55aa8b; }
.safe-spend-allocation-legend span > i.is-pending { background: #c8d0d5; }
.safe-spend-allocation-legend b { grid-column: 2; color: var(--ink); font-size: 9px; font-weight: 600; }
.safe-spend-allocation-gap { display: block; margin-top: 8px; color: #a86a53; font-size: 8px; line-height: 1.45; }
.safe-spend-trial-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 8px; }
.safe-spend-trial-form label { display: grid; gap: 5px; color: var(--muted); font-size: 9px; }
.safe-spend-trial-form input { min-height: 35px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.safe-spend-trial-form button { min-height: 35px; padding: 0 13px; border: 1px solid #58a689; border-radius: 8px; background: #55a98a; color: #fff; font: inherit; font-size: 10px; cursor: pointer; }
.safe-spend-trial-result { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 9px; }
.safe-spend-trial-result span { display: grid; gap: 4px; padding: 8px 9px; border-radius: 8px; background: var(--soft); }
.safe-spend-trial-result small { color: var(--muted); font-size: 8px; }
.safe-spend-trial-result b { color: var(--ink); font-size: 10px; }
.safe-spend-trial-result em { grid-column: 1 / -1; color: #8c989f; font-size: 8px; font-style: normal; }
.safe-spend-curve > small { display: block; margin-top: 5px; color: #8c989f; font-size: 8px; line-height: 1.5; }
.safe-spend-chart-wrap svg { display: block; width: 100%; min-height: 145px; overflow: visible; }
.safe-spend-chart-wrap svg line { stroke: #e8edef; stroke-width: 1; }
.safe-spend-chart-wrap svg text { fill: #87949c; font: 8px sans-serif; }
.safe-spend-chart-wrap svg .safe-spend-target-line { stroke: #d6a64f; stroke-dasharray: 4 3; }
.safe-spend-chart-wrap svg .safe-spend-target-label { fill: #a9833d; }
.safe-spend-chart-wrap svg .safe-spend-line { fill: none; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.safe-spend-chart-wrap svg .safe-spend-line.is-base { stroke: #4b91b9; }
.safe-spend-chart-wrap svg .safe-spend-line.is-trial { stroke: #dc805e; stroke-dasharray: 5 3; }
.safe-spend-chart-legend { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 3px; color: var(--muted); font-size: 8px; }
.safe-spend-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.safe-spend-chart-legend i { width: 12px; height: 2px; background: #4b91b9; }
.safe-spend-chart-legend i.is-trial { background: #dc805e; }
.safe-spend-chart-legend i.is-target { height: 0; border-top: 1px dashed #d6a64f; background: transparent; }
.safe-spend-chart-empty { margin: 0; padding: 10px; border-radius: 8px; background: var(--soft); color: var(--muted); font-size: 9px; line-height: 1.5; }
.safe-spend-contribution-list { display: grid; gap: 7px; }
.safe-spend-change-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 9px 0 7px; padding-top: 8px; border-top: 1px solid #edf1f2; }
.safe-spend-change-subheading strong { color: #63727c; font-size: 8px; }
.safe-spend-change-subheading small { color: #98a4ab; font-size: 7px; }
.safe-spend-contribution-row { display: grid; grid-template-columns: 100px minmax(60px,1fr) auto; align-items: center; gap: 8px; }
.safe-spend-contribution-row > strong,.safe-spend-contribution-total > strong { color: var(--muted); font-size: 8px; font-weight: 500; }
.safe-spend-contribution-row > b,.safe-spend-contribution-total > b { color: var(--ink); font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.safe-spend-contribution-track { position: relative; height: 8px; border-radius: 99px; background: #f0f3f4; }
.safe-spend-contribution-track::after { position: absolute; top: -2px; left: 50%; width: 1px; height: 12px; background: #aeb9be; content: ''; }
.safe-spend-contribution-track i { position: absolute; top: 2px; height: 4px; border-radius: 99px; }
.safe-spend-contribution-track i.is-positive { left: 50%; background: #54a987; }
.safe-spend-contribution-track i.is-negative { right: 50%; background: #d98269; }
.safe-spend-contribution-total { display: flex; justify-content: space-between; gap: 8px; padding-top: 7px; border-top: 1px solid #edf1f2; }
.safe-spend-change > small { display: block; margin-top: 7px; color: #8c989f; font-size: 8px; line-height: 1.5; }
[data-theme="night"] .safe-spend-basis-switch button,[data-theme="night"] .safe-spend-current-postpay,[data-theme="night"] .safe-spend-low-point,[data-theme="night"] .safe-spend-allocation,[data-theme="night"] .safe-spend-trial,[data-theme="night"] .safe-spend-curve,[data-theme="night"] .safe-spend-change { border-color: #344250; background: #1a2631; }
[data-theme="night"] .safe-spend-basis-switch button.is-active { border-color: #4a8f76; background: #1c3029; }
[data-theme="night"] .safe-spend-trial-form input { border-color: #425262; background: #18242d; }
[data-theme="night"] .safe-spend-contribution-track { background: #2a3540; }
@media (max-width: 700px) {
  .safe-spend-basis-switch,.safe-spend-current-postpay,.safe-spend-low-point,.safe-spend-allocation,.safe-spend-trial,.safe-spend-curve,.safe-spend-change { margin-right: 14px; margin-left: 14px; }
  .safe-spend-contribution-row { grid-template-columns: 84px minmax(46px,1fr) auto; gap: 6px; }
}
@media (max-width: 420px) {
  .safe-spend-basis-switch { gap: 6px; }
  .safe-spend-current-postpay { gap: 7px; padding: 9px; }
  .safe-spend-current-postpay strong { font-size: 13px; }
  .safe-spend-allocation-legend { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
  .safe-spend-allocation-legend span { font-size: 7px; }
  .safe-spend-chart-wrap svg { min-height: 126px; }
}
.financial-twin-card { overflow: hidden; padding-bottom: 16px; }
.financial-twin-profile { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin: 0 20px 10px; padding: 16px; border: 1px solid #e3edf0; border-radius: 13px; background: linear-gradient(130deg,#f6fbfb,#f7f9ff); }
.financial-twin-profile > div { display: grid; min-width: 0; gap: 5px; }
.financial-twin-kicker { color: #7c929c; font-size: 9px; }
.financial-twin-profile h2 { margin: 0; color: #334553; font-size: 21px; font-weight: 650; }
.financial-twin-profile p { max-width: 580px; margin: 0; color: #72828d; font-size: 9px; line-height: 1.6; }
.financial-twin-profile > .health-score-level { flex: 0 0 auto; margin-top: 2px; }
.financial-twin-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 20px 15px; }
.financial-twin-tags span { padding: 4px 8px; border-radius: 999px; background: #edf6f4; color: #4e8f82; font-size: 8px; }
.financial-twin-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 20px 9px; }
.financial-twin-section-title strong { color: var(--ink); font-size: 12px; }
.financial-twin-section-title span { color: var(--muted); font-size: 9px; }
.financial-twin-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 20px 16px; }
.financial-twin-metric { min-width: 0; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.financial-twin-metric-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.financial-twin-metric-head span { color: #81909a; font-size: 9px; }
.financial-twin-metric-head b { overflow: hidden; color: #52616d; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.financial-twin-metric-head b.is-good { color: #3f967d; }
.financial-twin-metric-head b.is-okay,.financial-twin-metric-head b.is-warn { color: #b08237; }
.financial-twin-metric-head b.is-danger { color: #cb6653; }
.financial-twin-metric-head b.is-neutral { color: #7d8c96; }
.financial-twin-track { height: 5px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: #e9eff1; }
.financial-twin-track i { display: block; height: 100%; min-width: 2px; border-radius: inherit; }
.financial-twin-track i.is-good { background: #66b292; }
.financial-twin-track i.is-okay,.financial-twin-track i.is-warn { background: #d2a354; }
.financial-twin-track i.is-danger { background: #da7b67; }
.financial-twin-track i.is-neutral { background: #aebbc2; }
.financial-twin-metric > small { display: block; margin-top: 5px; overflow: hidden; color: #9aa5ad; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.financial-twin-actions { display: grid; gap: 7px; margin: 0 20px 15px; padding: 0; list-style: none; counter-reset: twin-action; }
.financial-twin-actions li { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; color: #63727c; font-size: 9px; line-height: 1.5; }
.financial-twin-actions li > b { display: grid; width: 17px; height: 17px; flex: 0 0 17px; place-items: center; border-radius: 50%; background: #eaf5f2; color: #4f9985; font-size: 8px; }
.financial-twin-method { margin: 0 20px 12px; border: 1px solid #e7edef; border-radius: 9px; background: #f8fbfc; }
.financial-twin-method summary { padding: 9px 11px; color: #60727d; font-size: 9px; cursor: pointer; list-style-position: inside; }
.financial-twin-method summary::marker { color: #70a99a; }
.financial-twin-method > div { display: grid; gap: 6px; padding: 0 11px 10px; }
.financial-twin-method p { margin: 0; color: #788892; font-size: 8px; line-height: 1.6; }
.financial-twin-method small { color: #9aa5ad; font-size: 7px; line-height: 1.5; }
.financial-twin-note { margin: 0 20px; color: #98a4ad; font-size: 8px; line-height: 1.6; }
.financial-twin-profile-reason { color: #587078; font-size: 9px; line-height: 1.5; }
.financial-twin-card + .financial-twin-future-card,.financial-twin-compare-card,.financial-twin-contribution-card,.financial-twin-quadrant-card,.financial-twin-stable-card,.financial-twin-enjoyment-card,.financial-twin-large-card,.financial-twin-history-card,.financial-twin-scenario-card,.financial-twin-correction-log,.financial-twin-source-corrections { overflow: hidden; padding-bottom: 14px; }
.financial-twin-correction-form { display: grid; grid-template-columns: minmax(170px,.8fr) minmax(220px,1.4fr) auto; align-items: end; gap: 8px; margin: 0 20px 14px; padding: 10px; border: 1px solid #e7edef; border-radius: 9px; background: #fbfdfd; }
.financial-twin-correction-form label,.financial-twin-source-form label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 9px; }
.financial-twin-correction-form input,.financial-twin-correction-form select,.financial-twin-source-form input,.financial-twin-scenario-input input { min-width: 0; min-height: 34px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.financial-twin-correction-form .secondary-button,.financial-twin-source-form .secondary-button { min-height: 34px; white-space: nowrap; }
.financial-twin-action-cards { display: grid; gap: 7px; margin: 0 20px 12px; }
.financial-twin-action-cards article { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border: 1px solid #e7edef; border-radius: 8px; background: #f9fcfb; }
.financial-twin-action-cards article > b { color: #4f9985; font-size: 9px; }
.financial-twin-action-cards article > span { display: grid; gap: 4px; }
.financial-twin-action-cards strong { color: #53616c; font-size: 10px; }
.financial-twin-action-cards small,.financial-twin-correction-log small { color: #84919a; font-size: 8px; line-height: 1.5; }
.financial-twin-section-title { margin-top: 2px; }
.financial-twin-future-grid,.financial-twin-stable-grid,.financial-twin-large-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 0 20px 10px; }
.financial-twin-future-grid span,.financial-twin-stable-grid span,.financial-twin-large-grid span { display: grid; gap: 4px; min-width: 0; padding: 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; }
.financial-twin-future-grid small,.financial-twin-stable-grid small,.financial-twin-large-grid small { color: #84919a; font-size: 8px; }
.financial-twin-future-grid b,.financial-twin-stable-grid b,.financial-twin-large-grid b { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.financial-twin-future-grid b.is-increase,.financial-twin-compare-grid b.is-increase { color: #d96b4d; }
.financial-twin-future-grid b.is-decrease,.financial-twin-compare-grid b.is-decrease { color: #4b9879; }
.financial-twin-future-card > p,.financial-twin-stable-card > p,.financial-twin-enjoyment-card > p { margin: 0 20px 7px; color: #687883; font-size: 9px; line-height: 1.55; }
.financial-twin-future-card > small,.financial-twin-large-card > small { display: block; margin: 0 20px; color: #929ea6; font-size: 8px; line-height: 1.5; }
.financial-twin-compare-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 20px 12px; }
.financial-twin-compare-grid > span { display: grid; gap: 4px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.financial-twin-compare-grid small,.financial-twin-compare-grid em { color: #88959d; font-size: 8px; font-style: normal; }
.financial-twin-compare-grid b { color: var(--ink); font-size: 13px; }
.financial-twin-score-compare { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin: 0 20px 9px; color: #7d8b94; font-size: 9px; }
.financial-twin-score-compare b { color: var(--ink); }
.financial-twin-score-compare em { color: #5c8e83; font-style: normal; }
.financial-twin-contribution-row { display: grid; grid-template-columns: minmax(90px,.9fr) minmax(80px,1.4fr) 48px; align-items: center; gap: 8px; margin: 7px 20px; color: #78868e; font-size: 8px; }
.financial-twin-contribution-row i { display: flex; height: 6px; overflow: hidden; justify-content: flex-start; border-radius: 99px; background: #edf1f2; }
.financial-twin-contribution-row i.is-down { justify-content: flex-end; }
.financial-twin-contribution-row i b { display: block; height: 100%; border-radius: inherit; background: #55a98b; }
.financial-twin-contribution-row i.is-down b { background: #d87565; }
.financial-twin-contribution-row strong { color: #53616b; font-size: 8px; text-align: right; }
.financial-twin-contribution-card > small { display: block; margin: 8px 20px 0; color: #929ea6; font-size: 8px; line-height: 1.5; }
.financial-twin-quadrant { margin: 0 20px; }
.financial-twin-quadrant-grid { position: relative; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 78px 78px; overflow: hidden; border: 1px solid #e4eaed; border-radius: 9px; background: linear-gradient(90deg,transparent 49.6%,#dce4e7 49.8%,#dce4e7 50.2%,transparent 50.4%),linear-gradient(transparent 49.5%,#dce4e7 49.8%,#dce4e7 50.2%,transparent 50.5%); }
.financial-twin-quadrant-grid > span { display: flex; align-items: flex-start; padding: 8px; color: #87949c; font-size: 8px; line-height: 1.45; }
.financial-twin-quadrant-grid .q-top-right,.financial-twin-quadrant-grid .q-bottom-right { justify-content: flex-end; text-align: right; }
.financial-twin-quadrant-grid .q-bottom-left,.financial-twin-quadrant-grid .q-bottom-right { align-items: flex-end; }
.financial-twin-quadrant-grid > i { position: absolute; z-index: 1; width: 16px; height: 16px; transform: translate(-50%,-50%); border: 2px solid #fff; border-radius: 50%; background: #d96b4d; box-shadow: 0 0 0 2px #d96b4d88; }
.financial-twin-quadrant-grid > i b { position: absolute; inset: 5px; border-radius: 50%; background: #fff; }
.financial-twin-quadrant-axis { display: flex; justify-content: space-between; gap: 10px; margin-top: 6px; color: #84919a; font-size: 8px; }
.financial-twin-status { padding: 4px 8px; border-radius: 99px; background: #f0f3f4; color: #7d8b94; font-size: 8px; white-space: nowrap; }
.financial-twin-status.is-good { background: #eaf7f1; color: #4b9879; }
.financial-twin-status.is-warn { background: #fff6df; color: #ad8535; }
.financial-twin-status.is-neutral { background: #eef2f4; color: #7d8b94; }
.financial-twin-enjoyment-card > small { display: block; margin: 0 20px; color: #84919a; font-size: 8px; line-height: 1.5; }
.financial-twin-source-row { display: grid; grid-template-columns: minmax(90px,1fr) minmax(70px,1.2fr) auto; align-items: center; gap: 8px; margin: 7px 20px; color: #74828c; font-size: 8px; }
.financial-twin-source-row i { height: 5px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.financial-twin-source-row i b { display: block; height: 100%; border-radius: inherit; background: #69a995; }
.financial-twin-source-row strong { color: var(--ink); font-size: 9px; }
.financial-twin-source-form { display: grid; gap: 6px; margin: 0 20px; }
.financial-twin-source-form > p { margin: 0 0 4px; color: #85929b; font-size: 8px; line-height: 1.5; }
.financial-twin-source-form label { grid-template-columns: minmax(0,1fr) minmax(140px,.8fr); align-items: center; padding: 6px 8px; border: 1px solid #edf0f2; border-radius: 8px; }
.financial-twin-source-form label span { display: grid; gap: 3px; min-width: 0; }
.financial-twin-source-form label strong { overflow: hidden; color: #63727c; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.financial-twin-source-form label small { color: #9aa5ad; font-size: 7px; }
.financial-twin-source-form .secondary-button { justify-self: end; margin-top: 3px; }
.financial-twin-chart { margin: 0 18px; }
.financial-twin-chart svg { display: block; width: 100%; min-height: 130px; overflow: visible; }
.financial-twin-chart svg line { stroke: #e8edef; stroke-width: 1; }
.financial-twin-chart svg text { fill: #87949c; font: 8px sans-serif; }
.financial-twin-history-card svg polyline { fill: none; stroke: #6c9bd8; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.financial-twin-history-card svg circle { fill: #6c9bd8; stroke: #fff; stroke-width: 2; }
.financial-twin-chart-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 3px 20px 8px; color: #82909a; font-size: 8px; }
.financial-twin-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.financial-twin-chart-legend i { display: inline-block; width: 18px; height: 0; border-top: 2px solid; }
.financial-twin-chart-legend .twin-line-before { border-color: #a5b2b9; }
.financial-twin-chart-legend .twin-line-after { border-color: #58a88b; }
.financial-twin-scenario-input { display: grid; grid-template-columns: minmax(0,1fr) 160px; align-items: center; gap: 5px 10px; margin: 0 20px 8px; color: #78868f; font-size: 9px; }
.financial-twin-scenario-input input { width: 100%; }
.financial-twin-scenario-input small { grid-column: 1 / -1; color: #9aa5ad; font-size: 8px; }
.financial-twin-chart .twin-line-before { fill: none; stroke: #a5b2b9; stroke-width: 2.2; }
.financial-twin-chart .twin-line-after { fill: none; stroke: #58a88b; stroke-width: 2.6; }
.financial-twin-scenario-result { display: flex; flex-wrap: wrap; gap: 7px 16px; margin: 6px 20px 0; color: #839099; font-size: 8px; }
.financial-twin-scenario-result b { color: var(--ink); }
.financial-twin-history-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px 8px; margin: 4px 20px 0; }
.financial-twin-history-list span { display: flex; flex-wrap: wrap; gap: 4px 7px; align-items: baseline; color: #70808a; font-size: 8px; }
.financial-twin-history-list b { color: var(--ink); }
.financial-twin-history-list em { font-style: normal; }
.financial-twin-history-list small { color: #9aa5ad; }
.financial-twin-empty { margin: 5px 20px; color: #929ea6; font-size: 8px; line-height: 1.5; }
.financial-twin-correction-log > div:not(.financial-twin-section-title) { display: grid; gap: 3px; margin: 6px 20px; padding: 7px 8px; border-bottom: 1px solid #edf0f2; color: #66757f; font-size: 8px; }
.financial-twin-correction-log > div b { color: #53636e; }
@media (max-width: 620px) {
  .financial-twin-correction-form { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .financial-twin-action-cards,.financial-twin-future-grid,.financial-twin-stable-grid,.financial-twin-large-grid,.financial-twin-compare-grid { margin-right: 14px; margin-left: 14px; }
  .financial-twin-future-grid,.financial-twin-stable-grid,.financial-twin-large-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .financial-twin-compare-grid { grid-template-columns: 1fr; }
  .financial-twin-future-card > p,.financial-twin-stable-card > p,.financial-twin-enjoyment-card > p,.financial-twin-future-card > small,.financial-twin-large-card > small,.financial-twin-contribution-card > small { margin-right: 14px; margin-left: 14px; }
  .financial-twin-source-form,.financial-twin-contribution-row,.financial-twin-quadrant,.financial-twin-scenario-input,.financial-twin-score-compare,.financial-twin-scenario-result,.financial-twin-history-list { margin-right: 14px; margin-left: 14px; }
  .financial-twin-source-form label { grid-template-columns: minmax(0,1fr) minmax(105px,.8fr); }
  .financial-twin-quadrant-grid { grid-template-rows: 67px 67px; }
  .financial-twin-scenario-input { grid-template-columns: minmax(0,1fr) 120px; }
}
.travel-budget-card { overflow: hidden; }
.travel-budget-status { align-self: center; padding: 6px 10px; border-radius: 999px; background: #f1f4f5; color: var(--muted); font-size: 10px; white-space: nowrap; }
.travel-budget-status.is-good { background: #e8f6f0; color: #24866b; }
.travel-budget-status.is-danger { background: #fff0ec; color: #c76851; }
.travel-budget-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 20px 14px; }
.travel-budget-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.travel-budget-form label span { line-height: 1.2; }
.travel-budget-form input { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.travel-budget-destination { grid-column: 1 / -1; }
.travel-budget-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 20px 14px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.travel-budget-summary > div { display: grid; gap: 4px; padding: 11px; background: #fbfdfd; }
.travel-budget-summary small { color: var(--muted); font-size: 9px; }
.travel-budget-summary strong { color: var(--ink); font-size: 16px; }
.travel-budget-breakdown { display: grid; gap: 1px; margin: 0 20px 10px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.travel-budget-breakdown > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; background: #fbfdfd; }
.travel-budget-breakdown span { display: grid; gap: 3px; min-width: 0; }
.travel-budget-breakdown strong { color: var(--ink); font-size: 11px; }
.travel-budget-breakdown small { color: var(--muted); font-size: 9px; }
.travel-budget-breakdown b { color: var(--ink); font-size: 12px; white-space: nowrap; }
.travel-budget-note { margin: 0 20px 16px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.travel-packing-card { overflow: hidden; }
.travel-packing-toolbar { display: grid; grid-template-columns: minmax(170px, .7fr) minmax(220px, 1fr); align-items: end; gap: 16px; margin: 0 20px 15px; }
.travel-packing-toolbar > label, .travel-packing-add-form label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; }
.travel-packing-toolbar select, .travel-packing-add-form input { width: 100%; min-height: 40px; box-sizing: border-box; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.travel-packing-progress { display: grid; gap: 7px; }
.travel-packing-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.travel-packing-progress strong { color: var(--ink); font-size: 11px; }
.travel-packing-progress span { color: #4b9879; font-size: 10px; font-weight: 700; }
.travel-packing-progress > i { display: block; height: 7px; overflow: hidden; border-radius: 99px; background: #edf2ef; }
.travel-packing-progress > i b { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #77c3a2, #48a889); transition: width .18s ease; }
.travel-packing-reset { flex: 0 0 auto; min-height: 32px; padding: 0 9px; font-size: 9px; }
.travel-packing-reset:disabled { opacity: .5; cursor: default; }
.travel-packing-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; padding: 0 20px; }
.travel-packing-group-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 20px 9px; }
.travel-packing-group-toolbar strong { color: var(--ink); font-size: 12px; }
.travel-packing-group-toolbar button { min-height: 32px; padding: 0 10px; font-size: 10px; }
.travel-packing-group { min-width: 0; overflow: hidden; border: 1px solid #e8eeeb; border-radius: 10px; background: #fff; }
.travel-packing-group-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 10px 11px; background: #f8fbf9; }
.travel-packing-group-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 80px; flex: 1 1 auto; }
.travel-packing-group-head h3 { margin: 0; color: var(--ink); font-size: 11px; }
.travel-packing-group-head small { color: var(--muted); font-size: 9px; white-space: nowrap; }
.travel-packing-group-actions, .travel-packing-item-actions { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.travel-packing-group-actions button, .travel-packing-item-actions button { min-height: 25px; padding: 0 6px; border: 1px solid #e5ece8; border-radius: 6px; background: #fff; color: #65756c; font: inherit; font-size: 8px; cursor: pointer; }
.travel-packing-group-actions button:hover, .travel-packing-item-actions button:hover { border-color: #b8d8c8; color: #39866a; }
.travel-packing-group-actions .is-danger { color: #a85e50; }
.travel-packing-item-actions { justify-content: flex-end; }
.travel-last-minute-toggle.is-active { color: #328567 !important; border-color: #add9c4 !important; background: #eff9f3 !important; }
.travel-last-minute-badge { color: #39866a !important; font-weight: 700; }
.travel-packing-item-actions .travel-packing-delete { width: 25px; min-height: 25px; padding: 0; border: 0; color: #a26c60; font-size: 17px; }
.travel-packing-items { display: grid; padding: 2px 10px; }
.travel-packing-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 39px; border-bottom: 1px solid #f0f3f1; }
.travel-packing-row:last-child { border-bottom: 0; }
.travel-packing-label { position: relative; display: grid; grid-template-columns: 19px minmax(0, 1fr); align-items: center; gap: 8px; min-height: 39px; cursor: pointer; }
.travel-packing-label input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.travel-packing-check { display: grid; width: 17px; height: 17px; place-items: center; border: 1px solid #cfdad5; border-radius: 5px; background: #fff; }
.travel-packing-label input:checked + .travel-packing-check { border-color: #4ba886; background: #4ba886; }
.travel-packing-label input:checked + .travel-packing-check::after { width: 7px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ''; transform: translateY(-1px) rotate(-45deg); }
.travel-packing-label input:focus-visible + .travel-packing-check { outline: 2px solid #a7d7c4; outline-offset: 2px; }
.travel-packing-name { color: var(--ink); font-size: 10px; overflow-wrap: anywhere; }
.travel-packing-row.is-packed .travel-packing-name { color: #91a097; text-decoration: line-through; }
.travel-packing-delete { display: grid; width: 25px; height: 25px; place-items: center; border: 0; border-radius: 6px; background: transparent; color: #a26c60; font: inherit; font-size: 17px; cursor: pointer; }
.travel-packing-delete:hover { background: #fff1ed; }
.travel-packing-add-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 9px; margin: 14px 20px 0; padding-top: 13px; border-top: 1px solid #edf1ef; }
.travel-packing-add-form .primary-button { min-height: 40px; white-space: nowrap; }
.travel-packing-note { margin: 10px 20px 16px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.travel-packing-type-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 20px 13px; }
.travel-packing-type-actions button { min-height: 34px; padding: 0 10px; font-size: 10px; }
.travel-packing-type-actions .is-danger { color: #a85e50; border-color: #efd9d3; background: #fff; }
.travel-packing-transfer { display: block; margin: 0 20px 14px; padding: 12px; border: 1px solid #e7eee9; border-radius: 10px; background: #f8fbf9; }
.travel-bag-selection { display: grid; gap: 9px; }
.travel-bag-selection > strong { color: var(--ink); font-size: 11px; }
.travel-bag-selection > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 7px; }
.travel-bag-selection label { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: center; gap: 2px 8px; min-width: 0; padding: 8px 9px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; cursor: pointer; }
.travel-bag-selection label:has(input:checked) { border-color: #b8d8c8; background: #f2faf5; }
.travel-bag-selection input { grid-row: span 2; width: 15px; height: 15px; margin: 0; accent-color: #4ba886; }
.travel-bag-selection label span { overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.travel-bag-selection label small, .travel-bag-selection > small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.travel-bag-selection label small { grid-column: 2; }
.travel-packing-stored-form select { width: 100%; min-height: 40px; box-sizing: border-box; padding: 8px 11px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.travel-packing-no-bag { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.travel-packing-no-bag button { min-height: 34px; flex: 0 0 auto; font-size: 10px; }
.travel-packing-empty { grid-column: 1 / -1; margin: 0; padding: 16px; border: 1px dashed #dce8e2; border-radius: 9px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.travel-packing-name small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; text-decoration: none; }
.travel-packing-name .storage-type-badge { display: inline-flex; vertical-align: middle; text-decoration: none; }
.travel-packing-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; }
.travel-packing-row.is-linked { grid-template-columns: minmax(0, 1fr); padding: 7px 0; }
.travel-packing-row.is-linked .travel-packing-actions { justify-content: flex-start; flex-wrap: wrap; margin-left: 27px; }
.travel-packing-row.is-linked .travel-packing-actions > small { flex: 1 1 100%; max-width: none; white-space: normal; }
.travel-packing-actions > small { max-width: 145px; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.travel-packing-actions button:not(.travel-packing-delete) { min-height: 29px; padding: 0 8px; font-size: 9px; white-space: nowrap; }
.travel-packing-actions button:disabled { opacity: .55; cursor: default; }
.travel-packing-stored-form { grid-template-columns: minmax(0, 1fr) auto; }
.travel-pack-quantity { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; white-space: nowrap; }
.travel-pack-quantity input { width: 64px; min-height: 29px; box-sizing: border-box; padding: 3px 5px; border: 1px solid var(--line); border-radius: 6px; color: var(--ink); font: inherit; font-size: 11px; }
.travel-pack-bag-select { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.travel-pack-bag-select select { width: min(170px, 42vw); min-height: 29px; box-sizing: border-box; padding: 3px 6px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.travel-pack-bag-select select:disabled { opacity: .65; }
.travel-suggestion-panel, .travel-return-panel, .travel-last-minute-panel, .travel-review-panel { display: grid; gap: 12px; min-width: 0; margin: 0 20px 16px; padding: 14px; border: 1px solid #e4ede7; border-radius: 12px; background: #f9fcfa; }
.travel-packing-section-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.travel-packing-section-head h3 { margin: 0 0 4px; color: var(--ink); font-size: 13px; }
.travel-packing-section-head p, .travel-packing-section-head > span { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.travel-condition-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.travel-condition-field { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.travel-condition-field input { width: 100%; min-width: 0; min-height: 37px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.travel-condition-choice { grid-column: 1 / -1; display: grid; gap: 6px; color: var(--muted); font-size: 10px; }
.travel-condition-choice > div { display: flex; flex-wrap: wrap; gap: 7px; }
.travel-condition-choice label, .travel-condition-laundry { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; padding: 3px 8px; border: 1px solid #dce8e0; border-radius: 7px; background: #fff; color: var(--ink); font-size: 10px; }
.travel-condition-choice input, .travel-condition-laundry input, .travel-return-row input { accent-color: #4ba886; }
.travel-condition-laundry { width: fit-content; }
.travel-condition-form > button { justify-self: end; min-height: 34px; font-size: 10px; }
.travel-suggestion-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.travel-suggestion-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 9px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; }
.travel-suggestion-row > span { min-width: 0; }
.travel-suggestion-row strong, .travel-return-row strong { display: block; color: var(--ink); font-size: 11px; }
.travel-suggestion-row small, .travel-return-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.travel-suggestion-row button { flex: 0 0 auto; min-height: 29px; padding: 0 8px; font-size: 9px; }
.travel-suggestion-note { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.travel-return-list { display: grid; gap: 6px; }
.travel-return-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .8fr); align-items: center; gap: 10px; min-width: 0; padding: 10px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; }
.travel-return-row b { color: #4b9879; font-size: 9px; white-space: nowrap; }
.travel-return-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.travel-return-controls label, .travel-review-panel form label { display: grid; gap: 5px; min-width: 0; color: var(--muted); font-size: 9px; }
.travel-return-controls select, .travel-return-controls input, .travel-review-panel textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 8px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.travel-return-quantity[hidden] { display: none; }
.travel-last-minute-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.travel-last-minute-row { display: flex; align-items: center; gap: 8px; min-height: 35px; padding: 7px 9px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; color: var(--ink); font-size: 11px; cursor: pointer; }
.travel-last-minute-row input { accent-color: #4ba886; }
.travel-review-panel form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.travel-bag-usage { grid-column: 1 / -1; display: grid; gap: 8px; padding: 10px; border: 1px solid #e4ede7; border-radius: 9px; background: #fff; }
.travel-bag-usage > strong { color: #40564c; font-size: 10px; }
.travel-bag-usage > p,.travel-bag-usage > small { margin: 0; color: #87958d; font-size: 9px; line-height: 1.5; }
.travel-bag-usage-group { display: grid; gap: 5px; }
.travel-bag-usage-group > div { display: flex; justify-content: space-between; gap: 8px; padding-top: 5px; border-top: 1px solid #edf2ee; }
.travel-bag-usage-group > div strong { color: #52665c; font-size: 9px; }
.travel-bag-usage-group > div small { color: #99a49e; font-size: 8px; }
.travel-bag-usage-row { display: grid; grid-template-columns: minmax(0, 1fr) 90px; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 7px; background: #f8faf9; }
.travel-bag-usage-row > span { min-width: 0; }
.travel-bag-usage-row strong,.travel-bag-usage-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.travel-bag-usage-row strong { color: #46574e; font-size: 9px; }
.travel-bag-usage-row small { margin-top: 3px; color: #9aa49e; font-size: 8px; }
.travel-bag-usage-row select { width: 100%; min-width: 0; padding: 6px; border: 1px solid #e2e9e4; border-radius: 6px; background: #fff; color: var(--ink); font: inherit; font-size: 9px; }
.travel-review-panel form .travel-review-note { grid-column: 1 / -1; }
.travel-review-panel form button { grid-column: 1 / -1; justify-self: end; min-height: 34px; font-size: 10px; }
.travel-review-panel textarea { resize: vertical; min-height: 62px; line-height: 1.5; }
.travel-review-suggestions { display: flex; flex-wrap: wrap; gap: 6px 10px; padding: 9px 10px; border-radius: 8px; background: #eaf7ef; color: #34765b; font-size: 10px; }
.travel-return-history summary, .travel-review-history summary { color: #4b9879; font-size: 10px; cursor: pointer; }
.travel-return-history > div, .travel-review-history > div { display: grid; gap: 6px; margin-top: 9px; }
.travel-return-history p, .travel-review-history article { margin: 0; padding: 9px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; color: var(--muted); font-size: 10px; }
.travel-return-history p strong, .travel-review-history article strong { color: var(--ink); }
.travel-review-history article > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.travel-review-history article small { display: block; margin-top: 5px; line-height: 1.5; }
.travel-review-history article p { margin: 5px 0 0; line-height: 1.5; }
.travel-review-history article button { border: 0; background: transparent; color: #a85e50; font: inherit; cursor: pointer; }
.travel-return-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.travel-return-actions button { min-height: 34px; font-size: 10px; }
.travel-return-actions button:disabled { opacity: .55; cursor: default; }
.storage-luggage-option { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #dcece5; border-radius: 9px; background: #f5faf7; color: #467a69; font-size: 11px; }
.storage-luggage-option input { width: 17px; height: 17px; accent-color: #4ba886; }
.storage-luggage-badge { display: inline-flex; align-items: center; vertical-align: middle; margin-left: 5px; padding: 3px 7px; border-radius: 99px; background: #e8f5ef; color: #39866a; font-size: 9px; font-weight: 600; }
.financial-scenario-card { overflow: hidden; }
.financial-scenario-status { align-self: center; padding: 6px 10px; border-radius: 999px; background: #e8f6f0; color: #24866b; font-size: 10px; white-space: nowrap; }
.financial-scenario-status.is-warn { background: #fff6df; color: #ad8535; }
.financial-scenario-status.is-danger { background: #fff0ec; color: #c76851; }
.financial-scenario-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 20px 16px; }
.financial-scenario-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.financial-scenario-form input { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.financial-scenario-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 20px 17px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.financial-scenario-summary > div { display: grid; min-width: 0; gap: 5px; padding: 11px; background: #fbfdfd; }
.financial-scenario-summary small { color: var(--muted); font-size: 9px; }
.financial-scenario-summary strong { overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.financial-scenario-summary strong.is-positive { color: #258b70; }
.financial-scenario-summary strong.is-negative { color: #c45c4c; }
.financial-scenario-section-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 20px 9px; }
.financial-scenario-section-title strong { color: var(--ink); font-size: 12px; }
.financial-scenario-section-title span { color: var(--muted); font-size: 9px; }
.financial-scenario-rows { display: grid; gap: 8px; margin: 0 20px; }
.financial-scenario-row { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: 11px; min-width: 0; }
.financial-scenario-row-head { display: grid; min-width: 0; gap: 3px; }
.financial-scenario-row-head strong { color: var(--ink); font-size: 10px; }
.financial-scenario-row-head small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.financial-scenario-row-track { height: 7px; overflow: hidden; border-radius: 99px; background: #e9efed; }
.financial-scenario-row-track i { display: block; height: 100%; border-radius: inherit; background: #53ad8d; }
.financial-scenario-row-track i.is-negative { background: #d8755e; }
.financial-scenario-row b { min-width: 92px; color: var(--ink); font-size: 10px; text-align: right; white-space: nowrap; }
.financial-scenario-row b.is-positive { color: #258b70; }
.financial-scenario-row b.is-negative { color: #c45c4c; }
.financial-scenario-note { margin: 14px 20px 17px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.financial-pressure-card { overflow: hidden; }
.financial-pressure-badge { align-self: center; padding: 5px 8px; border-radius: 999px; background: #eef6f3; color: #4d9586; font-size: 9px; white-space: nowrap; }
.financial-pressure-list { display: grid; gap: 9px; margin: 0 20px; }
.financial-pressure-item { display: grid; gap: 9px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.financial-pressure-item-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.financial-pressure-item-head > div { display: grid; min-width: 0; gap: 3px; }
.financial-pressure-item-head strong { color: var(--ink); font-size: 11px; }
.financial-pressure-item-head small { color: var(--muted); font-size: 8px; }
.financial-pressure-status { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; font-size: 8px; white-space: nowrap; }
.financial-pressure-status.is-good { background: #e8f6f0; color: #24866b; }
.financial-pressure-status.is-warn { background: #fff6df; color: #ad8535; }
.financial-pressure-status.is-danger { background: #fff0ec; color: #c76851; }
.financial-pressure-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 8px; background: #e8eef0; }
.financial-pressure-metrics span { display: grid; gap: 3px; padding: 7px 8px; background: #fff; }
.financial-pressure-metrics small { color: var(--muted); font-size: 8px; }
.financial-pressure-metrics b { color: var(--ink); font-size: 10px; white-space: nowrap; }
.financial-pressure-metrics b.is-positive { color: #258b70; }
.financial-pressure-metrics b.is-negative { color: #c45c4c; }
.financial-pressure-track { height: 6px; overflow: hidden; border-radius: 99px; background: #e9efed; }
.financial-pressure-track i { display: block; height: 100%; min-width: 4px; border-radius: inherit; background: #53ad8d; }
.financial-pressure-track i.is-warn { background: #d3aa53; }
.financial-pressure-track i.is-danger { background: #d8755e; }
.financial-pressure-apply { justify-self: start; min-height: 28px; padding: 0 9px; font-size: 9px; }
.financial-pressure-note { margin: 14px 20px 17px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.finance-calendar-stack { max-width: 980px; }
.finance-cashflow-link-card { display: none; overflow: hidden; }
.finance-cashflow-daily { color: #4d9a83; font-size: 10px; }
.finance-cashflow-link-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 15px 20px 20px; }
.finance-cashflow-link-grid > div { display: grid; gap: 5px; padding: 12px; border: 1px solid #edf1f2; border-radius: 10px; background: #fbfdfd; }
.finance-cashflow-link-grid small { color: var(--muted); font-size: 10px; }
.finance-cashflow-link-grid strong { color: var(--ink); font-size: 16px; }
.finance-cashflow-link-grid em { color: #d66c53; font-size: 10px; font-style: normal; }
.finance-cashflow-link-grid em.is-up { color: #d66c53; }
.finance-calendar-card { padding: 18px 20px 20px; }
.finance-calendar-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.finance-calendar-title strong { color: var(--ink); font-size: 18px; }
.finance-calendar-title span { color: var(--muted); font-size: 10px; }
.finance-calendar-weekdays, .finance-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.finance-calendar-weekdays { margin-bottom: 7px; color: var(--muted); font-size: 10px; text-align: center; }
.finance-calendar-day { display: flex !important; flex-direction: column; align-items: flex-start; justify-content: flex-start; align-content: flex-start; min-height: 80px; padding: 8px 7px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; color: var(--ink); text-align: left; vertical-align: top; cursor: pointer; }
.finance-calendar-day:hover { border-color: #b7ddd5; background: #fbfefd; }
.finance-calendar-day.is-empty { border-color: transparent; background: transparent; cursor: default; }
.finance-calendar-day.is-today { border-color: var(--teal); box-shadow: inset 0 0 0 1px #d2eee8; }
.finance-calendar-day-head { display: flex; width: 100%; align-items: flex-start; justify-content: flex-start; gap: 4px; }
.finance-calendar-weekday-label { display: none; }
.finance-calendar-day strong { display: inline-block; font-size: 12px; vertical-align: top; }
.finance-calendar-day small { display: block; overflow: hidden; margin-top: 6px; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-day small.income { color: #df704f; }
.finance-calendar-day small.expense { color: #4d9c83; }
.finance-calendar-day small.net { color: #596a76; font-weight: 600; }
.finance-calendar-day small.net.positive { color: #d06b55; }
.finance-calendar-day small.net.negative { color: #4d9a83; }
.finance-calendar-markers { display: inline-flex; gap: 3px; min-height: 14px; margin-left: 4px; vertical-align: middle; }
.finance-calendar-markers i { padding: 2px 4px; border-radius: 4px; background: #fff1e8; color: #d87452; font-size: 8px; font-style: normal; }
.finance-calendar-markers i.finance-calendar-day-type { background: #edf3f5; color: #70808b; }
.finance-calendar-markers i.type-work { background: #edf6f2; color: #4a967d; }
.finance-calendar-markers i.type-rest { background: #eef2fb; color: #6582c1; }
.finance-calendar-markers i.type-holiday { background: #fff0ec; color: #d66c53; }
.finance-calendar-markers i.type-makeup { background: #fff7df; color: #b58732; }
.finance-calendar-markers i.finance-calendar-round-marker { display: inline-grid; width: 16px; height: 16px; padding: 0; place-items: center; border-radius: 50%; font-size: 8px; }
.finance-calendar-markers i.repayment-marker { background: #fff0e9; color: #d36e51; }
.finance-calendar-markers i.review-marker { background: #eef0fb; color: #6e79ba; }
.finance-calendar-markers i.custom-event-marker { background: #f4edff; color: #8068b3; }
.finance-calendar-detail { overflow: hidden; }
.finance-calendar-detail-list { padding: 0 20px 12px; }
.finance-calendar-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.finance-calendar-detail-row:last-child { border-bottom: 0; }
.finance-calendar-detail-row div { display: grid; min-width: 0; gap: 4px; }
.finance-calendar-detail-row strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-detail-row small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-detail-row b { color: #677785; font-size: 12px; white-space: nowrap; }
.finance-calendar-detail-row b.income { color: #d86d4e; }
.finance-calendar-detail-row b.expense { color: #4e9a82; }
.finance-calendar-detail-row b.repayment { color: #d87552; }
.finance-calendar-detail-row b.holiday { color: #d66c53; }
.finance-calendar-net-summary { display: grid; grid-template-columns: auto auto; align-items: baseline; gap: 4px 10px; margin: 0 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.finance-calendar-net-summary span { color: var(--muted); font-size: 11px; }
.finance-calendar-net-summary strong { font-size: 15px; }
.finance-calendar-net-summary strong.positive { color: #d06b55; }
.finance-calendar-net-summary strong.negative { color: #4d9a83; }
.finance-calendar-net-summary small { grid-column: 1 / -1; color: var(--muted); font-size: 9px; }
.finance-cashflow-roadmap-card { overflow: hidden; }
.finance-cashflow-roadmap-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 20px 14px; overflow: hidden; border: 1px solid #e7edef; border-radius: 10px; background: #e7edef; }
.finance-cashflow-roadmap-summary span { display: grid; gap: 5px; padding: 11px; background: #fbfdfd; }
.finance-cashflow-roadmap-summary small { color: var(--muted); font-size: 9px; }
.finance-cashflow-roadmap-summary strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.finance-cashflow-roadmap-summary strong.is-positive { color: #d06b55; }
.finance-cashflow-roadmap-summary strong.is-negative { color: #4d9a83; }
.finance-cashflow-roadmap-list { display: grid; gap: 8px; margin: 0 20px 12px; }
.finance-cashflow-roadmap-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 125px; align-items: center; gap: 10px; }
.finance-cashflow-roadmap-row-head { display: grid; gap: 3px; }
.finance-cashflow-roadmap-row-head strong { color: var(--ink); font-size: 10px; }
.finance-cashflow-roadmap-row-head span { color: var(--muted); font-size: 8px; }
.finance-cashflow-roadmap-track { height: 8px; overflow: hidden; border-radius: 999px; background: #edf1f2; }
.finance-cashflow-roadmap-track i { display: block; height: 100%; min-width: 3px; border-radius: inherit; }
.finance-cashflow-roadmap-row.positive .finance-cashflow-roadmap-track i { background: #d47a5f; }
.finance-cashflow-roadmap-row.negative .finance-cashflow-roadmap-track i { background: #52a086; }
.finance-cashflow-roadmap-values { display: grid; justify-items: end; gap: 3px; }
.finance-cashflow-roadmap-values b { color: #d06b55; font-size: 10px; }
.finance-cashflow-roadmap-row.negative .finance-cashflow-roadmap-values b { color: #4d9a83; }
.finance-cashflow-roadmap-values small { color: var(--muted); font-size: 8px; }
.finance-cashflow-roadmap-note { display: block; margin: 0 20px 15px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.finance-calendar-event-detail { overflow: hidden; }
.finance-calendar-event-manager { overflow: hidden; }
.finance-calendar-event-manager { order: 3; }
.finance-cashflow-roadmap-card { order: 4; }
.finance-calendar-event-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 20px 14px; }
.finance-calendar-event-form label { display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.finance-calendar-event-form label span { line-height: 1.2; }
.finance-calendar-event-form input,.finance-calendar-event-form select { width: 100%; box-sizing: border-box; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.finance-calendar-event-form .finance-calendar-event-note-field { grid-column: 1 / 4; }
.finance-calendar-event-form .primary-button { align-self: end; min-height: 34px; }
.finance-calendar-event-list { display: grid; gap: 0; margin: 0 20px 12px; border-top: 1px solid var(--line); }
.finance-calendar-event-row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.finance-calendar-event-row > div { display: grid; min-width: 0; gap: 3px; }
.finance-calendar-event-row strong { overflow: hidden; color: var(--ink); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-event-row small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-event-dot { display: inline-grid; width: 21px; height: 21px; margin-right: 6px; place-items: center; border-radius: 50%; background: #edf3f5; color: #72808a; font-size: 9px; font-style: normal; vertical-align: -2px; }
.finance-calendar-event-dot.reminder { background: #eef0fb; color: #6e79ba; }
.finance-calendar-event-dot.bill { background: #fff0e9; color: #d36e51; }
.finance-calendar-event-dot.income { background: #fff1e8; color: #d87452; }
.finance-calendar-event-dot.expense { background: #eaf7f1; color: #4e9a82; }
.finance-calendar-event-dot.other { background: #f4edff; color: #8068b3; }
.finance-calendar-event-actions { display: inline-flex; gap: 6px; white-space: nowrap; }
.finance-calendar-event-actions button { padding: 4px 6px; border: 0; border-radius: 5px; background: #f2f5f6; color: #72808a; font: inherit; font-size: 9px; cursor: pointer; }
.finance-calendar-event-actions button:hover { background: #e7f2f0; color: #4d9a83; }
.finance-calendar-event-empty { padding: 12px 0; color: var(--muted); font-size: 9px; }
.finance-calendar-custom-row .finance-calendar-event-actions { margin-left: auto; }
.finance-calendar-event-form .finance-calendar-event-check span { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; color: var(--ink); }
.finance-calendar-event-form .finance-calendar-event-check input { width: 14px; height: 14px; margin: 0; accent-color: #4e9a82; }
.finance-calendar-plan-actual { overflow: hidden; }
.finance-calendar-plan-actual-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 0 20px 14px; }
.finance-calendar-plan-actual-summary > div { display: grid; gap: 4px; min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.finance-calendar-plan-actual-summary small,.finance-calendar-plan-actual-summary span { color: var(--muted); font-size: 9px; }
.finance-calendar-plan-actual-summary strong { color: var(--ink); font-size: 17px; font-variant-numeric: tabular-nums; }
.finance-calendar-plan-actual-chart { margin: 0 20px 15px; padding: 9px 12px 7px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.finance-calendar-plan-actual-rows { display: grid; gap: 8px; }
.finance-calendar-plan-actual-row { display: grid; grid-template-columns: minmax(150px, 0.9fr) minmax(140px, 1.1fr); align-items: center; gap: 12px; min-height: 34px; }
.finance-calendar-plan-actual-label { display: grid; min-width: 0; gap: 3px; }
.finance-calendar-plan-actual-label strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-plan-actual-label small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-plan-actual-track { position: relative; height: 24px; border-radius: 6px; background: linear-gradient(90deg, #f4f8f6 0%, #fbfbfc 50%, #fff6f2 100%); }
.finance-calendar-plan-actual-zero { position: absolute; z-index: 1; top: 2px; bottom: 2px; left: 50%; border-left: 1px dashed #a9b4bf; }
.finance-calendar-plan-actual-connector { position: absolute; z-index: 2; top: 11px; height: 2px; border-radius: 2px; }
.finance-calendar-plan-actual-connector.is-late { background: #d87552; }
.finance-calendar-plan-actual-connector.is-early { background: #559b83; }
.finance-calendar-plan-actual-connector.is-on-time { background: #7386c1; }
.finance-calendar-plan-actual-plan,.finance-calendar-plan-actual-point { position: absolute; z-index: 3; top: 50%; width: 9px; height: 9px; border-radius: 50%; transform: translate(-50%, -50%); }
.finance-calendar-plan-actual-plan { left: 50%; box-sizing: border-box; border: 2px solid #7386c1; background: #fff; }
.finance-calendar-plan-actual-point { border: 1px solid #fff; box-shadow: 0 0 0 1px currentColor; }
.finance-calendar-plan-actual-point.is-late { background: #d87552; color: #d87552; }
.finance-calendar-plan-actual-point.is-early { background: #559b83; color: #559b83; }
.finance-calendar-plan-actual-point.is-on-time { background: #7386c1; color: #7386c1; }
.finance-calendar-plan-actual-axis { display: flex; justify-content: space-between; color: var(--muted); font-size: 8px; }
.finance-calendar-plan-actual-empty { display: grid; min-height: 100px; place-items: center; color: var(--muted); font-size: 10px; text-align: center; }
.custom-event-marker.is-continuation { background: #eef4ff; color: #6478a8; }
@media (max-width: 640px) {
  .finance-calendar-plan-actual-summary { gap: 6px; margin-right: 14px; margin-left: 14px; }
  .finance-calendar-plan-actual-summary > div { padding: 9px 8px; }
  .finance-calendar-plan-actual-summary strong { font-size: 14px; }
  .finance-calendar-plan-actual-summary small,.finance-calendar-plan-actual-summary span { font-size: 8px; line-height: 1.4; }
  .finance-calendar-plan-actual-chart { margin-right: 14px; margin-left: 14px; padding-right: 8px; padding-left: 8px; }
  .finance-calendar-plan-actual-row { grid-template-columns: 1fr; gap: 4px; }
  .finance-calendar-plan-actual-track { height: 20px; }
  .finance-calendar-plan-actual-connector { top: 9px; }
  .finance-calendar-plan-actual-axis { gap: 8px; font-size: 7px; }
}
.shopping-edit-modal .modal-header { justify-content: space-between; }
.shopping-edit-modal .entry-modal { min-height: 0; }
.shopping-edit-modal form { display: grid; min-height: 0; flex: 1 1 auto; gap: 12px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 24px 24px; }
.shopping-edit-modal .modal-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 6px; }
.repayment-reminder-list { padding: 5px 18px 9px; }
.repayment-reminder-row { display: flex; align-items: center; width: 100%; gap: 7px; padding: 9px 0; border-bottom: 1px solid #f0f2f4; }
.repayment-reminder-row:last-child { border-bottom: 0; }
.repayment-reminder-main { display: flex; align-items: center; min-width: 0; flex: 1; gap: 9px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.repayment-reminder-main:hover .repayment-reminder-copy strong { color: var(--orange-dark); }
.repayment-reminder-paid { flex: 0 0 auto; padding: 6px 8px; border: 1px solid #e8eeeb; border-radius: 7px; background: #fff; color: #6d9281; font-size: 8px; white-space: nowrap; }
.repayment-reminder-paid:hover { border-color: #b6d8c7; background: #f3faf6; color: #388a65; }
.repayment-reminder-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 10px; background: #fff5f0; font-size: 16px; }
.repayment-reminder-icon .account-custom-icon { width: 22px; height: 22px; border-radius: 6px; }
.repayment-reminder-copy { display: grid; min-width: 0; flex: 1; gap: 3px; }
.repayment-reminder-copy strong { overflow: hidden; color: #394653; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.repayment-reminder-copy small { overflow: hidden; color: #9ba5af; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.repayment-reminder-days { flex: 0 0 auto; padding: 5px 7px; border-radius: 7px; background: #fff4ee; color: #d96b4d; font-size: 9px; font-weight: 600; white-space: nowrap; }
.repayment-reminder-days.due-today { background: #ffebe5; color: #c84e36; }
.repayment-reminder-empty { display: flex; align-items: center; gap: 9px; padding: 15px 18px 18px; color: #9ba5af; }
.repayment-reminder-empty > span { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border-radius: 50%; background: #eff8f4; color: #49a987; font-size: 12px; }
.repayment-reminder-empty p { margin: 0; font-size: 9px; }
.budget-alert-list { padding: 5px 18px 6px; border-bottom: 1px solid #f0f2f4; }
.budget-alert-row { display: flex; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid #f0f2f4; }
.budget-alert-row:last-child { border-bottom: 0; }
.budget-alert-icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 10px; font-size: 16px; }
.budget-alert-copy { display: grid; min-width: 0; flex: 1; gap: 4px; }
.budget-alert-copy strong { overflow: hidden; color: #394653; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.budget-alert-copy small { overflow: hidden; color: #929eaa; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.budget-alert-track { display: block; height: 4px; overflow: hidden; border-radius: 6px; background: #f0f2f3; }
.budget-alert-track > span { display: block; height: 100%; border-radius: inherit; }
.budget-alert-amount { flex: 0 0 auto; color: #3d9a7c; font-size: 9px; font-weight: 600; white-space: nowrap; }
.budget-alert-amount.is-over { color: #df6454; }
.budget-alert-ignore { flex: 0 0 auto; padding: 5px 8px; border: 1px solid #e9edf0; border-radius: 7px; background: #fff; color: #87919c; font-size: 9px; white-space: nowrap; }
.budget-alert-ignore:hover { border-color: #f4c2b7; background: #fff8f5; color: #ca624a; }
.settings-subpage-heading { display: grid; justify-items: start; gap: 13px; margin-bottom: 16px; }
.settings-subpage-heading h1 { margin: 3px 0 5px; color: var(--ink); font-size: 22px; }
.settings-subpage-heading p { margin: 0; color: #8995a1; font-size: 11px; }
.settings-back-button { display: inline-flex; min-height: 38px; align-items: center; gap: 7px; padding: 0 13px 0 9px; border: 1px solid #e8edf1; border-radius: 10px; background: white; color: #586777; font-size: 11px; font-weight: 600; cursor: pointer; box-shadow: 0 2px 6px #24384a08; }
.settings-back-button:hover { border-color: #f1cbbb; background: #fff9f6; color: var(--orange-dark); }
.settings-back-button span { font-size: 22px; line-height: 1; }
.settings-menu-list { overflow: hidden; padding: 0 18px; }
.settings-menu-item { display: flex; width: 100%; min-height: 78px; align-items: center; gap: 13px; padding: 13px 5px; border: 0; border-bottom: 1px solid #eff2f4; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.settings-menu-item:last-child { border-bottom: 0; }
.settings-menu-item:hover .settings-menu-copy strong,.settings-menu-item:focus-visible .settings-menu-copy strong { color: var(--orange-dark); }
.settings-menu-item:focus-visible,.settings-back-button:focus-visible { outline: 3px solid #55b9b455; outline-offset: 2px; }
.settings-menu-icon { display: grid; width: 39px; height: 39px; flex: 0 0 39px; place-items: center; border-radius: 12px; background: #fff3ed; color: var(--orange-dark); font-size: 21px; }
.settings-menu-item:nth-child(2) .settings-menu-icon { background: #eef7f5; color: #48a798; font-size: 18px; }
.settings-menu-copy { display: grid; min-width: 0; flex: 1; gap: 5px; }
.settings-menu-copy strong { color: #46515d; font-size: 12px; font-weight: 600; }
.settings-menu-copy small { color: #9ba5af; font-size: 9px; }
.settings-menu-chevron { color: #a3adb6; font-size: 24px; line-height: 1; }
.settings-status-tag { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: #f2f4f6; color: #8995a1; font-size: 9px; white-space: nowrap; }
.settings-status-tag.is-active { background: #eaf7f1; color: #3f9a7c; }
.financial-rule-market-card,.report-subscription-card { overflow: hidden; }
.financial-rule-template-wrap { padding: 0 20px 8px; }
.financial-rule-template-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.financial-rule-template-heading strong { color: #687683; font-size: 10px; }
.financial-rule-template-heading small { color: #9ba5af; font-size: 8px; }
.financial-rule-template-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.financial-rule-template { display: flex; min-width: 0; align-items: center; gap: 8px; padding: 9px; border: 1px solid #e7edef; border-radius: 10px; background: #fff; color: inherit; text-align: left; cursor: pointer; transition: .16s ease; }
.financial-rule-template:hover { border-color: #b9ddd3; background: #f8fcfb; }
.financial-rule-template.is-selected { border-color: #77c4b2; background: #f0faf7; box-shadow: 0 3px 10px #4da89014; }
.financial-rule-template-icon { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; border-radius: 8px; background: #f1f5f6; color: #71848e; font-size: 14px; }
.financial-rule-template.is-selected .financial-rule-template-icon { background: #dff3ec; color: #3f9a7c; }
.financial-rule-template > span:nth-child(2) { display: grid; min-width: 0; flex: 1; gap: 3px; }
.financial-rule-template strong { overflow: hidden; color: #52616d; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.financial-rule-template small { overflow: hidden; color: #9aa5ae; font-size: 7px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.financial-rule-template b { flex: 0 0 auto; color: #96a1aa; font-size: 8px; font-weight: 500; }
.financial-rule-template.is-selected b { color: #3d9a7d; }
.financial-rule-market-list { display: grid; gap: 0; padding: 0 20px; }
.financial-rule-market-item { display: flex; align-items: flex-start; gap: 11px; min-height: 76px; padding: 12px 0; border-bottom: 1px solid #eff2f4; }
.financial-rule-market-item:last-child { border-bottom: 0; }
.financial-rule-market-item.is-enabled .financial-rule-market-icon { background: #eaf7f1; color: #3f9a7c; }
.financial-rule-market-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; background: #f4f6f8; color: #8794a0; font-size: 17px; }
.financial-rule-market-copy { display: grid; min-width: 0; flex: 1; gap: 4px; }
.financial-rule-market-copy strong { color: #46515d; font-size: 11px; font-weight: 650; }
.financial-rule-market-copy small { color: #98a3ad; font-size: 9px; line-height: 1.5; }
.financial-rule-switch { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; color: #8995a1; font-size: 9px; white-space: nowrap; cursor: pointer; }
.financial-rule-switch input,.report-subscription-toggle input,.report-subscription-includes input { accent-color: #4aa990; }
.financial-rule-parameter { display: inline-flex; align-items: center; gap: 5px; margin-top: 3px; color: #84909b; font-size: 9px; }
.financial-rule-parameter input { width: 64px; height: 27px; padding: 0 7px; border: 1px solid #e4eaed; border-radius: 7px; background: #fff; color: #53616d; font: inherit; }
.financial-rule-parameter em { color: #9ca6af; font-style: normal; }
.financial-rule-market-note { display: block; margin: 0 20px 15px; color: #9ba5af; font-size: 9px; line-height: 1.6; }
.report-subscription-toggle { display: flex; align-items: flex-start; gap: 9px; margin: 0 20px; padding: 12px 13px; border: 1px solid #e7eeec; border-radius: 10px; background: #f8fbfa; cursor: pointer; }
.report-subscription-toggle > span { display: grid; gap: 4px; }
.report-subscription-toggle strong { color: #46515d; font-size: 11px; }
.report-subscription-toggle small { color: #94a09f; font-size: 9px; line-height: 1.5; }
.report-subscription-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px 20px 10px; }
.report-subscription-fields label { display: grid; gap: 5px; color: #87929d; font-size: 9px; }
.report-subscription-fields select,.report-subscription-fields input { width: 100%; height: 33px; padding: 0 8px; border: 1px solid #e5eaed; border-radius: 8px; background: #fff; color: #53616d; font: inherit; }
.report-subscription-includes { display: grid; gap: 8px; padding: 4px 20px 12px; }
.report-subscription-includes > strong { color: #687683; font-size: 10px; }
.report-subscription-includes > div { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.report-subscription-includes label { display: inline-flex; align-items: center; gap: 5px; color: #87929d; font-size: 9px; cursor: pointer; }
.report-subscription-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 20px 15px; padding-top: 11px; border-top: 1px solid #eff2f4; color: #8b969f; font-size: 9px; }
.report-subscription-footer .secondary-button { min-height: 29px; padding: 0 9px; font-size: 9px; }
.settings-backup-card { overflow: hidden; }
.settings-backup-actions { padding: 0 18px; }
.settings-backup-action { display: flex; width: 100%; min-height: 76px; align-items: center; gap: 13px; padding: 12px 4px; border: 0; border-bottom: 1px solid #eff2f4; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.settings-backup-action:last-child { border-bottom: 0; }
.settings-backup-action:hover strong,.settings-backup-action:focus-visible strong { color: var(--orange-dark); }
.settings-backup-action:focus-visible { outline: 3px solid #55b9b455; outline-offset: -3px; }
.settings-backup-icon { display: grid; width: 39px; height: 39px; flex: 0 0 39px; place-items: center; border-radius: 12px; background: #eef7f5; color: #48a798; font-size: 20px; }
.settings-backup-action:nth-child(2) .settings-backup-icon { background: #fff3ed; color: var(--orange-dark); }
.settings-backup-action > span:nth-child(2) { display: grid; min-width: 0; flex: 1; gap: 5px; }
.settings-backup-action strong { color: #46515d; font-size: 12px; font-weight: 600; }
.settings-backup-action small { color: #9ba5af; font-size: 9px; }
.interface-center-card { overflow: hidden; }
.interface-center-list { padding: 0 18px 5px; }
.interface-center-row { display: flex; align-items: center; min-height: 67px; gap: 10px; padding: 10px 2px; border-bottom: 1px solid #eff2f4; }
.interface-center-row:last-child { border-bottom: 0; }
.interface-center-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; font-size: 17px; }
.interface-center-icon-online { background: #eaf7f1; color: #439679; }
.interface-center-icon-offline { background: #fff2ed; color: #c9785b; }
.interface-center-icon-built-in { background: #eef3ff; color: #6889c8; }
.interface-center-copy { display: grid; min-width: 0; flex: 1; gap: 4px; }
.interface-center-copy strong { overflow: hidden; color: #46515d; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.interface-center-copy small { overflow: hidden; color: #9ba5af; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.interface-center-status { flex: 0 0 auto; font-size: 8px; white-space: nowrap; }
.interface-center-status-online { color: #439679; }
.interface-center-status-offline { color: #c9785b; }
.interface-center-status-built-in { color: #6889c8; }
.interface-center-row .secondary-button { flex: 0 0 auto; min-height: 28px; padding: 0 8px; font-size: 8px; }
.interface-center-tag { flex: 0 0 auto; color: #a1abb4; font-size: 8px; white-space: nowrap; }
.interface-center-note { display: grid; gap: 4px; margin: 8px 18px 15px; padding: 10px 11px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.interface-center-note strong { color: #596775; font-size: 9px; }
.interface-center-note span { color: #98a3ad; font-size: 8px; line-height: 1.55; }
.runtime-status-page { gap: 14px; }
.runtime-status-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px; border: 1px solid #dceee7; border-radius: 15px; background: linear-gradient(120deg,#f2fbf7,#f9fcfb 70%); }
.runtime-status-hero.is-warn { border-color: #f0e1c1; background: linear-gradient(120deg,#fffaf0,#fffdf8 70%); }
.runtime-status-hero-copy { min-width: 0; }
.runtime-status-pill { display: inline-flex; align-items: center; min-height: 23px; padding: 0 9px; border-radius: 999px; background: #e2f4ec; color: #338568; font-size: 9px; font-weight: 650; }
.runtime-status-hero.is-warn .runtime-status-pill { background: #fff0d1; color: #9a762e; }
.runtime-status-hero h2 { margin: 8px 0 5px; color: #34434c; font-size: 18px; }
.runtime-status-hero p { margin: 0; color: #81908f; font-size: 10px; line-height: 1.6; }
.runtime-status-hero .secondary-button { flex: 0 0 auto; min-height: 34px; padding: 0 13px; }
.runtime-status-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.runtime-status-metrics article { display: grid; min-width: 0; gap: 6px; padding: 14px 15px; border: 1px solid #e9eef0; border-radius: 12px; background: #fff; }
.runtime-status-metrics article > span { color: #8b97a0; font-size: 9px; }
.runtime-status-metrics article > strong { overflow: hidden; color: #3e4c57; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.runtime-status-metrics article > small { overflow: hidden; color: #a0aab2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.runtime-status-card,.runtime-events-card { overflow: hidden; }
.runtime-check-list { padding: 0 20px; }
.runtime-check-row { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 66px; padding: 10px 0; border-bottom: 1px solid #eff2f4; }
.runtime-check-row:last-child { border-bottom: 0; }
.runtime-check-icon { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 10px; background: #f1f5f6; color: #7e8c95; font-size: 16px; }
.runtime-check-icon.is-good { background: #eaf7f1; color: #439679; }
.runtime-check-icon.is-warn { background: #fff5df; color: #b08a35; }
.runtime-check-icon.is-danger { background: #fff0ed; color: #c75f50; }
.runtime-check-row > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }
.runtime-check-row strong { color: #46515d; font-size: 10px; font-weight: 650; }
.runtime-check-row small { overflow-wrap: anywhere; color: #98a3ad; font-size: 8px; line-height: 1.5; }
.runtime-status-page .is-good { color: #398e71; }
.runtime-status-page .is-warn { color: #a9822d; }
.runtime-status-page .is-danger { color: #c75f50; }
.runtime-status-page .is-neutral { color: #929da6; }
.runtime-check-row > b { font-size: 9px; font-weight: 650; white-space: nowrap; }
.runtime-status-actions { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 20px 16px; border-top: 1px solid #f1f3f5; }
.runtime-status-actions .secondary-button { min-height: 30px; padding: 0 11px; font-size: 9px; }
.runtime-status-actions .secondary-button:disabled { opacity: .55; cursor: not-allowed; }
.runtime-events-card .card-header { align-items: center; }
.runtime-clear-events { padding: 5px 8px; border: 1px solid #edf0f2; border-radius: 7px; background: #fff; color: #8e99a2; font-size: 8px; cursor: pointer; }
.runtime-clear-events:hover { border-color: #f2c6b7; color: var(--orange-dark); }
.runtime-events-list { padding: 0 20px 8px; }
.runtime-event-row { display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 54px; padding: 9px 0; border-bottom: 1px solid #eff2f4; }
.runtime-event-row:last-child { border-bottom: 0; }
.runtime-event-icon { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #fff4e5; color: #b58939; font-size: 12px; font-weight: 700; }
.runtime-event-row > div { display: grid; min-width: 0; gap: 3px; }
.runtime-event-row strong { color: #596775; font-size: 9px; }
.runtime-event-row small { overflow-wrap: anywhere; color: #98a3ad; font-size: 8px; line-height: 1.45; }
.runtime-event-row time { color: #a4adb6; font-size: 8px; white-space: nowrap; }
.runtime-events-empty { display: flex; align-items: center; gap: 10px; min-height: 68px; color: #439679; }
.runtime-events-empty > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: #eaf7f1; font-size: 12px; }
.runtime-events-empty > div { display: grid; gap: 4px; }
.runtime-events-empty strong { color: #586771; font-size: 9px; }
.runtime-events-empty small { color: #9ba5af; font-size: 8px; }
.audit-log-card { overflow: hidden; }
.audit-log-list { padding: 0 20px 8px; }
.audit-log-row { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; gap: 10px; align-items: center; min-height: 54px; padding: 9px 0; border-bottom: 1px solid #eff2f4; }
.audit-log-row:last-child { border-bottom: 0; }
.audit-log-icon { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #fff1eb; color: var(--orange-dark); font-size: 18px; line-height: 1; }
.audit-log-copy { display: grid; min-width: 0; gap: 3px; }
.audit-log-copy strong { color: #46515d; font-size: 11px; font-weight: 600; }
.audit-log-copy small { overflow: hidden; color: #97a2ad; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.audit-log-row time { color: #a4adb6; font-size: 9px; white-space: nowrap; }
.audit-undo-button { height: 27px; padding: 0 10px; border: 1px solid #f0c5b8; border-radius: 8px; background: #fff8f5; color: #cf6c51; font-size: 9px; cursor: pointer; }
.audit-undo-button:hover { background: #fff0e9; }
.repayment-reminder-row[data-open-daily-flow-detail], .notification-popup-repayment-row[data-open-daily-flow-detail] { cursor: pointer; }
.budget-alert-row[data-open-notification-detail], .repayment-reminder-row[data-open-notification-detail], .notification-popup-budget-row[data-open-notification-detail], .notification-popup-repayment-row[data-open-notification-detail] { cursor: pointer; }
.compare-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 16px 20px 20px; }
.compare-metric { display: grid; gap: 6px; padding: 14px; border: 1px solid #edf0f2; border-radius: 11px; background: #fbfcfd; }
.compare-metric > span { color: #87929d; font-size: 10px; }
.compare-metric > strong { color: #34404d; font-size: 19px; }
.compare-metric > small { color: #a1aab4; font-size: 9px; }
.compare-metric > b { font-size: 9px; font-weight: 600; }
.compare-metric > b.up { color: #d86a55; }
.compare-metric > b.down { color: #319775; }
.report-tab-panel .compare-metric > strong.report-amount-income,
.report-tab-panel .compare-metric > b.report-amount-income,
.report-tab-panel .compare-period-values .report-amount-income { color: var(--report-income) !important; }
.report-tab-panel .compare-metric > strong.report-amount-expense,
.report-tab-panel .compare-metric > b.report-amount-expense,
.report-tab-panel .compare-period-values .report-amount-expense { color: var(--report-expense) !important; }
.report-tab-panel .compare-period-values .report-amount-net,
.report-tab-panel .compare-metric.net .compare-change-text { color: var(--report-net) !important; }
.report-tab-panel .compare-report-card .report-amount-income,
.report-tab-panel .compare-metric .compare-change-text.income { color: var(--report-income) !important; }
.report-tab-panel .compare-report-card .report-amount-expense,
.report-tab-panel .compare-metric .compare-change-text.expense { color: var(--report-expense) !important; }
.report-tab-panel .compare-report-card .report-amount-net { color: var(--report-net) !important; }
.compare-report-note { margin: 0; padding: 0 20px 20px; color: #8995a1; font-size: 10px; line-height: 1.7; }
.compare-period-selectors { display: flex; align-items: end; gap: 10px; padding: 14px 20px 2px; }
.compare-period-selectors label { display: grid; gap: 5px; color: #87929d; font-size: 9px; }
.compare-period-selectors input { height: 34px; padding: 0 8px; border: 1px solid #e6ebef; border-radius: 8px; background: #fff; color: #46515d; font-size: 10px; }
.compare-period-selectors > span { padding-bottom: 9px; color: #a3adb6; font-size: 10px; }
.compare-mode-toggle { display: inline-flex; padding: 3px; border: 1px solid #e7ecf0; border-radius: 9px; background: #f7f9fa; }
.compare-mode-toggle button { min-height: 28px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; color: #798592; font: inherit; font-size: 9px; cursor: pointer; }
.compare-mode-toggle button[aria-pressed="true"] { background: #fff; color: #26323e; box-shadow: 0 1px 4px #1c27320f; }
.compare-period-status-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 8px 20px 0; }
.compare-period-status { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border: 1px solid #edf0f2; border-radius: 10px; background: #fafbfc; }
.compare-period-status strong { color: #34404d; font-size: 11px; }
.compare-period-status span,.compare-period-status small { color: #84909b; font-size: 9px; line-height: 1.5; }
.compare-period-status.current { border-color: #f2dfd5; background: #fffaf7; }
.compare-period-status.future { border-style: dashed; background: #fbfcfd; }
.compare-mode-note { padding-top: 8px; padding-bottom: 5px; }
.compare-period-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.compare-period-values > div { display: grid; gap: 5px; min-width: 0; }
.compare-period-values > div + div { padding-left: 9px; border-left: 1px solid #edf0f2; }
.compare-period-values small { color: #8a95a0; font-size: 9px; line-height: 1.45; }
.compare-period-values em { font-style: normal; }
.compare-period-values strong { overflow-wrap: anywhere; color: var(--report-net); font-size: 16px; font-variant-numeric: tabular-nums; }
.compare-metric .compare-change-text { color: var(--report-net); font-size: 9px; line-height: 1.5; }
.compare-rate-card,.compare-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 0 20px 16px; }
.compare-rate-card { padding-top: 0; }
.compare-rate-card > div,.compare-count-average { display: grid; gap: 5px; padding: 11px 13px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.compare-rate-card span,.compare-count-average > span { color: #84909b; font-size: 9px; }
.compare-rate-card strong { color: var(--report-net); font-size: 14px; }
.compare-rate-card strong small { color: #a1aab4; font-size: 10px; font-weight: 400; }
.compare-rate-card > div > small,.compare-count-average > small { color: #98a2ac; font-size: 8px; line-height: 1.5; }
.compare-detail-grid { padding-top: 0; }
.compare-count-average > div { display: grid; gap: 5px; }
.compare-count-average > div strong { color: #384451; font-size: 11px; font-variant-numeric: tabular-nums; }
.compare-weighted-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding: 4px 20px 18px; }
.compare-weighted-grid > div { display: grid; gap: 5px; padding: 12px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.compare-weighted-grid strong { color: #3e4a57; font-size: 10px; }
.compare-weighted-grid span,.compare-weighted-grid small { color: #84909b; font-size: 9px; line-height: 1.5; }
.compare-weighted-grid i { font-style: normal; }
.compare-breakdown-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 4px 20px 10px; }
.compare-breakdown-grid article { display: grid; gap: 5px; min-width: 0; padding: 11px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.compare-breakdown-grid span,.compare-breakdown-grid small { color: #84909b; font-size: 9px; line-height: 1.5; }
.compare-breakdown-grid strong { color: var(--report-net); font-size: 14px; font-variant-numeric: tabular-nums; }
.compare-split-table { display: grid; gap: 1px; padding: 0 20px 18px; }
.compare-split-head,.compare-split-row { display: grid; grid-template-columns: minmax(110px, 1.1fr) repeat(2, minmax(125px, 1fr)) minmax(145px, 1.15fr); gap: 8px; align-items: center; }
.compare-split-head { padding: 8px 10px; border-bottom: 1px solid #edf0f2; color: #87929d; font-size: 8px; }
.compare-split-row { min-height: 40px; padding: 7px 10px; border-bottom: 1px solid #f0f2f4; font-size: 9px; }
.compare-split-row > strong { color: #45515d; font-size: 9px; }
.compare-split-row > span { color: var(--report-net); font-variant-numeric: tabular-nums; }
.compare-split-row > span small { color: #98a2ac; font-size: 8px; }
.compare-split-row > b { color: var(--report-net); font-size: 8px; font-weight: 500; }
.compare-cumulative-panel { padding: 4px 20px 12px; }
.compare-cumulative-legend,.compare-dual-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #87929d; font-size: 9px; }
.compare-cumulative-legend strong { margin-right: auto; color: #596573; font-size: 10px; }
.compare-cumulative-legend span,.compare-dual-legend span { display: inline-flex; align-items: center; gap: 5px; }
.compare-cumulative-legend i,.compare-dual-legend i { width: 8px; height: 8px; border-radius: 50%; background: #8291a2; }
.compare-cumulative-legend i.primary { background: #6a87c8; }
.compare-cumulative-legend i.secondary { background: #bd8b65; }
.compare-cumulative-svg,.compare-surplus-waterfall,.compare-dual-bar-chart { display: block; width: 100%; height: auto; overflow: visible; }
.compare-cumulative-svg { margin-top: 4px; }
.compare-cumulative-svg line,.compare-surplus-waterfall line,.compare-dual-bar-chart line { stroke: #e8edf0; stroke-width: 1; }
.compare-cumulative-svg text,.compare-surplus-waterfall text,.compare-dual-bar-chart text { fill: #89949f; font-family: inherit; font-size: 9px; }
.compare-cumulative-line,.compare-surplus-rate-line { fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.compare-cumulative-line.primary { stroke: #6a87c8; }
.compare-cumulative-line.secondary { stroke: #bd8b65; }
.compare-cumulative-dot.primary { fill: #6a87c8; }
.compare-cumulative-dot.secondary { fill: #bd8b65; }
.compare-surplus-waterfall { padding: 2px 16px 16px; }
.compare-waterfall-step.net rect { fill: #707b87; }
.compare-waterfall-step.income rect { fill: var(--report-income); }
.compare-waterfall-step.expense rect { fill: var(--report-expense); }
.compare-waterfall-connector { stroke: #b9c2ca !important; stroke-dasharray: 3 3; }
.compare-waterfall-zero { stroke: #697582 !important; stroke-width: 1.4 !important; }
.compare-waterfall-step .value { fill: #34404d; font-size: 9px; font-weight: 600; }
.compare-waterfall-step .label { fill: #788490; font-size: 8px; }
.compare-dual-legend { justify-content: center; padding: 2px 20px 0; }
.compare-dual-legend i.income { background: var(--report-income); }
.compare-dual-legend i.expense { background: var(--report-expense); }
.compare-dual-legend i.rate { background: #66788c; }
.compare-dual-bar.income rect { fill: var(--report-income); }
.compare-dual-bar.expense rect { fill: var(--report-expense); }
.compare-surplus-rate-line { stroke: #66788c; }
.compare-surplus-rate-point { fill: #fff; stroke: #66788c; stroke-width: 2; }
.compare-dual-month-label { fill: #65717e !important; }
.compare-dual-value,.compare-rate-value { fill: #5e6976 !important; font-size: 8px !important; }
.compare-subcategory-chart { display: grid; gap: 12px; padding: 14px 20px 20px; }
.compare-subcategory-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) 92px; gap: 9px; align-items: center; }
.compare-subcategory-row > strong { overflow: hidden; color: #566371; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.compare-subcategory-bars { display: grid; gap: 4px; }
.compare-subcategory-bars span { display: block; height: 7px; min-width: 2px; border-radius: 5px; }
.compare-bar-primary { background: #5c86e8; }
.compare-bar-secondary { background: #e98669; }
.compare-subcategory-row > small { color: #8e99a4; font-size: 9px; text-align: right; white-space: nowrap; }
.expenditure-change-card { overflow: hidden; }
.change-contribution-legend { display: flex; gap: 14px; padding: 0 20px 8px; color: #8e99a4; font-size: 9px; }
.change-contribution-legend span { display: inline-flex; align-items: center; gap: 5px; }
.change-contribution-legend i { width: 8px; height: 8px; border-radius: 50%; }
.change-contribution-legend .is-increase { background: #d77d6b; }
.change-contribution-legend .is-decrease { background: #58a28f; }
.change-contribution-list { display: grid; gap: 11px; padding: 8px 20px 14px; }
.change-contribution-row { display: grid; grid-template-columns: minmax(82px,.8fr) minmax(100px,1.4fr) 86px; gap: 6px 10px; align-items: center; }
.change-contribution-label { display: grid; min-width: 0; gap: 3px; }
.change-contribution-label strong { overflow: hidden; color: #53606d; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.change-contribution-label small { color: #a0aab4; font-size: 8px; }
.change-contribution-track { position: relative; height: 13px; overflow: hidden; border-radius: 99px; background: #f5f7f8; }
.change-contribution-track::before { position: absolute; top: 1px; bottom: 1px; left: 50%; width: 1px; background: #b9c2ca; content: ''; }
.change-contribution-bar { position: absolute; top: 2px; bottom: 2px; border-radius: 99px; }
.change-contribution-bar.is-increase { background: #d77d6b; }
.change-contribution-bar.is-decrease { background: #58a28f; }
.change-contribution-total { color: #788591; font-size: 9px; text-align: right; white-space: nowrap; }
.change-contribution-total.is-increase { color: #cf705e; }
.change-contribution-total.is-decrease { color: #39977c; }
.change-contribution-effects { grid-column: 1 / -1; margin-top: -3px; color: #98a2ac; font-size: 8px; }
.change-contribution-effects span { padding: 0 4px; color: #c0c7ce; }
.change-contribution-note { margin: 0; padding: 0 20px 17px; color: #9aa4ae; font-size: 8px; line-height: 1.6; }
.overview-settings-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.overview-settings-actions button { min-height: 34px; padding: 0 12px; font-size: 10px; white-space: nowrap; }
.overview-settings-hint { margin: 12px 20px 0; padding: 9px 11px; border-radius: 8px; background: #f8fafc; color: #8e99a4; font-size: 9px; line-height: 1.5; }
.overview-settings-list { padding: 6px 20px 15px; }
.overview-settings-row { display: flex; min-height: 58px; align-items: center; gap: 12px; padding: 9px 8px; border-bottom: 1px solid #f0f2f4; }
.overview-settings-row:last-child { border-bottom: 0; }
.overview-settings-row.is-hidden .overview-settings-index { background: #f7f8fa; color: #a5adb6; }
.overview-settings-row-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; }
.overview-settings-index { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 9px; background: #f4f7fb; color: #8290a0; font-size: 10px; font-weight: 600; }
.overview-settings-copy { display: flex; flex: 1; min-width: 0; flex-direction: column; gap: 4px; }
.overview-settings-copy strong { color: #46515d; font-size: 11px; font-weight: 600; }
.overview-settings-copy small { color: #9ea8b2; font-size: 8px; }
.overview-settings-visibility { min-height: 32px; padding: 0 10px; border: 1px solid #e8edf1; border-radius: 8px; background: #fff; color: #73808c; font-size: 9px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.overview-settings-visibility:hover,.overview-settings-visibility:focus-visible { border-color: #f0c5b3; background: #fff8f4; color: var(--orange-dark); }
.overview-settings-visibility.is-hidden { border-color: #cde9df; background: #f4fbf8; color: #39977c; }
.overview-settings-visibility.is-hidden:hover,.overview-settings-visibility.is-hidden:focus-visible { border-color: #a7ddca; background: #eaf8f2; }
.overview-settings-moves { display: flex; flex: 0 0 auto; gap: 6px; }
.overview-settings-moves button { display: grid; width: 32px; min-height: 32px; place-items: center; padding: 0; font-size: 14px; }
.overview-settings-moves button:disabled { cursor: not-allowed; opacity: .38; }
.category-settings-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.category-settings-tabs { display: inline-flex; padding: 3px; border: 1px solid #edf0f3; border-radius: 9px; background: #f8fafb; }
.category-settings-tabs button { min-height: 31px; padding: 0 11px; border: 0; border-radius: 7px; background: transparent; color: #82909d; font-size: 9px; }
.category-settings-tabs button.active { background: white; color: var(--orange-dark); box-shadow: 0 1px 5px #25334412; }
.category-settings-actions > .primary-button { min-height: 36px; padding: 0 12px; font-size: 9px; white-space: nowrap; }
.category-settings-hint { margin: 0 20px 9px; padding: 10px 12px; border-radius: 8px; background: #f8fafb; color: #8b97a2; font-size: 9px; line-height: 1.6; }
.category-settings-list { padding: 0 20px 16px; }
.category-settings-group { padding: 11px 0 8px; border-bottom: 1px solid #eff2f4; }
.category-settings-group:last-child { border-bottom: 0; }
.category-settings-primary,.category-settings-secondary { display: flex; min-width: 0; align-items: center; gap: 10px; }
.category-settings-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; font-size: 17px; }
.category-settings-name { display: grid; min-width: 100px; flex: 1; gap: 4px; }
.category-settings-name strong { color: #44515e; font-size: 11px; font-weight: 600; }
.category-settings-name small { color: #a0a9b2; font-size: 8px; }
.category-settings-controls { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.category-settings-controls .secondary-button,.category-settings-delete { display: grid; min-width: 30px; min-height: 30px; place-items: center; padding: 0 7px; border: 1px solid #edf0f2; border-radius: 7px; background: #fff; color: #73808d; font-size: 9px; }
.category-settings-controls .secondary-button:disabled,.category-settings-delete:disabled { opacity: .38; cursor: not-allowed; }
.category-settings-delete { color: #bd7772; }
.category-settings-delete:hover:not(:disabled) { border-color: #f0d6d2; background: #fff8f7; color: #bd4945; }
.storage-type-settings-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 12px; padding: 16px 20px; border-bottom: 1px solid #f0f2f4; }
.storage-type-settings-form .form-field { margin: 0; }
.storage-type-settings-form .storage-type-color-field { width: 78px; }
.storage-type-settings-form .storage-type-color-field input { width: 100%; height: 38px; padding: 3px; border: 1px solid #dce7e2; border-radius: 8px; background: #fff; cursor: pointer; }
.storage-type-settings-actions { display: flex; align-items: center; gap: 7px; }
.storage-type-settings-actions .primary-button,.storage-type-settings-actions .secondary-button { min-height: 38px; }
.storage-type-settings-list { padding: 0 20px; }
.storage-type-settings-row { display: flex; min-height: 56px; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #f0f2f4; }
.storage-type-settings-row:last-child { border-bottom: 0; }
.storage-type-settings-copy { display: grid; min-width: 0; gap: 4px; }
.storage-type-settings-copy strong { display: inline-flex; align-items: center; gap: 7px; color: #44515e; font-size: 11px; }
.storage-type-settings-color { display: inline-block; width: 12px; height: 12px; flex: 0 0 12px; border-radius: 50%; box-shadow: inset 0 0 0 1px #15271b1a; }
.storage-type-settings-copy small,.storage-type-settings-hint { color: #9aa4ad; font-size: 9px; line-height: 1.5; }
.storage-type-settings-hint { display: block; padding: 12px 20px 16px; }
.category-settings-children { margin: 8px 0 0 17px; padding-left: 17px; border-left: 1px solid #edf0f3; }
.category-settings-secondary { min-height: 42px; padding: 5px 0; border-bottom: 1px solid #f4f5f6; color: #65717e; font-size: 10px; }
.category-settings-secondary:last-child { border-bottom: 0; }
.category-settings-secondary-icon { display: grid; width: 22px; flex: 0 0 22px; place-items: center; font-size: 14px; }
.historical-category-choice { opacity: .76; }
.historical-category-hint { margin: 8px 0 2px; color: #9aa4ad; font-size: 9px; line-height: 1.55; }
.overview-top-grid { margin-bottom: 18px; }
.main-column,.side-column { display: grid; gap: 18px; min-width: 0; }
.summary-card { background: linear-gradient(115deg,#f97556,#f58a6b); border-radius: 16px; min-height: 206px; color: white; padding: 23px 25px; position: relative; overflow: hidden; box-shadow: 0 10px 24px #ed745032; }
.summary-card-link { display: block; color: white; text-decoration: none; cursor: pointer; transition: filter .16s ease, box-shadow .16s ease; }
.summary-card-link:hover { filter: brightness(1.025); box-shadow: 0 12px 28px #ed745046; }
.summary-card-link:focus-visible { outline: 3px solid rgba(73,189,183,.55); outline-offset: 3px; }
.summary-card::before,.summary-card::after { content: ''; position: absolute; border: 1px solid #ffffff2c; border-radius: 50%; pointer-events: none; }
.summary-card::before { width: 260px; height: 260px; right: -48px; top: -140px; }
.summary-card::after { width: 340px; height: 340px; right: -45px; top: -175px; }
.summary-top { display: flex; align-items: flex-start; justify-content: space-between; position: relative; z-index: 1; }
.summary-label { color: #fff4ef; font-size: 11px; }
.summary-amount { margin-top: 8px; font-size: 31px; letter-spacing: -.9px; font-weight: 700; }
.summary-amount small { font-size: 15px; font-weight: 500; margin-right: 3px; }
.summary-chip { border: 1px solid #ffffff52; background: #ffffff19; border-radius: 7px; padding: 7px 9px; font-size: 9px; }
.summary-meta { position: relative; z-index: 1; display: flex; align-items: center; gap: 20px; margin-top: 18px; }
.summary-meta div { border-left: 1px solid #ffffff65; padding-left: 12px; }
.summary-meta div:first-child { border-left: 0; padding-left: 0; }
.summary-meta span,.summary-meta strong { display: block; }
.summary-meta span { color: #fff2ed; font-size: 9px; margin-bottom: 4px; }
.summary-meta strong { font-size: 14px; font-weight: 600; }
.summary-footer { border-top: 1px solid #ffffff54; display: flex; justify-content: space-between; align-items: center; padding-top: 13px; margin-top: 17px; position: relative; z-index: 1; color: #fff6f3; font-size: 9px; }
.summary-footer strong { color: white; font-size: 11px; }
.summary-decoration { position: absolute; right: 29px; bottom: 20px; width: 85px; height: 58px; opacity: .16; z-index: 0; }
.summary-decoration span { position: absolute; bottom: 0; display: block; width: 14px; border: 1px solid white; border-bottom: 0; border-radius: 5px 5px 0 0; }
.summary-decoration span:nth-child(1){height:25px;left:0}.summary-decoration span:nth-child(2){height:39px;left:19px}.summary-decoration span:nth-child(3){height:32px;left:38px}.summary-decoration span:nth-child(4){height:53px;left:57px}.summary-decoration span:nth-child(5){height:44px;left:76px}
.card { background: white; border: 1px solid #edf0f2; border-radius: 14px; box-shadow: 0 3px 12px #27384a05; min-width: 0; }
.period-overview { padding: 0 27px; margin-bottom: 18px; }
.period-summary-row { width: 100%; min-height: 95px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0; border: 0; border-bottom: 1px solid #edf0f2; background: white; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: background .16s ease; }
.period-summary-row:hover { background: #fcfdfd; }
.period-summary-row:focus-visible { outline: 3px solid rgba(73,189,183,.23); outline-offset: -3px; border-radius: 9px; }
.period-summary-row:last-child { border-bottom: 0; }
.period-summary-left { display: flex; align-items: center; gap: 22px; min-width: 0; }
.period-icon { width: 56px; height: 56px; flex: 0 0 56px; display: grid; place-items: center; }
.period-icon svg { width: 48px; height: 48px; display: block; }
.period-summary-label > strong { display: block; margin: 0; font-size: 19px; font-weight: 600; letter-spacing: -.3px; }
.period-summary-label span { display: block; margin-top: 5px; color: #a5adb5; font-size: 14px; letter-spacing: .1px; white-space: nowrap; }
.period-values { display: grid; gap: 4px; min-width: 240px; }
.period-value { display: flex; align-items: center; justify-content: flex-end; gap: 12px; white-space: nowrap; }
.period-value span { color: #a5adb5; font-size: 11px; }
.period-value strong { min-width: 120px; text-align: right; font-size: 22px; line-height: 1.15; font-weight: 500; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.period-open-hint { flex: 0 0 auto; color: #adb6be; font-size: 22px; line-height: 1; transition: color .16s ease, transform .16s ease; }
.period-summary-row:hover .period-open-hint { color: var(--green); transform: translateX(2px); }
.period-income { color: #d86c52; }
.period-expense { color: #198b8b; }
.card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 19px 20px 0; }
.card-header h2 { margin: 0; font-size: 13px; letter-spacing: -.1px; }
.overview-trend-title { border: 0; padding: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.overview-trend-title:hover { color: var(--teal-dark); }
.overview-trend-title:focus-visible { outline: 2px solid rgba(73,189,183,.4); outline-offset: 3px; border-radius: 2px; }
.card-header p { margin: 5px 0 0; font-size: 9px; color: #a0a9b3; }
.card-link { background: transparent; border: 0; color: #a0a9b3; font-size: 10px; white-space: nowrap; padding: 2px; }
.card-link:hover { color: var(--orange); }
.overview-trend-actions { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.overview-month-detail-panel { margin: 0 16px 14px; border-top: 1px solid #f0f2f4; }
.overview-month-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 4px 2px; color: #687584; font-size: 10px; }
.overview-month-detail-heading span { color: #a0a9b3; font-size: 9px; }
.overview-month-detail-panel .recent-list { padding: 4px 4px 10px; }
.segment-control { border: 1px solid #f0f2f4; border-radius: 7px; display: flex; background: #fafbfc; padding: 2px; gap: 1px; }
.segment-control button { border: 0; border-radius: 5px; padding: 4px 7px; background: transparent; color: #9aa4ae; font-size: 9px; }
.segment-control button.active { background: white; color: var(--orange); box-shadow: 0 1px 4px #172b3b12; }
.trend-chart { height: 172px; padding: 17px 20px 15px; display: flex; align-items: stretch; gap: 10px; }
.trend-y-axis { display: flex; flex-direction: column; justify-content: space-between; color: #a5adb6; font-size: 8px; padding-bottom: 18px; min-width: 26px; }
.trend-bars { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(7,minmax(15px,1fr)); gap: 10px; position: relative; background: repeating-linear-gradient(to bottom,transparent 0,transparent 33px,#f1f3f5 34px); }
.trend-day { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 7px; position: relative; z-index: 1; }
.trend-bar-wrap { height: 122px; width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.trend-bar { width: min(20px,70%); min-height: 4px; background: linear-gradient(180deg,#ffab91,#fa8060); border-radius: 5px 5px 2px 2px; transition: height .35s ease; }
.trend-bar.today { background: linear-gradient(180deg,#f57f60,#e85f43); box-shadow: 0 3px 8px #f36f5035; }
.trend-day-label { color: #a0a9b3; font-size: 8px; white-space: nowrap; }
.trend-day.today .trend-day-label { color: var(--orange-dark); font-weight: 700; }
.monthly-chart { padding: 13px 16px 12px; }
.monthly-chart-body { display: flex; align-items: stretch; min-width: 0; }
.monthly-chart-y-axis { position: relative; flex: 0 0 38px; height: 270px; color: #a5adb6; font-size: 9px; font-variant-numeric: tabular-nums; }
.monthly-chart-y-axis span { position: absolute; right: 7px; transform: translateY(-50%); white-space: nowrap; }
.monthly-chart-viewport { flex: 1 1 auto; min-width: 0; overflow: hidden; touch-action: manipulation; }
.monthly-chart-canvas { position: relative; width: 100%; height: 270px; }
.monthly-chart-svg { display: block; width: 100%; height: 270px; overflow: visible; user-select: none; }
.monthly-chart-gridline { stroke: #e8ebee; stroke-width: 1; stroke-dasharray: 4 5; }
.monthly-chart-guide { stroke: #e5e8ec; stroke-width: 2; }
.monthly-chart-line { fill: none; stroke: #49bdb7; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.monthly-chart-point { pointer-events: none; }
.monthly-chart-hit-area { fill: transparent; cursor: crosshair; pointer-events: all; }
.monthly-chart-dot { fill: #49bdb7; stroke: #fff; stroke-width: 1.5; pointer-events: none; transition: r .15s ease; }
.monthly-chart-point:not(.active) .monthly-chart-dot { display: none; }
.monthly-chart-point.active .monthly-chart-dot { stroke-width: 4; }
.monthly-chart-date { pointer-events: none; }
.monthly-chart-date text { fill: #a5adb6; font-size: 10px; font-variant-numeric: tabular-nums; }
.monthly-chart-date rect { display: none; fill: #f1f3f5; }
.monthly-chart-date.active rect { display: block; }
.monthly-chart-date.active text { fill: #29323a; font-weight: 700; }
.monthly-chart-tooltip { position: absolute; z-index: 2; display: flex; align-items: center; gap: 4px; height: 30px; min-width: 112px; box-sizing: border-box; padding: 0 8px; border-radius: 7px; color: #fff; background: #4d5054; box-shadow: 0 4px 10px #25313e1c; font-size: 9px; white-space: nowrap; pointer-events: none; }
.monthly-chart-tooltip::after { content: ''; position: absolute; left: var(--tooltip-pointer-x); bottom: -5px; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 6px solid #4d5054; transform: translateX(-50%); }
.monthly-chart-tooltip > span,.monthly-chart-legend-dot { display: inline-block; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: #54c7c1; }
.monthly-chart-tooltip strong { color: #dfe4e8; font-weight: 400; }
.monthly-chart-tooltip b { color: white; font-size: 11px; font-weight: 500; font-variant-numeric: tabular-nums; }
.monthly-chart-hint { display: flex; align-items: center; gap: 6px; margin: 3px 0 0 38px; color: #a3acb5; font-size: 9px; }
.monthly-chart-legend-dot { width: 7px; height: 7px; }
.monthly-chart-hint-separator { color: #c3c9ce; }
.category-list { padding: 15px 20px 18px; display: grid; gap: 14px; }
.category-row { display: grid; grid-template-columns: 25px minmax(0,1fr) auto; gap: 10px; align-items: center; }
.category-emoji,.transaction-icon { display: grid; place-items: center; flex: 0 0 auto; width: 29px; height: 29px; border-radius: 9px; background: #fff4ef; font-size: 14px; }
.category-copy { min-width: 0; }
.category-copy strong,.category-copy span { display: block; }
.category-copy strong { font-size: 10px; font-weight: 600; }
.category-copy span { font-size: 8px; color: #a3acb5; margin-top: 4px; }
.category-copy .category-sub-breakdown { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; font-size: 8px; }
.category-value { text-align: right; font-size: 10px; font-weight: 600; white-space: nowrap; }
.category-progress { width: 100%; height: 4px; background: #f1f3f5; border-radius: 5px; margin-top: 7px; overflow: hidden; }
.category-progress span { height: 100%; display: block; margin: 0; border-radius: inherit; background: #f89476; font-size: 0; line-height: 0; transition: width .2s ease; }
.transaction-month-list { display: grid; gap: 9px; padding: 10px; }
.transaction-month-group { overflow: hidden; border: 1px solid #edf0f2; border-radius: 12px; background: #fff; }
.transaction-month-summary { display: flex; width: 100%; min-height: 76px; align-items: center; gap: 12px; padding: 12px 15px; border: 0; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.transaction-month-summary:hover { background: #fbfcfd; }
.transaction-month-summary:focus-visible { outline: 2px solid #f1a18a; outline-offset: -2px; }
.transaction-month-period { display: flex; min-width: 64px; flex-direction: column; gap: 2px; }
.transaction-month-period strong { font-size: 14px; font-weight: 600; }
.transaction-month-period small { color: #9da7b0; font-size: 9px; }
.transaction-month-totals { display: flex; flex: 1; min-width: 0; align-items: baseline; justify-content: flex-end; gap: 7px; flex-wrap: wrap; text-align: right; }
.transaction-month-net-label { color: #9ba5af; font-size: 9px; }
.transaction-month-totals > strong { font-size: 16px; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.transaction-month-totals > strong.negative { color: #d86c52; }
.transaction-month-totals small { display: flex; width: 100%; justify-content: flex-end; align-items: center; gap: 7px; color: #9ba5af; font-size: 9px; white-space: nowrap; }
.transaction-month-totals small i { width: 1px; height: 10px; background: #e2e6e9; }
.transaction-month-income { color: #d86c52; }
.transaction-month-expense { color: #198b8b; }
.transaction-month-chevron { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 1px solid #e8ecef; border-radius: 8px; color: #9ba5af; font-size: 13px; transition: transform .15s ease; }
.transaction-month-chevron.expanded { transform: rotate(180deg); }
.transaction-month-transactions { padding: 0 14px 5px; border-top: 1px solid #f0f2f4; }
.transaction-month-transactions .recent-list { padding: 4px 10px 8px; }
.transaction-month-transactions .transaction-row { padding: 11px 0; }
.transaction-month-transactions .transaction-main > span { overflow-wrap: anywhere; }
.recent-list { padding: 8px 20px 12px; }
.day-group + .day-group { border-top: 1px solid #f0f2f4; margin-top: 5px; }
.day-heading { display: flex; align-items: center; gap: 8px; padding: 9px 0 3px; }
.day-heading strong { font-size: 10px; }
.day-heading span { color: #a3acb5; font-size: 8px; }
.transaction-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; }
.transaction-row .transaction-icon { width: 32px; height: 32px; font-size: 15px; }
.transaction-main { flex: 1; min-width: 0; }
.transaction-main strong,.transaction-main span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transaction-main strong { font-size: 10px; font-weight: 600; }
.transaction-main span { color: #a3acb5; font-size: 8px; margin-top: 4px; }
.transaction-detail-lines { display: flex; flex-direction: column; gap: 2px; }
.transaction-main.transaction-detail-lines > strong { overflow: visible; font-size: 10px; line-height: 1.35; text-overflow: clip; white-space: normal; }
.transaction-main.transaction-detail-lines > span { overflow: visible; margin-top: 0; color: #87929d; font-size: 8px; line-height: 1.4; overflow-wrap: anywhere; text-overflow: clip; white-space: normal; }
.transaction-main.transaction-detail-lines > span.transaction-work-time { color: #43846b; }
[data-theme="night"] .transaction-main.transaction-detail-lines > span.transaction-work-time { color: #8ac9aa; }
.transaction-main.transaction-detail-lines > span.non-current-transaction-tag { width: max-content; margin-top: 2px; padding: 2px 5px; border-radius: 5px; background: #f1f5ff; color: #6680bd; font-size: 7px; }
.transaction-main.transaction-detail-lines > span.large-expense-tag { width: max-content; margin-top: 2px; padding: 2px 5px; border-radius: 5px; background: #fff0e8; color: #d47755; font-size: 7px; }
.fund-purpose-tag { display: inline-flex; width: max-content; align-items: center; justify-content: center; min-width: 21px; margin-top: 2px; padding: 2px 5px; border-radius: 5px; background: #f1f3f5; color: #82909c; font-size: 7px; font-style: normal; font-weight: 650; line-height: 1.2; white-space: nowrap; }
.transaction-main.transaction-detail-lines > span.fund-purpose-tag { display: inline-flex; color: #82909c; font-size: 7px; }
.fund-purpose-tag.necessary { background: #eaf5ef; color: #44866b; }
.fund-purpose-tag.optional { background: #eef2ff; color: #6479bd; }
.fund-purpose-tag.enjoyment { background: #fff0f5; color: #bd6e8d; }
.fund-purpose-tag.investment { background: #fff7e5; color: #a87e2e; }
.fund-purpose-tag.debt { background: #fff0eb; color: #c46951; }
.transaction-amount { text-align: right; font-size: 11px; font-weight: 600; white-space: nowrap; }
.transaction-amount.expense { color: #2f9a63; }
.transaction-amount.income { color: #d9534f; }
.transaction-amount.transfer,.transaction-amount.adjustment { color: #303946; }
.transaction-balance { display: block; margin-top: 4px; color: #a2abb4; font-size: 8px; font-weight: 400; line-height: 1.35; white-space: nowrap; font-variant-numeric: tabular-nums; }
.transaction-row-amount { flex: 0 0 auto; text-align: right; }
.transaction-row-amount .transaction-amount { display: block; }
.transaction-amount.account-transfer { color: #303946; }
.empty-state { padding: 28px 16px; color: #9da7b1; text-align: center; font-size: 10px; }
.empty-illustration { display: grid; place-items: center; margin: 0 auto 11px; width: 40px; height: 40px; border-radius: 13px; background: #f7f8f9; font-size: 19px; }
.budget-card { padding-bottom: 19px; }
.budget-summary { padding: 16px 20px 9px; }
.budget-number { display: flex; justify-content: space-between; align-items: baseline; }
.budget-number strong { font-size: 19px; letter-spacing: -.4px; }
.budget-number strong small { color: #9aa4ae; font-size: 10px; font-weight: 400; }
.budget-number span { color: #a1aab4; font-size: 9px; }
.budget-progress { height: 7px; border-radius: 9px; background: #f2f3f5; overflow: hidden; margin: 11px 0 8px; }
.budget-progress span { display: block; height: 100%; background: linear-gradient(90deg,#ffb383,#f36f50); border-radius: inherit; transition: width .3s; }
.budget-footnote { color: #9ca6b0; font-size: 8px; display: flex; justify-content: space-between; }
.budget-footnote strong { color: var(--orange); font-weight: 600; }
.daily-spend-guidance { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; margin-top: 12px; padding: 9px 10px; border: 1px solid #dbece7; border-radius: 9px; background: #f7fcfa; }
.daily-spend-guidance > div { display: grid; min-width: 0; gap: 3px; }
.daily-spend-guidance span { color: #47675f; font-size: 9px; font-weight: 600; }
.daily-spend-guidance small { overflow: hidden; color: #879a94; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.daily-spend-guidance strong { color: #278f72; font-size: 16px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.daily-spend-guidance strong em { margin-left: 2px; color: #7a9990; font-size: 8px; font-style: normal; font-weight: 500; }
.daily-spend-guidance.is-tight { border-color: #f0dfb7; background: #fffaf0; }
.daily-spend-guidance.is-tight span,.daily-spend-guidance.is-tight strong { color: #a77c32; }
.daily-spend-guidance.is-exhausted { border-color: #f1d8d2; background: #fff7f5; }
.daily-spend-guidance.is-exhausted span,.daily-spend-guidance.is-exhausted strong { color: #c26451; }
.budget-shortcut { margin: 0 20px; width: calc(100% - 40px); border: 1px solid #f4e9e5; background: #fffaf8; color: #da785e; border-radius: 8px; padding: 8px; font-size: 9px; }
.budget-shortcut:hover { background: #fff2ed; }
.balance-card { padding: 19px 20px; background: linear-gradient(135deg,#fff,#fbfdff); }
.balance-head { display: flex; justify-content: space-between; align-items: center; }
.balance-head h2 { margin: 0; font-size: 12px; }
.balance-head span { font-size: 9px; color: #a2abb5; }
.balance-amount { font-size: 22px; font-weight: 700; letter-spacing: -.5px; margin-top: 11px; }
.balance-sub { font-size: 8px; color: #a0a9b3; margin-top: 4px; }
.balance-liquid { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; margin-top: 8px; color: #5b887b; font-size: 9px; }
.balance-liquid strong { color: #18232d; font-size: 11px; }
.balance-liquid small { color: #9ba8a4; font-size: 8px; }
.cash-reserve-card { display: grid; gap: 9px; margin-top: 12px; padding: 11px 12px 10px; border: 1px solid #dfe8f0; border-radius: 11px; background: #f8fbfe; }
.cash-reserve-card.is-warn { border-color: #eee0ba; background: #fffdf7; }
.cash-reserve-card.is-danger { border-color: #f0d8cf; background: #fff9f6; }
.cash-reserve-card.is-neutral { border-color: #e1e7ec; background: #f8fafb; }
.cash-reserve-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.cash-reserve-head > div:first-child { display: grid; gap: 3px; min-width: 0; }
.cash-reserve-head span { color: var(--ink); font-size: 11px; font-weight: 600; }
.cash-reserve-head small { color: #8797a4; font-size: 8px; }
.cash-reserve-head > div:last-child { display: grid; justify-items: end; gap: 3px; }
.cash-reserve-head strong { color: #25384a; font-size: 16px; white-space: nowrap; }
.cash-reserve-head em { padding: 3px 6px; border-radius: 6px; background: #e6f4ec; color: #39866e; font-size: 8px; font-style: normal; font-weight: 600; white-space: nowrap; }
.cash-reserve-card.is-warn .cash-reserve-head em { background: #fff0ca; color: #ae8230; }
.cash-reserve-card.is-danger .cash-reserve-head em { background: #ffe7df; color: #bd644f; }
.cash-reserve-insufficient { margin: 0; padding: 8px 9px; border-radius: 8px; background: #eef2f5; color: #71808d; font-size: 9px; line-height: 1.6; }
.cash-reserve-track { display: flex; height: 7px; overflow: hidden; border-radius: 99px; background: #e8eef3; }
.cash-reserve-track i { display: block; min-width: 0; height: 100%; }
.cash-reserve-track .turnover { background: #ef9d6d; }
.cash-reserve-track .emergency { background: #609cc9; }
.cash-reserve-track .flexible { background: #8c79c6; }
.cash-reserve-list { display: grid; gap: 7px; }
.cash-reserve-row { display: grid; grid-template-columns: 6px minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.cash-reserve-row > i { width: 6px; height: 22px; border-radius: 8px; background: #cad4dc; }
.cash-reserve-row.turnover > i { background: #ef9d6d; }
.cash-reserve-row.emergency > i { background: #609cc9; }
.cash-reserve-row.flexible > i { background: #8c79c6; }
.cash-reserve-row > div { display: grid; min-width: 0; gap: 2px; }
.cash-reserve-row span { color: #44515d; font-size: 9px; font-weight: 600; }
.cash-reserve-row small { overflow: hidden; color: #93a0aa; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.cash-reserve-row strong { color: #394752; font-size: 10px; white-space: nowrap; }
.cash-reserve-note { color: #8998a3; font-size: 8px; line-height: 1.45; }
.cash-runway-card { display: grid; gap: 9px; margin-top: 14px; padding: 11px 12px 10px; border: 1px solid #dce8f0; border-radius: 11px; background: #f6fbfe; }
.cash-runway-card.is-warn { border-color: #f0dfb7; background: #fffaf0; }
.cash-runway-card.is-danger { border-color: #f2d5cd; background: #fff7f4; }
.cash-runway-card.is-neutral { border-color: #e2e8ec; background: #fbfcfd; }
.cash-runway-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 3px 8px; }
.cash-runway-head > div:first-child { display: grid; min-width: 0; gap: 3px; }
.cash-runway-head > div:last-child { display: grid; justify-items: end; gap: 3px; }
.cash-runway-head span { color: var(--ink); font-size: 11px; font-weight: 600; white-space: nowrap; }
.cash-runway-head small { color: #83919b; font-size: 8px; }
.cash-runway-head strong { color: #3a789d; font-size: 17px; white-space: nowrap; }
.cash-runway-head em { padding: 4px 6px; border-radius: 6px; background: #e5f1f7; color: #3d7a9e; font-size: 8px; font-style: normal; font-weight: 600; white-space: nowrap; }
.cash-runway-card.is-warn .cash-runway-head strong { color: #ae8030; }
.cash-runway-card.is-warn .cash-runway-head em { background: #fff0ca; color: #ad8535; }
.cash-runway-card.is-danger .cash-runway-head strong { color: #c45c4c; }
.cash-runway-card.is-danger .cash-runway-head em { background: #ffe6df; color: #c76851; }
.cash-runway-card.is-neutral .cash-runway-head strong { color: #7c8993; }
.cash-runway-card.is-neutral .cash-runway-head em { background: #edf1f3; color: #76838d; }
.cash-runway-track { height: 6px; overflow: hidden; border-radius: 99px; background: #e2edf3; }
.cash-runway-track i { display: block; height: 100%; border-radius: inherit; background: #5f9fc4; }
.cash-runway-card.is-warn .cash-runway-track i { background: #d6a64f; }
.cash-runway-card.is-danger .cash-runway-track i { background: #d8755e; }
.cash-runway-card.is-neutral .cash-runway-track i { background: #9aa7b0; }
.cash-runway-breakdown { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.cash-runway-breakdown span { display: grid; gap: 3px; min-width: 0; }
.cash-runway-breakdown small { overflow: hidden; color: #8a99a3; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.cash-runway-breakdown b { overflow: hidden; color: #425762; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.cash-runway-note { color: #8998a3; font-size: 8px; line-height: 1.45; }
.cash-runway-enhanced { gap: 13px; }
.cash-runway-assumption { margin: 0; color: #657681; font-size: 9px; line-height: 1.55; }
.cash-runway-profiles { display: grid; gap: 12px; }
.cash-runway-profile { display: grid; gap: 8px; min-width: 0; padding: 11px; border: 1px solid #e5edf1; border-radius: 10px; background: #fff; }
.cash-runway-profile-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.cash-runway-profile-heading > div { display: grid; gap: 3px; }
.cash-runway-profile-heading strong { color: #334854; font-size: 10px; }
.cash-runway-profile-heading small,.cash-runway-profile-heading > span { color: #85939c; font-size: 8px; line-height: 1.45; }
.cash-runway-scenarios { display: grid; gap: 5px; }
.cash-runway-scenario-row { display: grid; grid-template-columns: 42px minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 8px; padding: 7px 8px; border-radius: 7px; background: #f7f9fa; }
.cash-runway-scenario-row > b { color: #52636d; font-size: 9px; }
.cash-runway-scenario-row > span { display: grid; gap: 2px; min-width: 0; }
.cash-runway-scenario-row small,.cash-runway-scenario-row em { color: #8a98a1; font-size: 8px; font-style: normal; }
.cash-runway-scenario-row strong { color: #405560; font-size: 9px; line-height: 1.4; }
.cash-runway-state { margin: 0; padding: 7px 8px; border-radius: 7px; font-size: 8px; line-height: 1.5; }
.cash-runway-state.is-insufficient { background: #f0f3f5; color: #697983; }
.cash-runway-state.is-zero { background: #eff8f3; color: #4c866d; }
.cash-runway-state.is-caveat { background: #fff7e8; color: #97753d; }
.cash-runway-chart-wrap { width: 100%; min-width: 0; overflow: hidden; }
.cash-runway-chart { display: block; width: 100%; height: auto; overflow: visible; }
.cash-runway-chart text { fill: #87949c; font-size: 8px; }
.cash-runway-gridline { stroke: #e9eef1; stroke-width: 1; stroke-dasharray: 3 4; }
.cash-runway-threshold { stroke: #7b8992; stroke-width: 1.2; stroke-dasharray: 5 4; }
.cash-runway-repayment-marker { stroke: #d69c4c; stroke-width: 1; stroke-dasharray: 2 4; opacity: .8; }
.cash-runway-chart-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #74838d; font-size: 8px; }
.cash-runway-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.cash-runway-chart-legend i { width: 12px; height: 3px; border-radius: 9px; }
.cash-runway-chart-legend i.is-threshold { height: 0; border-top: 1px dashed #7b8992; }
.cash-runway-chart-legend i.is-repayment { width: 2px; height: 9px; border-left: 1px dashed #d69c4c; }
.cash-runway-details { padding-top: 8px; border-top: 1px solid #e8edf0; }
.cash-runway-details summary { color: #52636d; font-size: 9px; font-weight: 600; cursor: pointer; }
.cash-runway-details > p { margin: 7px 0; color: #82909a; font-size: 8px; line-height: 1.5; }
.cash-runway-details > div:not(.cash-runway-comparison) { display: grid; gap: 5px; }
.cash-runway-details > div:not(.cash-runway-comparison) > div { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; padding: 5px 0; border-bottom: 1px solid #f0f2f4; color: #63737d; font-size: 8px; }
.cash-runway-details > div:not(.cash-runway-comparison) > div b { flex: 0 0 auto; color: #495c67; }
.cash-runway-comparison { display: grid; gap: 6px; padding-top: 7px; }
.cash-runway-comparison > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; padding: 7px; border-radius: 7px; background: #f7f9fa; color: #667781; font-size: 8px; }
.cash-runway-comparison > div > b { grid-column: 1 / -1; color: #425762; font-size: 9px; }
.cash-runway-sample-list { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px !important; padding-top: 7px; }
.cash-runway-sample-list > span { padding: 6px; border-radius: 6px; background: #f7f9fa; color: #788790; font-size: 7px; line-height: 1.45; }
.balance-account-icons { display: flex; margin-top: 15px; }
.balance-account-icons span { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; border: 2px solid white; margin-left: -5px; background: #f4f6f8; font-size: 11px; }
.balance-account-icons span:first-child { margin-left: 0; }

.page-stack { display: grid; gap: 18px; }
.toolbar-card { padding: 15px 18px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.transaction-filter-clear { height: 35px; padding: 0 12px; border-color: #e6d8d2; color: #b56b52; font-size: 10px; white-space: nowrap; }
.transaction-filter-clear:hover { border-color: #e9a98f; background: #fff7f3; color: #d16043; }
.search-field { min-width: 190px; flex: 1; position: relative; }
.search-field span { position: absolute; left: 11px; top: 50%; transform: translateY(-50%); color: #a2acb6; font-size: 14px; }
.search-field input,.toolbar-card select { height: 35px; border: 1px solid #eceff2; background: white; border-radius: 8px; color: #64717f; font-size: 10px; padding: 0 10px; }
.search-field input { padding-left: 33px; width: 100%; }
.toolbar-card select { min-width: 105px; }
.transaction-table-wrap { overflow-x: auto; }
.transaction-table { border-collapse: collapse; width: 100%; min-width: 680px; }
.transaction-table th { color: #a0a9b3; font-size: 9px; font-weight: 500; text-align: left; padding: 12px 18px; border-bottom: 1px solid #f0f2f4; white-space: nowrap; }
.transaction-table td { border-bottom: 1px solid #f3f4f6; padding: 12px 18px; font-size: 10px; white-space: nowrap; }
.transaction-table tr:last-child td { border-bottom: 0; }
.transaction-table tbody tr:hover { background: #fcfcfd; }
.transaction-cell { display: flex; align-items: center; gap: 9px; }
.transaction-cell .transaction-icon { width: 30px; height: 30px; }
.transaction-cell-copy { display: block; min-width: 0; }
.transaction-cell-copy strong { display: block; }
.transaction-entry-detail { display: block; margin-top: 4px; color: #a2abb4; font-size: 8px; font-weight: 400; }
.muted-cell { color: #919ca8; }
.amount-cell { text-align: right; font-weight: 700; }
.amount-cell .transaction-amount { display: block; }
.delete-row { border: 0; background: transparent; color: #c0c7ce; font-size: 15px; opacity: .45; }
.delete-row:hover { color: #df6e57; opacity: 1; }
.secondary-button { min-height: 34px; padding: 0 12px; border: 1px solid #e9edf0; border-radius: 8px; color: #687584; background: white; font-size: 10px; transition: .18s ease; }
.secondary-button:hover { border-color: #f0c9bd; color: var(--orange-dark); background: #fffaf8; }
.secondary-button:disabled { cursor: not-allowed; opacity: .5; }
.transaction-trash-link { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.transaction-trash-link b { display: inline-grid; min-width: 18px; height: 18px; padding: 0 4px; place-items: center; border-radius: 9px; background: #f5f6f7; color: #9aa4ae; font-size: 8px; font-weight: 500; }
.trash-heading .heading-tools { align-self: flex-end; }
.trash-count-pill { color: #9aa4ae; font-size: 10px; white-space: nowrap; }
.trash-clear-button { min-height: 34px; padding: 0 12px; border: 1px solid #f2ddd7; border-radius: 8px; background: #fff8f5; color: #d87960; font-size: 10px; transition: .18s ease; }
.trash-clear-button:hover:not(:disabled) { border-color: #eab8aa; background: #fff0eb; color: #c95f47; }
.trash-card { overflow: hidden; }
.trash-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px 13px; border-bottom: 1px solid #f0f2f4; }
.trash-card-heading h2 { margin: 0; font-size: 12px; }
.trash-card-heading p { margin: 5px 0 0; color: #a0a9b3; font-size: 9px; }
.trash-card-heading > span { color: #a0a9b3; font-size: 9px; white-space: nowrap; }
.trash-card-heading-actions { display: flex; align-items: center; gap: 10px; }
.trash-card-heading-actions > span { color: #a0a9b3; font-size: 9px; white-space: nowrap; }
.trash-list { padding: 0 20px; }
.trash-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 20px; align-items: center; padding: 15px 0; border-bottom: 1px solid #f0f2f4; }
.trash-item:last-child { border-bottom: 0; }
.trash-item-main { display: flex; align-items: center; gap: 10px; min-width: 0; }
.trash-item-main .transaction-icon { width: 34px; height: 34px; }
.trash-item-copy { min-width: 0; }
.trash-item-copy > span,.trash-item-copy > strong,.trash-item-copy > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trash-item-copy > span { color: #a1aab4; font-size: 8px; }
.trash-item-copy > strong { margin-top: 4px; font-size: 10px; font-weight: 600; }
.trash-item-copy > small { margin-top: 4px; color: #9ba5af; font-size: 8px; }
.trash-item-amount { text-align: right; font-size: 11px; font-weight: 600; white-space: nowrap; }
.trash-item-amount .transaction-amount { display: block; }
.trash-item-amount > small { display: block; margin-top: 5px; color: #a4adb6; font-size: 8px; font-weight: 400; }
.trash-item-actions { display: flex; gap: 7px; align-items: center; }
.trash-permanent-button { min-height: 34px; padding: 0 10px; border: 1px solid #f0e5e2; border-radius: 8px; background: white; color: #bd7a6c; font-size: 9px; transition: .18s ease; }
.trash-permanent-button:hover { border-color: #e6b7aa; background: #fff8f5; color: #c7533e; }
.trash-empty { display: grid; justify-items: center; padding: 58px 20px 62px; text-align: center; }
.trash-empty > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 16px; background: #f8f8f9; color: #c1c8cf; font-size: 25px; }
.trash-empty > strong { margin-top: 13px; font-size: 12px; }
.trash-empty > p { margin: 6px 0 0; max-width: 310px; color: #a1aab4; font-size: 9px; line-height: 1.7; }
.section-grid { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(280px,.7fr); gap: 18px; }
.report-total-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.metric-card { padding: 17px 18px; }
.metric-card span { display: block; color: #97a1ab; font-size: 9px; }
.metric-card strong { display: block; font-size: 19px; margin-top: 9px; letter-spacing: -.5px; }
.metric-card small { display: block; color: #aab2ba; font-size: 8px; margin-top: 5px; }
.metric-card.expense strong,.metric-card.balance-negative strong { color: var(--green); }
.metric-card.income strong,.metric-card.balance-positive strong { color: var(--orange); }
.report-donut-wrap { display: flex; align-items: center; gap: 23px; padding: 19px 20px 22px; }
.donut-chart { width: 155px; height: 155px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; position: relative; }
.donut-chart::after { content: ''; position: absolute; width: 95px; height: 95px; border-radius: 50%; background: white; }
.donut-center { position: relative; z-index: 1; text-align: center; }
.donut-center span,.donut-center strong { display: block; }
.donut-center span { font-size: 8px; color: #a1aab4; }
.donut-center strong { font-size: 13px; margin-top: 4px; }
.legend-list { flex: 1; display: grid; gap: 10px; min-width: 0; }
.legend-row { display: flex; align-items: center; gap: 7px; font-size: 9px; }
.legend-dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; }
.legend-row span:nth-child(2) { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #707c89; }
.legend-row strong { font-size: 9px; }
.report-bars { padding: 16px 20px 20px; display: grid; gap: 16px; }
.report-bar-row { display: grid; grid-template-columns: 73px minmax(0,1fr) 74px; align-items: center; gap: 10px; font-size: 9px; }
.report-bar-row > span:first-child { color: #788492; }
.report-bar-track { height: 8px; border-radius: 9px; background: #f1f3f5; overflow: hidden; }
.report-bar-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#ffad91,#f36f50); }
.report-bar-row strong { text-align: right; font-size: 9px; }
.report-page { display: grid; gap: 15px; }
.report-loading-state { display: grid; min-height: 150px; align-content: center; justify-items: center; gap: 8px; color: var(--muted); text-align: center; }
.report-loading-state strong { color: var(--ink); font-size: 16px; }
.report-loading-state small { font-size: 12px; }
.report-subnav { display: flex; gap: 7px; overflow-x: auto; border-bottom: 1px solid #e9edf0; scrollbar-width: none; }
.report-subnav::-webkit-scrollbar { display: none; }
.report-subnav button { flex: 0 0 auto; min-width: 75px; padding: 11px 12px 10px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #8d98a3; font-size: 10px; cursor: pointer; transition: color .15s ease,border-color .15s ease; }
.report-subnav button:hover { color: #596777; }
.report-subnav button.active { border-bottom-color: var(--orange); color: var(--orange-dark); font-weight: 700; }
.report-tab-panel { min-width: 0; }
.report-render-error { display: grid; gap: 5px; padding: 15px; color: var(--muted); }
.report-render-error strong { color: var(--ink); font-size: 12px; }
.report-render-error small { font-size: 10px; line-height: 1.5; }
.report-placeholder { min-height: 275px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 25px; text-align: center; }
.report-placeholder-icon { display: grid; width: 46px; height: 46px; place-items: center; margin-bottom: 12px; border-radius: 14px; background: #fff4ef; color: var(--orange); font-size: 23px; }
.report-placeholder h2 { margin: 0; font-size: 14px; }
.report-placeholder p { max-width: 320px; margin: 7px 0 0; color: #9ba5af; font-size: 9px; line-height: 1.7; }
.annual-report-heading .eyebrow { color: #81909d; }
.annual-report-heading p { display: flex; align-items: center; gap: 5px; }
.report-share-mark { color: var(--orange); font-size: 11px; }
.annual-report-stack { gap: 13px; }
.annual-summary-card { position: relative; min-height: 142px; overflow: hidden; padding: 19px 21px; border: 0; background: linear-gradient(112deg,#08756e,#1b9f80 50%,#49b875); color: #fff; box-shadow: 0 8px 20px #298b791c; }
.annual-summary-card::before,.annual-summary-card::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.annual-summary-card::before { width: 235px; height: 235px; right: 40px; top: -145px; background: #c6dc4738; }
.annual-summary-card::after { width: 165px; height: 165px; right: -25px; bottom: -122px; background: #79d89d42; }
.annual-summary-content { position: relative; z-index: 1; width: min(72%,520px); }
.annual-summary-kicker { display: block; font-size: 12px; font-weight: 600; letter-spacing: .2px; }
.annual-summary-label { display: block; margin-top: 15px; color: #e3ffef; font-size: 9px; }
.annual-summary-content > strong { display: block; font-size: 27px; line-height: 1.1; font-weight: 600; letter-spacing: -.5px; }
.annual-summary-foot { display: flex; align-items: center; gap: 10px; margin-top: 12px; color: #d9f6e9; font-size: 8px; }
.annual-summary-foot b { color: white; font-size: 9px; font-weight: 600; }
.annual-summary-foot i { width: 1px; height: 11px; background: #ffffff69; }
.annual-summary-art { position: absolute; z-index: 0; right: 15px; top: 10px; width: 34%; height: calc(100% - 20px); overflow: hidden; border-radius: 45% 18% 22% 40%; background: linear-gradient(155deg,#d8df50b8 0 31%,transparent 32%),linear-gradient(20deg,#16866d 0 40%,#4dbd82 41% 58%,#7dc64f 59%); opacity: .9; }
.annual-summary-art::before { content: ''; position: absolute; right: 27%; top: 29%; width: 50px; height: 47px; border-radius: 48% 52% 45% 45%; background: linear-gradient(#fffdf0 0 72%,#f1cbb1 73%); box-shadow: -8px 7px 0 -4px #faf5e9; }
.annual-summary-art::after { content: '•　•'; position: absolute; top: 46%; right: 35%; color: #4f5552; font-size: 8px; letter-spacing: 3px; }
.annual-summary-art span { position: absolute; z-index: 1; top: 11%; right: 14%; width: 55px; height: 27px; border-radius: 90% 15% 90% 15%; transform: rotate(-14deg); background: #c5db43; box-shadow: 10px 7px 0 -3px #add23e; }
.annual-summary-art i { position: absolute; right: 49%; bottom: 18%; width: 100px; height: 27px; border-radius: 50%; background: #99d646; transform: rotate(-10deg); }
.annual-summary-art b { position: absolute; z-index: 2; right: 37%; top: 60%; width: 25px; height: 18px; border-radius: 5px 5px 11px 11px; background: #f5d8a8; }
.annual-milestone { display: flex; min-height: 47px; align-items: center; gap: 9px; padding: 10px 16px; }
.annual-milestone-icon { display: grid; width: 23px; height: 23px; place-items: center; border: 1px solid #cde4ed; border-radius: 5px; color: #46a9bf; font-size: 13px; }
.annual-milestone > strong { flex: 1; font-size: 10px; font-weight: 500; }
.annual-milestone > span:last-child { color: #a4adb6; font-size: 8px; }
.annual-milestone b { margin-left: 4px; color: #6e7883; font-size: 12px; font-weight: 500; }
.annual-report-card { overflow: hidden; padding: 0; }
.surplus-conversion-card { padding-bottom: 13px; }
.surplus-conversion-card .annual-card-heading { align-items: center; padding-bottom: 12px; }
.surplus-conversion-card .annual-card-heading > div { display: grid; gap: 4px; }
.surplus-conversion-card .annual-card-heading > div span { color: #8c99a4; font-size: 8px; }
.surplus-conversion-card .annual-card-heading > b { color: #27313a; font-size: 21px; font-weight: 700; white-space: nowrap; }
.surplus-conversion-summary { display: flex; align-items: center; gap: 10px; margin: 0 16px 12px; padding: 10px 12px; border: 1px solid #e8edf0; border-radius: 9px; background: #f8fafb; }
.surplus-conversion-summary > span { display: grid; gap: 4px; color: #84919b; font-size: 8px; }
.surplus-conversion-summary strong { color: #27313a; font-size: 12px; font-weight: 650; }
.surplus-conversion-summary > i { color: #a8b1b8; font-size: 12px; font-style: normal; }
.surplus-conversion-list { display: grid; gap: 0; margin: 0 16px; }
.surplus-conversion-list > div { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(95px, auto) 92px; align-items: center; gap: 8px; min-height: 31px; border-bottom: 1px solid #eef1f3; }
.surplus-conversion-list > div:last-child { border-bottom: 0; }
.surplus-conversion-list span { color: #63717c; font-size: 9px; }
.surplus-conversion-list b { color: #27313a; font-size: 10px; font-weight: 650; text-align: right; }
.surplus-conversion-list small { color: #98a3ac; font-size: 8px; text-align: right; }
.surplus-conversion-list .is-reconciliation { margin-top: 3px; padding-top: 3px; border-top: 1px dashed #dfe5e9; }
.surplus-conversion-list .is-reconciliation span,
.surplus-conversion-list .is-reconciliation b { color: #7c8790; }
.surplus-conversion-note { display: block; margin: 11px 16px 0; color: #8996a0; font-size: 8px; line-height: 1.55; }
.surplus-conversion-empty { margin: 0 16px; padding: 14px 0; color: #87939d; font-size: 9px; }
.living-cost-trend-card { overflow: hidden; padding: 0; }
.living-cost-trend-card .annual-card-heading { align-items: flex-start; padding-bottom: 12px; }
.living-cost-trend-card .annual-card-heading > div { display: grid; gap: 4px; }
.living-cost-trend-card .annual-card-heading > div span { color: var(--muted); font-size: 8px; }
.living-cost-change { max-width: 48%; color: #8b98a1; font-size: 9px; font-weight: 600; text-align: right; }
.living-cost-change.is-over { color: #d56e5b; }
.living-cost-change.is-saving { color: #339578; }
.living-cost-change.is-flat { color: #8b98a1; }
.living-cost-mode { display: inline-flex; flex: 0 0 auto; padding: 2px; border: 1px solid #e5ecea; border-radius: 8px; background: #f8fbfa; }
.living-cost-mode button { padding: 5px 8px; border: 0; border-radius: 6px; background: transparent; color: #83918f; cursor: pointer; font-size: 8px; }
.living-cost-mode button.is-active { background: #fff; color: #328c78; box-shadow: 0 1px 4px #244d421c; font-weight: 650; }
.living-cost-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 16px 9px; }
.living-cost-summary article { display: grid; min-width: 0; align-content: start; gap: 4px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.living-cost-summary span,.living-cost-summary small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.living-cost-summary strong { overflow-wrap: anywhere; color: #43515f; font-size: 12px; font-weight: 650; }
.living-cost-baseline { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 10px; align-items: baseline; margin: 0 16px 8px; padding: 9px 11px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.living-cost-baseline > span { color: #68777f; font-size: 8px; }
.living-cost-baseline > strong { color: #68777f; font-size: 10px; }
.living-cost-baseline > strong.is-over { color: #d56e5b; }
.living-cost-baseline > strong.is-saving { color: #339578; }
.living-cost-baseline > small { grid-column: 1 / -1; color: #98a3a8; font-size: 7px; line-height: 1.4; }
.living-cost-legend { display: flex; flex-wrap: wrap; gap: 6px 11px; margin: 0 16px 3px; color: #829098; font-size: 8px; }
.living-cost-legend span { display: inline-flex; align-items: center; gap: 5px; }
.living-cost-legend i { display: inline-block; width: 9px; height: 7px; border-radius: 2px; background: #66b49a; }
.living-cost-legend i.is-line { width: 12px; height: 0; border-top: 2px solid #e7866c; background: transparent; }
.living-cost-legend i.is-daily-bar { width: 9px; height: 7px; border: 1px solid #66b49a; background: #66b49a40; }
.living-cost-legend i.is-zero { width: 8px; height: 8px; border: 1.5px solid #65b49a; border-radius: 50%; background: #fff; }
.living-cost-legend i.is-empty { width: 7px; height: 7px; border: 1px dashed #9eabb0; border-radius: 50%; background: transparent; }
.living-cost-legend i.is-start { width: 8px; height: 8px; border: 1px solid #9aa7ad; border-radius: 50%; background: #9aa7ad; }
.living-cost-chart-scroll { width: 100%; overflow-x: auto; padding: 1px 7px 4px; }
.living-cost-chart-svg { display: block; width: 100%; min-width: 480px; height: auto; }
.living-cost-grid line { stroke: #e9efed; stroke-dasharray: 3 4; }
.living-cost-grid text,.living-cost-month { fill: #96a2a5; font: 8px system-ui,sans-serif; }
.living-cost-stack-segment { stroke: #fff; stroke-width: .6; }
.living-cost-stack.is-start-month { opacity: .48; }
.living-cost-daily-line { stroke: #e7866c; stroke-width: 1.8; }
.living-cost-daily-point { fill: #e7866c; stroke: #fff; stroke-width: 1.3; }
.living-cost-zero-point.is-zero { fill: #fff; stroke: #65b49a; stroke-width: 1.5; }
.living-cost-zero-point.is-missing { fill: transparent; stroke: #aab5b8; stroke-dasharray: 2 2; stroke-width: 1; }
.living-cost-zero-point.is-future { fill: transparent; stroke: #d2dadc; stroke-dasharray: 2 2; stroke-width: 1; }
.living-cost-method { display: block; padding: 0 16px 13px; color: #9aa6ad; font-size: 8px; line-height: 1.55; }
.annual-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 15px 16px 6px; background: linear-gradient(180deg,#ffffff,#fbfdfd); }
.annual-card-heading h2 { margin: 0; font-size: 11px; font-weight: 600; }
.annual-card-heading > span { color: #a4adb5; font-size: 8px; }
.personal-purchasing-power-card { overflow: hidden; padding: 0; }
.personal-purchasing-power-card .annual-card-heading { padding-bottom: 10px; }
.personal-purchasing-power-card .annual-card-heading > div { display: grid; gap: 4px; }
.personal-purchasing-power-card .annual-card-heading > div span { color: #9ba7ad; font-size: 8px; }
.personal-purchasing-power-result { color: #2f9d80; font-size: 19px; font-weight: 650; }
.personal-purchasing-power-result.is-down { color: #c67d55; }
.personal-purchasing-power-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 16px 10px; }
.personal-purchasing-power-summary > span { display: grid; gap: 5px; padding: 9px 10px; border: 1px solid #e8efec; border-radius: 8px; background: #f9fcfb; }
.personal-purchasing-power-summary small { color: #8d9aa3; font-size: 8px; }
.personal-purchasing-power-summary b { color: #465a65; font-size: 13px; }
.personal-purchasing-power-chart-wrap { overflow-x: auto; margin: 0 12px; scrollbar-width: thin; }
.personal-purchasing-power-chart { display: block; width: 100%; min-width: 500px; height: auto; }
.personal-purchasing-power-axis line { stroke: #e9efed; stroke-dasharray: 3 4; }
.personal-purchasing-power-axis text { fill: #98a4aa; font: 8px system-ui,sans-serif; }
.personal-purchasing-power-series line { fill: none; stroke-width: 2.2; stroke-linecap: round; }
.personal-purchasing-power-series circle { fill: #fff; stroke-width: 2; }
.personal-purchasing-power-series.wage line,.personal-purchasing-power-series.wage circle { stroke: #547da9; }
.personal-purchasing-power-series.basket line,.personal-purchasing-power-series.basket circle { stroke: #d7a064; }
.personal-purchasing-power-series.power line,.personal-purchasing-power-series.power circle { stroke: #339e83; }
.personal-purchasing-power-legend { display: flex; flex-wrap: wrap; gap: 8px 17px; padding: 0 16px 9px; color: #75838e; font-size: 8px; }
.personal-purchasing-power-legend span::before { content: ''; display: inline-block; width: 11px; height: 3px; margin: 0 5px 2px 0; border-radius: 2px; background: currentColor; vertical-align: middle; }
.personal-purchasing-power-legend .wage { color: #547da9; }
.personal-purchasing-power-legend .basket { color: #d7a064; }
.personal-purchasing-power-legend .power { color: #339e83; }
.personal-purchasing-power-note { margin: 0; padding: 0 16px 13px; color: #91a0a6; font-size: 8px; line-height: 1.65; }
.personal-purchasing-power-empty { margin: 0 16px 12px; padding: 16px; border: 1px dashed #dce7e2; border-radius: 9px; color: #83949d; font-size: 9px; line-height: 1.6; }
.personal-purchasing-power-details { margin: 0 16px 14px; color: #7c8b93; font-size: 9px; }
.personal-purchasing-power-details summary { cursor: pointer; }
.personal-purchasing-power-details > div { overflow-x: auto; margin-top: 8px; }
.personal-purchasing-power-details table { width: 100%; border-collapse: collapse; font-size: 8px; text-align: right; }
.personal-purchasing-power-details th,.personal-purchasing-power-details td { padding: 7px 6px; border-bottom: 1px solid #edf0ef; white-space: nowrap; }
.personal-purchasing-power-details th:first-child { text-align: left; }
.annual-ranking-list { padding: 0 13px 8px; }
.annual-rank-row { display: flex; align-items: center; gap: 8px; min-height: 40px; padding: 7px 0; border-bottom: 1px solid #f2f3f4; }
.income-category-rank-row { width: 100%; border-top: 0; border-right: 0; border-left: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.income-category-rank-row:hover { background: #fafbfc; }
.income-category-rank-row:focus-visible { outline: 2px solid #f1a18a; outline-offset: -2px; }
.category-detail-rank-row { width: 100%; border-top: 0; border-right: 0; border-left: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.category-detail-rank-row:hover { background: #fafbfc; }
.category-detail-rank-row:focus-visible { outline: 2px solid #66b8ad; outline-offset: -2px; }
.account-detail-rank-row { width: 100%; border-top: 0; border-right: 0; border-left: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.account-detail-rank-row:hover { background: #fafbfc; }
.account-detail-rank-row:focus-visible { outline: 2px solid #66b8ad; outline-offset: -2px; }
.annual-rank-row:last-child { border-bottom: 0; }
.annual-rank-number { width: 12px; flex: 0 0 12px; color: #a1aab3; font-size: 8px; text-align: center; }
.annual-rank-icon { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border-radius: 7px; font-size: 13px; }
.annual-rank-icon .account-custom-icon { width: 18px; height: 18px; border-radius: 5px; }
.annual-rank-content { flex: 1; min-width: 0; }
.annual-rank-label { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: baseline; gap: 9px; }
.annual-rank-label strong { overflow: hidden; color: #586574; font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.annual-rank-label span { color: #9fa9b2; font-size: 8px; }
.annual-rank-label b { min-width: 68px; color: #596573; font-size: 9px; font-weight: 500; text-align: right; }
.annual-rank-track { height: 3px; margin-top: 5px; overflow: hidden; border-radius: 3px; background: #eff1f3; }
.annual-rank-track span { display: block; height: 100%; min-width: 2px; border-radius: inherit; }
.annual-expand-button { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: 8px; border: 0; background: #fff; color: #8994a0; font-size: 8px; cursor: pointer; }
.annual-expand-button:hover { color: var(--orange); }
.annual-trend-selected { display: flex; align-items: center; justify-content: flex-end; gap: 11px; padding: 5px 16px 0; color: #74808b; font-size: 8px; }
.annual-trend-selected strong { margin-right: auto; color: #87939e; font-weight: 500; }
.annual-trend-selected .income { color: #df664d; }
.annual-trend-selected .expense { color: #39aeb0; }
.annual-trend-controls { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px 2px; }
.annual-trend-controls > small { color: #8b969e; font-size: 9px; }
.annual-trend-controls > small span { color: #6c7d87; }
.annual-trend-mode { display: inline-flex; padding: 2px; border: 1px solid #e8edef; border-radius: 8px; background: #f7f9fa; }
.annual-trend-mode button { min-height: 27px; padding: 0 10px; border: 0; border-radius: 6px; background: transparent; color: #849099; font: inherit; font-size: 9px; cursor: pointer; }
.annual-trend-mode button.active { background: #fff; color: #3d7771; box-shadow: 0 1px 3px #1c30300e; }
.annual-trend-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 7px 16px 0; color: #83909a; font-size: 8px; }
.annual-trend-legend span { display: inline-flex; align-items: center; gap: 5px; }
.annual-trend-legend i { display: inline-block; width: 10px; height: 9px; border-radius: 2px; background: #e8664d; }
.annual-trend-legend i.expense { background: #42b8b3; }
.annual-trend-legend i.net { width: 13px; height: 0; border-top: 2px solid #6879b3; background: transparent; }
.annual-trend-legend i.reference { width: 13px; height: 0; border-top: 2px dashed #a3aab2; background: transparent; }
.annual-trend-legend i.ledger-start { width: 10px; height: 9px; border: 1px dashed #929fa6; background: #a9b3b526; }
.annual-trend-legend small { color: #9aa4ac; }
.annual-trend-bar.income { fill: #e8664d; }
.annual-trend-bar.expense { fill: #42b8b3; }
.annual-trend-bar.is-current { fill-opacity: .22; stroke-width: 1.4; stroke-dasharray: 3 2; }
.annual-trend-bar.income.is-current { stroke: #e8664d; }
.annual-trend-bar.expense.is-current { stroke: #42b8b3; }
.annual-trend-bar.is-forecast { fill-opacity: .2; stroke-width: 1; stroke-dasharray: 2 3; }
.annual-trend-bar.income.is-forecast { stroke: #e8664d; }
.annual-trend-bar.expense.is-forecast { stroke: #42b8b3; }
.annual-trend-zero { stroke: #cbd3d8; stroke-width: 1; }
.annual-reference-line { fill: none; stroke-width: 1.3; stroke-dasharray: 3 4; opacity: .75; }
.annual-reference-line.income { stroke: #e8664d; }
.annual-reference-line.expense { stroke: #42b8b3; }
.annual-net-line { fill: none; stroke: #6879b3; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.annual-net-line.is-forecast { stroke-dasharray: 5 4; opacity: .72; }
.annual-net-point { fill: #6879b3; stroke: #fff; stroke-width: 1.5; display: none; }
.annual-net-point.active { display: block; }
.annual-net-point.is-forecast { fill: #fff; stroke: #6879b3; stroke-dasharray: 2 1; }
.annual-trend-detail { min-height: 132px; margin: 0 15px 8px; padding: 11px 12px; border: 1px solid #e9edef; border-radius: 10px; background: #fafcfc; }
.annual-trend-detail.is-excluded { min-height: 0; }
.annual-trend-detail-head { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; color: #87939a; font-size: 8px; }
.annual-trend-detail-head strong { color: #40545b; font-size: 11px; }
.annual-trend-detail-head > span:last-child { margin-left: auto; }
.annual-trend-status { padding: 3px 6px; border-radius: 20px; background: #edf4f2; color: #568e7c; }
.annual-trend-status.current { background: #fff2e6; color: #bd7c42; }
.annual-trend-status.forecast { background: #eef1f8; color: #7885b2; }
.annual-trend-status.is-ledger-start-month { background: #f0f2f3; color: #76858c; }
.annual-trend-detail-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px 12px; }
.annual-trend-detail-grid > div { display: grid; gap: 3px; min-width: 0; }
.annual-trend-detail-grid > div > span { color: #8a969e; font-size: 8px; }
.annual-trend-detail-grid strong { overflow: hidden; color: #46565e; font-size: 11px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.annual-trend-detail-grid small { color: #9aa4aa; font-size: 8px; line-height: 1.3; }
.annual-trend-detail-grid small.is-up { color: #c87861; }
.annual-trend-detail-grid small.is-down { color: #4c9b83; }
.annual-trend-excluded-note { margin: 8px 0 0; color: #829098; font-size: 9px; line-height: 1.5; }
.annual-trend-start-excluded { color: #89949b; }
.annual-trend-excluded-note { margin: 8px 0 0; color: #829098; font-size: 9px; line-height: 1.5; }
.annual-trend-start-excluded { color: #89949b; }
.annual-trend-compare-note,.annual-trend-note { display: block; margin: 8px 16px 11px; color: #929da3; font-size: 8px; line-height: 1.5; }
.annual-trend-note { margin-top: 0; }
.annual-trend-card .annual-trend-scroll { overflow: hidden; }
.annual-trend-card .annual-trend-svg { min-width: 0; }
.engel-trend-card .annual-card-heading { align-items: flex-start; }
.engel-trend-card .annual-card-heading > div { display: grid; gap: 4px; }
.engel-trend-card .annual-card-heading > div span { color: #8c9aa3; font-size: 9px; }
.engel-trend-card .annual-card-heading > b { color: #d46f57; font-size: 18px; white-space: nowrap; }
.engel-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 0 16px; color: #7d8b94; font-size: 9px; }
.engel-legend span { display: inline-flex; align-items: center; gap: 5px; }
.engel-legend i { display: inline-block; width: 13px; height: 0; border-top: 2px solid #e48169; }
.engel-legend i.rolling { border-top-color: #55ab9a; }
.engel-legend i.stacked,.engel-legend i.other { width: 10px; height: 9px; border: 0; border-radius: 2px; background: #e48169; }
.engel-legend i.other { background: #6aafa1; }
.engel-legend i.reference-band { width: 12px; height: 8px; border: 1px solid #b7c8c4; border-radius: 2px; background: #c4d9d330; }
.engel-legend i.start-month { width: 10px; height: 9px; border: 1px dashed #929fa6; border-radius: 2px; background: #a9b3b526; }
.engel-legend small { flex-basis: 100%; color: #9aa4aa; font-size: 8px; }
.engel-chart-scroll { width: 100%; overflow-x: hidden; padding: 8px 12px 0; box-sizing: border-box; }
.engel-chart-scroll svg { display: block; min-width: 0; max-width: 100%; width: 100%; height: auto; overflow: visible; }
.engel-grid line { stroke: #e7ecee; stroke-dasharray: 3 4; }
.engel-grid text,.engel-month-label { fill: #91a0a7; font: 10px system-ui,sans-serif; }
.engel-month-line,.engel-rolling-line { fill: none; stroke: #e48169; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.engel-rolling-line { stroke: #55ab9a; }
.engel-reference-band { fill: #91b8ab24; stroke: none; }
.engel-other-bar { fill: #6aafa1; }
.engel-food-bar { fill: #e48169; }
.engel-stack.is-partial .engel-other-bar,.engel-stack.is-partial .engel-food-bar { fill-opacity: .42; stroke: #fff; stroke-width: .8; stroke-dasharray: 2 2; }
.engel-month-point { fill: #e48169; stroke: #fff; stroke-width: 1.5; }
.engel-month-point.is-selected { stroke: #394e57; stroke-width: 2; }
.engel-month-point.is-partial { fill: #fff; stroke: #e48169; stroke-width: 2; }
.engel-rolling-point { fill: #55ab9a; stroke: #fff; stroke-width: 1; }
.engel-detail-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 0 16px 11px; }
.engel-detail-grid article { display: grid; align-content: start; gap: 4px; min-width: 0; min-height: 68px; padding: 9px; border: 1px solid #e9efed; border-radius: 9px; background: #fbfdfc; }
.engel-detail-grid article small { color: #89979e; font-size: 8px; line-height: 1.35; }
.engel-detail-grid article strong { overflow-wrap: anywhere; color: #41565a; font-size: 10px; font-weight: 650; line-height: 1.35; }
.engel-detail-grid article span { color: #96a1a5; font-size: 8px; line-height: 1.35; }
[data-engel-month] { fill: transparent; cursor: pointer; pointer-events: all; }
[data-engel-month]:focus-visible { outline: none; stroke: #4caaa1; stroke-width: 2; }
.engel-selected { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin: 5px 16px 10px; padding: 11px 12px; border: 1px solid #e9eeed; border-radius: 9px; background: #f9fcfb; }
.engel-selected > div { display: grid; gap: 4px; }
.engel-selected strong { color: #425866; font-size: 11px; }
.engel-selected span { color: #536872; font-size: 10px; }
.engel-selected small { color: #8b9ba2; font-size: 9px; line-height: 1.5; }
.engel-breakdown { display: grid; gap: 7px; margin: 0 16px 11px; }
.engel-breakdown > strong { color: #5b6b72; font-size: 10px; }
.engel-category { display: grid; grid-template-columns: minmax(65px, 1fr) minmax(50px, 3fr) 80px; align-items: center; gap: 8px; color: #64757e; font-size: 9px; }
.engel-category i { height: 6px; overflow: hidden; border-radius: 8px; background: #ecf1f2; }
.engel-category i b { display: block; height: 100%; border-radius: inherit; background: #6cbaa7; }
.engel-category strong { text-align: right; font-weight: 600; }
.engel-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 16px 10px; }
.engel-actions button { min-height: 31px; font-size: 9px; }
.engel-method { display: block; margin: 0 16px 15px; color: #89979f; font-size: 8px; line-height: 1.6; }
.engel-empty { margin: 2px 16px 13px; padding: 14px; border-radius: 9px; background: #f7faf9; color: #7d8d96; font-size: 10px; }
.engel-filter-info { margin: 10px 13px 0; color: #4d9389; font-size: 10px; font-weight: 600; }
[data-theme="night"] .engel-grid line { stroke: #344250; }
[data-theme="night"] .engel-grid text,[data-theme="night"] .engel-month-label { fill: #9ba9b4; }
[data-theme="night"] .engel-month-point,[data-theme="night"] .engel-rolling-point { stroke: #1c2832; }
[data-theme="night"] .engel-month-point.is-partial { fill: #1c2832; stroke: #e48169; }
[data-theme="night"] .engel-selected { border-color: #344250; background: #1d2b33; }
[data-theme="night"] .engel-selected strong,[data-theme="night"] .engel-selected span,[data-theme="night"] .engel-breakdown > strong { color: #d0dfe1; }
[data-theme="night"] .engel-category { color: #a8b8bf; }
[data-theme="night"] .engel-category i { background: #344250; }
[data-theme="night"] .engel-empty { background: #1d2b33; color: #a8b8bf; }
[data-theme="night"] .engel-reference-band { fill: #64a99836; }
[data-theme="night"] .engel-detail-grid article { border-color: #344250; background: #1d2b33; }
[data-theme="night"] .engel-detail-grid article strong { color: #d0dfe1; }
[data-theme="night"] .engel-detail-grid article small,[data-theme="night"] .engel-detail-grid article span { color: #a0aeb5; }
[data-theme="night"] .engel-stack.is-partial .engel-other-bar,[data-theme="night"] .engel-stack.is-partial .engel-food-bar { stroke: #1c2832; }
.normal-expense-range-card { overflow: hidden; padding: 0; }
.normal-expense-range-card .annual-card-heading { padding-bottom: 10px; }
.normal-expense-range-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 16px 10px; }
.normal-expense-range-metrics > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 10px; border: 1px solid #e9efed; border-radius: 9px; background: #fbfdfc; }
.normal-expense-range-metrics span { color: #849198; font-size: 8px; }
.normal-expense-range-metrics strong { overflow-wrap: anywhere; color: #354b4b; font-size: 12px; font-weight: 650; line-height: 1.35; }
.normal-expense-progress-summary { display: grid; gap: 5px; margin: 0 16px 9px; padding: 10px 12px; border: 1px solid #e4eeea; border-radius: 10px; background: #f7fbf9; color: #687a7b; font-size: 9px; }
.normal-expense-progress-summary > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; }
.normal-expense-progress-summary > div strong { color: #344c49; font-size: 10px; }
.normal-expense-progress-summary > div span,.normal-expense-progress-summary p { margin: 0; color: #879398; }
.normal-expense-progress-summary > span { color: #526f68; font-weight: 650; }
.normal-expense-range-legend { display: flex; flex-wrap: wrap; gap: 6px 13px; margin: 0 16px 3px; color: #829098; font-size: 8px; }
.normal-expense-range-legend span { display: inline-flex; align-items: center; gap: 5px; }
.normal-expense-range-legend i { display: inline-block; width: 12px; height: 7px; border-radius: 2px; background: #62b19a; }
.normal-expense-range-legend i.is-band { border: 1px solid #a8d7c9; background: #e2f2ec; }
.normal-expense-range-legend i.is-median { height: 0; border-top: 2px dashed #e69976; background: transparent; }
.normal-expense-range-legend i.is-partial { border: 1px dashed #e69879; background: transparent; }
.normal-expense-range-legend i.is-point { width: 8px; height: 8px; border: 1px solid #fff; border-radius: 50%; background: #62b19a; box-shadow: 0 0 0 1px #62b19a; }
.normal-expense-range-legend i.is-start-month { width: 8px; height: 8px; border: 1px solid #fff; border-radius: 50%; background: #9aa7ad; box-shadow: 0 0 0 1px #9aa7ad; }
.normal-expense-range-legend i.is-missing { width: 7px; height: 7px; border: 1px solid #b6c0c3; border-radius: 50%; background: transparent; }
.normal-expense-range-legend i.is-future { width: 7px; height: 7px; border: 1px dashed #c7d0d2; border-radius: 50%; background: transparent; }
.normal-expense-range-scroll { width: 100%; overflow-x: auto; padding: 0 10px 5px; }
.normal-expense-range-svg { display: block; width: 100%; min-width: 480px; height: auto; }
.normal-expense-grid line { stroke: #e9efed; stroke-dasharray: 3 4; }
.normal-expense-grid text,.normal-expense-month { fill: #96a2a5; font: 8px system-ui,sans-serif; }
.normal-expense-range-band { fill: #66b69e20; stroke: none; }
.normal-expense-median-line { stroke: #e99a78; stroke-width: 1.5; stroke-dasharray: 5 4; }
.normal-expense-point { fill: #66b49c; stroke: #fff; stroke-width: 1.5; cursor: pointer; }
.normal-expense-point.is-high { fill: #e7866c; }
.normal-expense-point.is-low { fill: #80a9cc; }
.normal-expense-point.is-partial { fill: #fff; stroke: #e69879; stroke-width: 2; stroke-dasharray: 3 2; }
.normal-expense-point.is-selected { stroke: #344e4b; stroke-width: 2.5; }
.normal-expense-point.is-start-month { fill: #9aa7ad; }
.normal-expense-point.is-missing { fill: transparent; stroke: #c7d0d2; stroke-width: 1; stroke-dasharray: 2 2; pointer-events: none; }
.normal-expense-point.is-future { fill: transparent; stroke: #d7dfe0; stroke-width: 1; stroke-dasharray: 2 2; pointer-events: none; }
.normal-expense-section { margin: 4px 16px 8px; border-top: 1px solid #edf1ef; }
.normal-expense-section-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 0; border: 0; background: transparent; color: #536765; cursor: pointer; text-align: left; font: inherit; font-size: 9px; }
.normal-expense-range-card > .normal-expense-section-toggle { width: calc(100% - 32px); margin: 3px 16px 0; border-top: 1px solid #edf1ef; }
.normal-expense-section-toggle b { color: #5b9b88; font-size: 8px; font-weight: 600; }
.normal-expense-category-list { display: grid; gap: 6px; margin: 0 16px; padding: 0 0 9px; }
.normal-expense-backtest-list { display: grid; gap: 6px; padding: 0 0 9px; }
.normal-expense-category-row,.normal-expense-backtest-list > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 8px; padding: 8px 9px; border: 1px solid #edf1ef; border-radius: 8px; background: #fbfdfc; color: #7d8b8d; font-size: 8px; }
.normal-expense-category-row strong,.normal-expense-backtest-list strong { color: #415654; font-size: 9px; }
.normal-expense-category-row > span:nth-of-type(2),.normal-expense-category-row small,.normal-expense-backtest-list small { grid-column: 1 / -1; }
.normal-expense-category-row > span:nth-of-type(1),.normal-expense-backtest-list > div > span:nth-of-type(2) { color: #526f68; }
.normal-expense-category-row small,.normal-expense-backtest-list small,.normal-expense-backtest-teaser { color: #929da0; font-size: 8px; line-height: 1.5; }
.normal-expense-backtest-summary { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 0 0 7px; color: #71817e; font-size: 8px; }
.normal-expense-backtest-teaser { margin: 0 0 9px; }
.normal-expense-range-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; margin: 0 16px 7px; color: #87949a; font-size: 8px; }
.normal-expense-range-foot b { color: #61766f; font-weight: 650; }
.normal-expense-range-note { display: block; margin: 0 16px 13px; color: #98a3a8; font-size: 8px; line-height: 1.6; }
.normal-expense-range-empty { margin: 0 16px 10px; padding: 13px; border-radius: 9px; background: #f7faf9; color: #89969c; font-size: 9px; line-height: 1.6; }
[data-theme="night"] .normal-expense-range-metrics > div { border-color: #344250; background: #18242d; }
[data-theme="night"] .normal-expense-range-metrics span,[data-theme="night"] .normal-expense-range-legend,[data-theme="night"] .normal-expense-range-foot,[data-theme="night"] .normal-expense-range-note,[data-theme="night"] .normal-expense-progress-summary > div span,[data-theme="night"] .normal-expense-progress-summary p,[data-theme="night"] .normal-expense-category-row small,[data-theme="night"] .normal-expense-backtest-list small,[data-theme="night"] .normal-expense-backtest-teaser { color: #a0aeb5; }
[data-theme="night"] .normal-expense-range-metrics strong,[data-theme="night"] .normal-expense-range-foot b { color: #d4e0e2; }
[data-theme="night"] .normal-expense-progress-summary,[data-theme="night"] .normal-expense-category-row,[data-theme="night"] .normal-expense-backtest-list > div { border-color: #344250; background: #18242d; color: #a0aeb5; }
[data-theme="night"] .normal-expense-progress-summary > div strong,[data-theme="night"] .normal-expense-category-row strong,[data-theme="night"] .normal-expense-backtest-list strong,[data-theme="night"] .normal-expense-section-toggle { color: #d4e0e2; }
[data-theme="night"] .normal-expense-section { border-color: #344250; }
[data-theme="night"] .normal-expense-grid line { stroke: #344250; }
[data-theme="night"] .normal-expense-grid text,[data-theme="night"] .normal-expense-month { fill: #9ba9b4; }
[data-theme="night"] .normal-expense-range-band { fill: #46ae9e2e; }
[data-theme="night"] .normal-expense-point.is-partial { fill: #18242d; }
[data-theme="night"] .normal-expense-range-empty { background: #202e3a; color: #a0aeb5; }
.annual-trend-scroll { width: 100%; overflow-x: auto; padding: 5px 10px 10px; }
.annual-trend-svg { display: block; width: 100%; min-width: 320px; height: auto; overflow: visible; }
.annual-chart-grid line { stroke: #edf0f2; stroke-dasharray: 3 4; }
.annual-chart-grid text,.annual-chart-month { fill: #a2abb4; font: 9px system-ui,sans-serif; }
.annual-chart-month { font-size: 8px; }
.account-trend-card .annual-chart-grid text { font-size: 11px; }
.account-trend-card .annual-chart-month { font-size: 10px; }
.annual-income-point,.annual-expense-point,.net-assets-point { display: none; }
.annual-income-point.active,.annual-expense-point.active,.net-assets-point.active { display: block; }
.annual-chart-cursor { stroke: #d7dce1; stroke-width: 1.4; }
.annual-chart-hit-area { fill: transparent; cursor: pointer; pointer-events: all; }
.annual-income-line,.annual-expense-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.annual-income-line { stroke: #e8664d; }
.annual-expense-line { stroke: #42b8b3; }
.annual-income-point { fill: #e8664d; stroke: white; stroke-width: 2; }
.annual-expense-point { fill: #42b8b3; stroke: white; stroke-width: 2; }
.annual-account-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; }
.annual-pie-empty { padding: 22px 15px; color: #a0aab4; font-size: 9px; text-align: center; }
.annual-report-export { display: flex; justify-content: center; padding: 4px 0 1px; }
.annual-report-export .primary-button { height: 34px; padding: 0 16px; color: #586573; font-size: 9px; }
.report-tab-panel > .page-stack { animation: report-panel-in .24s ease both; }
@keyframes report-panel-in { from { opacity: .5; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
.report-export-actions { justify-content: flex-end; align-items: center; gap: 8px; padding: 10px 2px 2px; }
.report-export-label { margin-right: auto; color: #7d8994; font-size: 12px; font-weight: 650; }
.report-export-button { min-width: 58px; height: 32px; padding: 0 12px; border: 1px solid #dfe7e9; border-radius: 10px; background: linear-gradient(180deg, #fff, #f7fafb); color: #49636b; font-size: 11px; font-weight: 700; cursor: pointer; transition: .18s ease; }
.report-export-button:hover { border-color: #66b8ad; background: #edf8f6; color: #258f80; transform: translateY(-1px); box-shadow: 0 5px 14px rgba(50, 150, 135, .12); }
.report-export-button[data-report-export-format="pdf"] { border-color: #f0c7bd; color: #d26952; }
@media (max-width: 560px) { .report-export-actions { justify-content: stretch; flex-wrap: wrap; } .report-export-label { width: 100%; margin-bottom: 2px; } .report-export-button { flex: 1; } }
.annual-report-footer { display: flex; align-items: center; justify-content: space-between; padding: 7px 5px 2px; color: #a4adb5; font-size: 8px; }
.annual-report-footer strong { color: #687683; font-size: 9px; font-weight: 500; }
.category-report-stack { gap: 14px; }
.category-report-card { overflow: hidden; padding: 0; }
.category-report-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 16px 3px; }
.category-report-heading h2 { margin: 0; font-size: 12px; font-weight: 600; }
.category-report-heading > div { display: flex; align-items: center; gap: 12px; color: #a2abb4; font-size: 8px; white-space: nowrap; }
.category-report-heading > div b { margin-left: 4px; color: #596674; font-size: 10px; font-weight: 500; }
.category-report-card:first-child .category-report-heading > div span:first-child b { color: #42aeb4; }
.category-report-card:nth-child(2) .category-report-heading > div span:first-child b { color: #e67557; }
.category-donut-chart { width: 100%; display: flex; justify-content: center; padding: 0 5px; }
.category-donut-chart svg { display: block; width: min(100%,520px); height: auto; overflow: visible; }
.category-donut-segment { stroke-linecap: butt; }
.category-donut-label path { fill: none; stroke-width: 1; }
.category-donut-label text { fill: #74808b; font: 13px system-ui,sans-serif; }
.category-donut-center-label { fill: #7d8993; font: 11px system-ui,sans-serif; }
.category-donut-center-total { fill: #4d5a67; font: 14px system-ui,sans-serif; font-weight: 600; }
.category-report-card .annual-ranking-list { padding-top: 4px; }
.category-report-card .annual-rank-label b { font-size: 10px; }
.category-grid.income-picker { display: block; }
.income-classification-picker .primary-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.income-classification-picker .primary-category-choice.selected { border-color: #b8e3dd; background: #f1fbf8; color: #328f83; }
.income-classification-picker .primary-category-choice.selected .primary-category-icon { background: #ddf4ee; }
.income-classification-picker .secondary-category-choice.selected { border-color: #8dcfc5; background: #f1fbf8; color: #328f83; }
.account-report-stack { gap: 14px; }
.account-asset-insight-card,.account-balance-volatility-card { overflow: hidden; padding-bottom: 12px; }
.account-asset-insight-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 0 16px 10px; }
.account-asset-insight-metrics article { display: grid; min-width: 0; gap: 4px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.account-asset-insight-metrics small,.account-asset-insight-breakdown span { color: #96a1aa; font-size: 8px; }
.account-asset-insight-metrics strong { overflow: hidden; color: #52616d; font-size: 15px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.account-asset-insight-metrics strong.is-positive,.account-asset-insight-breakdown b.is-positive { color: #43a38f; }
.account-asset-insight-metrics strong.is-negative,.account-asset-insight-breakdown b.is-negative { color: #df745d; }
.account-asset-insight-metrics article > span { overflow: hidden; color: #9ba5af; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-asset-insight-breakdown { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 16px 8px; padding: 9px 10px; border-radius: 9px; background: #f7f9fa; }
.account-asset-insight-breakdown > div { display: grid; min-width: 0; gap: 4px; }
.account-asset-insight-breakdown b { overflow: hidden; color: #566572; font-size: 10px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.asset-concentration-list { display: grid; padding: 0 16px; }
.asset-concentration-row { display: grid; grid-template-columns: 18px minmax(0,1fr) auto 44px; align-items: center; gap: 7px; padding: 8px 0; border-bottom: 1px solid #f1f3f4; }
.asset-concentration-row:last-child { border-bottom: 0; }
.asset-concentration-rank { color: #a3adb5; font-size: 8px; }
.asset-concentration-row > strong { overflow: hidden; color: #596775; font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.asset-concentration-row > strong .account-custom-icon { width: 15px; height: 15px; margin-right: 3px; vertical-align: -3px; }
.asset-concentration-row > span,.asset-concentration-row > b { color: #74818c; font-size: 8px; text-align: right; white-space: nowrap; }
.asset-concentration-row > i,.account-balance-volatility-main > i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #edf1f2; }
.asset-concentration-row > i { grid-column: 2 / -1; }
.asset-concentration-row > i em,.account-balance-volatility-main > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#73c5b0,#4b9c86); }
.account-asset-insight-note { display: block; margin: 8px 16px 0; color: #99a4ad; font-size: 7px; line-height: 1.55; }
.account-balance-volatility-list { display: grid; padding: 0 16px; }
.account-balance-volatility-row { display: grid; grid-template-columns: 25px minmax(0,1fr) auto; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid #f1f3f4; }
.account-balance-volatility-row:last-child { border-bottom: 0; }
.account-balance-volatility-icon { display: grid; width: 24px; height: 24px; place-items: center; overflow: hidden; border-radius: 7px; background: #f2f6f7; font-size: 13px; }
.account-balance-volatility-icon .account-custom-icon { width: 18px; height: 18px; border-radius: 5px; }
.account-balance-volatility-main { display: grid; min-width: 0; gap: 4px; }
.account-balance-volatility-main > strong { overflow: hidden; color: #596775; font-size: 9px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.account-balance-volatility-main > small,.account-balance-volatility-value > small { color: #9ba5af; font-size: 7px; }
.account-balance-volatility-value { display: grid; gap: 3px; text-align: right; }
.account-balance-volatility-value > b { color: #586674; font-size: 10px; font-variant-numeric: tabular-nums; }
.account-balance-volatility-main > i em { background: linear-gradient(90deg,#f0c46c,#e28b66); }
.account-report-stack .cash-reserve-card { margin-top: 0; }
.account-report-stack .cash-runway-card { margin-top: 0; }
.account-forecast-stack { display: grid; gap: 14px; }
.account-forecast-card { display: grid; gap: 9px; padding-bottom: 11px; }
.account-forecast-card .annual-card-heading > div { display: grid; gap: 3px; }
.account-forecast-card .annual-card-heading > div span { color: #9ca7b0; font-size: 8px; }
.account-forecast-card .annual-card-heading > strong { font-size: 13px; white-space: nowrap; }
.account-forecast-card .annual-card-heading > strong.is-positive { color: #d86c52; }
.account-forecast-card .annual-card-heading > strong.is-negative { color: #299a7c; }
.account-forecast-summary { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin: 0 15px 1px; padding: 8px 10px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; color: #8996a1; font-size: 8px; }
.account-forecast-summary span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-forecast-summary b { color: #52616c; font-size: 10px; }
.account-forecast-summary em { flex: 0 0 auto; font-size: 8px; font-style: normal; font-weight: 600; white-space: nowrap; }
.account-forecast-summary em.is-positive { color: #d86c52; }
.account-forecast-summary em.is-negative { color: #299a7c; }
.account-forecast-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 0 15px; }
.account-forecast-row { min-width: 0; padding: 8px 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; }
.account-forecast-row-head { display: grid; grid-template-columns: 53px minmax(0,1fr) auto; align-items: baseline; gap: 6px; min-width: 0; }
.account-forecast-row-head strong { color: #52606d; font-size: 9px; white-space: nowrap; }
.account-forecast-row-head span { overflow: hidden; color: #99a5ae; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-forecast-row-head b { font-size: 9px; font-weight: 650; white-space: nowrap; }
.account-forecast-row-head b.is-positive { color: #d86c52; }
.account-forecast-row-head b.is-negative { color: #299a7c; }
.account-forecast-track { height: 5px; margin-top: 7px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.account-forecast-track i { display: block; height: 100%; min-width: 2px; border-radius: inherit; }
.account-forecast-track i.is-positive { background: #d86c52; }
.account-forecast-track i.is-negative { background: #299a7c; }
.account-forecast-row > small { display: block; margin-top: 5px; overflow: hidden; color: #9aa5ae; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-forecast-note { display: block; padding: 0 15px; color: #98a3ac; font-size: 8px; line-height: 1.5; }
.account-forecast-combined-card { gap: 8px; }
.account-forecast-heading-values { display: grid; justify-items: end; gap: 3px; }
.account-forecast-heading-values strong { font-size: 10px; white-space: nowrap; }
.account-forecast-heading-values strong:first-child { color: #668fe9; }
.account-forecast-heading-values strong:last-child { color: #46ae9e; }
.account-forecast-legend { display: flex; align-items: center; gap: 14px; padding: 1px 15px 0; color: #8996a1; font-size: 8px; }
.account-forecast-legend span { display: inline-flex; align-items: center; gap: 5px; }
.account-forecast-legend i,.account-forecast-detail-row i { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 2px; background: #668fe9; }
.account-forecast-legend i.cash,.account-forecast-detail-row i.cash { background: #46ae9e; }
.account-forecast-chart { display: grid; grid-template-columns: repeat(12,minmax(28px,1fr)); align-items: end; gap: 5px; min-height: 173px; margin: 2px 15px 0; padding: 23px 6px 0; border-bottom: 1px solid #e9eef0; background: repeating-linear-gradient(to bottom,transparent 0,transparent 35px,#eef2f3 36px); overflow-x: auto; }
.account-forecast-column { display: grid; grid-template-rows: 17px minmax(0,1fr) 15px; align-items: end; min-width: 28px; height: 148px; text-align: center; }
.account-forecast-column-values { display: flex; justify-content: center; gap: 2px; min-width: 0; overflow: hidden; color: #9ca7b0; font-size: 6px; line-height: 1; white-space: nowrap; }
.account-forecast-column-values span:first-child { color: #668fe9; }
.account-forecast-column-values span:last-child { color: #46ae9e; }
.account-forecast-bars { display: flex; align-items: end; justify-content: center; gap: 2px; height: 100%; min-height: 2px; }
.account-forecast-bar { display: block; width: min(13px,1.7vw); min-height: 2px; border-radius: 4px 4px 0 0; }
.account-forecast-bar.total { background: linear-gradient(180deg,#9bb9f3,#668fe9); }
.account-forecast-bar.cash { background: linear-gradient(180deg,#8bd2c6,#46ae9e); }
.account-forecast-bar.is-negative { opacity: .62; }
.account-forecast-column > small { color: #8996a1; font-size: 7px; white-space: nowrap; }
.account-forecast-detail-list { display: grid; gap: 1px; margin: 0 15px; overflow: hidden; border: 1px solid #edf0f2; border-radius: 8px; background: #edf0f2; }
.account-forecast-detail-list[hidden] { display: none !important; }
.account-forecast-detail-row { display: grid; grid-template-columns: 66px minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 7px; min-height: 27px; padding: 0 9px; background: #fff; color: #667482; font-size: 8px; }
.account-forecast-detail-row strong { color: #52606d; font-size: 8px; font-weight: 600; white-space: nowrap; }
.account-forecast-detail-row span { display: inline-flex; align-items: center; gap: 4px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-forecast-detail-row span:nth-child(2) { color: #668fe9; }
.account-forecast-detail-row span:nth-child(3) { color: #46ae9e; }
.account-forecast-detail-heading { min-height: 25px; background: #f8fafb; color: #99a4ad; }
.account-forecast-detail-heading span { color: #8996a1 !important; font-size: 7px; }
.account-forecast-detail-toggle { display: flex; align-items: center; justify-content: center; gap: 6px; width: calc(100% - 30px); min-height: 30px; margin: 0 15px; padding: 6px 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; color: #8996a1; font-size: 8px; cursor: pointer; }
.account-forecast-detail-toggle:hover { border-color: #dce8eb; background: #f7fbfa; color: #4d9c8d; }
.account-forecast-detail-toggle span { color: #aab4bc; font-size: 11px; line-height: 1; }
.account-forecast-band-section { display: grid; gap: 7px; margin: 2px 15px 0; padding: 11px 10px 9px; border: 1px solid #e8efed; border-radius: 9px; background: #fbfdfc; }
.account-forecast-band-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.account-forecast-band-heading > div { display: grid; gap: 3px; }
.account-forecast-band-heading strong { color: #43565b; font-size: 9px; }
.account-forecast-band-heading small,.account-forecast-band-heading > span { color: #94a1a5; font-size: 7px; }
.account-forecast-band-legend { display: flex; flex-wrap: wrap; gap: 12px; color: #819095; font-size: 7px; }
.account-forecast-band-legend span { display: inline-flex; align-items: center; gap: 5px; }
.account-forecast-band-legend i { display: inline-block; width: 12px; height: 3px; border-radius: 3px; background: #46ae9e; }
.account-forecast-band-legend i.is-range { height: 8px; border: 1px solid #9dd4c8; background: #dff2ec; }
.account-forecast-band-scroll { width: 100%; overflow-x: auto; }
.account-forecast-band-svg { display: block; width: 100%; min-width: 520px; height: auto; }
.account-forecast-band-grid line { stroke: #e9efed; stroke-dasharray: 3 4; }
.account-forecast-band-grid text,.account-forecast-band-month { fill: #98a5a8; font: 8px system-ui,sans-serif; }
.account-forecast-band-area { fill: #46ae9e24; stroke: none; }
.account-forecast-band-line { fill: none; stroke: #46ae9e; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.account-forecast-band-point { fill: #46ae9e; stroke: #fff; stroke-width: 1.6; }
.account-forecast-band-point-target { cursor: pointer; outline: none; }
.account-forecast-band-point-hit { fill: transparent; stroke: transparent; pointer-events: all; }
.account-forecast-band-point-target:focus .account-forecast-band-point-hit { stroke: #46ae9e88; stroke-width: 2; }
.account-forecast-band-point-target.is-selected .account-forecast-band-point { fill: #ef795e; stroke-width: 2; }
.account-forecast-band-selection { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 12px; min-height: 30px; padding: 6px 8px; border-radius: 7px; background: #f2f8f5; color: #71817f; font-size: 8px; }
.account-forecast-band-selection > strong { color: #465c59; }
.account-forecast-band-selection b { color: #438e7a; font-size: 9px; }
.account-forecast-band-selection > span:first-child:last-child { color: #94a1a5; }
.account-forecast-band-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 10px; color: #829195; font-size: 7px; }
.account-forecast-band-summary b { color: #4b706b; font-size: 8px; }
.account-forecast-band-note,.account-forecast-band-empty { margin: 0; color: #98a3a7; font-size: 7px; line-height: 1.55; }
.account-forecast-band-empty { padding: 9px 10px; border-radius: 7px; background: #f4f8f6; }
[data-theme="night"] .account-forecast-band-section { border-color: #344250; background: #18242d; }
[data-theme="night"] .account-forecast-band-heading strong { color: #d4e0e2; }
[data-theme="night"] .account-forecast-band-grid line { stroke: #344250; }
[data-theme="night"] .account-forecast-band-grid text,[data-theme="night"] .account-forecast-band-month { fill: #9ba9b4; }
[data-theme="night"] .account-forecast-band-area { fill: #46ae9e2e; }
[data-theme="night"] .account-forecast-band-selection { background: #202e3a; color: #aab8bd; }
[data-theme="night"] .account-forecast-band-selection > strong { color: #d4e0e2; }
[data-theme="night"] .account-forecast-band-empty { background: #202e3a; }

/* Historical forecast backtest */
.forecast-backtest-card { overflow: hidden; }
.forecast-backtest-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 18px 14px; }
.forecast-backtest-summary > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 12px; border: 1px solid #e8edee; border-radius: 10px; background: #fafcfb; }
.forecast-backtest-summary span { color: #7c8b94; font-size: 9px; }
.forecast-backtest-summary strong { color: #293c46; font-size: 16px; overflow-wrap: anywhere; }
.forecast-backtest-summary small { color: #99a5ac; font-size: 8px; line-height: 1.5; }
.forecast-backtest-summary .is-positive,.forecast-backtest-row .is-positive,.forecast-backtest-contribution .is-positive { color: #d86c52; }
.forecast-backtest-summary .is-negative,.forecast-backtest-row .is-negative,.forecast-backtest-contribution .is-negative { color: #299a7c; }
.forecast-backtest-bias { display: grid; gap: 4px; margin: 0 18px 13px; padding: 10px 12px; border: 1px solid #f0dfb9; border-radius: 9px; background: #fffbf2; }
.forecast-backtest-bias strong { color: #a97520; font-size: 10px; }
.forecast-backtest-bias span { color: #87775d; font-size: 9px; line-height: 1.5; }
.forecast-backtest-list { display: grid; gap: 7px; margin: 0 18px 13px; }
.forecast-backtest-row { border: 1px solid #e8edee; border-radius: 9px; background: #fff; }
.forecast-backtest-row summary { display: grid; grid-template-columns: 75px minmax(0,1fr) minmax(0,1fr) auto 75px 10px; align-items: center; gap: 8px; padding: 10px 12px; cursor: pointer; list-style: none; }
.forecast-backtest-row summary::-webkit-details-marker { display: none; }
.forecast-backtest-row summary::after { content: '⌄'; color: #9aabae; justify-self: end; }
.forecast-backtest-row[open] summary::after { content: '⌃'; }
.forecast-backtest-row summary strong { color: #34454e; font-size: 10px; }
.forecast-backtest-row summary span { color: #71818a; font-size: 9px; white-space: nowrap; }
.forecast-backtest-row summary b { font-size: 10px; white-space: nowrap; }
.forecast-backtest-row summary em { color: #8a989f; font-size: 8px; font-style: normal; white-space: nowrap; }
.forecast-backtest-breakdown { display: grid; gap: 0; padding: 0 12px 9px; border-top: 1px solid #edf0f1; }
.forecast-backtest-breakdown p { margin: 8px 0 3px; color: #91a0a6; font-size: 8px; }
.forecast-backtest-contribution { display: grid; grid-template-columns: 100px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid #f1f3f3; font-size: 9px; }
.forecast-backtest-contribution:last-child { border-bottom: 0; }
.forecast-backtest-contribution span { color: #475b64; }
.forecast-backtest-contribution small { color: #93a0a7; font-size: 8px; }
.forecast-backtest-contribution strong { white-space: nowrap; }
.forecast-backtest-note { display: block; margin: 0 18px 15px; color: #94a0a7; font-size: 8px; line-height: 1.6; }
.forecast-backtest-empty { margin: 0 18px 14px; padding: 14px; border-radius: 9px; background: #f8faf9; color: #829198; font-size: 10px; line-height: 1.6; }
.forecast-backtest-older { display: grid; gap: 7px; }
.forecast-backtest-older > summary { padding: 9px; border: 1px solid #e8edee; border-radius: 8px; background: #fafcfb; color: #78919a; font-size: 9px; text-align: center; cursor: pointer; list-style: none; }
.forecast-backtest-older > summary::-webkit-details-marker { display: none; }
.forecast-backtest-older[open] > summary span { display: inline-block; transform: rotate(180deg); }
.account-report-summary-card { position: relative; min-height: 166px; overflow: hidden; padding: 19px 21px; border: 0; background: linear-gradient(112deg,#ff7b12,#fb864f 54%,#f4b6a8); color: white; box-shadow: 0 8px 20px #ef843326; }
.account-report-summary-card::before { content: ''; position: absolute; top: -55px; left: 31%; width: 245px; height: 245px; border: 1px solid #ffffff28; border-radius: 50%; box-shadow: 0 0 0 18px #ffffff0b,0 0 0 39px #ffffff0a; }
.account-report-summary-content { position: relative; z-index: 1; width: min(70%,500px); }
.account-report-summary-content .annual-summary-label { margin-top: 14px; }
.account-report-summary-content > strong { display: block; font-size: 30px; line-height: 1.1; font-weight: 600; letter-spacing: -.6px; }
.account-report-summary-card .annual-summary-foot { margin-top: 12px; }
.account-report-art { position: absolute; right: -3px; top: 0; width: 42%; height: 100%; overflow: hidden; background: linear-gradient(135deg,#ffb36b35,#f5d8e23a); }
.account-report-art::before,.account-report-art::after { content: ''; position: absolute; border-radius: 50%; border: 1px solid #ffffff45; }
.account-report-art::before { width: 210px; height: 210px; right: -46px; top: -92px; box-shadow: 0 0 0 13px #ffffff10,0 0 0 27px #ffffff10; }
.account-report-art::after { width: 114px; height: 114px; right: 14px; bottom: -75px; background: #ffdaae28; }
.account-report-art span { position: absolute; z-index: 1; right: 30%; top: 35%; width: 75px; height: 75px; border-radius: 48% 52% 44% 56%; background: linear-gradient(135deg,#ffeddd,#fff9ee); box-shadow: 19px 15px 0 -7px #f5d3c4; transform: rotate(22deg); }
.account-report-art i { position: absolute; z-index: 2; right: 38%; top: 49%; width: 6px; height: 6px; border-radius: 50%; background: #92918e; box-shadow: 25px 3px 0 #92918e; }
.account-trend-card { padding-bottom: 3px; }
.account-trend-selected { justify-content: flex-end; }
.account-trend-selected > strong { margin-right: auto; }
.net-assets-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 8px; background: #303944; color: #e6ebf1; font-size: 8px; }
.net-assets-chip::first-letter { color: #668ef0; }
.net-assets-line { fill: none; stroke: #5b89eb; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.net-assets-point { fill: #5b89eb; stroke: white; stroke-width: 2; }
.net-assets-bar { fill: linear-gradient(180deg,#b9d2ff,#6f9cf0); fill: #9abcf5; opacity: .72; }
.net-assets-bar.is-current { fill: #68b6a1; opacity: .86; }
.net-assets-bar.is-forecast { fill: #aebdca; opacity: .35; stroke: #8293a0; stroke-dasharray: 3 3; }
.net-assets-bar.is-negative { fill: #d8755e; opacity: .82; }
.net-assets-growth-line { fill: none; stroke: #ed825f; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.net-assets-growth-line-segment { stroke: #ed825f; stroke-width: 2.5; stroke-linecap: round; }
.net-assets-growth-line-segment.is-forecast { stroke: #a6b4bf; stroke-dasharray: 4 4; }
.net-assets-zero-line { stroke: #aeb7bf; stroke-width: 1; stroke-dasharray: 3 3; }
.annual-chart-month.is-missing { fill: #c4cbd1; }
.net-assets-growth-point { fill: #ed825f; stroke: white; stroke-width: 2; opacity: .45; }
.net-assets-growth-point.is-forecast { fill: #a6b4bf; stroke-dasharray: 2 2; }
.net-assets-growth-point.active { opacity: 1; }
.net-assets-period-status { flex-basis: 100%; color: #95a0a9; font-size: 8px; text-align: right; }
.net-assets-growth-axis { fill: #c18472; font: 10px system-ui,sans-serif; }
.net-assets-growth-chip { display: inline-flex; align-items: center; gap: 4px; padding: 7px 10px; border-radius: 8px; background: #fff2ed; color: #cb7058; font-size: 8px; }
.net-assets-chip i,.net-assets-growth-chip i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #5b89eb; }
.net-assets-growth-chip i { background: #ed825f; }
.net-assets-month-details { margin: 0 13px 12px; border-top: 1px solid #eef1f3; color: #697784; font-size: 11px; }
.net-assets-month-details > summary { padding: 12px 2px 8px; color: #5c6873; font-weight: 650; cursor: pointer; }
.net-assets-month-details > small { display: block; padding: 8px 2px 2px; color: #9aa5ae; font-size: 9px; line-height: 1.5; }
.net-assets-month-detail-list { display: grid; gap: 6px; }
.net-assets-month-detail,.net-assets-month-empty { border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.net-assets-month-detail > summary { display: flex; justify-content: space-between; gap: 8px; padding: 9px 10px; cursor: pointer; list-style: none; }
.net-assets-month-detail > summary::-webkit-details-marker { display: none; }
.net-assets-month-detail > summary strong { color: #47535f; font-size: 10px; }
.net-assets-month-detail > summary span { color: #8b97a1; font-size: 9px; text-align: right; }
.net-assets-month-empty { display: flex; justify-content: space-between; padding: 9px 10px; color: #9ba5ae; font-size: 9px; }
.net-assets-month-empty strong { color: #87939e; }
.net-assets-detail-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 0 10px 10px; }
.net-assets-detail-metrics > div { display: grid; gap: 3px; padding: 7px; border-radius: 8px; background: #f2f5f7; }
.net-assets-detail-metrics small,.net-assets-contribution > small { color: #8e99a3; font-size: 8px; }
.net-assets-detail-metrics b { color: #52606c; font-size: 9px; font-weight: 650; }
.net-assets-detail-metrics b.is-positive,.net-assets-contribution-row b.is-positive { color: #36977e; }
.net-assets-detail-metrics b.is-negative,.net-assets-contribution-row b.is-negative { color: #d36f59; }
.net-assets-contribution { display: grid; gap: 6px; padding: 8px 10px 11px; border-top: 1px solid #edf0f2; }
.net-assets-contribution > strong { color: #56636e; font-size: 9px; }
.net-assets-contribution-row { display: grid; grid-template-columns: minmax(70px,1fr) auto minmax(70px,1.4fr); align-items: center; gap: 8px; font-size: 8px; }
.net-assets-contribution-row > span { color: #8a96a0; }
.net-assets-contribution-row > b { font-size: 8px; }
.net-assets-contribution-row > i { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.net-assets-contribution-row > i > em { display: block; height: 100%; border-radius: inherit; background: #55ad95; }
.net-assets-contribution-row > i > em.is-negative { background: #d97c65; }
.net-assets-contribution-empty { margin: 0; color: #9aa5ae; font-size: 9px; }
.account-report-ranking { padding-top: 4px; }
.account-report-ranking .annual-rank-row { min-height: 43px; }
.account-report-ranking .annual-rank-label b { font-size: 10px; }
.account-behavior-card { overflow: hidden; padding: 0 0 7px; }
.account-behavior-card .annual-card-heading > div { display: grid; gap: 3px; }
.account-behavior-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.account-behavior-card .annual-card-heading > b { color: #71808c; font-size: 9px; font-weight: 600; white-space: nowrap; }
.account-behavior-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; padding: 2px 10px 5px; }
.account-behavior-item { display: grid; grid-template-columns: 28px minmax(0,1fr) auto 9px; align-items: center; gap: 7px; min-width: 0; padding: 9px 6px; border: 0; border-bottom: 1px solid #eef1f3; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.account-behavior-item:hover { background: #fbfcfd; }
.account-behavior-icon { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 8px; background: #f5f7f9; font-size: 13px; }
.account-behavior-copy { display: grid; min-width: 0; gap: 3px; }
.account-behavior-copy strong { overflow: hidden; color: #4f5e6b; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.account-behavior-copy strong i { margin-left: 4px; color: #a4adb5; font-size: 7px; font-style: normal; font-weight: 500; }
.account-behavior-copy small { overflow: hidden; color: #929ea8; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-behavior-meta { display: grid; justify-items: end; gap: 3px; min-width: 0; }
.account-behavior-meta em { padding: 3px 5px; border-radius: 5px; background: #edf2f5; color: #71808b; font-size: 7px; font-style: normal; font-weight: 600; white-space: nowrap; }
.account-behavior-meta em.liability { background: #fff0ea; color: #c56854; }
.account-behavior-meta em.reserve { background: #edf4ff; color: #6284b7; }
.account-behavior-meta em.idle { background: #f1f3f4; color: #85919a; }
.account-behavior-meta em.transfer { background: #f2efff; color: #7661b2; }
.account-behavior-meta em.income { background: #fff0eb; color: #d36e52; }
.account-behavior-meta em.expense { background: #ebf6f1; color: #478d76; }
.account-behavior-meta em.mixed { background: #eef2f5; color: #657583; }
.account-behavior-meta small { overflow: hidden; max-width: 130px; color: #a1abb3; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-behavior-chevron { color: #aab3ba; font-size: 13px; }
.monthly-report-stack { gap: 13px; }
.monthly-report-card { overflow: hidden; padding: 0; }
.fund-purpose-summary-card .annual-card-heading > div { display: grid; gap: 3px; }
.fund-purpose-summary-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.fund-purpose-summary-card .annual-card-heading > b { color: #53616e; font-size: 10px; font-weight: 600; white-space: nowrap; }
.fund-purpose-summary-list { display: grid; gap: 1px; padding: 2px 14px 7px; }
.fund-purpose-summary-row { display: grid; grid-template-columns: 28px minmax(54px,.7fr) minmax(40px,1fr) auto 31px; align-items: center; gap: 7px; min-height: 35px; border-bottom: 1px solid #f0f2f4; }
.fund-purpose-summary-row:last-child { border-bottom: 0; }
.fund-purpose-summary-row > strong { overflow: hidden; color: #596673; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-summary-row > i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #edf1f3; }
.fund-purpose-summary-row > i > b { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #74aa92; }
.fund-purpose-summary-row.optional > i > b { background: #7790d5; }
.fund-purpose-summary-row.enjoyment > i > b { background: #d98aa9; }
.fund-purpose-summary-row.investment > i > b { background: #d5a94d; }
.fund-purpose-summary-row.debt > i > b { background: #df8b73; }
.fund-purpose-summary-row.unmarked > i > b { background: #b7c0c8; }
.fund-purpose-summary-row > em { color: #586571; font-size: 9px; font-style: normal; font-weight: 600; white-space: nowrap; }
.fund-purpose-summary-row > small { color: #a0aab3; font-size: 7px; text-align: right; white-space: nowrap; }
.fund-purpose-summary-note { display: block; padding: 4px 14px 11px; color: #9aa5ae; font-size: 8px; line-height: 1.55; }
.fund-purpose-summary-empty { padding: 12px 0 9px; color: #a0aab3; font-size: 8px; text-align: center; }
.category-fund-purpose-card .fund-purpose-summary-row { grid-template-columns: 28px minmax(54px,.7fr) minmax(40px,1fr) auto 52px; }
.category-fund-purpose-card .fund-purpose-summary-row > small { overflow: hidden; text-overflow: ellipsis; }
.category-fund-purpose-card .fund-purpose-summary-item { padding: 2px 0 5px; border-bottom: 1px solid #f0f2f4; }
.category-fund-purpose-card .fund-purpose-summary-item:last-child { border-bottom: 0; }
.category-fund-purpose-card .fund-purpose-summary-row { border-bottom: 0; }
.fund-purpose-comparison-line,.fund-purpose-income-line { display: block; margin: 1px 0 0 35px; color: #909ca6; font-size: 7px; line-height: 1.45; }
.fund-purpose-income-line { color: #73907f; }
.fund-purpose-income-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 3px 14px 7px; }
.fund-purpose-income-summary article { display: grid; min-width: 0; gap: 3px; padding: 7px; border: 1px solid #edf1ef; border-radius: 8px; background: #f8fbf9; }
.fund-purpose-income-summary small { color: #929da6; font-size: 7px; line-height: 1.35; }
.fund-purpose-income-summary strong { overflow: hidden; color: #477f6b; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-trend { margin: 0 14px 12px; padding: 9px 8px 7px; border: 1px solid #eef1f2; border-radius: 9px; background: #fbfcfc; }
.fund-purpose-trend-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 3px; }
.fund-purpose-trend-heading strong { color: #566472; font-size: 8px; font-weight: 650; }
.fund-purpose-trend-heading small { overflow: hidden; color: #9aa5ae; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-trend-svg { display: block; width: 100%; height: auto; overflow: visible; }
.fund-purpose-trend-svg line { stroke: #e5eaec; stroke-dasharray: 3 3; stroke-width: .7; vector-effect: non-scaling-stroke; }
.fund-purpose-trend-svg text { fill: #9aa5ae; font: 7px system-ui,sans-serif; }
.fund-purpose-trend-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 5px 12px; color: #83909a; font-size: 7px; }
.fund-purpose-trend-legend span { display: inline-flex; align-items: center; gap: 4px; }
.fund-purpose-trend-legend i { width: 8px; height: 8px; border-radius: 2px; background: #74aa92; }
.fund-purpose-trend-legend .optional i { background: #7790d5; }
.fund-purpose-trend-legend .enjoyment i { background: #d98aa9; }
.category-fund-purpose-card .fund-purpose-summary-row { width: 100%; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.category-fund-purpose-card .fund-purpose-summary-row:hover { background: #f8faf9; }
.category-fund-purpose-card .fund-purpose-summary-row:focus-visible,.fund-purpose-trend-month:focus-visible { outline: 2px solid #72a991; outline-offset: 2px; }
.fund-purpose-summary-row > small { line-height: 1.25; }
.fund-purpose-coverage { display: grid; grid-template-columns: .85fr 1.3fr 1.15fr; gap: 7px; margin: 2px 14px 10px; }
.fund-purpose-coverage > div { display: grid; min-width: 0; gap: 3px; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.fund-purpose-coverage small,.fund-purpose-coverage span { color: #929da6; font-size: 7px; line-height: 1.4; }
.fund-purpose-coverage strong { overflow: hidden; color: #46545e; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-analysis-block { margin: 0 14px 10px; padding: 9px 9px 7px; border: 1px solid #eef1f2; border-radius: 9px; background: #fbfcfc; }
.fund-purpose-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.fund-purpose-section-heading strong { color: #566472; font-size: 8px; font-weight: 650; }
.fund-purpose-section-heading small,.fund-purpose-analysis-note { color: #929da6; font-size: 7px; line-height: 1.45; }
.fund-purpose-contribution-list { display: grid; gap: 5px; }
.fund-purpose-contribution-row { display: grid; grid-template-columns: minmax(42px,.75fr) minmax(40px,1fr) auto auto; align-items: center; gap: 7px; min-height: 16px; }
.fund-purpose-contribution-row > strong { overflow: hidden; color: #5b6873; font-size: 7px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-contribution-row > i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #edf1f2; }
.fund-purpose-contribution-row > i > b { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #8e9da6; }
.fund-purpose-contribution-row.is-increase > i > b { background: #d98a79; }
.fund-purpose-contribution-row.is-decrease > i > b { background: #72a991; }
.fund-purpose-contribution-row > span,.fund-purpose-contribution-row > small { color: #788590; font-size: 7px; white-space: nowrap; }
.fund-purpose-analysis-note { display: block; margin-top: 6px; }
.fund-purpose-matrix { display: grid; gap: 2px; }
.fund-purpose-matrix-row { display: grid; grid-template-columns: minmax(76px,1.15fr) repeat(3,minmax(0,1fr)); align-items: center; gap: 4px; min-height: 28px; border-bottom: 1px solid #edf0f2; }
.fund-purpose-matrix-row:last-child { border-bottom: 0; }
.fund-purpose-matrix-row > strong { overflow: hidden; color: #5d6a75; font-size: 7px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-matrix-row > span { display: grid; min-width: 0; gap: 1px; justify-items: center; color: #64717b; font-size: 7px; }
.fund-purpose-matrix-row > span b { overflow: hidden; max-width: 100%; font-size: 7px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-matrix-row > span small { color: #9aa4ac; font-size: 6px; }
.fund-purpose-matrix-row > span.necessary b { color: #5f9b82; }
.fund-purpose-matrix-row > span.optional b { color: #7188ca; }
.fund-purpose-matrix-row > span.enjoyment b { color: #c77b98; }
.fund-purpose-matrix-row.is-heading { min-height: 22px; border-bottom-color: #e4e9eb; }
.fund-purpose-matrix-row.is-heading > span { color: #909ba4; font-weight: 600; }
.fund-purpose-drill { margin: 5px 0 3px 35px; padding: 7px; border-left: 2px solid #d7e8e0; border-radius: 0 7px 7px 0; background: #f8fbf9; }
.fund-purpose-drill-heading,.fund-purpose-drill-category { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; }
.fund-purpose-drill-heading { margin-bottom: 5px; }
.fund-purpose-drill-heading strong,.fund-purpose-drill-category strong { overflow: hidden; color: #5b6873; font-size: 7px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-drill-heading small,.fund-purpose-drill-category small { color: #909ca5; font-size: 6px; white-space: nowrap; }
.fund-purpose-drill-group { padding: 4px 0; border-top: 1px solid #e9efeb; }
.fund-purpose-transaction { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 2px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.fund-purpose-transaction:hover { background: #eef6f1; }
.fund-purpose-transaction > span { display: grid; min-width: 0; gap: 2px; }
.fund-purpose-transaction strong { color: #75818a; font-size: 7px; font-weight: 550; }
.fund-purpose-transaction small { overflow: hidden; max-width: 210px; color: #909ca5; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-transaction > b { color: #4f5e68; font-size: 8px; font-weight: 650; white-space: nowrap; }
.fund-purpose-detail-empty { padding: 8px 2px; color: #98a2aa; font-size: 7px; }
.fund-purpose-trend-heading > div:first-child { display: grid; gap: 2px; min-width: 0; }
.fund-purpose-trend-mode { display: inline-flex; flex: 0 0 auto; padding: 2px; border: 1px solid #e7ecee; border-radius: 7px; background: #f5f7f8; }
.fund-purpose-trend-mode button { padding: 3px 7px; border: 0; border-radius: 5px; background: transparent; color: #84909a; font: inherit; font-size: 7px; cursor: pointer; }
.fund-purpose-trend-mode button.active { background: #fff; color: #4e8f77; box-shadow: 0 1px 3px #26333b18; }
.fund-purpose-trend-month { cursor: pointer; }
.fund-purpose-trend-month .fund-purpose-month-highlight { fill: #f0f6f3; }
.fund-purpose-trend-month.is-selected text { fill: #527f6d; font-weight: 700; }
.fund-purpose-trend-detail { margin: 6px 0 1px; padding: 7px; border-radius: 7px; background: #f7f9fa; }
.fund-purpose-trend-detail-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.fund-purpose-trend-detail-heading strong,.fund-purpose-trend-detail-heading b { overflow: hidden; color: #5d6973; font-size: 7px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-trend-detail-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.fund-purpose-trend-detail-list button { display: grid; min-width: 0; gap: 2px; padding: 5px; border: 1px solid #e9eef0; border-radius: 6px; background: #fff; color: #75818b; text-align: left; cursor: pointer; }
.fund-purpose-trend-detail-list button span,.fund-purpose-trend-detail-list button small { overflow: hidden; font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-trend-detail-list button strong { overflow: hidden; color: #55636d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-trend-detail-list button.necessary { border-color: #dcebe4; }
.fund-purpose-trend-detail-list button.optional { border-color: #e0e6f4; }
.fund-purpose-trend-detail-list button.enjoyment { border-color: #f1dfe6; }
.fund-purpose-trend-detail > small { display: block; margin-top: 5px; color: #99a3aa; font-size: 6px; }
@media (max-width: 520px) {
  .fund-purpose-coverage { grid-template-columns: 1fr 1fr; }
  .fund-purpose-coverage > div:first-child { grid-column: 1 / -1; }
  .fund-purpose-contribution-row { grid-template-columns: minmax(38px,.7fr) minmax(34px,.8fr) auto; gap: 5px; }
  .fund-purpose-contribution-row > small { grid-column: 3; text-align: right; }
  .fund-purpose-matrix-row { grid-template-columns: minmax(64px,1fr) repeat(3,minmax(0,.9fr)); gap: 2px; }
  .fund-purpose-drill { margin-left: 0; }
  .fund-purpose-trend-heading { align-items: center; }
  .fund-purpose-trend-detail-heading { align-items: flex-start; }
}
.category-forecast-card { overflow: hidden; padding: 0 0 10px; }
.category-forecast-card .annual-card-heading > div { display: grid; gap: 3px; }
.category-forecast-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.category-forecast-card .annual-card-heading > b { color: #3e967f; font-size: 10px; font-weight: 650; white-space: nowrap; }
.category-forecast-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 1px 15px 8px; }
.category-forecast-summary article { display: grid; min-width: 0; gap: 4px; padding: 8px; border: 1px solid #e8efed; border-radius: 8px; background: #f8fcfa; }
.category-forecast-summary article small,.category-forecast-summary article span { overflow: hidden; color: #8996a1; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.category-forecast-summary article b { overflow: hidden; color: #35454f; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.category-forecast-legend { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 0 15px 3px; color: #8d99a3; font-size: 8px; }
.category-forecast-legend span { display: inline-flex; align-items: center; gap: 4px; }
.category-forecast-legend i { width: 12px; height: 5px; border-radius: 4px; background: #55b899; }
.category-forecast-legend b { width: 2px; height: 10px; background: #6674a2; }
.category-forecast-legend em { width: 2px; height: 10px; border-left: 2px dashed #d69352; }
.category-forecast-legend u { width: 12px; height: 7px; border-radius: 3px; background: #dfe9e5; text-decoration: none; }
.category-forecast-list { display: grid; gap: 1px; padding: 2px 15px 5px; }
.category-forecast-row { min-width: 0; padding: 8px 0; border-bottom: 1px solid #f0f2f4; }
.category-forecast-row:last-child { border-bottom: 0; }
.category-forecast-heading { display: flex; align-items: center; gap: 7px; min-width: 0; }
.category-forecast-icon { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 7px; font-size: 12px; }
.category-forecast-heading strong { min-width: 0; overflow: hidden; color: #566472; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.category-forecast-heading b { margin-left: auto; flex: 0 0 auto; color: #3e967f; font-size: 9px; font-weight: 650; white-space: nowrap; }
.category-forecast-bullet { position: relative; height: 8px; margin: 7px 0 0 30px; overflow: hidden; border-radius: 999px; background: #edf1f3; }
.category-forecast-bullet > b { position: absolute; inset: 0 auto 0 0; z-index: 1; display: block; min-width: 2px; border-radius: inherit; opacity: .75; }
.category-forecast-band { position: absolute; top: 0; bottom: 0; z-index: 2; border-radius: 999px; background: #bacdc6; opacity: .7; }
.category-forecast-reference,.category-forecast-budget-marker { position: absolute; top: -2px; bottom: -2px; z-index: 3; width: 2px; }
.category-forecast-reference { background: #6674a2; }
.category-forecast-budget-marker { border-left: 2px dashed #d69352; }
.category-forecast-row > small { display: block; margin: 5px 0 0 30px; overflow: hidden; color: #9ba5ae; font-size: 8px; line-height: 1.5; text-overflow: ellipsis; }
.category-forecast-row > small em { color: #647684; font-style: normal; font-weight: 650; }
.category-forecast-reason { white-space: normal !important; }
.category-forecast-subsection { display: grid; gap: 7px; margin: 8px 15px 0; padding: 9px 10px; border: 1px solid #eef1f2; border-radius: 9px; background: #fbfcfc; }
.category-forecast-subsection > strong { color: #566472; font-size: 9px; font-weight: 650; }
.category-forecast-subsection > small { color: #929da6; font-size: 8px; line-height: 1.5; }
.category-forecast-subsection ul { display: grid; gap: 5px; margin: 0; padding-left: 17px; color: #7d8993; font-size: 8px; line-height: 1.5; }
.category-forecast-contribution { display: grid; grid-template-columns: minmax(70px,.8fr) minmax(40px,1fr) auto; align-items: center; gap: 8px; color: #7c8993; font-size: 8px; }
.category-forecast-contribution > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.category-forecast-contribution > i { height: 5px; overflow: hidden; border-radius: 8px; background: #edf1f2; }
.category-forecast-contribution > i b { display: block; height: 100%; border-radius: inherit; }
.category-forecast-contribution > i b.is-up { background: #d66f60; }
.category-forecast-contribution > i b.is-down { background: #3e967f; }
.category-forecast-contribution em,.category-forecast-error-list em { font-style: normal; font-weight: 650; white-space: nowrap; }
.category-forecast-contribution .is-up,.category-forecast-error-list .is-up { color: #d66f60; }
.category-forecast-contribution .is-down,.category-forecast-error-list .is-down { color: #3e967f; }
.category-forecast-trend-legend { display: flex; gap: 13px; color: #8c98a2; font-size: 8px; }
.category-forecast-trend-legend span::before { display: inline-block; width: 12px; margin-right: 4px; border-top: 2px solid #55b899; content: ''; vertical-align: middle; }
.category-forecast-trend-legend span + span::before { border-top: 2px dashed #8992b7; }
.category-forecast-trend { display: block; width: 100%; height: auto; max-height: 110px; overflow: visible; }
.category-forecast-trend polyline { fill: none; stroke-width: 2; vector-effect: non-scaling-stroke; }
.category-forecast-trend .is-forecast { stroke: #55b899; }
.category-forecast-trend .is-reference { stroke: #8992b7; stroke-dasharray: 4 3; }
.category-forecast-trend circle { fill: #55b899; stroke: #fff; stroke-width: 1; vector-effect: non-scaling-stroke; }
.category-forecast-error-list { display: grid; gap: 5px; }
.category-forecast-error-list > div { display: flex; justify-content: space-between; gap: 9px; color: #7d8993; font-size: 8px; }
.category-forecast-note { display: block; padding: 7px 15px 0; color: #99a4ad; font-size: 8px; line-height: 1.55; }.consumption-structure-health-card { padding-bottom: 13px; }
.consumption-structure-health-card .health-score-main { padding-top: 7px; }
.consumption-structure-health-note { display: block; margin: 9px 20px 0; color: #98a4ad; font-size: 8px; line-height: 1.55; }
.free-cashflow-waterfall-card { padding-bottom: 11px; }
.free-cashflow-waterfall-card .annual-card-heading > div { display: grid; gap: 3px; }
.free-cashflow-waterfall-card .annual-card-heading > div span { color: #8996a1; font-size: 9px; }
.free-cashflow-waterfall-result { flex: 0 0 auto; font-size: 14px; font-weight: 700; white-space: nowrap; }
.free-cashflow-waterfall-result.positive { color: #3e967f; }
.free-cashflow-waterfall-result.negative { color: #d66f60; }
.free-cashflow-waterfall-visual { position: relative; margin: 7px 15px 0; }
.free-cashflow-waterfall-axis { position: absolute; top: 9px; bottom: 38px; left: 0; width: 39px; color: #7f8b96; font-size: 8px; font-variant-numeric: tabular-nums; }
.free-cashflow-waterfall-axis > span { position: absolute; right: 3px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.free-cashflow-waterfall-axis .top { top: 0; }
.free-cashflow-waterfall-axis .zero { top: var(--waterfall-zero-top); padding: 1px 3px; border-radius: 3px; background: #fff; color: #4e5a65; font-weight: 700; transform: translateY(-50%); }
.free-cashflow-waterfall-axis .bottom { bottom: 0; }
.free-cashflow-waterfall-chart { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 6px; height: 205px; margin: 0 0 0 43px; }
.free-cashflow-waterfall-stage { position: relative; min-width: 0; padding: 0; overflow: visible; border: 0; border-radius: 7px; appearance: none; background: transparent; color: inherit; font: inherit; text-align: center; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.free-cashflow-waterfall-stage:focus-visible { outline: 2px solid #6685dc; outline-offset: 1px; }
.free-cashflow-waterfall-stage.is-selected { background: #f4f7fb; }
.free-cashflow-waterfall-stage-plot { position: absolute; top: 9px; right: 0; bottom: 38px; left: 0; }
.free-cashflow-waterfall-stage-plot::after { position: absolute; z-index: 0; right: -3px; bottom: var(--waterfall-zero); left: -3px; height: 1px; background: #dce2e7; content: ''; }
.free-cashflow-waterfall-bar { position: absolute; z-index: 2; bottom: var(--bar-bottom); left: 50%; width: min(31px,66%); height: var(--bar-height); min-height: 2px; border-radius: 5px 5px 2px 2px; background: #e67a61; box-shadow: 0 2px 6px #d4755b26; transform: translateX(-50%); }
.free-cashflow-waterfall-bar.is-zero { display: none; }
.free-cashflow-waterfall-stage.necessary .free-cashflow-waterfall-bar { background: #c9933e; }
.free-cashflow-waterfall-stage.optional .free-cashflow-waterfall-bar { background: #6f83ba; }
.free-cashflow-waterfall-stage.enjoyment .free-cashflow-waterfall-bar { background: #cb7899; }
.free-cashflow-waterfall-stage.other .free-cashflow-waterfall-bar { background: #7d8d99; }
.free-cashflow-waterfall-stage.debt .free-cashflow-waterfall-bar { background: #d77e64; }
.free-cashflow-waterfall-stage.total-positive .free-cashflow-waterfall-bar { background: #41967c; }
.free-cashflow-waterfall-stage.total-negative .free-cashflow-waterfall-bar { background: #d66f60; }
.free-cashflow-waterfall-connector { position: absolute; z-index: 1; top: calc(100% - var(--connector-level)); left: calc(-50% - 3px); width: calc(100% + 6px); height: 1.5px; background: #71808e9c; pointer-events: none; }
.free-cashflow-waterfall-amount { position: absolute; z-index: 3; bottom: calc(var(--bar-top) + 4px); left: 50%; max-width: calc(100% + 8px); overflow: hidden; color: #566370; font-size: 8px; font-weight: 700; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px #fff,0 -1px 2px #fff; transform: translateX(-50%); }
.free-cashflow-waterfall-stage.income .free-cashflow-waterfall-amount { color: #b84f3d; }
.free-cashflow-waterfall-stage.total-positive .free-cashflow-waterfall-amount { color: #28745f; }
.free-cashflow-waterfall-stage.total-negative .free-cashflow-waterfall-amount { color: #b94e43; }
.free-cashflow-waterfall-stage > small { position: absolute; right: -3px; bottom: 4px; left: -3px; min-height: 20px; color: #586572; font-size: 8px; font-weight: 600; line-height: 1.2; text-align: center; white-space: normal; }
.free-cashflow-waterfall-stage.total-positive > small { color: #28745f; font-weight: 700; }
.free-cashflow-waterfall-stage.total-negative > small { color: #b94e43; font-weight: 700; }
.free-cashflow-waterfall-detail { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin: 1px 15px 0; padding: 9px 10px; border: 1px solid #e3e9ee; border-radius: 9px; background: #fafbfd; }
.free-cashflow-waterfall-detail > span { display: grid; gap: 4px; min-width: 0; }
.free-cashflow-waterfall-detail small { color: #8996a1; font-size: 8px; }
.free-cashflow-waterfall-detail b { overflow: hidden; color: #46535e; font-size: 10px; font-weight: 700; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.free-cashflow-waterfall-detail b.positive { color: #32846d; }
.free-cashflow-waterfall-detail b.negative { color: #c85e51; }
.free-cashflow-waterfall-hint { margin: 0 15px; color: #7d8b97; font-size: 9px; line-height: 1.4; text-align: center; }
.free-cashflow-waterfall-legend { display: flex; justify-content: center; gap: 17px; margin: 8px 15px 7px; color: #74818c; font-size: 9px; }
.free-cashflow-waterfall-legend > span { display: inline-flex; align-items: center; gap: 4px; }
.free-cashflow-waterfall-legend i { display: inline-grid; width: 15px; height: 15px; place-items: center; border-radius: 50%; font-size: 10px; font-style: normal; font-weight: 750; }
.free-cashflow-waterfall-legend i.income { background: #fcebe7; color: #b84f3d; }
.free-cashflow-waterfall-legend i.outflow { background: #edf0f3; color: #586572; }
.free-cashflow-waterfall-legend i.ending { background: #e4f3ee; color: #28745f; }
.free-cashflow-waterfall-legend i.income::before { content: '+'; }
.free-cashflow-waterfall-legend i.outflow::before { content: '−'; }
.free-cashflow-waterfall-legend i.ending::before { content: '='; }
.free-cashflow-waterfall-summary { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr); gap: 8px; margin: 0 15px; padding: 9px 10px; border: 1px solid #e8efed; border-radius: 9px; background: linear-gradient(105deg,#f8fcfa,#fbfcfd); }
.free-cashflow-waterfall-summary > span { display: grid; gap: 4px; min-width: 0; }
.free-cashflow-waterfall-summary small { color: #8996a1; font-size: 8px; }
.free-cashflow-waterfall-summary b { overflow: hidden; color: #46535e; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.free-cashflow-waterfall-summary em { align-self: center; color: #53616d; font-size: 9px; font-style: normal; line-height: 1.45; text-align: right; }
.free-cashflow-waterfall-summary em.positive { color: #32846d; }
.free-cashflow-waterfall-summary em.negative { color: #c85e51; }
.free-cashflow-waterfall-note { display: block; padding: 8px 15px 0; color: #87939d; font-size: 9px; line-height: 1.5; }
.monthly-report-hero { position: relative; min-height: 145px; overflow: hidden; padding: 18px 21px; border: 0; background: linear-gradient(112deg,#6484ed,#557ce9 48%,#3bb7ce); color: #fff; box-shadow: 0 8px 20px #5985e21b; }
.monthly-report-hero::before,.monthly-report-hero::after { position: absolute; content: ''; border: 1px solid #ffffff24; border-radius: 50%; pointer-events: none; }
.monthly-report-hero::before { width: 240px; height: 240px; right: 10%; top: -145px; box-shadow: 0 0 0 16px #ffffff0c,0 0 0 33px #ffffff09; }
.monthly-report-hero::after { width: 128px; height: 128px; right: -23px; bottom: -80px; background: #8fe3d62b; }
.monthly-report-hero-content { position: relative; z-index: 1; width: min(72%,520px); }
.monthly-report-hero-kicker { display: block; font-size: 12px; font-weight: 600; }
.monthly-report-hero-label { display: block; margin-top: 12px; color: #eaf2ff; font-size: 9px; }
.monthly-report-hero-content > strong { display: block; font-size: 27px; line-height: 1.12; font-weight: 600; letter-spacing: -.5px; }
.monthly-report-disposable { display: flex; align-items: baseline; gap: 7px; margin-top: 5px; color: #e1efff; font-size: 9px; }
.monthly-report-disposable b { color: #fff; font-size: 12px; font-weight: 600; }
.monthly-report-hero-foot { display: flex; align-items: center; gap: 10px; margin-top: 12px; color: #e5f6ff; font-size: 8px; }
.monthly-report-hero-foot b { color: #fff; font-size: 9px; font-weight: 600; }
.monthly-report-hero-foot i { width: 1px; height: 11px; background: #ffffff69; }
.monthly-report-hero-flow { display: flex; align-items: center; gap: 9px; width: min(72%,520px); margin-top: 7px; color: #e5f6ff; font-size: 8px; }
.monthly-report-hero-flow span { display: flex; align-items: baseline; gap: 4px; white-space: nowrap; }
.monthly-report-hero-flow b { color: #fff; font-size: 9px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.monthly-report-hero-flow i { width: 1px; height: 11px; flex: 0 0 1px; background: #ffffff69; }
.monthly-report-hero-art { position: absolute; top: 12px; right: 8px; width: 35%; height: calc(100% - 24px); overflow: hidden; border-radius: 42% 17% 20% 36%; background: linear-gradient(135deg,#b7e8ff65,#b2c9ff20); }
.monthly-report-hero-art::before,.monthly-report-hero-art::after { position: absolute; content: ''; border: 1px solid #ffffff4a; border-radius: 50%; }
.monthly-report-hero-art::before { top: -45px; right: 8px; width: 120px; height: 120px; box-shadow: 0 0 0 11px #ffffff0e; }
.monthly-report-hero-art::after { bottom: -58px; left: 10px; width: 95px; height: 95px; background: #98daf32b; }
.monthly-report-hero-art span { position: absolute; z-index: 1; right: 24%; top: 27%; width: 58px; height: 47px; border-radius: 8px; background: linear-gradient(140deg,#f7fbff,#cde4ff); box-shadow: -9px 10px 0 -3px #adc9f4; transform: rotate(8deg); }
.monthly-report-hero-art i { position: absolute; z-index: 2; right: 35%; top: 43%; width: 32px; height: 3px; background: #83a9de; box-shadow: 0 8px 0 #a1bee7,0 16px 0 #a1bee7; transform: rotate(8deg); }
.monthly-report-hero-art b { position: absolute; z-index: 3; top: 12%; right: 19%; display: grid; width: 26px; height: 26px; place-items: center; border: 2px solid #fff; border-radius: 50%; background: #62bad8; color: white; font-size: 12px; box-shadow: 0 3px 8px #355ebd55; }
.monthly-report-note { display: flex; align-items: flex-start; gap: 9px; padding: 12px 14px; background: linear-gradient(120deg,#fffaf5,#fff); }
.monthly-report-note-icon { display: grid; width: 23px; height: 23px; flex: 0 0 23px; place-items: center; border-radius: 50%; background: #fff1e5; color: #e9a354; font-size: 12px; }
.monthly-report-note strong { display: block; color: #556371; font-size: 9px; font-weight: 600; }
.monthly-report-note p { margin: 3px 0 0; color: #8e99a3; font-size: 8px; line-height: 1.65; }
.monthly-report-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.monthly-report-metric { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 7px; padding: 12px 14px; }
.monthly-report-metric > span:first-child { color: #75818d; font-size: 9px; }
.monthly-report-metric > strong { grid-column: 1; color: #52606e; font-size: 17px; font-weight: 600; letter-spacing: -.3px; }
.monthly-report-metric.expense > strong { color: #41aeb1; }
.monthly-report-metric.income > strong { color: #e56d52; }
.monthly-report-change { grid-column: 2; grid-row: 1 / 3; max-width: 100px; color: #a4adb5; font-size: 8px; text-align: right; }
.monthly-report-change.up { color: #e18557; }
.monthly-report-change.down { color: #48a78f; }
.monthly-report-change.is-muted { color: #98a3ac; }
.monthly-report-future-note,.report-period-note { margin: 0; padding: 8px 11px; border: 1px solid #e3e8ed; border-radius: 9px; background: #f8fafb; color: #788692; font-size: 9px; line-height: 1.55; }
.annual-month-list { display: grid; gap: 5px; }
.annual-month-row { display: grid; grid-template-columns: 38px repeat(3, minmax(0, 1fr)); align-items: center; gap: 4px 7px; padding: 8px 9px; border-radius: 8px; background: #f8fafb; color: #788692; font-size: 8px; }
.annual-month-row > strong { color: var(--ink); font-size: 9px; }
.annual-month-row > span,.annual-month-row > b { min-width: 0; font-size: 8px; }
.annual-month-row > b { text-align: right; }
.annual-month-row > small { grid-column: 2 / -1; color: #98a3ac; font-size: 7px; }
.annual-month-row.is-future { color: #9aa5ad; background: #f7f9fa; }
.annual-month-row.is-current { background: #f4faf8; }
.annual-month-plan { grid-column: 2 / -1; color: #8a98a3; font-size: 8px; }
[data-theme="night"] .annual-month-row { background: #202b38; color: #a6b2bf; }
[data-theme="night"] .annual-month-row.is-future { background: #1d2730; }
[data-theme="night"] .annual-month-row.is-current { background: #1c3029; }
.consumption-trend-card { overflow: hidden; padding: 0; }
.consumption-trend-card .annual-card-heading { padding-bottom: 12px; }
.consumption-trend-card .annual-card-heading > div { display: grid; gap: 3px; }
.consumption-trend-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.consumption-trend-overall { flex: 0 0 auto; max-width: 48%; font-size: 10px; font-weight: 600; text-align: right; }
.consumption-trend-overall.is-up,.consumption-trend-change.is-up { color: #df7758; }
.consumption-trend-overall.is-down,.consumption-trend-change.is-down { color: #43a38f; }
.consumption-trend-overall.is-flat,.consumption-trend-change.is-flat { color: #9aa5af; }
.consumption-trend-summary { display: grid; grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr); align-items: center; gap: 10px; margin: 0 16px 8px; padding: 10px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.consumption-trend-summary div { display: grid; gap: 3px; min-width: 0; }
.consumption-trend-summary span { color: #9ba5af; font-size: 8px; }
.consumption-trend-summary strong { color: #43515f; font-size: 13px; font-weight: 600; }
.consumption-trend-summary i { width: 1px; height: 24px; background: #e4e8eb; }
.consumption-trend-explanation { margin: 0 16px 5px; padding: 8px 10px; border-radius: 7px; background: #f7f9fa; color: #667481; font-size: 8px; line-height: 1.55; }
.consumption-trend-weight-note { display: block; margin: 0 16px 8px; color: #98a3ad; font-size: 7px; line-height: 1.45; }
.consumption-trend-sort { display: flex; align-items: center; gap: 4px; margin: 0 16px 7px; color: #97a2ac; font-size: 8px; }
.consumption-trend-sort button { padding: 4px 7px; border: 1px solid #e9edf0; border-radius: 999px; background: #fff; color: #84909b; font: inherit; cursor: pointer; }
.consumption-trend-sort button[aria-pressed="true"] { border-color: #b9dcd3; background: #eff8f5; color: #418c7d; }
.consumption-trend-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 16px 5px; color: #98a3ad; font-size: 7px; }
.consumption-trend-legend span { display: inline-flex; align-items: center; gap: 3px; }
.consumption-trend-legend i { display: inline-block; width: 12px; height: 3px; border-radius: 99px; background: #5ab397; }
.consumption-trend-legend i.previous { background: #dfe5e8; }
.consumption-trend-legend i.weighted { height: 2px; border: 1px dashed #a4adb6; background: transparent; }
.consumption-trend-legend .trend-label { margin-left: auto; }
.consumption-trend-list { display: grid; gap: 1px; padding: 0 10px; }
.consumption-trend-row { display: grid; grid-template-columns: 28px minmax(0,1fr) 68px 62px; align-items: center; gap: 9px; width: 100%; padding: 9px 6px; border: 0; border-bottom: 1px solid #f1f3f5; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.consumption-trend-row:last-child { border-bottom: 0; }
.consumption-trend-row:hover { border-radius: 7px; background: #fbfcfd; }
.consumption-trend-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 8px; font-size: 13px; }
.consumption-trend-copy { display: grid; min-width: 0; gap: 3px; }
.consumption-trend-copy > strong { display: flex; align-items: baseline; gap: 5px; overflow: hidden; color: #53616f; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.consumption-trend-copy > strong small { overflow: hidden; color: #9ca7b0; font-size: 7px; font-weight: 400; text-overflow: ellipsis; }
.consumption-trend-bars { display: grid; gap: 3px; width: 100%; }
.consumption-trend-bars i { display: block; height: 4px; min-width: 1px; border-radius: 999px; }
.consumption-trend-bars i.previous { background: #dfe5e8; }
.consumption-trend-bars i.weighted { height: 2px; border: 1px dashed #a4adb6; background: transparent; }
.consumption-trend-copy > small { overflow: hidden; color: #84919d; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-trend-copy > small.consumption-trend-reference { color: #9aa5af; }
.consumption-trend-sparkline { display: block; width: 66px; height: 22px; overflow: visible; }
.consumption-trend-sparkline-empty { display: block; color: #a3adb6; font-size: 6px; }
.consumption-trend-trend { display: grid; justify-items: center; gap: 1px; color: #a0aab3; font-size: 6px; white-space: nowrap; }
.consumption-trend-change { display: grid; justify-items: end; gap: 3px; min-width: 0; font-size: 8px; font-weight: 600; text-align: right; white-space: nowrap; }
.consumption-trend-change strong { font-size: 8px; }
.consumption-trend-change small { font-size: 7px; font-weight: 500; }
.consumption-trend-toggle { margin-top: 2px; border-top: 1px solid #f1f3f5; }
.consumption-trend-hint { display: block; padding: 5px 16px 12px; color: #a1aab3; font-size: 8px; }
[data-theme="night"] .consumption-trend-summary { border-color: #344250; background: #202e3a; }
[data-theme="night"] .consumption-trend-summary strong,[data-theme="night"] .consumption-trend-copy > strong { color: #d7e0e8; }
[data-theme="night"] .consumption-trend-explanation { background: #202e3a; color: #b2bec9; }
[data-theme="night"] .consumption-trend-sort button { border-color: #344250; background: #1a2631; color: #a6b2bf; }
[data-theme="night"] .consumption-trend-sort button[aria-pressed="true"] { border-color: #315345; background: #1c3029; color: #94d1b2; }
[data-theme="night"] .consumption-trend-legend i.previous { background: #3b4854; }
[data-theme="night"] .consumption-trend-legend i.weighted { border-color: #778492; }
[data-theme="night"] .consumption-trend-row { border-color: #2a3743; }
[data-theme="night"] .consumption-trend-row:hover { background: #202e3a; }
[data-theme="night"] .consumption-trend-bars i.previous { background: #3b4854; }
[data-theme="night"] .consumption-trend-bars i.weighted { border-color: #778492; }
.consumption-heatmap-card { overflow: hidden; padding: 0; }
.consumption-heatmap-total { color: #9aa5af; font-size: 8px; }
.consumption-heatmap-weekdays,.consumption-heatmap-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; padding: 0 15px; }
.consumption-heatmap-weekdays { margin-top: 2px; color: #a0aab3; font-size: 8px; text-align: center; }
.consumption-heatmap-grid { margin-top: 5px; }
.consumption-heatmap-empty { min-height: 42px; }
.consumption-heatmap-day { display: grid; min-height: 42px; align-content: space-between; gap: 3px; padding: 5px 4px; border: 1px solid transparent; border-radius: 7px; background: #f4f6f7; color: #677482; text-align: left; cursor: pointer; }
.consumption-heatmap-day:hover,.consumption-heatmap-day.selected { border-color: #6ca99d; box-shadow: 0 0 0 1px #6ca99d2b; }
.consumption-heatmap-day strong { display: flex; align-items: center; justify-content: space-between; gap: 2px; font-size: 9px; font-weight: 600; }
.heatmap-deviation-badge { display: inline-flex; min-width: 11px; height: 11px; align-items: center; justify-content: center; border-radius: 4px; font-size: 6px; font-style: normal; font-weight: 700; line-height: 1; }
.heatmap-deviation-badge.high { background: #fff0e9; color: #c96849; }
.heatmap-deviation-badge.low { background: #eaf3fb; color: #4a82aa; }
.consumption-heatmap-day.is-similar-high { box-shadow: inset 0 -2px #d97958; }
.consumption-heatmap-day.is-similar-low { box-shadow: inset 0 -2px #6092b4; }
.consumption-heatmap-day small { overflow: hidden; color: #5d756f; font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-heatmap-day.level-0 { background: #f5f7f8; }
.consumption-heatmap-day.level-1 { background: #e3f2ed; }
.consumption-heatmap-day.level-2 { background: #c8e7dc; }
.consumption-heatmap-day.level-3 { background: #9ed5c5; }
.consumption-heatmap-day.level-4 { background: #69bca1; color: #fff; }
.consumption-heatmap-day.level-5 { background: #3c9c83; color: #fff; }
.consumption-heatmap-day.level-4 small,.consumption-heatmap-day.level-5 small { color: #effff8; }
.consumption-heatmap-legend { display: flex; align-items: center; justify-content: flex-end; gap: 4px; padding: 8px 15px 0; color: #a0aab3; font-size: 7px; }
.consumption-heatmap-legend i { display: block; width: 11px; height: 11px; border-radius: 3px; }
.consumption-heatmap-legend .level-1 { background: #e3f2ed; }
.consumption-heatmap-legend .level-2 { background: #c8e7dc; }
.consumption-heatmap-legend .level-3 { background: #9ed5c5; }
.consumption-heatmap-legend .level-4 { background: #69bca1; }
.consumption-heatmap-legend .level-5 { background: #3c9c83; }
.consumption-heatmap-detail { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 10px; margin: 8px 15px 14px; padding: 9px 10px; border-radius: 8px; background: #f8fafb; }
.consumption-heatmap-detail strong { color: #4b5967; font-size: 10px; }
.consumption-heatmap-detail > span { color: #667782; font-size: 8px; }
.consumption-heatmap-detail > .heatmap-similarity { grid-column: 1 / -1; color: #73818d; font-size: 8px; line-height: 1.5; }
.heatmap-similarity > strong { color: #667782; font-size: 8px; }
.heatmap-similarity.is-similar-high > strong { color: #c96849; }
.heatmap-similarity.is-similar-low > strong { color: #4a82aa; }
.heatmap-similarity.is-neutral { color: #9ba5ae; }
.consumption-heatmap-detail small { grid-column: 1 / -1; overflow: hidden; color: #9ba5ae; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-heatmap-similarity-note { display: block; margin: -6px 15px 12px; color: #9ba5ae; font-size: 7px; line-height: 1.5; }
.category-calendar-heatmap-filter { display: flex; justify-content: flex-end; padding: 2px 15px 8px; }
.category-calendar-heatmap-filter label { display: inline-flex; align-items: center; gap: 7px; color: #8c98a2; font-size: 8px; }
.category-calendar-heatmap-filter select { min-width: 155px; padding: 6px 8px; border: 1px solid #e7edef; border-radius: 8px; background: #fbfcfd; color: #566574; font: inherit; }
.category-calendar-heatmap-filter { justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
.category-heatmap-metric-switch { display: flex; gap: 5px; padding: 0 15px 9px; }
.category-heatmap-metric-switch button { padding: 6px 10px; border: 1px solid #e5ebed; border-radius: 7px; background: #fff; color: #78858c; font: inherit; font-size: 9px; cursor: pointer; }
.category-heatmap-metric-switch button.active { border-color: #70ad9d; background: #edf7f3; color: #398b76; font-weight: 700; }
.category-calendar-heatmap-card .consumption-heatmap-day { position: relative; }
.category-calendar-heatmap-card .consumption-heatmap-day.is-zero { background: #f7faf9; color: #a4b0ab; }
.category-calendar-heatmap-card .consumption-heatmap-day.is-missing { border-color: #e3e8eb; background: repeating-linear-gradient(135deg,#f4f6f7,#f4f6f7 4px,#e8ecee 4px,#e8ecee 6px); color: #98a2a8; }
.category-calendar-heatmap-card .consumption-heatmap-day.is-future { border-color: #edf0f2; background: #f1f3f5; color: #aeb6bc; }
.category-calendar-heatmap-card .consumption-heatmap-day.is-restday > strong em { color: #d48b67; }
.category-calendar-heatmap-card .consumption-heatmap-day > strong em { margin-left: auto; color: #768994; font-size: 7px; font-style: normal; }
.heatmap-large-marker { position: absolute; top: 3px; right: 3px; display: grid; width: 10px; height: 10px; place-items: center; border-radius: 50%; background: #d86e52; color: white; font-size: 7px; font-style: normal; font-weight: 800; }
.category-heatmap-insights { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 4px 14px 12px; }
.category-heatmap-insights > div { display: grid; gap: 4px; min-width: 0; padding: 10px; border: 1px solid #edf0f1; border-radius: 9px; background: #fbfcfc; }
.category-heatmap-insights span,.category-heatmap-insights small { color: #89959b; font-size: 8px; }
.category-heatmap-insights strong { overflow-wrap: anywhere; color: #3e5353; font-size: 12px; }
.category-heatmap-weekday-summary { padding: 4px 14px 14px; }
.category-heatmap-subheading { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.category-heatmap-subheading strong { font-size: 10px; }
.category-heatmap-subheading small { color: #8b969c; font-size: 8px; }
.category-heatmap-weekday-row { display: grid; grid-template-columns: 18px 1fr 68px 32px; align-items: center; gap: 8px; padding: 4px 0; color: #758187; font-size: 8px; }
.category-heatmap-weekday-row > i { height: 6px; overflow: hidden; border-radius: 9px; background: #edf1f1; }
.category-heatmap-weekday-row > i b { display: block; height: 100%; border-radius: inherit; background: #6db39d; }
.category-heatmap-weekday-row strong { color: #4b6760; text-align: right; }
.category-heatmap-weekday-row small { text-align: right; }
.category-heatmap-transaction-list { display: grid; gap: 2px; margin-top: 7px; }
.category-heatmap-transaction-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 4px 8px; padding: 7px 2px; border-top: 1px solid #edf0f1; cursor: pointer; }
.category-heatmap-transaction-row span,.category-heatmap-transaction-row small { color: #929da2; font-size: 8px; }
.category-heatmap-transaction-row strong { overflow: hidden; color: #56666b; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.category-heatmap-transaction-row b { grid-column: 3; grid-row: 1 / span 2; color: #466f63; font-size: 9px; }
.category-heatmap-transaction-row small { grid-column: 2; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-1 { background: #fee2e2; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-2 { background: #fecaca; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-3 { background: #fca5a5; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-4 { background: #f87171; color: #fff; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-5 { background: #dc4b4b; color: #fff; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-4 small,.category-calendar-heatmap-card.is-income .consumption-heatmap-day.level-5 small { color: #fff6f6; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-legend .level-1 { background: #fee2e2; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-legend .level-2 { background: #fecaca; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-legend .level-3 { background: #fca5a5; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-legend .level-4 { background: #f87171; }
.category-calendar-heatmap-card.is-income .consumption-heatmap-legend .level-5 { background: #dc4b4b; }
.consumption-time-card { overflow: hidden; padding: 0; }
.consumption-time-total { color: #9aa5af; font-size: 8px; }
.consumption-time-list { display: grid; gap: 1px; padding: 0 14px; }
.consumption-time-row { display: grid; grid-template-columns: 68px minmax(0,1fr) 78px; align-items: center; gap: 10px; width: 100%; padding: 9px 5px; border: 0; border-bottom: 1px solid #f1f3f5; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.consumption-time-row:last-child { border-bottom: 0; }
.consumption-time-row:hover,.consumption-time-row.selected { border-radius: 7px; background: #f8fbfa; }
.consumption-time-label { display: grid; gap: 2px; }
.consumption-time-label strong { color: #53616f; font-size: 9px; font-weight: 600; }
.consumption-time-label small { color: #a0aab3; font-size: 7px; }
.consumption-time-track { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #edf1f2; }
.consumption-time-track i { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: linear-gradient(90deg,#79cbb0,#3ca58d); }
.consumption-time-row.selected .consumption-time-track i { background: linear-gradient(90deg,#efaa6d,#e47656); }
.consumption-time-value { display: grid; justify-items: end; gap: 2px; }
.consumption-time-value b { color: #52616e; font-size: 9px; font-weight: 600; }
.consumption-time-value small { color: #a0aab3; font-size: 7px; }
.consumption-time-detail { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 10px; margin: 8px 14px 4px; padding: 9px 10px; border-radius: 8px; background: #f8fafb; }
.consumption-time-detail strong { color: #4b5967; font-size: 10px; }
.consumption-time-detail > span { color: #667782; font-size: 8px; }
.consumption-time-detail small { grid-column: 1 / -1; overflow: hidden; color: #9ba5ae; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-time-hint { display: block; padding: 5px 14px 12px; color: #a1aab3; font-size: 8px; }
.monthly-top-intro { margin: 0; padding: 0 14px 6px; color: #909ba5; font-size: 8px; line-height: 1.6; }
.monthly-top-list { padding: 0 13px 6px; }
.monthly-top-row { display: grid; grid-template-columns: 16px 26px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 48px; padding: 6px 0; border-top: 1px solid #f2f3f4; }
.monthly-top-rank { color: #9ca7b1; font-size: 9px; text-align: center; }
.monthly-top-icon { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: color-mix(in srgb,var(--monthly-icon-color) 16%,white); font-size: 13px; }
.monthly-top-copy { display: grid; min-width: 0; gap: 3px; }
.monthly-top-copy strong { overflow: hidden; color: #586574; font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.monthly-top-copy span { overflow: hidden; color: #a0a9b2; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.monthly-top-row > b { color: #40aeb0; font-size: 10px; font-weight: 500; white-space: nowrap; }
.monthly-top-row > b.income { color: #df6c52; }
.monthly-top-budget-impact { display: block; color: #89959e; font-size: 8px; line-height: 1.45; }
.monthly-top-actions { display: flex; gap: 8px; padding: 0 13px 10px; }
.monthly-top-actions .annual-expand-button { flex: 1; width: auto; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfc; }
.monthly-report-card .category-report-heading { padding-top: 14px; }
.monthly-report-card .annual-ranking-list { padding-bottom: 4px; }
.monthly-trend-card { padding-bottom: 3px; }
.monthly-trend-card .annual-card-heading { align-items: flex-start; }
.monthly-trend-card .annual-card-heading > div { min-width: 0; }
.monthly-trend-card .annual-card-heading > span { max-width: 42%; line-height: 1.45; text-align: right; white-space: normal; }
.monthly-trend-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
.monthly-trend-heading > div { display: grid; gap: 4px; min-width: 0; }
.monthly-trend-heading > div span { color: #9ba7af; font-size: 8px; line-height: 1.4; }
.monthly-trend-mode-switch { display: inline-flex; flex: 0 0 auto; gap: 2px; padding: 2px; border: 1px solid #e8edef; border-radius: 8px; background: #f8fafb; }
.monthly-trend-mode-switch button { min-height: 23px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: #89959f; font: inherit; font-size: 8px; cursor: pointer; }
.monthly-trend-mode-switch button[aria-pressed="true"] { background: #fff; color: #465462; box-shadow: 0 1px 3px #20304018; }
.monthly-report-selected { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px 12px; padding: 4px 15px 0; color: #85919d; font-size: 8px; }
.monthly-report-selected strong { margin-right: auto; color: #8995a0; font-weight: 500; }
.monthly-report-selected .expense,.monthly-report-chart-hint .expense { color: #40b8b2; }
.monthly-report-selected .income,.monthly-report-chart-hint .income { color: #df624d; }
.monthly-report-selected span { overflow-wrap: anywhere; text-align: right; }
.monthly-report-chart-scroll { width: 100%; overflow: hidden; padding: 1px 8px 3px; }
.monthly-report-trend-svg { display: block; width: 100%; max-width: 100%; height: auto; overflow: visible; }
.monthly-report-grid line { stroke: #edf0f2; stroke-dasharray: 3 4; }
.monthly-report-grid text,.monthly-report-date { fill: #a2abb4; font: 9px system-ui,sans-serif; }
.monthly-report-date { font-size: 8px; }
.monthly-report-date.active { fill: #465462; font-weight: 600; }
.monthly-report-cursor { stroke: #d8dde2; stroke-width: 1.4; }
.monthly-report-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.monthly-report-line.expense { stroke: #4bbab2; }
.monthly-report-line.income { stroke: #ed6046; }
.monthly-report-line.income-comparison { stroke: #8c9bb0; stroke-width: 2.2; stroke-dasharray: 5 4; }
.monthly-report-line.expense-comparison { stroke: #8c9bb0; stroke-width: 2.2; stroke-dasharray: 5 4; }
.monthly-report-line.expense-budget-pace { stroke: #d3a64d; stroke-width: 2.2; stroke-dasharray: 2 4; }
.monthly-report-chart-hint .income-comparison-legend,.monthly-report-chart-hint .expense-comparison-legend { color: #8c9bb0; }
.monthly-report-chart-hint .expense-budget-legend { color: #ad8537; }
.monthly-report-chart-hint .expense-budget-unavailable { color: #a0a9b1; }
.monthly-report-point { stroke: white; stroke-width: 1.5; }
.monthly-report-point.expense { fill: #4bbab2; }
.monthly-report-point.income { fill: #ed6046; }
.monthly-report-data-point:not(.active) .monthly-report-point { display: none; }
.monthly-report-data-point { cursor: pointer; }
.monthly-report-hit-target { fill: transparent; }
.monthly-report-data-point:focus .monthly-report-point { stroke: #344054; stroke-width: 2; }
.monthly-report-tooltip rect { fill: #303944; }
.monthly-report-tooltip text { fill: #f4f6f8; font: 9px system-ui,sans-serif; }
.monthly-report-chart-hint { padding: 0 15px 8px; color: #8c97a1; font-size: 8px; }
.monthly-report-chart-hint i { margin: 0 5px; color: #c5ccd2; font-style: normal; }
.monthly-report-trend-empty { margin: 0; padding: 18px 15px 22px; color: #9aa5ae; font-size: 9px; }
.monthly-pressure-card { padding-bottom: 10px; }
.monthly-pressure-card .annual-card-heading > div { display: grid; gap: 3px; }
.monthly-pressure-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.monthly-pressure-chart-scroll { width: 100%; overflow-x: auto; padding: 4px 9px 0; }
.monthly-pressure-svg { display: block; width: 100%; min-width: 520px; height: auto; overflow: visible; }
.monthly-pressure-grid line { stroke: #edf0f2; stroke-dasharray: 3 4; }
.monthly-pressure-grid text,.monthly-pressure-date { fill: #a2abb4; font: 8px system-ui,sans-serif; }
.monthly-pressure-zero { stroke: #d4dce0; stroke-width: 1.1; }
.monthly-pressure-bar { opacity: .9; }
.monthly-pressure-bar.positive { fill: #d06b55; }
.monthly-pressure-bar.negative { fill: #4d9a83; }
.monthly-pressure-bar.flat { fill: #dfe5e8; }
.monthly-pressure-line { fill: none; stroke: #6d7fc4; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.monthly-pressure-dot { fill: #6d7fc4; stroke: #fff; stroke-width: 1; }
.monthly-pressure-legend { display: flex; align-items: center; justify-content: flex-end; gap: 11px; padding: 2px 15px 9px; color: #8f9aa4; font-size: 8px; }
.monthly-pressure-legend span { display: inline-flex; align-items: center; gap: 4px; }
.monthly-pressure-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }
.monthly-pressure-legend i.positive { background: #d06b55; }
.monthly-pressure-legend i.negative { background: #4d9a83; }
.monthly-pressure-legend i.balance { width: 14px; height: 2px; border-radius: 999px; background: #6d7fc4; }
.monthly-pressure-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0 15px; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; }
.monthly-pressure-summary div { display: grid; gap: 3px; min-width: 0; }
.monthly-pressure-summary span { color: #9ba5af; font-size: 8px; }
.monthly-pressure-summary strong { overflow: hidden; color: #566472; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-cycle-card { padding-bottom: 11px; }
.cashflow-cycle-card .annual-card-heading > div { display: grid; gap: 3px; }
.cashflow-cycle-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.cashflow-cycle-card .annual-card-heading > b { color: #4d9a83; font-size: 9px; font-weight: 600; }
.cashflow-cycle-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 0 15px 10px; }
.cashflow-cycle-metric { display: grid; gap: 4px; min-width: 0; padding: 10px 9px; border: 1px solid #e9eff0; border-radius: 9px; background: #fbfcfd; }
.cashflow-cycle-metric > span { color: #8e9aa4; font-size: 8px; }
.cashflow-cycle-metric > strong { overflow: hidden; color: #52616d; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-cycle-metric > small { min-height: 18px; color: #a0aab2; font-size: 7px; line-height: 1.35; }
.cashflow-cycle-metric.income { border-color: #dcefe9; background: #f8fcfa; }
.cashflow-cycle-metric.income > strong { color: #3e967f; }
.cashflow-cycle-metric.expense { border-color: #f1e4df; background: #fffaf8; }
.cashflow-cycle-metric.expense > strong,.cashflow-cycle-metric.peak > strong { color: #d06b55; }
.cashflow-cycle-metric.stress { border-color: #f1e0db; background: #fff8f6; }
.cashflow-cycle-metric.stress > strong { color: #c96758; }
.cashflow-cycle-metric.safe > strong { color: #3e967f; }
.cashflow-cycle-detail { display: flex; flex-wrap: wrap; gap: 7px 16px; margin: 0 15px; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; color: #74818c; font-size: 8px; }
.cashflow-cycle-detail span { display: inline-flex; align-items: center; gap: 5px; }
.cashflow-cycle-detail i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #b7c1c7; }
.cashflow-cycle-detail i.income { background: #55b899; }
.cashflow-cycle-detail i.expense { background: #e17b63; }
.cashflow-cycle-detail i.gap { background: #7d8fc5; }
.cashflow-cycle-note { display: block; padding: 8px 15px 0; color: #99a4ad; font-size: 8px; line-height: 1.5; }
.holiday-consumption-card { padding-bottom: 10px; }
.holiday-consumption-card .annual-card-heading > div { display: grid; gap: 3px; }
.holiday-consumption-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.holiday-consumption-types { display: grid; gap: 1px; padding: 2px 15px 8px; }
.holiday-consumption-type { display: grid; grid-template-columns: 94px minmax(0,1fr) 72px 38px; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid #f1f3f5; }
.holiday-consumption-type:last-child { border-bottom: 0; }
.holiday-consumption-type-copy { display: grid; min-width: 0; gap: 3px; }
.holiday-consumption-type-copy strong { color: #53616f; font-size: 9px; font-weight: 600; }
.holiday-consumption-type-copy small { overflow: hidden; color: #a0aab3; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.holiday-consumption-track { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #edf1f2; }
.holiday-consumption-track i { display: block; height: 100%; min-width: 2px; border-radius: inherit; }
.holiday-consumption-type.holiday .holiday-consumption-track i { background: linear-gradient(90deg,#efaa6d,#d06b55); }
.holiday-consumption-type.rest .holiday-consumption-track i { background: linear-gradient(90deg,#f2cb79,#e2a44b); }
.holiday-consumption-type.work .holiday-consumption-track i { background: linear-gradient(90deg,#79cbb0,#4d9a83); }
.holiday-consumption-type > b { color: #566472; font-size: 9px; font-weight: 600; text-align: right; white-space: nowrap; }
.holiday-consumption-type > span { color: #9ba5af; font-size: 8px; text-align: right; white-space: nowrap; }
.holiday-consumption-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 8px 15px 5px; border-top: 1px solid #f0f2f4; }
.holiday-consumption-subheading strong { color: #5a6875; font-size: 9px; }
.holiday-consumption-subheading span { color: #a0aab3; font-size: 8px; }
.holiday-consumption-list { display: grid; gap: 1px; padding: 0 15px; }
.holiday-consumption-row { display: grid; grid-template-columns: 115px minmax(0,1fr) 72px; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid #f1f3f5; }
.holiday-consumption-row:last-child { border-bottom: 0; }
.holiday-consumption-row > div:first-child { display: grid; min-width: 0; gap: 3px; }
.holiday-consumption-row strong { overflow: hidden; color: #596775; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.holiday-consumption-row small { overflow: hidden; color: #a0aab3; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.holiday-consumption-row .holiday-consumption-track i { background: #d06b55; }
.holiday-consumption-row > b { color: #596775; font-size: 9px; text-align: right; white-space: nowrap; }
.holiday-consumption-type.is-empty > b, .holiday-consumption-row.is-empty > b { color: #a0aab3; }
.holiday-consumption-empty { padding: 10px 0 12px; color: #a0aab3; font-size: 8px; text-align: center; }
.holiday-consumption-note { display: block; padding: 8px 15px 2px; color: #99a4ad; font-size: 8px; line-height: 1.6; }
.holiday-same-progress { margin-top: 4px; border-top: 1px solid #f0f2f4; }
.holiday-same-progress .holiday-consumption-subheading { border-top: 0; }
.holiday-same-progress-list { display: grid; gap: 1px; padding: 0 15px; }
.holiday-same-progress-row { display: grid; grid-template-columns: minmax(0,1fr) 78px; align-items: center; gap: 9px; padding: 8px 0; border-bottom: 1px solid #f1f3f5; }
.holiday-same-progress-row:last-child { border-bottom: 0; }
.holiday-same-progress-row > div:first-child { display: grid; min-width: 0; gap: 3px; }
.holiday-same-progress-row > div:first-child strong { color: #596775; font-size: 9px; font-weight: 600; }
.holiday-same-progress-row > div:first-child small { color: #99a4ad; font-size: 7px; line-height: 1.5; }
.holiday-same-progress-row > b { color: #9ba5af; font-size: 8px; font-weight: 500; text-align: right; }
.holiday-same-progress-change { display: grid; gap: 2px; }
.holiday-same-progress-change strong { font-size: 9px; font-weight: 600; white-space: nowrap; }
.holiday-same-progress-change small { color: #99a4ad; font-size: 7px; font-weight: 400; white-space: nowrap; }
.holiday-same-progress-change.is-up strong { color: #df7758; }
.holiday-same-progress-change.is-down strong { color: #43a38f; }
.holiday-same-progress-change.is-flat strong { color: #89949f; }
.holiday-same-progress-row.is-pending > div:first-child strong { color: #89949f; }
.holiday-same-progress-note { display: block; padding: 6px 15px 8px; color: #a0aab3; font-size: 7px; line-height: 1.55; }
.account-detail-report-stack { gap: 13px; }
.account-detail-overview { overflow: hidden; padding: 0; }
.account-detail-overview-list { padding: 0 14px 7px; }
.account-detail-overview-row { display: grid; grid-template-columns: 25px minmax(0,1fr) auto auto; align-items: center; gap: 8px; min-height: 38px; border-top: 1px solid #f0f2f3; }
.account-detail-overview-icon { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 7px; background: #f1f8f9; color: #4bafb0; font-size: 12px; }
.account-detail-overview-icon.liability { background: #eef9f5; color: #53ad99; }
.account-detail-overview-icon.net { background: #fff7e7; color: #d7a744; }
.account-detail-overview-icon.flow { background: #fff0eb; color: #e27e65; }
.account-detail-overview-row > strong { color: #596674; font-size: 9px; font-weight: 500; }
.account-detail-overview-row > small { color: #a1abb4; font-size: 7px; }
.account-detail-overview-row > b { color: #697582; font-size: 9px; font-weight: 500; text-align: right; white-space: nowrap; }
.account-detail-overview-row > b.negative { color: #df745d; }
.account-detail-distribution .category-donut-chart { padding-top: 1px; }
.account-detail-distribution .account-report-ranking { padding-bottom: 4px; }
.account-detail-flow-stack { display: grid; gap: 13px; }
.account-detail-flow-card { overflow: hidden; padding: 0; }
.account-detail-chart-scroll { width: 100%; overflow-x: auto; overflow-y: hidden; padding: 4px 9px 8px; scrollbar-width: thin; scrollbar-color: #dfe5e9 transparent; }
.account-detail-flow-svg { display: block; max-width: none; height: auto; }
.account-detail-chart-grid line { stroke: #eef0f2; stroke-dasharray: 3 4; }
.account-detail-chart-grid text { fill: #a2abb4; font: 8px system-ui,sans-serif; }
.account-detail-chart-baseline { stroke: #dfe4e8; stroke-width: 1; }
.account-detail-bar-icon { font: 12px system-ui,sans-serif; }
.account-detail-bar-name { fill: #909ba5; font: 8px system-ui,sans-serif; }
.account-detail-obligation-card { overflow: hidden; padding: 0; }
.account-detail-obligation-card .annual-card-heading > span b { margin-left: 4px; color: #5b6875; font-size: 10px; font-weight: 500; }
.account-detail-obligation-list { padding: 0 13px 5px; }
.account-detail-obligation-row { display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 49px; padding: 6px 0; border-top: 1px solid #f1f3f4; }
.account-detail-obligation-icon { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #f0f7fa; font-size: 13px; }
.account-detail-obligation-icon .account-custom-icon { width: 18px; height: 18px; border-radius: 5px; }
.account-detail-obligation-copy { display: grid; min-width: 0; gap: 3px; }
.account-detail-obligation-copy strong { overflow: hidden; color: #596674; font-size: 9px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account-detail-obligation-copy small { overflow: hidden; color: #a0aab3; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-detail-obligation-balance { display: grid; justify-items: end; gap: 4px; }
.account-detail-obligation-balance > b { color: #566472; font-size: 10px; font-weight: 500; }
.account-detail-obligation-balance > small { display: flex; gap: 7px; color: #a1abb4; font-size: 6px; white-space: nowrap; }
.account-summary-banner { display: flex; justify-content: space-between; align-items: center; padding: 20px 22px; background: linear-gradient(110deg,#f8fbff,#f3f7ff); border-color: #e9effa; }
.account-summary-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; min-width: 0; flex: 1; }
.account-summary-metric { min-width: 0; }
.account-summary-metric + .account-summary-metric { padding-left: 24px; border-left: 1px solid #e1e9f3; }
.account-summary-banner span { color: #8d9aab; font-size: 10px; }
.account-summary-banner strong { display: block; margin-top: 6px; font-size: 23px; letter-spacing: -.5px; }
.account-summary-banner .account-summary-metric > strong { color: #111820 !important; font-size: 32px; }
.account-summary-banner small { display: block; margin-top: 4px; color: #a0aab5; font-size: 8px; line-height: 1.4; }
.account-summary-metric.liquid strong { color: #18232d; }
.account-summary-metric.liquid > span { color: #18232d; }
.account-heading-add { height: 36px; padding: 0 13px; font-size: 10px; white-space: nowrap; }
.account-heading-add span { font-size: 16px; vertical-align: -1px; margin-right: 4px; }
.account-list { padding: 4px 20px 10px; }
.account-category-group + .account-category-group { margin-top: 5px; border-top: 1px solid #f0f2f4; }
.account-category-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 15px 8px 3px; color: #87929d; }
.account-category-heading strong { font-size: 11px; font-weight: 600; }
.account-category-heading > span { color: #929da8; font-size: 10px; white-space: nowrap; }
.account-category-heading small { color: #a2abb4; font-size: 8px; }
.account-form { margin: 15px 20px 2px; padding: 13px; display: grid; grid-template-columns: minmax(130px,1.2fr) minmax(155px,1.15fr) minmax(110px,1fr) auto; gap: 10px; align-items: end; border: 1px solid #f0f2f4; background: #fcfcfd; border-radius: 10px; }
.account-form label > span { display: block; color: #929da8; font-size: 8px; margin-bottom: 6px; }
.account-form input,.account-form select { width: 100%; height: 34px; border: 1px solid #e9edf0; border-radius: 7px; background: white; color: #52606e; font-size: 10px; padding: 0 8px; }
.account-type-field { display: grid; gap: 6px; min-width: 0; }
.account-type-field small { min-height: 11px; overflow: hidden; color: #9da7b0; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.account-subtype-field[hidden] { display: none; }
.account-form .primary-button { grid-column: 4; grid-row: 1; height: 34px; padding: 0 10px; font-size: 9px; white-space: nowrap; }
.account-row { display: flex; align-items: center; gap: 12px; padding: 14px 8px; border-bottom: 1px solid #f0f2f4; border-radius: 9px; transition: background .16s ease; }
.account-row:hover { background: #fbfcfd; }
.account-row.is-hidden { background: #fafbfc; }
.account-row.is-hidden .account-row-main { opacity: .76; }
.account-row-main { display: flex; flex: 1; min-width: 0; align-items: center; gap: 12px; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.account-row-main:focus-visible,.account-detail-actions button:focus-visible,.account-detail-back:focus-visible,.account-month-summary:focus-visible { outline: 2px solid #f1a18a; outline-offset: 2px; }
.account-row:last-child { border-bottom: 0; }
.account-icon { width: 37px; height: 37px; border-radius: 12px; display: grid; place-items: center; font-size: 17px; background: #f2f6ff; }
.account-custom-icon { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: cover; border-radius: inherit; display: block; }
.account-icon .account-custom-icon { width: 27px; height: 27px; border-radius: 8px; }
.balance-account-icons .account-custom-icon { width: 19px; height: 19px; border-radius: 6px; }
.account-select-icon { display: inline-grid; place-items: center; width: 22px; height: 22px; margin: 4px 0 3px; border-radius: 6px; overflow: hidden; font-size: 14px; }
.account-select-icon .account-custom-icon { width: 22px; height: 22px; }
.account-picker { position: relative; }
.account-picker > select { position: absolute; opacity: 0; pointer-events: none; }
.account-picker-button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 34px; padding: 0 9px; border: 1px solid #e6ebef; border-radius: 8px; background: #fff; color: #35404c; text-align: left; }
.account-picker-current { display: flex; align-items: center; gap: 7px; }
.account-picker-current .account-custom-icon { width: 24px; height: 24px; flex: 0 0 24px; }
.account-picker-current em { font-style: normal; }
.account-picker-button b { color: #8b96a2; }
.account-picker-menu { position: absolute; z-index: 25; left: 0; right: 0; bottom: calc(100% + 5px); max-height: 280px; overflow: auto; display: none; padding: 6px; border: 1px solid #e7edf1; border-radius: 10px; background: #fff; box-shadow: 0 10px 28px #26374625; }
.account-picker.open .account-picker-menu { display: block; }
.account-picker-group > strong { display: block; padding: 5px 7px 3px; color: #9aa4ae; font-size: 10px; }
.account-picker-option { display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 7px; border: 0; border-radius: 7px; background: transparent; color: #35404c; text-align: left; }
.account-picker-option:hover,.account-picker-option.selected { background: #f1f6f8; }
.account-picker-option > span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 6px; overflow: hidden; font-size: 15px; }
.account-picker-option .account-custom-icon { width: 23px; height: 23px; }
.account-copy { flex: 1; min-width: 0; }
.account-copy strong,.account-copy span { display: block; }
.account-copy strong { font-size: 10px; }
.account-noncurrent-tag { display: inline-block; margin-left: 6px; padding: 2px 5px; border-radius: 5px; background: #fff2df; color: #bd7b37; font-size: 7px; font-style: normal; font-weight: 500; vertical-align: 1px; }
.account-repayment-paid-tag { display: inline-block; margin-left: 6px; padding: 2px 5px; border-radius: 5px; background: #eaf7f0; color: #37866a; font-size: 7px; font-style: normal; font-weight: 550; vertical-align: 1px; }
.account-copy span { overflow: hidden; margin-top: 4px; color: #a2abb4; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.account-balance { text-align: right; font-size: 11px; font-weight: 600; }
.account-balance.liability-balance { color: #d86c52; }
.account-list .account-row .account-balance.liability-balance { color: var(--green); }
.account-subtotal { text-align: right; margin-top: 4px; color: #a2abb4; font-size: 8px; }
.account-row-balance { flex: 0 0 auto; }
.account-row-chevron { color: #b2bac2; font-size: 18px; line-height: 1; }
.account-rename-button,.account-visibility-button,.account-delete-button { flex: 0 0 auto; border: 1px solid #edf0f2; border-radius: 8px; padding: 7px 9px; background: #fff; color: #8b96a1; font-size: 8px; white-space: nowrap; cursor: pointer; }
.account-rename-button:hover { border-color: #f3d4ca; color: var(--orange-dark); background: #fffaf8; }
.account-visibility-button:hover { border-color: #d7e0f1; color: #607da9; background: #f7f9fd; }
.account-delete-button { border-color: #f2e6e5; color: #bd7772; }
.account-delete-button:hover { border-color: #eac6c3; color: #c64d49; background: #fff7f6; }
.account-visibility-button:focus-visible,.account-hidden-toggle:focus-visible { outline: 2px solid #8ca7dc; outline-offset: 2px; }
.account-list-empty { padding: 22px 10px; color: #9aa5af; font-size: 9px; text-align: center; }
.account-hidden-controls { display: flex; flex-direction: column; align-items: center; gap: 5px; padding: 11px 8px 4px; border-top: 1px solid #f1f3f5; }
.account-hidden-controls small { color: #a1aab3; font-size: 8px; text-align: center; }
.account-hidden-toggle { display: inline-flex; align-items: center; gap: 8px; padding: 4px 8px; border: 0; border-radius: 7px; background: transparent; color: #818d99; font-size: 9px; cursor: pointer; }
.account-hidden-toggle:hover { color: #607da9; background: #f7f9fd; }
.account-hidden-toggle span { color: #a5afb8; }
.account-hidden-list { padding-top: 4px; }
.account-help-note { padding: 16px 19px; color: #99a3ad; font-size: 9px; line-height: 1.7; }
.account-detail-page { gap: 14px; }
.account-detail-hero { padding: 18px 22px 17px; background: linear-gradient(120deg,#eff9fa,#f7fbff 62%,#fff8f4); border-color: #e9f0f1; }
.account-detail-back { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 13px; border: 1px solid #dfe8eb; border-radius: 10px; background: #fff; color: #526878; font-size: 13px; font-weight: 650; box-shadow: 0 2px 6px #3145560a; cursor: pointer; transition: .16s ease; }
.account-detail-back span:first-child { color: var(--orange-dark); font-size: 19px; line-height: 1; }
.account-detail-back:hover { border-color: #f0c7ba; background: #fff9f6; color: var(--orange-dark); box-shadow: 0 3px 9px #d76b5214; }
.account-detail-heading { display: flex; align-items: center; gap: 11px; margin-top: 15px; }
.account-detail-copy { flex: 1; min-width: 0; }
.account-detail-heading h1 { margin: 0; font-size: 16px; letter-spacing: -.25px; }
.account-detail-heading p { margin: 4px 0 0; color: #9aa5af; font-size: 9px; }
.account-detail-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; margin-left: auto; }
.account-detail-actions .account-detail-adjust,.account-detail-actions .account-rename-button,.account-detail-actions .account-visibility-button,.account-detail-actions .account-delete-button { height: 31px; padding: 0 9px; font-size: 8px; }
.account-detail-actions .account-detail-adjust { margin-left: 0; }
.account-detail-balance { display: flex; align-items: baseline; gap: 8px; margin-top: 15px; }
.account-detail-balance strong { font-size: 26px; letter-spacing: -.7px; }
.account-detail-balance strong.liability-balance { color: #d86c52; }
.account-detail-balance span { color: #a1aab3; font-size: 9px; }
.account-detail-flow { display: flex; align-items: end; justify-content: space-between; gap: 14px; margin-top: 11px; padding-top: 10px; border-top: 1px solid #e9eff0; }
.account-detail-flow > strong { color: #45a78f; font-size: 13px; }
.account-detail-flow > strong.negative { color: #df785f; }
.account-detail-flow > strong small { color: #9ba6b0; font-size: 8px; font-weight: 400; }
.account-detail-flow > div { display: flex; align-items: center; gap: 9px; color: #9ba6b0; font-size: 8px; }
.account-detail-flow > div i,.account-month-totals small i { width: 1px; height: 10px; background: #e2e6e9; }
.account-detail-flow b { color: #667483; font-weight: 500; }
.investment-performance-card { padding: 16px 18px; border-color: #e7eee9; background: linear-gradient(135deg,#fbfefc,#fff 72%); }
.investment-performance-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.investment-performance-heading > div { display: grid; min-width: 0; gap: 4px; }
.investment-performance-actions { display: flex !important; flex: 0 0 auto; gap: 6px; }
.investment-performance-heading > div > span { color: #33434b; font-size: 12px; font-weight: 700; }
.investment-performance-heading small { color: #98a4aa; font-size: 9px; line-height: 1.5; }
.investment-performance-heading .secondary-button { flex: 0 0 auto; min-height: 34px; padding: 0 11px; border-color: #dcebe3; color: #41886e; background: #f7fcf9; font-size: 9px; }
.investment-performance-primary { display: grid; justify-items: start; gap: 5px; margin-top: 14px; padding: 13px 14px; border-radius: 11px; background: #f3f9f5; }
.investment-performance-primary > span { color: #8b9a91; font-size: 9px; }
.investment-performance-primary > strong { color: #62746b; font-size: 23px; letter-spacing: -.45px; }
.investment-performance-primary > strong.is-profit,.investment-performance-primary > em.is-profit { color: #d5694d; }
.investment-performance-primary > strong.is-loss,.investment-performance-primary > em.is-loss { color: #438b72; }
.investment-performance-primary > em { color: #82918a; font-size: 9px; font-style: normal; }
.investment-performance-breakdown { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 10px; }
.investment-performance-breakdown > div { display: grid; min-width: 0; gap: 5px; padding: 9px 10px; border: 1px solid #edf1ee; border-radius: 9px; background: #fff; }
.investment-performance-breakdown span { color: #9ba5a0; font-size: 8px; }
.investment-performance-breakdown strong { overflow: hidden; color: #35434a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.investment-principal-adjustment-note { overflow: hidden; color: #8a9a91; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.investment-performance-history { margin-top: 12px; border-top: 1px solid #edf1ee; }
.investment-performance-history-heading,.investment-performance-history-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.investment-performance-history-heading { padding: 10px 1px 5px; }
.investment-performance-history-heading strong { color: #64736b; font-size: 9px; }
.investment-performance-history-heading span { color: #a2aca6; font-size: 8px; }
.investment-performance-history-row { padding: 7px 1px; border-top: 1px solid #f2f4f2; }
.investment-performance-history-row > span { display: grid; min-width: 0; gap: 3px; }
.investment-performance-history-row strong { color: #58665f; font-size: 9px; }
.investment-performance-history-row small { overflow: hidden; color: #a2aca6; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.investment-performance-history-row > b { flex: 0 0 auto; color: #45584d; font-size: 10px; font-weight: 600; }
.investment-performance-empty { margin-top: 12px; padding: 10px 11px; border-radius: 8px; background: #f8faf8; color: #9aa59e; font-size: 9px; line-height: 1.6; }
.investment-performance-note { display: block; margin-top: 10px; color: #9ca6a0; font-size: 8px; line-height: 1.65; }
.account-repayment-setting { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; padding-top: 11px; border-top: 1px solid #e9eff0; }
.account-repayment-copy { display: grid; gap: 3px; }
.account-repayment-copy strong { color: #52616e; font-size: 10px; font-weight: 600; }
.account-repayment-copy small { color: #9aa5af; font-size: 8px; }
.account-repayment-setting select { min-width: 122px; height: 34px; padding: 0 10px; border: 1px solid #dfe8eb; border-radius: 8px; background: #fff; color: #52616e; font: inherit; font-size: 10px; }
.account-ledger-card { overflow: hidden; }
.account-ledger-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px 12px; border-bottom: 1px solid #f0f2f4; }
.account-ledger-heading > div { display: flex; flex-direction: column; gap: 4px; }
.account-ledger-heading strong { font-size: 11px; }
.account-ledger-heading span { color: #9ca6af; font-size: 8px; }
.account-ledger-heading > span { flex: 0 0 auto; }
.account-month-group { border-bottom: 1px solid #f0f2f4; }
.account-month-group:last-child { border-bottom: 0; }
.account-month-summary { display: flex; width: 100%; align-items: center; gap: 14px; padding: 14px 18px; border: 0; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.account-month-summary:hover { background: #fbfcfd; }
.account-month-period { display: flex; min-width: 70px; flex-direction: column; gap: 2px; }
.account-month-period strong { font-size: 13px; font-weight: 600; }
.account-month-period small { color: #9da7b0; font-size: 8px; }
.account-month-totals { display: flex; flex: 1; min-width: 0; align-items: baseline; justify-content: flex-end; gap: 7px; flex-wrap: wrap; text-align: right; }
.account-month-net-label { color: #9ba5af; font-size: 8px; }
.account-month-totals > strong { font-size: 14px; font-weight: 500; }
.account-month-totals > strong.negative { color: #d86c52; }
.account-month-totals small { display: flex; width: 100%; justify-content: flex-end; align-items: center; gap: 7px; color: #9ba5af; font-size: 8px; }
.account-month-chevron { flex: 0 0 22px; display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid #e8ecef; border-radius: 7px; color: #9ba5af; font-size: 12px; transition: transform .15s ease; }
.account-month-chevron.expanded { transform: rotate(180deg); }
.account-month-transactions { padding: 0 18px 10px; }
.account-month-transactions .day-heading { margin-top: 4px; }
.account-month-transactions .transaction-row { padding: 12px 0; }
.account-month-transactions .account-transaction-row { gap: 8px; }
.account-month-transactions .transaction-main > span { overflow-wrap: anywhere; }
.account-transaction-delete { display: grid; width: 25px; height: 25px; flex: 0 0 25px; place-items: center; border: 1px solid #f1e2e0; border-radius: 7px; background: #fff; color: #bd7772; font-size: 14px; line-height: 1; opacity: 1; cursor: pointer; }
.account-transaction-delete:hover { border-color: #eac6c3; background: #fff7f6; color: #c64d49; opacity: 1; }
.account-transaction-delete:focus-visible { outline: 2px solid #f1a18a; outline-offset: 2px; }
.account-rename-modal { width: min(430px,100%); }
#account-rename-form { overflow-y: auto; padding: 4px 24px 22px; }
#account-rename-form > .form-field input { height: 42px; font-size: 14px; }
.account-rename-noncurrent { display: grid; gap: 6px; margin: 4px 0 10px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.account-rename-noncurrent > span:first-child { color: #929da8; font-size: 9px; }
.account-rename-noncurrent small { color: #9da7b0; font-size: 8px; line-height: 1.5; }
.account-rename-hint { display: block; margin-top: 10px; color: #9aa5af; font-size: 9px; line-height: 1.6; }
.account-delete-modal { width: min(440px,100%); }
.account-delete-body { padding: 2px 24px 22px; }
.account-delete-body p { margin: 8px 0 20px; color: #687584; font-size: 12px; line-height: 1.8; overflow-wrap: anywhere; }
.account-delete-footer { margin-top: 0; }
.account-delete-footer button[hidden] { display: none; }
.account-delete-footer .danger-button { border-color: #cc5650; background: #cc5650; color: #fff; box-shadow: 0 5px 12px #cc565026; }
.account-delete-footer .danger-button:hover { border-color: #b94642; background: #b94642; }
.balance-adjustment-modal { width: min(430px,100%); }
.balance-adjustment-form { overflow-y: auto; padding: 0 24px 22px; }
.adjustment-current { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 15px; margin: 7px 0 18px; border-radius: 11px; background: #f8fafb; }
.adjustment-current > span { overflow: hidden; color: #596573; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.adjustment-current div { text-align: right; }
.adjustment-current small,.adjustment-current strong { display: block; }
.adjustment-current small { color: #a2abb4; font-size: 8px; }
.adjustment-current strong { margin-top: 4px; color: #34404d; font-size: 14px; font-variant-numeric: tabular-nums; }
.investment-principal-automatic { margin: 14px 0 0; padding: 11px 13px; }
.investment-principal-automatic strong { margin-top: 0; font-size: 12px; }
.balance-adjustment-form > .form-field input { height: 40px; font-size: 13px; }
.adjustment-hint { display: block; margin: -5px 0 14px; color: #a2abb4; font-size: 8px; line-height: 1.6; }
.adjustment-checkbox-line { display: inline-flex; align-items: center; gap: 6px; color: #52616e; font-size: 10px; }
.adjustment-checkbox-line input { width: 16px; height: 16px; margin: 0; accent-color: var(--orange); }
.adjustment-note-field { margin-top: 0; }
.adjustment-footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 20px; padding-top: 15px; border-top: 1px solid #f0f2f4; }
.adjustment-footer button { min-width: 76px; height: 35px; border-radius: 8px; font-size: 10px; }
.adjustment-footer .secondary-button { border: 1px solid #e9edf0; color: #778390; background: white; }
.budget-total-panel { padding: 23px; display: flex; justify-content: space-between; align-items: center; background: linear-gradient(110deg,#fff9f5,#fff); }
.budget-total-panel span { display: block; font-size: 9px; color: #9ba5af; }
.budget-total-panel strong { display: block; font-size: 26px; margin: 6px 0; }
.budget-total-panel p { margin: 0; color: #a7afb7; font-size: 9px; }
.budget-total-panel .budget-ring { width: 94px; height: 94px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--orange) var(--used),#f5e9e4 0); }
.budget-total-panel .budget-ring::after { content: ''; grid-area: 1/1; width: 71px; height: 71px; border-radius: 50%; background: white; }
.budget-total-panel .budget-ring strong { grid-area: 1/1; position: relative; z-index: 1; font-size: 14px; margin: 0; }
.budget-disposition-card,.budget-affordability-card { display: grid; gap: 13px; padding: 17px 19px; }
.budget-insight-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.budget-insight-heading > div { display: grid; gap: 4px; }
.budget-insight-heading h2 { margin: 0; color: var(--ink); font-size: 13px; }
.budget-insight-heading p { margin: 0; color: #98a3ac; font-size: 8px; line-height: 1.45; }
.budget-insight-heading > strong { color: #354451; font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.budget-disposition-track { display: flex; width: 100%; height: 13px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.budget-disposition-track > i { display: block; height: 100%; min-width: 2px; }
.budget-disposition-track > i.spent { background: #55a88f; }
.budget-disposition-track > i.reserved { background: #e4b56e; }
.budget-disposition-track > i.available { background: #dce9e7; }
.budget-disposition-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.budget-disposition-values > span { display: grid; min-width: 0; gap: 4px; }
.budget-disposition-values small { color: #95a0a8; font-size: 8px; }
.budget-disposition-values b { overflow: hidden; color: #3e4b56; font-size: 12px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.budget-disposition-values .spent b { color: #398b75; }
.budget-disposition-values .reserved b { color: #a97837; }
.budget-disposition-values .available b { color: #455e65; }
.budget-disposition-overrun { margin: -4px 0 0; color: #b45f4e; font-size: 8px; line-height: 1.5; }
.budget-disposition-note { color: #9ba5ad; font-size: 8px; line-height: 1.5; }
.budget-disposition-empty,.budget-affordability-empty { padding: 10px 11px; border: 1px dashed #e3e9eb; border-radius: 9px; color: #8f9ba4; font-size: 9px; line-height: 1.5; }
.budget-affordability-sample { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: #f1f5f5; color: #798790; font-size: 8px; white-space: nowrap; }
.budget-affordability-chart { display: grid; gap: 8px; }
.budget-affordability-track { position: relative; height: 15px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.budget-affordability-track > .income-capacity { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: #dcece7; }
.budget-affordability-track > .fixed-commitment { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: #6cae99; opacity: .9; }
.budget-affordability-track > .budget-marker { position: absolute; z-index: 2; top: -3px; height: 21px; border-left: 2px dashed #d47c63; transform: translateX(-1px); }
.budget-affordability-legend { display: flex; flex-wrap: wrap; gap: 6px 15px; color: #7e8a93; font-size: 8px; }
.budget-affordability-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.budget-affordability-legend i { display: inline-block; width: 13px; height: 7px; border-radius: 3px; background: #dcece7; }
.budget-affordability-legend i.fixed-commitment { background: #6cae99; }
.budget-affordability-legend i.budget-marker { width: 2px; height: 11px; border-left: 2px dashed #d47c63; border-radius: 0; background: transparent; }
.budget-affordability-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.budget-affordability-metrics > span { display: grid; min-width: 0; gap: 5px; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; }
.budget-affordability-metrics small { color: #8e9aa3; font-size: 8px; line-height: 1.4; }
.budget-affordability-metrics b { overflow: hidden; color: #3d4b57; font-size: 11px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.budget-affordability-status { margin: 0; padding: 9px 10px; border-radius: 8px; background: #f2f8f6; color: #55756b; font-size: 9px; line-height: 1.5; }
.budget-affordability-status.is-warning { background: #fff6ee; color: #a16d40; }
.budget-affordability-note { color: #9ba5ad; font-size: 8px; line-height: 1.55; }
[data-theme="night"] .budget-disposition-card,[data-theme="night"] .budget-affordability-card { background: #1a2631; }
[data-theme="night"] .budget-insight-heading > strong,[data-theme="night"] .budget-disposition-values b,[data-theme="night"] .budget-affordability-metrics b { color: #d8e1e7; }
[data-theme="night"] .budget-disposition-track,[data-theme="night"] .budget-affordability-track { background: #344250; }
[data-theme="night"] .budget-disposition-track > i.available { background: #33443f; }
[data-theme="night"] .budget-disposition-values .available b { color: #b8c9cd; }
[data-theme="night"] .budget-affordability-track > .income-capacity { background: #27483e; }
[data-theme="night"] .budget-affordability-track > .fixed-commitment { background: #4b967f; }
[data-theme="night"] .budget-affordability-metrics > span,[data-theme="night"] .budget-disposition-empty,[data-theme="night"] .budget-affordability-empty { border-color: #344250; background: #202b38; }
[data-theme="night"] .budget-affordability-status { background: #1c3029; color: #a5d0bd; }
[data-theme="night"] .budget-affordability-status.is-warning { background: #33291f; color: #dfb888; }
.budget-pace-card { overflow: hidden; padding: 0; }
.budget-pace-card .card-header { align-items: flex-start; }
.budget-pace-card .card-header > div { display: grid; gap: 4px; }
.budget-pace-card .card-header h2 { margin: 0; color: var(--ink); font-size: 14px; }
.budget-pace-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; }
.budget-pace-status { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; background: #edf6f3; color: #398c78; font-size: 9px; white-space: nowrap; }
.budget-pace-status.is-over { background: #fff0ec; color: #ca624a; }
.budget-pace-mode-switch { display: flex; align-items: center; gap: 5px; margin: 0 18px 9px; color: #8d99a2; font-size: 9px; }
.budget-pace-mode-switch > span { margin-right: 4px; }
.budget-pace-mode-switch button { padding: 5px 9px; border: 1px solid #e6eaec; border-radius: 7px; background: #fff; color: #71808b; font: inherit; cursor: pointer; }
.budget-pace-mode-switch button.is-active { border-color: #d5e9e2; background: #edf7f3; color: #388a75; font-weight: 650; }
.budget-pace-breakdown { display: grid; grid-template-columns: minmax(0,1fr) 15px minmax(0,1fr) 15px minmax(0,1fr) minmax(125px,1.12fr); align-items: center; gap: 7px; margin: 0 18px 9px; padding: 11px 13px; border: 1px solid #edf0f1; border-radius: 10px; background: #fbfcfc; }
.budget-pace-breakdown > div { display: grid; min-width: 0; gap: 4px; }
.budget-pace-breakdown > div > small,.budget-pace-breakdown-total > small { color: #8d99a2; font-size: 8px; }
.budget-pace-breakdown > div > strong { overflow: hidden; color: #35434f; font-size: 13px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.budget-pace-breakdown > div > span { color: #a1abb2; font-size: 8px; }
.budget-pace-breakdown > i { color: #aeb8bd; font-size: 12px; font-style: normal; text-align: center; }
.budget-pace-breakdown-total { display: grid; min-width: 0; gap: 4px; padding-left: 11px; border-left: 1px solid #e7ebed; }
.budget-pace-breakdown-total > strong { color: #34424d; font-size: 16px; font-variant-numeric: tabular-nums; }
.budget-pace-confidence { display: inline-flex; width: fit-content; align-items: center; padding: 3px 6px; border-radius: 999px; background: #f1f3f4; color: #76838c; font-size: 8px; font-weight: 500; }
.budget-pace-confidence.is-high { background: #eaf6f1; color: #388a75; }
.budget-pace-confidence.is-medium { background: #fff6e9; color: #a87930; }
.budget-pace-confidence.is-low { background: #f3f4f5; color: #89949d; }
.budget-pace-flags { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 18px 9px; }
.budget-pace-flags > span { display: grid; min-width: 0; gap: 4px; padding: 8px 10px; border: 1px solid #edf0f1; border-radius: 8px; background: #fff; }
.budget-pace-flags > span.is-warning { border-color: #f4ded7; background: #fff8f5; }
.budget-pace-flags b { color: #52616c; font-size: 9px; }
.budget-pace-flags .is-warning b { color: #c75f4c; }
.budget-pace-flags small { color: #929da5; font-size: 8px; line-height: 1.4; }
.budget-pace-range { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 18px 9px; padding: 8px 10px; border-radius: 8px; background: #f7f9fa; }
.budget-pace-range > span:first-child { display: grid; gap: 3px; }
.budget-pace-range small { color: #8d99a2; font-size: 8px; }
.budget-pace-range strong { color: #36434f; font-size: 13px; font-variant-numeric: tabular-nums; }
.budget-pace-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 18px; overflow: hidden; border: 1px solid #edf0f1; border-radius: 10px; background: #edf0f1; }
.budget-pace-metric { display: grid; min-width: 0; gap: 5px; padding: 11px 12px; background: #fbfcfc; }
.budget-pace-metric > span { overflow: hidden; color: #8d99a2; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.budget-pace-metric > strong { overflow: hidden; color: #36434f; font-size: 15px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.budget-pace-metric.is-over > strong { color: #d05f4c; }
.budget-pace-metric > small { overflow: hidden; color: #a1abb2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.budget-pace-chart-wrap { margin: 8px 15px 0; }
.budget-pace-chart { display: block; width: 100%; height: auto; overflow: visible; }
.budget-pace-gridline { stroke: #edf0f2; stroke-width: 1; stroke-dasharray: 3 5; }
.budget-pace-axis-label { fill: #98a2ab; font-family: inherit; font-size: 10px; }
.budget-pace-target-line { stroke: #8290ba; stroke-width: 2; stroke-dasharray: 5 5; }
.budget-pace-actual-line { fill: none; stroke: #ed8069; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.budget-pace-forecast-line { stroke: #4aa48e; stroke-width: 3; stroke-dasharray: 4 5; stroke-linecap: round; }
.budget-pace-forecast-line.is-over { stroke: #d66b58; }
.budget-pace-cutoff-line { stroke: #66737d; stroke-width: 1; stroke-dasharray: 3 4; opacity: .72; }
.budget-pace-cutoff-label { fill: #697781; font-family: inherit; font-size: 8px; }
.budget-pace-range-line,.budget-pace-range-cap { stroke: #e0a94f; stroke-width: 2; }
.budget-pace-current-point { fill: #ed8069; stroke: #fff; stroke-width: 2; }
.budget-pace-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 18px; padding: 0 15px 8px; color: #89949d; font-size: 8px; }
.budget-pace-legend span { display: inline-flex; align-items: center; gap: 5px; }
.budget-pace-legend i { display: inline-block; width: 18px; height: 0; border-top: 2px solid #ed8069; }
.budget-pace-legend i.target { border-color: #8290ba; border-top-style: dashed; }
.budget-pace-legend i.forecast { border-color: #4aa48e; border-top-style: dashed; }
.budget-pace-legend i.range { width: 2px; height: 11px; border: 0; background: #e0a94f; }
.budget-pace-reason,.budget-pace-plan { display: grid; gap: 5px; margin: 0 18px 9px; padding: 10px 12px; border-radius: 9px; background: #f7f9fa; }
.budget-pace-reason > strong,.budget-pace-plan > div > strong { color: #56636e; font-size: 9px; }
.budget-pace-reason p,.budget-pace-plan p { margin: 0; color: #687680; font-size: 9px; line-height: 1.55; }
.budget-pace-reason > small,.budget-pace-plan > small { color: #9aa5ad; font-size: 8px; line-height: 1.45; }
.budget-pace-plan { border: 1px solid #e7f0ec; background: #f4faf7; }
.budget-pace-plan > div { display: flex; align-items: baseline; gap: 7px; }
.budget-pace-plan .eyebrow { color: #55917f; font-size: 8px; }
.budget-pace-categories { display: grid; gap: 10px; margin: 4px 18px 0; padding: 13px 0 2px; border-top: 1px solid #edf0f1; }
.budget-pace-categories-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.budget-pace-categories-heading strong { color: #53616c; font-size: 10px; }
.budget-pace-categories-heading span { color: #a0aab2; font-size: 8px; text-align: right; }
.budget-pace-category-list { display: grid; gap: 10px; }
.budget-pace-category-toggle { margin-top: 1px; }
.budget-pace-category { display: grid; gap: 5px; }
.budget-pace-category-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.budget-pace-category-head > strong { display: flex; min-width: 0; align-items: center; gap: 6px; color: #56636e; font-size: 9px; font-weight: 500; }
.budget-pace-category-head > strong i { display: grid; width: 19px; height: 19px; flex: 0 0 19px; place-items: center; border-radius: 6px; font-size: 11px; font-style: normal; }
.budget-pace-category-head > span { color: #9ba5ad; font-size: 8px; text-align: right; }
.budget-pace-bullet-legend { display: flex; flex-wrap: wrap; gap: 8px 15px; color: #8f9aa2; font-size: 8px; }
.budget-pace-bullet-legend > span { display: inline-flex; align-items: center; gap: 5px; }
.budget-pace-bullet-legend i { display: inline-block; width: 14px; height: 6px; border-radius: 5px; background: #68aa94; }
.budget-pace-bullet-legend i.forecast { width: 2px; height: 11px; border-radius: 2px; background: #dfa655; }
.budget-pace-bullet-legend i.budget { width: 2px; height: 11px; border-left: 2px dashed #596874; border-radius: 0; background: transparent; }
.budget-bullet-track { position: relative; height: 8px; overflow: visible; border-radius: 9px; background: #edf1f2; }
.budget-bullet-track > .actual { display: block; height: 100%; border-radius: inherit; }
.budget-bullet-track > .forecast { position: absolute; top: -3px; width: 2px; height: 14px; border-radius: 2px; background: #dfa655; transform: translateX(-50%); }
.budget-bullet-track > .budget { position: absolute; top: -3px; height: 14px; border-left: 2px dashed #596874; transform: translateX(-50%); }
.budget-bullet-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.budget-bullet-values > span { display: flex; min-width: 0; justify-content: space-between; gap: 4px; }
.budget-bullet-values small { color: #98a2a9; font-size: 8px; }
.budget-bullet-values b { overflow: hidden; color: #5d6a75; font-size: 8px; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
[data-theme="night"] .budget-pace-category-head > span,[data-theme="night"] .budget-bullet-values b { color: #a9b7c1; }
[data-theme="night"] .budget-bullet-track { background: #344250; }
[data-theme="night"] .budget-pace-bullet-legend i.budget,[data-theme="night"] .budget-bullet-track > .budget { border-color: #a4b1bc; }
[data-theme="night"] .budget-pace-mode-switch button { border-color: #344250; background: #202b38; color: #a9b7c1; }
[data-theme="night"] .budget-pace-mode-switch button.is-active { border-color: #31564b; background: #1e342e; color: #a5d0bd; }
[data-theme="night"] .budget-pace-breakdown,[data-theme="night"] .budget-pace-range,[data-theme="night"] .budget-pace-reason { border-color: #344250; background: #202b38; }
[data-theme="night"] .budget-pace-breakdown > div > strong,[data-theme="night"] .budget-pace-breakdown-total > strong,[data-theme="night"] .budget-pace-range strong { color: #d6e0e6; }
[data-theme="night"] .budget-pace-breakdown > div > span,[data-theme="night"] .budget-pace-breakdown > div > small,[data-theme="night"] .budget-pace-breakdown-total > small,[data-theme="night"] .budget-pace-range small { color: #93a1ab; }
[data-theme="night"] .budget-pace-flags > span { border-color: #344250; background: #202b38; }
[data-theme="night"] .budget-pace-flags > span.is-warning { border-color: #604039; background: #332620; }
[data-theme="night"] .budget-pace-flags b,[data-theme="night"] .budget-pace-reason > strong { color: #c1cdd5; }
[data-theme="night"] .budget-pace-flags small,[data-theme="night"] .budget-pace-reason p { color: #a9b7c1; }
[data-theme="night"] .budget-pace-plan { border-color: #31564b; background: #1e302d; }
[data-theme="night"] .budget-pace-plan p { color: #b7c9c1; }
[data-theme="night"] .budget-pace-cutoff-label { fill: #b2bec6; }
.budget-pace-category-track { position: relative; height: 5px; overflow: visible; border-radius: 9px; background: #edf1f2; }
.budget-pace-category-track > span { display: block; height: 100%; border-radius: inherit; }
.budget-pace-category-track > i { position: absolute; top: -2px; width: 2px; height: 9px; border-radius: 2px; background: #45535f; transform: translateX(-50%); }
.budget-pace-category > small { display: flex; justify-content: space-between; gap: 8px; color: #9ba5ad; font-size: 8px; }
.budget-pace-category > small em { color: #72818b; font-style: normal; text-align: right; }
.budget-pace-method { margin: 10px 18px 15px; color: #9ba5ad; font-size: 8px; line-height: 1.55; }
.auto-budget-card { padding: 19px 20px 17px; background: linear-gradient(110deg,#f7fbfa,#fff); }
.auto-budget-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.auto-budget-header h2 { margin: 4px 0 4px; color: var(--ink); font-size: 15px; }
.auto-budget-header p { max-width: 510px; margin: 0; color: #99a4ad; font-size: 9px; line-height: 1.55; }
.auto-budget-button { flex: 0 0 auto; min-height: 32px; padding: 0 12px; border-color: #cfe9e2; background: #f5fcfa; color: #348b7b; border-radius: 8px; font-size: 10px; white-space: nowrap; }
.auto-budget-button:hover { border-color: #9fd1c5; background: #ecf9f5; color: #227866; }
.auto-budget-summary { display: flex; align-items: baseline; gap: 8px; margin-top: 15px; color: #9aa5ae; font-size: 9px; }
.auto-budget-summary strong { color: #2e8d7c; font-size: 18px; letter-spacing: -.3px; }
.auto-budget-summary small { color: #aab3bb; font-size: 8px; }
.auto-budget-list { display: grid; gap: 8px; margin-top: 13px; }
.auto-budget-item { display: grid; grid-template-columns: 108px minmax(0,1fr) 78px; align-items: center; gap: 10px; }
.auto-budget-item-name { display: flex; align-items: center; gap: 6px; min-width: 0; color: #56636e; font-size: 10px; }
.auto-budget-item-name i { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 6px; background: #f0f5f4; font-style: normal; font-size: 12px; }
.auto-budget-item-name strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.auto-budget-item-bar { height: 6px; overflow: hidden; border-radius: 8px; background: #ecf1f1; }
.auto-budget-item-bar span { display: block; height: 100%; border-radius: inherit; }
.auto-budget-item b { color: #4d5a66; font-size: 10px; font-weight: 600; text-align: right; white-space: nowrap; }
.auto-budget-empty { margin-top: 12px; padding: 10px 12px; border: 1px dashed #dfe9e8; border-radius: 9px; color: #9aa6ad; font-size: 9px; }
.budget-transfer-card { overflow: hidden; padding: 0; }
.budget-transfer-summary { display: flex; align-items: center; gap: 11px; padding: 15px 19px; cursor: pointer; list-style: none; }
.budget-transfer-summary::-webkit-details-marker { display: none; }
.budget-transfer-summary-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 11px; background: #edf7f4; color: #338a79; font-size: 19px; }
.budget-transfer-summary-copy { display: grid; min-width: 0; gap: 3px; }
.budget-transfer-summary-copy strong { color: var(--ink); font-size: 12px; }
.budget-transfer-summary-copy small { color: #97a2aa; font-size: 9px; }
.budget-transfer-summary-chevron { margin-left: auto; color: #89959e; font-size: 15px; transition: transform .18s; }
.budget-transfer-card[open] .budget-transfer-summary-chevron { transform: rotate(180deg); }
.budget-transfer-body { padding: 0 19px 17px; }
.budget-transfer-intro { margin: 0 0 12px; color: #8e9aa2; font-size: 9px; line-height: 1.55; }
.budget-transfer-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.budget-transfer-field { display: grid; min-width: 0; gap: 6px; color: #7e8b94; font-size: 9px; }
.budget-transfer-field select,.budget-transfer-field input { width: 100%; min-width: 0; height: 36px; padding: 0 10px; border: 1px solid #e8edef; border-radius: 9px; background: #fff; color: #4e5b65; font: inherit; font-size: 10px; }
.budget-transfer-field small { color: #9ca7ae; font-size: 8px; }
.budget-transfer-method { display: flex; flex-wrap: wrap; gap: 7px; margin: 13px 0 11px; padding: 0; border: 0; }
.budget-transfer-method legend { width: 100%; margin-bottom: 7px; color: #7e8b94; font-size: 9px; }
.budget-transfer-method label { display: flex; min-height: 32px; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid #e8edef; border-radius: 8px; color: #697780; font-size: 9px; cursor: pointer; }
.budget-transfer-method label:has(input:checked) { border-color: #b8ddd4; background: #f4fbf9; color: #347f72; }
.budget-transfer-method input { accent-color: #438e7a; }
.budget-transfer-weighted-targets { margin-top: 4px; }
.budget-transfer-target-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.budget-transfer-target-heading strong { color: #66747e; font-size: 9px; }
.budget-transfer-target-heading small { color: #98a4ab; font-size: 8px; text-align: right; }
.budget-transfer-target-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.budget-transfer-target-option { display: flex; min-width: 0; align-items: center; gap: 7px; padding: 7px; border: 1px solid #edf0f1; border-radius: 8px; cursor: pointer; }
.budget-transfer-target-option:has(input:checked) { border-color: #c7e4dc; background: #f7fcfa; }
.budget-transfer-target-option input { flex: 0 0 auto; margin: 0; accent-color: #438e7a; }
.budget-transfer-target-option.is-empty { opacity: .56; cursor: default; }
.budget-transfer-target-icon { display: grid; width: 22px; height: 22px; flex: 0 0 22px; place-items: center; border-radius: 7px; font-size: 12px; }
.budget-transfer-target-copy { display: grid; min-width: 0; gap: 2px; }
.budget-transfer-target-copy strong { overflow: hidden; color: #5c6871; font-size: 8px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.budget-transfer-target-copy small { color: #9ba5ac; font-size: 7px; }
.budget-transfer-result { display: grid; gap: 5px; margin-top: 12px; padding: 10px; border: 1px solid #e8efed; border-radius: 9px; background: #f8fbfa; color: #75838c; font-size: 8px; line-height: 1.5; }
.budget-transfer-result.is-invalid { border-color: #f0e5df; background: #fffaf8; color: #a56f5e; }
.budget-transfer-result-heading,.budget-transfer-result-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 2px 8px; }
.budget-transfer-result-heading strong,.budget-transfer-result-row strong { overflow: hidden; color: #56636d; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.budget-transfer-result-heading b,.budget-transfer-result-row b { color: #438e7a; font-size: 9px; text-align: right; }
.budget-transfer-result-heading small,.budget-transfer-result-row small { grid-column: 1 / -1; color: #9aa5ac; font-size: 8px; }
.budget-transfer-result-total { padding-top: 5px; border-top: 1px solid #e8eeec; color: #6f7d85; }
.budget-transfer-result-note { color: #9a7963; }
.budget-transfer-result-overrun { color: #c66d56; font-weight: 600; }
.budget-transfer-subcategory-note { display: block; margin-top: 8px; color: #9aa5ac; font-size: 8px; line-height: 1.5; }
.budget-transfer-actions { display: flex; justify-content: flex-end; margin-top: 11px; }
.budget-transfer-actions .primary-button { min-height: 34px; padding: 0 13px; border-radius: 8px; font-size: 9px; }
.budget-transfer-actions .primary-button:disabled { opacity: .45; cursor: not-allowed; }
.budget-transfer-empty { display: block; padding: 10px 0; color: #9aa5ac; font-size: 9px; }
.budget-overrun-card { overflow: hidden; padding: 0; }
.budget-overrun-card .card-header { align-items: center; }
.budget-overrun-card .card-header > div { display: grid; gap: 4px; }
.budget-overrun-card .card-header h2 { margin: 0; font-size: 14px; }
.budget-overrun-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; }
.budget-overrun-total { color: #d56e5b; font-size: 16px; }
.budget-overrun-list { display: grid; padding: 0 16px; }
.budget-overrun-row { display: grid; gap: 6px; width: 100%; padding: 10px 2px; border: 0; border-bottom: 1px solid #edf1ef; background: transparent; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.budget-overrun-row:last-child { border-bottom: 0; }
.budget-overrun-row:hover { background: #fffaf8; }
.budget-overrun-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.budget-overrun-heading > strong { display: flex; align-items: center; gap: 7px; color: var(--ink); font-size: 10px; }
.budget-overrun-heading > strong i { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 6px; font-size: 12px; font-style: normal; }
.budget-overrun-heading > b { color: #d56e5b; font-size: 10px; }
.budget-overrun-track { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #f1f3f3; }
.budget-overrun-track i { display: block; height: 100%; border-radius: inherit; }
.budget-overrun-row > small,.budget-overrun-driver-label { color: var(--muted); font-size: 8px; }
.budget-overrun-driver-label { color: #9aa6ad; }
.budget-overrun-drivers { display: flex; flex-wrap: wrap; gap: 5px 12px; color: #71808a; font-size: 8px; }
.budget-overrun-drivers span { display: flex; gap: 4px; }
.budget-overrun-drivers b { color: #697680; font-weight: 600; }
.budget-overrun-note { display: block; padding: 2px 18px 13px; color: #9aa6ad; font-size: 8px; line-height: 1.5; }
.budget-overrun-empty { padding: 14px 18px 17px; color: var(--muted); font-size: 9px; }
.budget-backtest-card { overflow: hidden; padding: 0; }
.budget-backtest-card .card-header { align-items: flex-start; }
.budget-backtest-card .card-header > div { display: grid; gap: 4px; }
.budget-backtest-card .card-header h2 { margin: 0; font-size: 14px; }
.budget-backtest-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; }
.budget-backtest-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 0 18px 14px; }
.budget-backtest-metrics > div { display: grid; gap: 5px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.budget-backtest-metrics span { color: #8e99a4; font-size: 8px; }
.budget-backtest-metrics strong { color: #46515d; font-size: 13px; font-variant-numeric: tabular-nums; }
.budget-backtest-list { display: grid; padding: 0 18px; }
.budget-backtest-row { display: grid; gap: 8px; padding: 11px 0; border-top: 1px solid #eff2f4; }
.budget-backtest-category,.budget-backtest-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 12px; }
.budget-backtest-category { justify-content: space-between; }
.budget-backtest-category strong { display: inline-flex; align-items: center; gap: 7px; color: #4d5966; font-size: 10px; }
.budget-backtest-category i { display: grid; width: 21px; height: 21px; place-items: center; border-radius: 7px; font-size: 12px; font-style: normal; }
.budget-backtest-category > span,.budget-backtest-summary > span { color: #8e99a4; font-size: 8px; }
.budget-backtest-summary { gap: 6px 12px; }
.budget-calibration-apply { min-height: 26px; padding: 0 8px; border: 1px solid #d3e9e1; border-radius: 7px; background: #f5fbf8; color: #388f77; font-size: 8px; cursor: pointer; }
.budget-calibration-apply:hover { background: #eaf7f1; }
.budget-calibration-insufficient { color: #a3adb6; font-size: 8px; }
.budget-backtest-history { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.budget-backtest-month { display: flex; min-width: 105px; align-items: baseline; gap: 5px; padding: 6px 8px; border-radius: 7px; background: #f7f9fa; white-space: nowrap; }
.budget-backtest-month i { color: #8995a0; font-size: 8px; font-style: normal; }
.budget-backtest-month b { color: #586571; font-size: 8px; }
.budget-backtest-month small { color: #a0aab4; font-size: 7px; }
.budget-backtest-month.is-over { background: #fff5f2; }
.budget-backtest-month.is-over b { color: #ce705e; }
.budget-backtest-month.is-within { background: #f1faf6; }
.budget-backtest-method { margin: 0; padding: 5px 18px 15px; color: #9aa4ae; font-size: 8px; line-height: 1.6; }
.budget-backtest-empty { padding: 12px 18px 15px; color: #8995a0; font-size: 9px; line-height: 1.6; }
.budget-category-header { align-items: center; flex-wrap: wrap; }
.apply-budget-suggestions { flex: 0 0 auto; min-height: 32px; padding: 0 11px; border-radius: 8px; font-size: 10px; white-space: nowrap; }
.budget-item-ring { --ring-size: 64px; --ring-hole-size: 48px; position: relative; display: grid; width: var(--ring-size); height: var(--ring-size); min-width: var(--ring-size); min-height: var(--ring-size); flex: 0 0 auto; place-items: center; aspect-ratio: 1 / 1; border-radius: 50%; background: conic-gradient(var(--ring-color,var(--orange)) var(--used),#f5e9e4 0); }
.budget-item-ring::after { content: ''; position: absolute; top: 50%; left: 50%; width: var(--ring-hole-size); height: var(--ring-hole-size); border-radius: 50%; background: #fff; transform: translate(-50%,-50%); }
.budget-item-ring strong { position: relative; z-index: 1; color: #303946; font-size: 10px; font-weight: 600; font-variant-numeric: tabular-nums; }
.budget-item-ring.is-unset strong { color: #9aa4ae; font-size: 7px; }
.budget-item-ring.is-over-budget strong { color: #d9534f; }
.budget-edit-list { padding: 4px 20px 16px; }
.budget-category-group { padding-top: 2px; border-bottom: 1px solid #f0f2f4; }
.budget-primary-row { border-bottom: 0; }
.budget-subcategory-details { border-top: 1px solid #f5f6f7; }
.budget-subcategory-details summary { display: flex; align-items: center; justify-content: space-between; padding: 9px 0 10px 29px; color: #8994a0; font-size: 9px; cursor: pointer; list-style: none; }
.budget-subcategory-details summary::-webkit-details-marker { display: none; }
.budget-subcategory-details summary::after { content: '⌄'; margin-left: 8px; color: #a5adb6; transition: transform .18s; }
.budget-subcategory-details[open] summary::after { transform: rotate(180deg); }
.budget-subcategory-details summary span { margin-left: auto; color: #a5adb6; font-size: 8px; }
.budget-subcategory-list { padding-left: 16px; border-left: 1px solid #edf0f3; margin-left: 13px; }
.budget-subcategory-row { grid-template-columns: minmax(120px,1fr) minmax(100px,1.3fr) 105px; gap: 14px; padding: 8px 0; }
.budget-subcategory-row .budget-edit-label { gap: 8px; font-weight: 500; }
.budget-subcategory-copy { display: grid; min-width: 0; gap: 3px; }
.budget-subcategory-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-weight: 500; }
.budget-subcategory-copy small { color: #a3acb5; font-size: 8px; font-weight: 400; }
.budget-primary-copy { display: grid; min-width: 0; gap: 3px; }
.budget-primary-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; font-weight: 600; }
.budget-primary-copy small { color: #a3acb5; font-size: 8px; font-weight: 400; }
.budget-suggestion { display: inline-flex; align-items: center; align-self: start; max-width: 100%; margin-top: 1px; padding: 2px 5px; border: 1px solid #e5f0ee; border-radius: 5px; background: #f8fbfa; color: #438f89; font-size: 9px; line-height: 1.35; white-space: nowrap; cursor: pointer; }
.budget-suggestion:hover { border-color: #aad8d3; background: #f1faf9; color: #287d77; }
.budget-suggestion:focus-visible { outline: 2px solid #82c6c0; outline-offset: 2px; }
.budget-subcategory-row:last-child { border-bottom: 0; }
.budget-edit-row { display: grid; grid-template-columns: minmax(0,1fr) 56px 105px; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid #f0f2f4; }
.budget-edit-row.budget-primary-row { border-bottom: 0; }
.budget-edit-row:last-child { border-bottom: 0; }
.budget-edit-label { display: flex; gap: 9px; align-items: center; font-size: 10px; font-weight: 600; }
.budget-detail-link { cursor: pointer; border-radius: 10px; transition: background .15s ease; }
.budget-detail-link:hover { background: #f5faf9; }
.budget-detail-link:focus-visible { outline: 2px solid #66b8ad; outline-offset: 2px; }
.budget-edit-label > span:first-child { flex: 0 0 auto; }
.budget-edit-input { display: flex; gap: 3px; align-items: center; border: 1px solid #edf0f2; border-radius: 7px; padding: 0 8px; height: 31px; color: #a2abb4; font-size: 9px; }
.budget-edit-input input { width: 100%; min-width: 0; border: 0; outline: 0; text-align: right; color: #55616e; font-size: 10px; }
.save-budget-row { display: flex; justify-content: flex-end; padding-top: 14px; }
.save-budget-row button { border: 1px solid #f7ded4; color: var(--orange-dark); background: #fff8f5; border-radius: 8px; font-size: 10px; padding: 8px 12px; }
.save-budget-row button:hover { background: #fff0ea; }
.mobile-nav { display: none; }
.theme-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.theme-option { display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; }
.theme-option:has(input:checked) { border-color: var(--orange); box-shadow: 0 0 0 2px var(--orange-soft); }
.theme-option input { position: absolute; opacity: 0; pointer-events: none; }
.theme-preview { width: 32px; height: 32px; border-radius: 10px; background: linear-gradient(145deg,#ff9776,#ed6447); }
.theme-option-mint .theme-preview { background: linear-gradient(145deg,#6bd0ad,#238f75); }
.theme-option-night .theme-preview { background: linear-gradient(145deg,#72a9e8,#253950); }
.theme-option strong, .theme-option small { display: block; }
.theme-option strong { color: var(--ink); font-size: 11px; }
.theme-option small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.default-account-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.default-account-fields label { display: grid; gap: 7px; color: var(--muted); font-size: 10px; }
.default-account-fields select, .default-account-fields input { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--ink); font-size: 11px; }
.primary-income-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 20px 18px; }
.primary-income-summary-grid article { display: grid; gap: 7px; padding: 14px; border: 1px solid #e9efed; border-radius: 12px; background: linear-gradient(145deg, #f8fbfa, #fff); }
.primary-income-summary-grid article > span { color: var(--muted); font-size: 10px; }
.primary-income-summary-grid article > strong { color: #268b70; font-size: 19px; line-height: 1.25; }
.primary-income-summary-grid article > small { color: #89939b; font-size: 9px; line-height: 1.5; }
#primary-income-form { display: grid; gap: 14px; padding: 0 20px 18px; }
.primary-income-form-heading { display: grid; gap: 4px; }
.primary-income-form-heading strong { color: var(--ink); font-size: 12px; }
.primary-income-form-heading small, .primary-income-work-fields small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.primary-income-source-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.primary-income-source-group { min-width: 0; margin: 0; padding: 9px 10px 10px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.primary-income-source-group legend { padding: 0 4px; color: #64717e; font-size: 10px; font-weight: 650; }
.primary-income-source-group > div { display: flex; flex-wrap: wrap; gap: 7px; }
.primary-income-source-option { display: inline-flex; align-items: center; gap: 5px; padding: 6px 8px; border: 1px solid #e7ecee; border-radius: 8px; background: #fff; color: #687582; font-size: 9px; cursor: pointer; }
.primary-income-source-option input { width: 13px; height: 13px; margin: 0; accent-color: var(--orange); }
.primary-income-source-option label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.primary-income-fixed-option { margin-left: 5px; padding-left: 8px; border-left: 1px solid #e7ecee; color: #398b73; white-space: nowrap; }
.primary-income-fixed-option:has(input:disabled) { color: #b3bbc0; }
.primary-income-work-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.primary-income-work-fields label { display: grid; align-content: start; gap: 7px; min-width: 0; color: var(--muted); font-size: 10px; }
.primary-income-work-fields input, .primary-income-work-fields select { width: 100%; min-width: 0; padding: 10px 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--ink); font-size: 11px; }
.primary-income-schedule-label strong { min-height: 37px; display: flex; align-items: center; padding: 0 11px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--ink); font-size: 11px; font-weight: 500; }
.primary-income-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.primary-income-form-actions > span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.primary-income-method-note { margin: 0 20px 18px; padding: 11px 12px; border-radius: 9px; background: #f7f9fa; color: #7a858e; font-size: 9px; line-height: 1.7; }
.wage-guarantee-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; padding: 0 20px 15px; }
.wage-guarantee-metrics article { display: grid; gap: 6px; min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.wage-guarantee-metrics small, .wage-guarantee-metrics span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.wage-guarantee-metrics strong { color: var(--ink); font-size: 18px; }
.wage-guarantee-metrics strong.is-positive { color: #368f73; }
.wage-guarantee-metrics strong.is-negative { color: #d66b5d; }
.wage-guarantee-bars { display: grid; gap: 10px; padding: 0 20px 16px; }
.wage-guarantee-bars > div { display: grid; grid-template-columns: 64px 1fr; align-items: center; gap: 9px; color: var(--muted); font-size: 10px; }
.wage-guarantee-bars i { height: 9px; overflow: hidden; border-radius: 999px; background: #eef1f2; }
.wage-guarantee-bars b { display: block; height: 100%; border-radius: inherit; background: #55b899; }
.wage-guarantee-bars > div + div b { background: #f38269; }
.wage-guarantee-note, .primary-income-hours-note, .actual-hourly-trend-note { display: block; margin: 0 20px 18px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.wage-guarantee-tolerance { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin: 0 20px 14px; }
.wage-guarantee-tolerance article { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.wage-guarantee-tolerance small,.wage-guarantee-tolerance span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.wage-guarantee-tolerance strong { color: var(--ink); font-size: 13px; }
.wage-guarantee-tolerance strong.is-positive { color: #368f73; }
.wage-guarantee-tolerance strong.is-negative { color: #d66b5d; }
.wage-guarantee-actual-forecast { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 14px; margin: 0 20px 15px; padding: 11px 13px; border-radius: 10px; background: var(--soft); color: var(--muted); font-size: 9px; }
.wage-guarantee-actual-forecast span { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.wage-guarantee-actual-forecast strong { color: var(--ink); font-size: 10px; white-space: nowrap; }
.wage-guarantee-actual-forecast small { grid-column: 1 / -1; color: var(--muted); font-size: 8px; line-height: 1.5; }
.wage-guarantee-stack-wrap,.wage-guarantee-trend,.wage-guarantee-contribution { margin: 0 20px 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.wage-guarantee-stack-title,.wage-guarantee-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.wage-guarantee-stack-title strong,.wage-guarantee-subheading strong,.wage-guarantee-stack-wrap > strong { color: var(--ink); font-size: 11px; }
.wage-guarantee-stack-title span,.wage-guarantee-subheading span { color: var(--muted); font-size: 8px; text-align: right; }
.wage-guarantee-stack { display: flex; height: 15px; overflow: hidden; border-radius: 999px; background: #e9eef0; }
.wage-guarantee-stack i { display: block; height: 100%; flex: 0 0 auto; }
.wage-guarantee-stack i.covered,.wage-guarantee-stack-legend i.covered { background: #55b899; }
.wage-guarantee-stack i.remainder,.wage-guarantee-stack-legend i.remainder { background: #89cbb7; }
.wage-guarantee-stack i.gap,.wage-guarantee-stack-legend i.gap { background: #e57d6b; }
.wage-guarantee-stack-legend { display: flex; flex-wrap: wrap; gap: 6px 13px; margin-top: 9px; color: var(--muted); font-size: 8px; }
.wage-guarantee-stack-legend span,.wage-guarantee-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.wage-guarantee-stack-legend i { width: 8px; height: 8px; border-radius: 2px; }
.wage-guarantee-chart-empty { margin: 6px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.wage-guarantee-trend { padding-bottom: 9px; }
.wage-guarantee-chart-scroll { width: 100%; overflow: hidden; }
.wage-guarantee-chart-scroll svg { display: block; width: 100%; height: auto; }
.wage-guarantee-grid line { stroke: #dfe6e8; stroke-dasharray: 3 4; }
.wage-guarantee-grid text,.wage-guarantee-month-label { fill: #8b979e; font: 8px system-ui,sans-serif; }
.wage-guarantee-grid:nth-child(2) line { stroke: #aeb9bd; stroke-dasharray: none; }
.wage-guarantee-trend-bar { fill: #57ad8e; }
.wage-guarantee-trend-bar.is-negative { fill: #df7969; }
.wage-guarantee-trend-bar.is-current { fill-opacity: .58; stroke: #3e9278; stroke-width: 1; stroke-dasharray: 2 2; }
.wage-guarantee-forecast-stem { stroke: #7885b5; stroke-width: 1.5; stroke-dasharray: 3 3; }
.wage-guarantee-forecast-point { fill: #fff; stroke: #6879b3; stroke-width: 2; }
.wage-guarantee-forecast-point.is-negative { stroke: #d66b5d; }
.wage-guarantee-chart-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 5px; color: var(--muted); font-size: 8px; }
.wage-guarantee-chart-legend i { width: 9px; height: 8px; border-radius: 2px; background: #57ad8e; }
.wage-guarantee-chart-legend i.forecast { width: 8px; height: 8px; border: 2px solid #6879b3; border-radius: 50%; background: transparent; }
.wage-guarantee-contribution-list { display: grid; gap: 7px; }
.wage-guarantee-contribution-row { display: grid; grid-template-columns: minmax(70px,1fr) minmax(80px,2fr) auto; align-items: center; gap: 9px; color: var(--ink); font-size: 9px; }
.wage-guarantee-contribution-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wage-guarantee-contribution-row > i { position: relative; height: 8px; overflow: hidden; border-radius: 999px; background: linear-gradient(90deg,#edf1f2 49.5%,#9ba8ad 49.5%,#9ba8ad 50.5%,#edf1f2 50.5%); }
.wage-guarantee-contribution-row > i b { position: absolute; top: 1px; height: 6px; border-radius: 999px; }
.wage-guarantee-contribution-row > i b.is-up { background: #df8068; }
.wage-guarantee-contribution-row > i b.is-down { background: #55aa8b; }
.wage-guarantee-contribution-row > strong { font-size: 9px; white-space: nowrap; }
.wage-guarantee-contribution-row > strong.is-up { color: #c86b59; }
.wage-guarantee-contribution-row > strong.is-down { color: #438d71; }
.wage-guarantee-contribution > small { display: block; margin-top: 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.necessary-hours-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 20px 16px; }
.necessary-hours-metrics article { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.necessary-hours-metrics small, .necessary-hours-metrics span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.necessary-hours-metrics strong { color: var(--ink); font-size: 17px; }
.necessary-hours-months { display: grid; gap: 6px; margin: 0 20px 12px; }
.necessary-hours-month { border: 1px solid var(--line); border-radius: 9px; background: transparent; }
.necessary-hours-month summary { display: grid; gap: 7px; padding: 10px 12px; cursor: pointer; list-style: none; }
.necessary-hours-month summary::-webkit-details-marker { display: none; }
.necessary-hours-month-top { display: grid; grid-template-columns: minmax(76px, 1fr) auto auto; align-items: baseline; gap: 10px; color: var(--muted); font-size: 10px; }
.necessary-hours-month-top strong { color: var(--ink); font-size: 12px; }
.necessary-hours-month-top small { color: var(--muted); font-size: 9px; }
.necessary-hours-bar { display: flex; width: 100%; height: 12px; overflow: hidden; border-radius: 999px; background: var(--soft); }
.necessary-hours-bar i { display: block; height: 100%; flex-shrink: 0; }
.necessary-hours-month-hint { color: var(--muted); font-size: 9px; }
.necessary-hours-month[open] .necessary-hours-month-hint { color: #43846b; }
.necessary-hours-category-list { display: grid; gap: 0; margin: 0 12px 10px; border-top: 1px solid var(--line); }
.necessary-hours-category { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 8px 0; color: var(--ink); font-size: 10px; }
.necessary-hours-category + .necessary-hours-category { border-top: 1px solid var(--line); }
.necessary-hours-category > span { display: flex; align-items: center; min-width: 0; gap: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.necessary-hours-category i, .necessary-hours-legend i { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; }
.necessary-hours-category strong { white-space: nowrap; }
.necessary-hours-category small { color: var(--muted); font-size: 9px; white-space: nowrap; }
.necessary-hours-month.is-empty { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 10px 12px; color: var(--muted); font-size: 10px; }
.necessary-hours-month.is-empty strong { color: var(--muted); }
.necessary-hours-month.is-empty small { font-size: 9px; }
.necessary-hours-legend { margin: 0 20px 12px; color: var(--muted); font-size: 10px; }
.necessary-hours-legend summary { width: fit-content; cursor: pointer; }
.necessary-hours-legend > div { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 10px; }
.necessary-hours-legend > div span { display: inline-flex; align-items: center; gap: 5px; padding: 5px 7px; border-radius: 7px; background: var(--soft); }
.necessary-hours-legend b { color: var(--ink); font-weight: 600; }
.necessary-hours-note { display: block; margin: 0 20px 18px; color: var(--muted); font-size: 9px; line-height: 1.65; }
.necessary-hours-heading { align-items: center; flex-wrap: wrap; }
.necessary-hours-rate-switch { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); }
.necessary-hours-rate-switch button { padding: 7px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font: inherit; font-size: 10px; cursor: pointer; }
.necessary-hours-rate-switch button.active { background: #fff; color: #378c72; box-shadow: 0 1px 4px #26374614; }
.necessary-hours-rate-summary { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 8px; margin: 0 20px 14px; padding: 10px 12px; border-radius: 9px; background: #f2f8f6; color: var(--muted); font-size: 9px; }
.necessary-hours-rate-summary strong { color: #388f74; font-size: 13px; }
.necessary-hours-rate-summary small { justify-self: end; color: var(--muted); font-size: 8px; text-align: right; }
.necessary-hours-comparison { display: grid; grid-template-columns: 1.2fr 1fr auto; align-items: center; gap: 10px; margin: 0 20px 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.necessary-hours-comparison > div { display: grid; gap: 4px; min-width: 0; }
.necessary-hours-comparison strong { color: var(--ink); font-size: 11px; }
.necessary-hours-comparison span,.necessary-hours-comparison small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.necessary-hours-comparison b { color: var(--ink); font-size: 11px; }
.necessary-hours-comparison b.is-positive { color: #438d71; }
.necessary-hours-comparison b.is-negative { color: #d66b5d; }
.necessary-hours-comparison > small { grid-column: 1 / -1; }
.necessary-hours-chart,.necessary-hours-day-allocation { margin: 0 20px 14px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.necessary-hours-chart-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.necessary-hours-chart-heading strong { color: var(--ink); font-size: 11px; }
.necessary-hours-chart-heading span,.necessary-hours-chart > small,.necessary-hours-day-allocation > small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.necessary-hours-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.necessary-hours-chart-grid line { stroke: #dfe6e8; stroke-dasharray: 3 4; }
.necessary-hours-chart-grid text,.necessary-hours-chart-label,.necessary-hours-chart-missing { fill: #87939a; font: 8px system-ui,sans-serif; }
.necessary-hours-chart-value { fill: #586871; font: 8px system-ui,sans-serif; }
.necessary-hours-stack-segment.is-forecast { fill-opacity: .42; stroke: #657c9c; stroke-width: 1; stroke-dasharray: 3 2; }
.necessary-hours-chart-legend { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 4px 0 8px; color: var(--muted); font-size: 8px; }
.necessary-hours-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.necessary-hours-chart-legend i { width: 8px; height: 8px; flex: 0 0 8px; border-radius: 2px; }
.necessary-hours-chart-legend i.is-forecast { border: 1px dashed #657c9c; background: transparent; }
.necessary-hours-chart > small,.necessary-hours-day-allocation > small { display: block; }
.necessary-hours-trend-line { fill: none; stroke: #5c81b5; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.necessary-hours-trend-point { fill: #5c81b5; stroke: var(--soft); stroke-width: 2; }
.necessary-hours-trend-point.is-forecast { fill: var(--soft); stroke: #5c81b5; stroke-dasharray: 2 2; }
.necessary-hours-day-track { display: flex; width: 100%; height: 16px; overflow: hidden; border-radius: 999px; background: #e7ecee; }
.necessary-hours-day-track i { display: block; height: 100%; flex: 0 0 auto; }
.necessary-hours-months-heading { display: flex; justify-content: space-between; gap: 10px; margin: 0 20px 8px; color: var(--ink); font-size: 10px; }
.necessary-hours-months-heading span { color: var(--muted); font-size: 8px; }
.primary-income-hours-list { display: grid; margin: 0 20px 14px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.primary-income-hours-row { display: grid; grid-template-columns: 76px 90px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; min-height: 42px; padding: 7px 10px; border-bottom: 1px solid var(--line); font-size: 10px; }
.primary-income-hours-row:last-child { border-bottom: 0; }
.primary-income-hours-row > span { color: var(--muted); }
.primary-income-hours-row > strong { color: var(--ink); }
.primary-income-hours-row > small { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.actual-hourly-trend-summary { padding: 0 20px 12px; color: var(--muted); font-size: 10px; }
.actual-hourly-trend-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.actual-hourly-trend-summary > span { padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); line-height: 1.55; }
.actual-hourly-trend-summary strong { color: var(--ink); }
.actual-hourly-trend-scroll { margin: 0 20px 12px; overflow-x: auto; }
.actual-hourly-trend-scroll svg { display: block; width: 740px; max-width: none; height: 238px; }
.actual-hourly-trend-scroll line { stroke: #e7ecee; stroke-dasharray: 4 4; }
.actual-hourly-trend-scroll text { fill: #8a969d; font-size: 10px; }
.actual-hourly-trend-scroll path { fill: none; stroke: #54a98c; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.actual-hourly-trend-scroll circle { fill: #fff; stroke: #318d72; stroke-width: 2.5; }
.actual-hourly-band { fill: rgba(85,169,140,.13); stroke: none; }
.actual-hourly-trend-scroll .actual-hourly-median { stroke: #5f8f7f; stroke-width: 1.5; stroke-dasharray: 5 4; }
.actual-hourly-month-point, .actual-hourly-month-label { cursor: pointer; }
.actual-hourly-month-point circle { transition: r .15s ease, fill .15s ease; }
.actual-hourly-month-point:hover circle, .actual-hourly-month-point.is-selected circle { r: 7; fill: #f56d4e; stroke: #fff; stroke-width: 2.5; }
.actual-hourly-month-point:focus-visible, .actual-hourly-month-label:focus-visible { outline: none; }
.actual-hourly-month-label rect { fill: transparent; }
.actual-hourly-month-label text { fill: #8a969d; }
.actual-hourly-month-label:hover text, .actual-hourly-month-label.is-selected text { fill: #f56d4e; font-weight: 700; }
.actual-hourly-excluded-label { fill: #bdc3c9 !important; }
.actual-hourly-legend { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 20px 14px; color: var(--muted); font-size: 9px; }
.actual-hourly-legend span { display: inline-flex; align-items: center; gap: 5px; }
.actual-hourly-legend i { display: inline-block; width: 16px; height: 3px; border-radius: 4px; background: #54a98c; }
.actual-hourly-legend i.usual-band { height: 9px; border: 1px solid rgba(85,169,140,.25); background: rgba(85,169,140,.16); }
.actual-hourly-detail { margin: 0 20px 16px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfd; }
.actual-hourly-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid var(--line); }
.actual-hourly-detail-head > div { display: grid; gap: 3px; }
.actual-hourly-detail-head strong { color: var(--ink); font-size: 14px; }
.actual-hourly-detail-head span, .actual-hourly-detail-head > b { color: var(--muted); font-size: 10px; }
.actual-hourly-detail-head > b { color: #318d72; font-size: 13px; }
.actual-hourly-detail-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 11px 0; }
.actual-hourly-detail-metrics article { display: grid; gap: 4px; padding: 9px; border-radius: 8px; background: #fff; }
.actual-hourly-detail-metrics small, .actual-hourly-comparisons small { color: var(--muted); font-size: 9px; }
.actual-hourly-detail-metrics strong { color: var(--ink); font-size: 12px; }
.actual-hourly-detail-metrics span, .actual-hourly-comparisons span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.actual-hourly-detail > p { margin: 0 0 8px; color: #566574; font-size: 10px; line-height: 1.6; }
.actual-hourly-source-list { display: flex; flex-wrap: wrap; gap: 6px; }
.actual-hourly-source-list span { padding: 5px 7px; border-radius: 6px; background: #fff; color: var(--muted); font-size: 9px; }
.actual-hourly-source-list b { color: var(--ink); }
.actual-hourly-comparisons { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-top: 11px; }
.actual-hourly-comparisons article { display: grid; gap: 5px; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.actual-hourly-comparisons article > strong { color: var(--ink); font-size: 11px; }
.actual-hourly-comparisons article > strong.is-up { color: #d16f57; }
.actual-hourly-comparisons article > strong.is-down { color: #318d72; }
.actual-hourly-combo { margin: 0 20px 16px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.actual-hourly-combo-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.actual-hourly-combo-heading strong { color: var(--ink); font-size: 11px; }
.actual-hourly-combo-heading span { color: var(--muted); font-size: 9px; }
.actual-hourly-combo-scroll { width: 100%; overflow: hidden; }
.actual-hourly-combo svg { display: block; width: 100%; max-width: 100%; height: auto; }
.actual-hourly-combo svg g > line { stroke: #e7ecee; stroke-dasharray: 4 4; }
.actual-hourly-combo svg text { fill: #8a969d; font-size: var(--combo-font-size, 9px); }
.actual-hourly-combo svg .actual-hourly-work-line { fill: none; stroke: #e18a66; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.actual-hourly-combo svg .actual-hourly-work-point { fill: #fff; stroke: #e18a66; stroke-width: 2; }
.actual-hourly-combo .actual-hourly-legend { margin: 4px 0 0; }
.actual-hourly-combo .actual-hourly-legend i.work-line { height: 2px; background: #e18a66; }
.default-fund-purpose-list { display: grid; gap: 13px; }
.default-fund-purpose-group { overflow: hidden; border: 1px solid #edf0f2; border-radius: 11px; background: #fbfcfd; }
.default-fund-purpose-heading { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border-bottom: 1px solid #edf0f2; background: #fff; color: #566574; font-size: 10px; font-weight: 650; }
.default-fund-purpose-heading .category-settings-icon { width: 25px; height: 25px; flex-basis: 25px; border-radius: 7px; font-size: 13px; }
.default-fund-purpose-items { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 11px; padding: 0 11px; }
.default-fund-purpose-row { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 8px; min-height: 37px; border-bottom: 1px solid #f0f2f4; color: #65717e; font-size: 9px; }
.default-fund-purpose-row:nth-last-child(-n+2) { border-bottom: 0; }
.default-fund-purpose-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.default-fund-purpose-row select { width: 92px; min-width: 0; padding: 6px 7px; border: 1px solid #e5eaed; border-radius: 7px; background: #fff; color: #64717e; font-size: 8px; }
.settings-inline-hint { margin: 10px 0 0; color: var(--muted); font-size: 10px; }
.custom-reminder-card { overflow: hidden; }
.custom-reminder-fields { display: grid; gap: 8px; padding: 4px 20px 18px; }
.custom-reminder-fields label { display: grid; gap: 7px; max-width: 360px; color: var(--ink); font-size: 11px; font-weight: 600; }
.custom-reminder-fields input { width: 100%; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--ink); font-size: 13px; }
.custom-reminder-fields .settings-inline-hint { margin: 0; }
.custom-reminder-toggle { display: flex !important; grid-template-columns: auto 1fr; align-items: center; gap: 10px; max-width: none !important; }
.custom-reminder-toggle input { width: 18px; height: 18px; accent-color: var(--orange); }
.custom-reminder-toggle span { display: grid; gap: 2px; }
.custom-reminder-toggle strong { color: var(--ink); font-size: 11px; }
.custom-reminder-toggle small { color: var(--muted); font-size: 9px; font-weight: 400; }
@media (max-width: 560px) { .default-account-fields { grid-template-columns: 1fr; } .default-fund-purpose-items { grid-template-columns: 1fr; } .default-fund-purpose-row:nth-last-child(-n+2) { border-bottom: 1px solid #f0f2f4; } .default-fund-purpose-row:last-child { border-bottom: 0; } .primary-income-summary-grid { grid-template-columns: 1fr; padding: 0 14px 14px; } #primary-income-form { gap: 12px; padding: 0 14px 14px; } .primary-income-source-groups, .primary-income-work-fields, .wage-guarantee-metrics { grid-template-columns: 1fr; } .necessary-hours-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 0 14px 12px; } .necessary-hours-metrics article { padding: 10px; } .necessary-hours-metrics strong { font-size: 15px; } .primary-income-method-note, .wage-guarantee-note, .primary-income-hours-note, .actual-hourly-trend-note, .necessary-hours-note { margin: 0 14px 14px; } .wage-guarantee-metrics { padding: 0 14px 14px; } .wage-guarantee-bars { padding: 0 14px 14px; } .necessary-hours-months, .necessary-hours-legend { margin-right: 14px; margin-left: 14px; } .necessary-hours-month-top { grid-template-columns: minmax(65px, 1fr) auto auto; gap: 6px; } .necessary-hours-category { grid-template-columns: minmax(0, 1fr) auto; gap: 7px; } .necessary-hours-category small { grid-column: 1 / -1; padding-left: 16px; } .necessary-hours-heading { align-items: flex-start; flex-direction: column; gap: 9px; } .necessary-hours-rate-switch { width: 100%; } .necessary-hours-rate-switch button { flex: 1; padding-right: 5px; padding-left: 5px; } .necessary-hours-rate-summary,.necessary-hours-comparison,.necessary-hours-chart,.necessary-hours-day-allocation { margin-right: 14px; margin-left: 14px; } .necessary-hours-rate-summary { grid-template-columns: auto 1fr; } .necessary-hours-rate-summary small { grid-column: 1 / -1; justify-self: start; text-align: left; } .necessary-hours-comparison { grid-template-columns: 1fr 1fr; } .necessary-hours-comparison > div:first-child { grid-column: 1 / -1; } .necessary-hours-chart { padding: 9px; } .necessary-hours-chart-heading { align-items: flex-start; flex-direction: column; gap: 4px; } .necessary-hours-months-heading { margin-right: 14px; margin-left: 14px; } .primary-income-hours-list { margin: 0 14px 14px; } .primary-income-hours-row { grid-template-columns: 69px 1fr auto auto; gap: 6px; } .primary-income-hours-row > small { grid-column: 2 / -1; grid-row: 2; } .actual-hourly-trend-summary { grid-template-columns: 1fr; padding: 0 14px 12px; } .actual-hourly-trend-scroll, .actual-hourly-combo { margin-right: 14px; margin-left: 14px; } .actual-hourly-detail { margin-right: 14px; margin-left: 14px; padding: 10px; } .actual-hourly-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } .actual-hourly-combo-heading { align-items: flex-start; flex-direction: column; gap: 4px; } .actual-hourly-legend { margin-right: 14px; margin-left: 14px; } .actual-hourly-combo { padding: 9px; } }

@media (max-width: 560px) {
  .wage-guarantee-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding-right: 14px; padding-left: 14px; }
  .wage-guarantee-metrics article { padding: 10px; }
  .wage-guarantee-metrics strong { font-size: 15px; }
  .wage-guarantee-tolerance { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .wage-guarantee-actual-forecast { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .wage-guarantee-stack-wrap,.wage-guarantee-trend,.wage-guarantee-contribution { margin-right: 14px; margin-left: 14px; padding-right: 9px; padding-left: 9px; }
  .wage-guarantee-stack-title,.wage-guarantee-subheading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .wage-guarantee-stack-title span,.wage-guarantee-subheading span { text-align: left; }
  .wage-guarantee-contribution-row { grid-template-columns: minmax(56px,1fr) minmax(55px,1.5fr) auto; gap: 6px; font-size: 8px; }
}
.market-quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.market-quote-card { padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--soft); }
.market-quote-head { display: flex; justify-content: space-between; color: var(--ink); font-size: 13px; font-weight: 600; }
.market-quote-head small { color: var(--muted); font-size: 10px; font-weight: 400; }
.market-quote-card > strong { display: block; margin: 18px 0 9px; color: var(--ink); font-size: 25px; letter-spacing: .2px; }
.market-quote-change { font-size: 12px; font-weight: 600; }
.market-quote-change.up { color: #d9574b; }
.market-quote-change.down { color: #2b9b78; }
.market-disclaimer { margin: 14px 0 0; color: var(--muted); font-size: 10px; }
.budget-execution-report { overflow: hidden; }
.budget-execution-overview, .budget-execution-period { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0 12px 14px; }
.budget-execution-overview article, .budget-execution-period article { display: grid; min-width: 0; gap: 5px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 12px; background: #fbfcfc; }
.budget-execution-overview article > span, .budget-execution-period article > span { color: var(--muted); font-size: 10px; }
.budget-execution-overview article > strong, .budget-execution-period article > strong { color: var(--ink); font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.budget-execution-overview article.is-over > strong { color: var(--orange-dark); }
.budget-execution-period article > small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.budget-execution-period article > i { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #edf0f2; }
.budget-execution-period article > i > b { display: block; height: 100%; border-radius: inherit; background: #55a68e; }
.budget-execution-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px 10px; min-width: 0; padding: 0 12px; }
.budget-execution-row { display: grid; justify-items: center; min-width: 0; gap: 5px; text-align: center; }
.budget-execution-ring { display: grid; width: 62px; height: 62px; place-items: center; border-radius: 50%; background: conic-gradient(var(--ring-color) var(--ring-progress), #eef1f3 0); }
.budget-execution-ring::after { content: ''; display: block; grid-area: 1 / 1; width: 46px; height: 46px; border-radius: 50%; background: var(--card, #fff); }
.budget-execution-ring span { z-index: 1; grid-area: 1 / 1; color: var(--ink); font-size: 11px; font-weight: 700; }
.budget-execution-name { width: 100%; overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.budget-execution-row small { max-width: 100%; overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.budget-execution-row small.over { color: var(--orange-dark); }
.budget-execution-note { display: block; margin: 11px 14px 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
@media (max-width: 560px) { .budget-execution-overview, .budget-execution-period { grid-template-columns: 1fr; margin-right: 8px; margin-left: 8px; } .budget-execution-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 8px; padding: 0 6px; } .budget-execution-row { padding: 10px 6px; border: 1px solid #f0f2f4; border-radius: 12px; } .budget-execution-ring { width: 48px; height: 48px; } .budget-execution-ring::after { width: 35px; height: 35px; } .budget-execution-ring span { font-size: 9px; } .budget-execution-name { font-size: 10px; } .budget-execution-row small { font-size: 9px; white-space: normal; overflow-wrap: anywhere; } }
.transaction-account-line { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; overflow: hidden; white-space: nowrap; }
.transaction-account-line { text-overflow: ellipsis; }
.transaction-account-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transaction-time-label { flex: 0 0 auto; color: var(--muted); font-size: 10px; font-style: normal; }
.transaction-time-below { display: block; margin-top: 2px; }
@media (max-width: 640px) { .market-quote-grid { grid-template-columns: 1fr; } }

.modal-backdrop { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; background: rgba(22,31,42,.38); padding: 20px; backdrop-filter: blur(3px); }
.modal-backdrop[hidden] { display: none; }
.entry-modal { background: white; width: min(500px,100%); border-radius: 18px; box-shadow: 0 25px 70px #17243338; overflow: hidden; max-height: min(92vh,850px); display: flex; flex-direction: column; animation: modal-in .2s ease; }
.entry-modal.amount-keypad-open { height: min(92vh,850px); }
.notification-popup-modal { width: min(540px,100%); }
.notification-popup-description { margin: 0; padding: 0 24px 13px; color: #929da8; font-size: 11px; }
.notification-popup-content { min-height: 0; overflow-y: auto; padding: 0 24px 18px; }
.notification-popup-empty { display: grid; justify-items: center; gap: 7px; padding: 28px 12px 32px; color: #8995a1; text-align: center; }
.notification-popup-empty > span { display: grid; width: 38px; height: 38px; place-items: center; margin-bottom: 3px; border-radius: 50%; background: #eff8f4; color: #48a985; font-size: 19px; }
.notification-popup-empty strong { color: #566371; font-size: 12px; }
.notification-popup-empty small { font-size: 10px; }
.notification-popup-section + .notification-popup-section { margin-top: 17px; }
.notification-popup-section h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; color: #566371; font-size: 11px; }
.notification-popup-section h3 span { color: #9aa4af; font-size: 9px; font-weight: 400; }
.notification-popup-list { overflow: hidden; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.notification-popup-budget-row,.notification-popup-repayment-row { display: flex; min-height: 58px; align-items: center; gap: 10px; padding: 9px 11px; }
.notification-popup-budget-row + .notification-popup-budget-row,.notification-popup-repayment-row + .notification-popup-repayment-row { border-top: 1px solid #f0f2f4; }
.notification-popup-budget-row .budget-alert-ignore { margin-left: auto; }
.notification-popup-icon { display: grid; width: 34px; height: 34px; flex: 0 0 34px; place-items: center; border-radius: 10px; background: #fff5f0; font-size: 16px; }
.notification-popup-icon .account-custom-icon { width: 22px; height: 22px; border-radius: 6px; }
.notification-popup-row-copy { display: grid; min-width: 0; flex: 1; gap: 4px; }
.notification-popup-row-copy strong { overflow: hidden; color: #394653; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.notification-popup-row-copy small { overflow: hidden; color: #929da8; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.notification-popup-amount,.notification-popup-due { flex: 0 0 auto; color: #428f77; font-size: 10px; font-weight: 600; white-space: nowrap; }
.notification-popup-amount.is-over,.notification-popup-due.due-today { color: #d85d47; }
.notification-popup-due { padding: 5px 8px; border-radius: 7px; background: #fff4ee; color: #d96b4d; }
.notification-popup-actions { display: flex; justify-content: flex-end; gap: 9px; border-top: 1px solid #f0f2f4; padding: 13px 24px 18px; }
.notification-popup-actions button { min-height: 38px; padding: 0 15px; font-size: 10px; }
.notification-detail-modal { width: min(430px,100%); }
.entry-modal.notification-detail-modal .modal-header { justify-content: space-between; align-items: flex-start; }
.entry-modal.notification-popup-modal .modal-header { justify-content: space-between; align-items: flex-start; }
.notification-detail-content { margin: 0 20px 22px; padding: 20px; border: 1px solid #f1e7e1; border-radius: 15px; background: #fffaf7; }
.notification-detail-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #fff0e7; color: #ef8958; font-size: 20px; line-height: 1; }
.notification-detail-content h3 { margin: 12px 0 13px; color: #394653; font-size: 16px; }
.notification-detail-lines { display: grid; gap: 8px; }
.notification-detail-lines p { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fff; color: #687683; font-size: 11px; line-height: 1.6; }
.notification-detail-lines .notification-detail-guidance { background: #fff1e8; color: #b76542; }
@keyframes modal-in { from { opacity: 0; transform: translateY(9px) scale(.99); } to { opacity: 1; transform: none; } }
.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 21px 24px 10px; }
.entry-modal .modal-header { padding-top: 14px; padding-bottom: 8px; }
.entry-modal .modal-header { justify-content: flex-end; }
.modal-header h2 { margin: 0; font-size: 19px; }
.modal-header .eyebrow { margin-bottom: 4px; }
.entry-modal-header-actions { display: flex; align-items: center; gap: 8px; }
.entry-header-save { display: grid; width: 38px; height: 34px; place-items: center; border: 0; border-radius: 10px; background: linear-gradient(140deg,#ffad67,#ed704e); color: white; font-size: 21px; cursor: pointer; box-shadow: 0 3px 9px #ee795438; }
.entry-header-save[hidden] { display: none; }
.close-button { border: 0; width: 31px; height: 31px; border-radius: 8px; background: #f5f6f7; color: #818c98; font-size: 21px; line-height: 1; }
.close-button:hover { background: #eef0f2; }
#entry-form { overflow-y: auto; padding: 0 24px 21px; }
.entry-modal.amount-keypad-open #entry-form { min-height: 0; flex: 1 1 auto; padding-bottom: 10px; }
.entry-type-tabs { display: grid; grid-template-columns: repeat(3,1fr); background: #f5f6f7; border-radius: 9px; padding: 3px; margin: 9px 0 17px; }
.entry-type-tabs button { border: 0; background: transparent; border-radius: 7px; color: #87929f; font-size: 10px; padding: 9px; }
.entry-type-tabs button.selected { background: white; color: var(--orange-dark); font-weight: 700; box-shadow: 0 1px 5px #26374813; }
.amount-field { display: block; color: #96a0ab; font-size: 9px; }
.amount-field > div { display: flex; align-items: center; border-bottom: 1px solid #eef0f2; margin-top: 3px; padding: 2px 0 10px; }
.amount-field i { font-size: 24px; color: #a7afb8; font-style: normal; margin-right: 8px; }
.amount-field input { border: 0; outline: 0; width: 100%; color: var(--ink); font-size: 30px; font-weight: 600; letter-spacing: -.7px; background: transparent; }
.amount-field input::placeholder { color: #d7dce1; }
.amount-keypad { flex: 0 0 auto; border-top: 1px solid #e8ebee; background: #f4f6f8; padding-bottom: env(safe-area-inset-bottom); }
.amount-keypad[hidden] { display: none; }
.amount-keypad-toolbar { display: flex; height: 33px; align-items: center; justify-content: space-between; padding: 0 6px 0 13px; color: #9aa4ae; font-size: 9px; }
.amount-keypad-toolbar button { display: grid; width: 40px; height: 31px; place-items: center; border: 0; border-radius: 7px 7px 0 0; background: white; color: #303946; font-size: 22px; cursor: pointer; }
.amount-keypad-toolbar button[data-keypad-key="clear"] { width: auto; height: 27px; margin-left: auto; padding: 0 9px; border-radius: 7px; background: transparent; color: #8e99a4; font-size: 9px; }
.amount-keypad-grid { display: grid; grid-template-columns: 58px repeat(3,minmax(0,1fr)) 68px; grid-template-rows: repeat(4,clamp(48px,7vh,62px)); gap: 1px; background: #e8ebee; }
.amount-keypad-grid button { display: grid; min-width: 0; place-items: center; border: 0; background: #fff; color: #303946; font-size: 20px; font-weight: 500; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.amount-keypad-grid button:active { background: #e9f4f3; }
.amount-keypad-grid .amount-keypad-type { background: #f8f9fb; color: #586777; font-size: 11px; line-height: 1.25; }
.amount-keypad-grid .amount-keypad-type.selected { background: #e9f7f5; color: #40aaa2; font-weight: 700; }
.amount-keypad-grid .amount-keypad-type-spacer { background: #f8f9fb; }
.amount-keypad-grid .amount-keypad-operator { background: #fafbfc; font-size: 22px; }
.amount-keypad-grid .amount-keypad-equals { grid-column: 5; grid-row: 3 / 5; border-radius: 5px; background: linear-gradient(145deg,#ffbd69,#ed814f); color: #fff; font-size: 24px; }
.amount-keypad-grid .amount-keypad-equals:active { background: #e8784b; }
.form-block { margin-top: 19px; }
.entry-purpose-block { margin-top: 13px; }
.fund-purpose-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 6px; }
.fund-purpose-choice { display: grid; min-width: 0; min-height: 42px; place-items: center; gap: 2px; padding: 5px 3px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; color: #84909a; font-size: 8px; text-align: center; cursor: pointer; }
.fund-purpose-choice strong { font-size: 9px; font-weight: 600; }
.fund-purpose-choice small { overflow: hidden; max-width: 100%; color: inherit; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.fund-purpose-choice:hover { border-color: #dce4e9; background: #fafcfc; }
.fund-purpose-choice.selected { border-color: #86baa6; background: #eef8f3; color: #3f876c; }
.fund-purpose-choice.optional.selected { border-color: #a7b6eb; background: #f1f4ff; color: #6178bc; }
.fund-purpose-choice.enjoyment.selected { border-color: #e6a8bd; background: #fff3f6; color: #bd6e8d; }
.fund-purpose-choice.investment.selected { border-color: #e4c47b; background: #fff9ea; color: #a77e2d; }
.fund-purpose-choice.debt.selected { border-color: #e8ad9b; background: #fff4f0; color: #bd654e; }
.fund-purpose-choice.is-empty.selected { border-color: #b7c0c8; background: #f5f7f8; color: #697784; }
.field-label { display: flex; justify-content: space-between; align-items: center; font-size: 10px; font-weight: 600; margin-bottom: 10px; }
.field-hint { font-size: 8px; color: #a3acb5; font-weight: 400; }
.category-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; }
.entry-category-summary { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 10px; margin-bottom: 8px; border-bottom: 1px solid #eef1f3; color: #a1a8ae; }
.entry-category-summary { width: 100%; border: 0; background: transparent; text-align: left; cursor: pointer; }
.entry-category-summary:hover { background: #fafbfc; }
.expense-classification-picker:not(.is-open) { display: none; }
#entry-category-wrap > .field-label { display: none; }
.entry-category-summary-icon { color: #aeb5bb; font-size: 23px; line-height: 1; }
.entry-category-summary-label { color: #8f969d; font-size: 13px; }
.entry-category-summary strong { color: #20252b; font-size: 14px; font-weight: 500; }
.entry-category-summary-chevron { color: #b7bdc2; font-size: 28px; line-height: 1; }
.category-grid.expense-picker { display: block; }
.expense-classification-picker { display: grid; gap: 9px; }
.entry-category-group { padding: 9px 0 7px; border-bottom: 1px solid #eef1f3; }
.entry-category-group:last-child { border-bottom: 0; }
.entry-category-group-title { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 0 4px; border: 0; background: transparent; color: #75818e; font-size: 11px; cursor: pointer; }
.entry-category-group-title.selected { color: var(--orange-dark); font-weight: 700; }
.entry-category-group-subcategories { margin-top: 5px; }
.entry-category-subtitle { display: block; margin: 0 4px 6px; color: #a1aab4; font-size: 8px; }
.primary-category-title { color: #9ca6b1; font-size: 8px; font-weight: 600; margin-bottom: -4px; }
.primary-category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.primary-category-choice { min-width: 0; height: 37px; display: flex; align-items: center; gap: 6px; padding: 4px 7px; border: 1px solid #edf0f2; border-radius: 8px; background: white; color: #75818e; font-size: 9px; text-align: left; white-space: nowrap; transition: .15s ease; }
.primary-category-choice:hover { background: #fafbfc; border-color: #e2e7eb; }
.primary-category-choice.selected { border-color: #ffcdbd; background: #fff5f1; color: var(--orange-dark); font-weight: 700; }
.primary-category-icon { width: 23px; height: 23px; flex: 0 0 23px; border-radius: 7px; display: grid; place-items: center; background: #f6f7f8; font-size: 13px; }
.primary-category-choice.selected .primary-category-icon { background: #ffe7df; }
.secondary-category-panel { border: 1px solid #f0f2f4; border-radius: 9px; background: #fbfcfd; padding: 9px; }
.secondary-category-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.secondary-category-heading strong { font-size: 9px; color: #4f5c69; }
.secondary-category-heading span { color: #a3acb5; font-size: 8px; }
.secondary-category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; }
.secondary-category-choice { height: 34px; min-width: 0; display: flex; align-items: center; gap: 5px; padding: 0 7px; border: 1px solid #edf0f2; border-radius: 7px; background: white; color: #72808d; text-align: left; overflow: hidden; }
.secondary-category-choice > span { flex: 0 0 auto; font-size: 11px; }
.secondary-category-choice strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; font-weight: 500; }
.secondary-category-choice:hover { border-color: #f3cabc; }
.secondary-category-choice.selected { border-color: #f5aa92; background: #fff4f0; color: var(--orange-dark); }
.secondary-category-choice.selected strong { font-weight: 700; }
.category-choice { display: flex; flex-direction: column; align-items: center; gap: 6px; border: 1px solid transparent; background: transparent; border-radius: 10px; padding: 8px 3px 7px; color: #7e8996; font-size: 8px; min-width: 0; }
.category-choice span:first-child { display: grid; place-items: center; width: 35px; height: 35px; background: #f6f7f8; border-radius: 11px; font-size: 16px; }
.category-choice:hover { background: #fafbfc; }
.category-choice.selected { color: var(--orange-dark); background: #fff8f5; border-color: #ffe2d8; }
.category-choice.selected span:first-child { background: #ffebe4; }
.form-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; margin-top: 17px; }
.form-field { display: block; min-width: 0; }
.form-field[hidden] { display: none; }
.form-field > span { display: block; color: #929da8; font-size: 9px; margin-bottom: 7px; }
.form-field > #storage-action-quantity-hint { display: block; margin-top: 6px; color: #89959e; font-size: 8px; line-height: 1.4; }
.form-field > #storage-action-quantity-hint[hidden] { display: none; }
.form-field input,.form-field select { width: 100%; height: 38px; border: 1px solid #eceff2; border-radius: 8px; background: white; color: #52606e; font-size: 10px; padding: 0 10px; }
.time-record-option { display: flex; align-items: center; gap: 9px; margin-top: 9px; padding: 9px 11px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; cursor: pointer; }
.time-record-option input { width: 16px; height: 16px; flex: 0 0 16px; margin: 0; accent-color: #6484ed; }
.time-record-option > span { display: grid; gap: 3px; }
.time-record-option strong { color: #536171; font-size: 10px; font-weight: 600; }
.time-record-option small { color: #9aa4ae; font-size: 8px; }
.time-record-option:has(input:checked) { border-color: #dce8e4; background: #f6fbf9; }
.note-field { display: block; margin-top: 14px; }
.non-current-option { display: flex; align-items: center; gap: 9px; margin-top: 13px; padding: 10px 11px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; cursor: pointer; }
.non-current-option[hidden] { display: none; }
.non-current-option input { width: 16px; height: 16px; flex: 0 0 16px; margin: 0; accent-color: #6484ed; }
.non-current-option > span { display: grid; gap: 3px; }
.non-current-option strong { color: #536171; font-size: 10px; font-weight: 600; }
.non-current-option small { color: #9aa4ae; font-size: 8px; }
.modal-footer { margin-top: 21px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #f0f2f4; padding-top: 15px; }
.secure-note { font-size: 8px; color: #a1aab4; }
.secure-note span { color: #74c4a4; font-size: 10px; }
.save-entry { min-width: 115px; }
.toast { position: fixed; z-index: 30; left: 50%; bottom: 28px; transform: translate(-50%,15px); opacity: 0; pointer-events: none; background: #25313e; color: white; padding: 11px 16px; border-radius: 9px; font-size: 10px; box-shadow: 0 8px 20px #19243130; transition: .22s ease; }
.toast.visible { opacity: 1; transform: translate(-50%,0); }

@media (max-width: 1050px) {
  .sidebar { width: 220px; flex-basis: 220px; }
  .page-content { padding: 26px 24px 45px; }
  .topbar { padding: 0 24px; }
  .dashboard-grid { grid-template-columns: minmax(0,1.4fr) minmax(240px,.8fr); gap: 14px; }
  .overview-card-grid { grid-template-columns: minmax(0,1.4fr) minmax(240px,.8fr); gap: 14px; }
  .main-column,.side-column,.page-stack { gap: 14px; }
  .trend-bars { gap: 6px; }
}
@media (max-width: 790px) {
  .sidebar { width: 70px; flex-basis: 70px; padding: 20px 10px 14px; align-items: center; }
  .sidebar-version { width: 100%; margin-right: 0; margin-left: 0; padding-right: 0; padding-left: 0; font-size: 7px; }
  .brand { padding: 0 0 24px; }
  .brand > div:last-child,.ledger-copy,.ledger-switch .chevron,.nav-caption,.nav-item > span:not(.nav-icon),.profile-copy,.more-button { display: none; }
  .ledger-switch { width: 44px; height: 44px; padding: 5px; justify-content: center; }
  .ledger-icon { width: 32px; height: 32px; }
  .primary-nav { width: 100%; margin-top: 23px; }
  .nav-item { width: 48px; height: 45px; justify-content: center; padding: 0; margin: 0 auto; }
  .sidebar-profile { width: 100%; justify-content: center; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .overview-card-grid { grid-template-columns: 1fr; gap: 14px; }
  .overview-dashboard-card[data-overview-section="period"] { grid-column: auto; }
  .overview-dashboard-card[data-overview-section="cashflow"] { grid-column: auto; }
  .side-column { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .section-grid { grid-template-columns: 1fr; }
  .report-donut-wrap { justify-content: center; }
  .shopping-affordability-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .shopping-price-reference { grid-column: 1 / -1; padding: 9px; }
  .shopping-price-reference-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shopping-price-reference-metrics span:first-child { grid-column: 1 / -1; }
  .shopping-price-reference-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .shopping-price-reference-heading span { text-align: left; }
  .interface-center-row { gap: 7px; }
  .interface-center-status { display: none; }
  .interface-center-copy small { font-size: 7px; }
  .interface-center-row .secondary-button { padding: 0 7px; }
  .compare-metrics { grid-template-columns: 1fr; }
  .compare-period-selectors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding-left: 14px; padding-right: 14px; }
  .compare-period-selectors label { min-width: 0; }
  .compare-period-selectors label:first-child { grid-column: 1; grid-row: 1; }
  .compare-period-selectors label:nth-of-type(2) { grid-column: 2; grid-row: 1; }
  .compare-period-selectors label input { width: 100%; min-width: 0; }
  .compare-period-selectors > span { display: none; }
  .compare-mode-toggle { flex: 0 0 auto; }
  .compare-mode-toggle { grid-column: 1 / -1; justify-self: start; }
  .compare-mode-toggle button { padding: 0 7px; }
  .compare-period-status-list,.compare-rate-card,.compare-detail-grid,.compare-weighted-grid { grid-template-columns: 1fr; }
  .compare-period-status-list,.compare-rate-card,.compare-detail-grid,.compare-weighted-grid { padding-right: 14px; padding-left: 14px; }
  .compare-breakdown-grid { grid-template-columns: 1fr; padding-right: 14px; padding-left: 14px; }
  .compare-split-table { overflow-x: auto; padding-right: 14px; padding-left: 14px; }
  .compare-split-head,.compare-split-row { min-width: 530px; }
  .compare-cumulative-panel { padding-right: 12px; padding-left: 12px; }
  .compare-cumulative-legend { gap: 7px; font-size: 8px; }
  .compare-cumulative-legend strong { flex-basis: 100%; }
  .compare-surplus-waterfall { padding-right: 4px; padding-left: 0; }
  .compare-dual-legend { gap: 8px; }
  .compare-subcategory-row { grid-template-columns: 72px minmax(0, 1fr) 76px; gap: 6px; }
  .compare-subcategory-chart { padding-left: 14px; padding-right: 14px; }
  .change-contribution-legend { padding-right: 14px; padding-left: 14px; }
  .change-contribution-list { gap: 10px; padding-right: 14px; padding-left: 14px; }
  .change-contribution-row { grid-template-columns: minmax(66px,.7fr) minmax(70px,1.1fr) 72px; gap: 5px 7px; }
  .change-contribution-label strong { font-size: 9px; }
  .change-contribution-label small,.change-contribution-total { font-size: 8px; }
  .change-contribution-effects { font-size: 7px; }
  .change-contribution-note { padding-right: 14px; padding-left: 14px; }
  body { background: #f5f7f9; }
  .sidebar { display: none; }
  body.sidebar-overlay::before { content: ''; display: block; position: fixed; inset: 0; z-index: 11; background: rgba(28,38,49,.28); }
  .sidebar.mobile-open { display: flex; position: fixed; left: 0; top: 0; bottom: 0; z-index: 12; width: 248px; flex-basis: 248px; padding: 23px 16px 17px; align-items: stretch; box-shadow: 12px 0 30px #1f2e3c20; }
  .sidebar.mobile-open .brand { padding: 0 10px 25px; }
  .sidebar.mobile-open .brand > div:last-child,.sidebar.mobile-open .ledger-copy,.sidebar.mobile-open .ledger-switch .chevron,.sidebar.mobile-open .nav-caption,.sidebar.mobile-open .nav-item > span:not(.nav-icon),.sidebar.mobile-open .profile-copy,.sidebar.mobile-open .more-button { display: block; }
  .sidebar.mobile-open .ledger-switch { width: 100%; height: auto; padding: 11px; justify-content: flex-start; }
  .sidebar.mobile-open .primary-nav { width: 100%; margin-top: 0; }
  .sidebar.mobile-open .nav-item { width: 100%; height: auto; justify-content: flex-start; padding: 11px 12px; margin: 0; }
  .sidebar.mobile-open .sidebar-profile { width: auto; justify-content: flex-start; }
  .sidebar.mobile-open .sidebar-version { width: auto; margin: 9px 3px 0; padding: 0 4px; font-size: 9px; }
  .topbar { height: 60px; padding: 0 15px; }
  .mobile-menu { display: inline-block; }
  .topbar-heading { display: block; font-size: 13px; }
  .topbar-heading small { display: none; }
  .topbar-actions { gap: 7px; }
  .cashflow-forecast-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; padding: 12px 14px 7px; }
  .cashflow-forecast-item { gap: 5px; padding: 10px 8px; }
  .cashflow-forecast-item > span { font-size: 8px; }
  .cashflow-forecast-item > strong { font-size: 13px; }
  .cashflow-forecast-item > small { font-size: 7px; }
  .cashflow-forecast-note { margin: 3px 14px 13px; }
  .quiet-button { display: none; }
  .top-add-button { height: 34px; padding: 0 10px; font-size: 10px; }
  .page-content { padding: 23px 14px 88px; }
  .view-heading { align-items: flex-start; flex-direction: column; margin-bottom: 16px; gap: 12px; }
  .view-heading h1 { font-size: 21px; }
  .heading-tools { width: 100%; }
  .heading-tools .month-switch { flex: 1; justify-content: space-between; }
  .heading-tools .account-heading-add { flex: 0 0 auto; }
  .transaction-trash-link { min-height: 32px; padding: 0 8px; font-size: 9px; }
  .trash-heading .heading-tools { align-self: stretch; justify-content: space-between; }
  .trash-count-pill { font-size: 9px; }
  .trash-card-heading { padding: 15px 14px 11px; }
  .trash-list { padding: 0 14px; }
  .trash-item { grid-template-columns: minmax(0,1fr) auto; gap: 10px 8px; }
  .trash-item-main { grid-column: 1 / -1; }
  .trash-item-amount { grid-column: 1; grid-row: 2; align-self: center; text-align: left; }
  .trash-item-actions { grid-column: 2; grid-row: 2; gap: 5px; }
  .trash-item-actions .secondary-button,.trash-permanent-button { min-height: 31px; padding: 0 8px; font-size: 8px; }
  .trash-empty { padding: 45px 16px 48px; }
  .period-overview { padding: 0 14px; margin-bottom: 12px; }
  .overview-top-grid { margin-bottom: 12px; }
  .period-summary-row { min-height: 78px; gap: 8px; }
  .period-summary-left { gap: 9px; }
  .period-icon { width: 40px; height: 42px; flex-basis: 40px; }
  .period-icon svg { width: 39px; height: 39px; }
  .period-summary-label > strong { font-size: 15px; }
  .period-summary-label span { font-size: 10px; margin-top: 4px; }
  .period-values { min-width: 0; gap: 3px; }
  .period-value { gap: 6px; }
  .period-value span { font-size: 8px; }
  .period-value strong { min-width: 70px; font-size: 15px; }
  .period-summary-row { gap: 7px; }
  .period-open-hint { font-size: 18px; }
  .period-detail-heading .heading-tools { justify-content: flex-start; flex-wrap: wrap; }
  .dashboard-grid,.main-column,.side-column,.page-stack { gap: 12px; }
  .summary-card { min-height: 188px; padding: 19px 18px; }
  .summary-amount { font-size: 28px; }
  .summary-meta { gap: 14px; }
  .summary-meta div { padding-left: 9px; }
  .summary-meta strong { font-size: 12px; }
  .summary-decoration { right: 20px; opacity: .1; }
  .card-header { padding: 16px 16px 0; }
  .trend-chart { padding: 15px 15px 13px; gap: 6px; height: 155px; }
  .trend-bar-wrap { height: 105px; }
  .trend-bars { gap: 4px; }
  .monthly-chart { padding: 12px 10px 11px; }
  .monthly-chart-y-axis { flex-basis: 34px; font-size: 8px; }
  .monthly-chart-hint { margin-left: 34px; font-size: 8px; }
  .category-list { padding: 14px 16px 16px; }
  .recent-list { padding: 7px 16px 10px; }
  .side-column { grid-template-columns: 1fr; }
  .toolbar-card { padding: 12px; gap: 8px; }
  .search-field { flex-basis: 100%; }
  .toolbar-card select { flex: 1; min-width: 0; }
  .report-total-grid { gap: 7px; }
  .metric-card { padding: 13px 11px; }
  .metric-card strong { font-size: 14px; }
  .report-donut-wrap { flex-direction: column; gap: 18px; }
  .legend-list { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .annual-report-stack { gap: 11px; }
  .annual-summary-card { min-height: 132px; padding: 16px; }
  .annual-summary-content { width: 78%; }
  .annual-summary-content > strong { font-size: 24px; }
  .annual-summary-art { right: 8px; width: 36%; }
  .annual-summary-art::before { width: 39px; height: 37px; }
  .annual-summary-foot { gap: 7px; font-size: 7px; }
  .annual-summary-foot b { font-size: 8px; }
  .normal-expense-range-metrics { grid-template-columns: 1fr 1.25fr .8fr; gap: 5px; margin-right: 11px; margin-left: 11px; }
  .normal-expense-range-metrics > div { gap: 4px; padding: 8px 7px; }
  .normal-expense-range-metrics span,.normal-expense-range-legend,.normal-expense-range-foot { font-size: 7px; }
  .normal-expense-range-metrics strong { font-size: 9px; }
  .normal-expense-range-legend { gap: 6px 9px; margin-right: 11px; margin-left: 11px; }
  .normal-expense-range-scroll { padding-right: 4px; padding-left: 4px; }
  .normal-expense-range-svg { min-width: 480px; }
  .normal-expense-range-foot,.normal-expense-range-note { margin-right: 11px; margin-left: 11px; }
  .normal-expense-range-empty { margin-right: 11px; margin-left: 11px; }
  .annual-card-heading { padding: 13px 13px 5px; }
  .annual-ranking-list { padding: 0 11px 6px; }
  .annual-rank-row { gap: 6px; }
  .annual-rank-label { gap: 6px; }
  .annual-rank-label b { min-width: 60px; font-size: 8px; }
  .annual-rank-label strong { font-size: 8px; }
  .annual-rank-icon { width: 23px; height: 23px; flex-basis: 23px; }
  .annual-trend-selected { gap: 7px; padding-right: 12px; font-size: 7px; }
  .annual-trend-controls { align-items: flex-start; padding-right: 11px; padding-left: 11px; }
  .annual-trend-controls > small { padding-top: 7px; text-align: right; }
  .annual-trend-mode button { padding: 0 7px; font-size: 8px; }
  .annual-trend-legend { gap: 6px 9px; padding-right: 11px; padding-left: 11px; }
  .annual-trend-legend small { flex-basis: 100%; }
  .annual-trend-detail { min-height: 145px; margin-right: 11px; margin-left: 11px; padding: 9px; }
  .annual-trend-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .annual-trend-detail-grid strong { font-size: 10px; }
  .annual-trend-compare-note,.annual-trend-note { margin-right: 11px; margin-left: 11px; }
  .annual-account-grid { grid-template-columns: 1fr; gap: 11px; }
  .account-report-stack { gap: 11px; }
  .account-asset-insight-metrics { gap: 6px; padding-right: 12px; padding-left: 12px; }
  .account-asset-insight-metrics article { padding: 8px 7px; }
  .account-asset-insight-metrics strong { font-size: 12px; }
  .account-asset-insight-breakdown { gap: 5px; margin-right: 12px; margin-left: 12px; padding: 8px; }
  .account-asset-insight-breakdown b { font-size: 8px; }
  .asset-concentration-list,.account-balance-volatility-list { padding-right: 12px; padding-left: 12px; }
  .asset-concentration-row { grid-template-columns: 15px minmax(0,1fr) auto 37px; gap: 5px; }
  .asset-concentration-row > strong,.asset-concentration-row > span,.asset-concentration-row > b { font-size: 7px; }
  .account-asset-insight-note { margin-right: 12px; margin-left: 12px; }
  .account-balance-volatility-row { grid-template-columns: 22px minmax(0,1fr) auto; gap: 7px; }
  .account-balance-volatility-icon { width: 21px; height: 21px; }
  .account-balance-volatility-value > b { font-size: 9px; }
  .account-forecast-stack { gap: 11px; }
  .account-forecast-summary { margin-right: 11px; margin-left: 11px; }
  .account-forecast-band-section { margin-right: 11px; margin-left: 11px; padding-right: 7px; padding-left: 7px; }
  .account-forecast-list { grid-template-columns: 1fr; padding-right: 11px; padding-left: 11px; }
  .account-forecast-note { padding-right: 11px; padding-left: 11px; }
  .account-forecast-legend { padding-right: 11px; padding-left: 11px; }
  .account-forecast-chart { margin-right: 11px; margin-left: 11px; padding-right: 3px; padding-left: 3px; }
  .account-forecast-detail-toggle { width: calc(100% - 22px); margin-right: 11px; margin-left: 11px; }
  .account-forecast-detail-list { margin-right: 11px; margin-left: 11px; }
  .account-forecast-detail-row { grid-template-columns: 58px minmax(0,1fr) minmax(0,1fr); gap: 5px; padding-right: 7px; padding-left: 7px; font-size: 7px; }
  .account-forecast-detail-row strong { font-size: 7px; }
  .account-forecast-heading-values strong { font-size: 9px; }
  .forecast-backtest-summary { grid-template-columns: 1fr 1fr; gap: 6px; margin-right: 11px; margin-left: 11px; }
  .forecast-backtest-summary > div:last-child { grid-column: 1 / -1; }
  .forecast-backtest-summary > div { padding: 9px; }
  .forecast-backtest-summary strong { font-size: 13px; }
  .forecast-backtest-list { margin-right: 11px; margin-left: 11px; }
  .forecast-backtest-bias { margin-right: 11px; margin-left: 11px; }
  .forecast-backtest-row summary { grid-template-columns: minmax(0,1fr) auto 10px; gap: 5px 7px; padding: 9px; }
  .forecast-backtest-row summary > strong { grid-column: 1; grid-row: 1; }
  .forecast-backtest-row summary > b { grid-column: 2; grid-row: 1; }
  .forecast-backtest-row summary::after { grid-column: 3; grid-row: 1; }
  .forecast-backtest-row summary > span:first-of-type { grid-column: 1; grid-row: 2; }
  .forecast-backtest-row summary > span:nth-of-type(2) { grid-column: 2; grid-row: 2; }
  .forecast-backtest-row summary > em { grid-column: 1 / -1; grid-row: 3; }
  .forecast-backtest-row summary span { overflow-wrap: anywhere; white-space: normal; font-size: 8px; }
  .forecast-backtest-contribution { grid-template-columns: minmax(0,1fr) auto; gap: 3px 8px; }
  .forecast-backtest-contribution span { grid-column: 1; }
  .forecast-backtest-contribution small { grid-column: 1; grid-row: 2; }
  .forecast-backtest-contribution strong { grid-column: 2; grid-row: 1 / 3; }
  .forecast-backtest-note { margin-right: 11px; margin-left: 11px; }
  .account-report-summary-card { min-height: 145px; padding: 16px; }
  .account-report-summary-content { width: 78%; }
  .account-report-summary-content > strong { font-size: 26px; }
  .account-report-art { right: -12px; width: 43%; }
  .account-report-art span { width: 56px; height: 56px; }
  .account-report-ranking .annual-rank-label { gap: 6px; }
  .account-report-ranking .annual-rank-label b { min-width: 66px; font-size: 9px; }
  .account-behavior-list { grid-template-columns: 1fr; padding-right: 11px; padding-left: 11px; }
  .account-behavior-item { grid-template-columns: 26px minmax(0,1fr) auto 8px; gap: 6px; }
  .account-behavior-meta small { max-width: 110px; }
  .monthly-report-stack { gap: 11px; }
  .monthly-report-hero { min-height: 132px; padding: 16px; }
  .monthly-report-hero-content { width: 79%; }
  .monthly-report-hero-flow { width: 100%; gap: 7px; }
  .monthly-report-hero-content > strong { font-size: 23px; }
  .monthly-report-hero-art { right: -9px; width: 39%; }
  .monthly-report-hero-art span { width: 45px; height: 38px; }
  .monthly-report-hero-art i { right: 31%; }
  .monthly-report-note { padding: 10px; }
  .shopping-add-card form { grid-template-columns: 1fr 1fr; }
  .shopping-add-card .primary-button { grid-column: 1 / -1; }
  .price-archive-stats { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .price-archive-filter { margin-right: 14px; margin-left: 14px; }
  .price-archive-product-summary { margin-right: 14px; margin-left: 14px; }
  .price-archive-product-summary > div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .price-trend-panel { margin-right: 14px; margin-left: 14px; padding: 11px 10px 9px; }
  .price-trend-heading { flex-direction: column; }
  .price-trend-controls { width: 100%; }
  .price-trend-controls select:first-child { flex: 1 1 auto; min-width: 0; max-width: none; }
  .price-trend-controls select:last-child { flex: 0 0 auto; }
  .price-trend-stats { gap: 5px; }
  .price-trend-stats > span { padding: 7px 6px; }
  .price-trend-stats small { font-size: 7px; }
  .price-trend-stats b { font-size: 10px; }
  .price-trend-chart-scroll { margin-right: -2px; margin-left: -2px; }
  .price-archive-list { padding-right: 14px; padding-left: 14px; }
  .price-archive-row { grid-template-columns: minmax(0, 1fr) auto 24px; gap: 7px; }
  .price-archive-toggle { width: calc(100% - 28px); margin-right: 14px; margin-left: 14px; }
  .price-archive-modal form { padding-right: 18px; padding-left: 18px; }
  .price-archive-form-grid { grid-template-columns: 1fr; }
  .shopping-affordability-form { grid-template-columns: 1fr; align-items: stretch; }
  .travel-budget-form { grid-template-columns: 1fr 1fr; margin-right: 14px; margin-left: 14px; }
  .travel-budget-destination { grid-column: 1 / -1; }
  .travel-budget-summary { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .travel-budget-breakdown { margin-right: 14px; margin-left: 14px; }
  .travel-budget-note { margin-right: 14px; margin-left: 14px; }
  .travel-packing-toolbar { grid-template-columns: 1fr; gap: 11px; margin-right: 14px; margin-left: 14px; }
  .travel-packing-groups { grid-template-columns: 1fr; gap: 9px; padding-right: 14px; padding-left: 14px; }
  .travel-packing-group-toolbar { margin-right: 14px; margin-left: 14px; }
  .travel-packing-add-form { margin-right: 14px; margin-left: 14px; }
  .travel-packing-note { margin-right: 14px; margin-left: 14px; }
  .travel-packing-type-actions { margin-right: 14px; margin-left: 14px; }
  .travel-packing-transfer { margin-right: 14px; margin-left: 14px; }
  .travel-packing-row.is-linked { grid-template-columns: minmax(0, 1fr); padding: 6px 0; }
  .travel-packing-actions { justify-content: flex-start; margin-left: 27px; }
  .travel-packing-actions > small { flex: 1 1 100%; max-width: none; }
  .travel-packing-stored-form { grid-template-columns: 1fr; }
  .travel-packing-actions { flex-wrap: wrap; }
  .travel-packing-group-head { align-items: flex-start; }
  .travel-packing-group-title { flex-basis: 100%; }
  .travel-packing-group-actions { width: 100%; }
  .travel-packing-group-actions button { min-height: 30px; font-size: 9px; }
  .travel-pack-quantity { flex: 0 1 auto; }
  .travel-suggestion-panel, .travel-return-panel, .travel-last-minute-panel, .travel-review-panel { margin-right: 14px; margin-left: 14px; padding: 12px; }
  .travel-condition-form, .travel-suggestion-list { grid-template-columns: 1fr; }
  .travel-condition-choice { grid-column: auto; }
  .travel-condition-form > button { justify-self: stretch; }
  .travel-return-row, .travel-review-panel form, .travel-last-minute-list { grid-template-columns: 1fr; }
  .travel-review-panel form button { justify-self: stretch; }
  .financial-scenario-form { grid-template-columns: 1fr 1fr; margin-right: 14px; margin-left: 14px; }
  .financial-scenario-summary { grid-template-columns: 1fr 1fr; margin-right: 14px; margin-left: 14px; }
  .financial-scenario-summary > div { padding: 9px; }
  .financial-scenario-rows { margin-right: 14px; margin-left: 14px; }
  .financial-scenario-row { grid-template-columns: 112px minmax(0, 1fr) auto; gap: 7px; }
  .financial-scenario-row-head small { font-size: 7px; }
  .financial-scenario-row b { min-width: 77px; font-size: 9px; }
  .financial-scenario-note { margin-right: 14px; margin-left: 14px; }
  .financial-pressure-list { margin-right: 14px; margin-left: 14px; }
  .financial-pressure-item { padding: 10px; }
  .financial-pressure-item-head { gap: 7px; }
  .financial-pressure-item-head small { font-size: 7px; }
  .financial-pressure-status { font-size: 7px; }
  .financial-pressure-metrics small { font-size: 7px; }
  .financial-pressure-metrics b { font-size: 9px; }
  .financial-pressure-note { margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-form .secondary-button { width: 100%; }
  .shopping-affordability-source { margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-scenario { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-reverse-form { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-budget-toggle { margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-reverse-result { margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-caps { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-method-note { margin-right: 14px; margin-left: 14px; }
  .tools-directory-list { padding-right: 14px; padding-left: 14px; }
  .tools-directory-copy strong { font-size: 12px; }
  .tools-directory-copy small { font-size: 9px; }
  .tools-detail-back { margin-right: 14px; margin-left: 14px; }
  .financial-twin-profile { margin-right: 14px; margin-left: 14px; padding: 13px; }
  .financial-twin-profile h2 { font-size: 18px; }
  .financial-twin-profile p { font-size: 8px; }
  .financial-twin-tags { margin-right: 14px; margin-left: 14px; }
  .financial-twin-section-title { margin-right: 14px; margin-left: 14px; }
  .financial-twin-metrics { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .financial-twin-actions { margin-right: 14px; margin-left: 14px; }
  .financial-twin-method { margin-right: 14px; margin-left: 14px; }
  .financial-twin-note { margin-right: 14px; margin-left: 14px; }
  .shopping-affordability-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-right: 14px; padding-left: 14px; }
  .shopping-affordability-metrics span { padding: 8px; }
  .cash-runway-card { margin-top: 12px; padding: 10px; }
  .cash-runway-head { gap: 5px; }
  .cash-runway-head strong { font-size: 15px; }
  .cash-runway-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
  .cash-runway-breakdown span:last-child { grid-column: 1 / -1; }
  .cash-reserve-card { padding: 10px; }
  .cash-reserve-head strong { font-size: 15px; }
  .cash-reserve-row small { white-space: normal; }
  .health-score-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-right: 14px; padding-left: 14px; }
  .health-score-metrics span { padding: 8px; }
  .consumption-habit-details { margin-right: 14px; margin-left: 14px; }
  .consumption-habit-group-list { grid-template-columns: 1fr; }
  .consumption-habit-large-row { grid-template-columns: minmax(0, 1fr) auto; }
  .consumption-habit-large-row label { grid-column: 1 / -1; }
  .shopping-affordability-method,.shopping-affordability-advice { margin-right: 14px; margin-left: 14px; }
  .tool-affordability-list { padding-right: 14px; padding-left: 14px; }
  .shopping-item-date { width: 104px; }
  .shopping-item-date-field > span { display: none; }
  .finance-calendar-card { padding: 12px 10px; }
  .finance-cashflow-link-grid { grid-template-columns: 1fr; padding: 10px; }
  .finance-calendar-weekdays, .finance-calendar-grid { gap: 3px; }
  .finance-calendar-day { min-height: 62px; padding: 5px 4px; border-radius: 7px; }
  .finance-calendar-day small { margin-top: 3px; font-size: 8px; }
  .finance-calendar-title span { font-size: 9px; }
   .finance-calendar-view-switch { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; margin-bottom: 10px; }
   .finance-calendar-view-tab { padding-right: 7px; padding-left: 7px; font-size: 9px; }
   .finance-cashflow-roadmap-summary { grid-template-columns: 1fr 1fr; margin-right: 14px; margin-left: 14px; }
   .finance-cashflow-roadmap-summary span:last-child { grid-column: 1 / -1; }
   .finance-cashflow-roadmap-list { margin-right: 14px; margin-left: 14px; }
   .finance-cashflow-roadmap-row { grid-template-columns: 58px minmax(0, 1fr) 90px; gap: 6px; }
   .finance-cashflow-roadmap-note { margin-right: 14px; margin-left: 14px; }
   .finance-calendar-event-form { grid-template-columns: 1fr 1fr; padding-right: 14px; padding-left: 14px; }
   .finance-calendar-event-form .finance-calendar-event-note-field { grid-column: 1 / -1; }
   .finance-calendar-event-form .primary-button { grid-column: 1 / -1; }
   .finance-calendar-event-list { margin-right: 14px; margin-left: 14px; }
   .finance-calendar-event-manager .card-header { padding-right: 14px; padding-left: 14px; }
   .finance-calendar-event-detail .finance-calendar-detail-list { padding-right: 14px; padding-left: 14px; }
  .monthly-report-metrics { gap: 7px; }
  .monthly-report-metric { padding: 11px 9px; }
  .monthly-report-metric > strong { font-size: 14px; }
  .monthly-report-change { max-width: 68px; font-size: 7px; }
  .consumption-trend-card .annual-card-heading { align-items: flex-start; }
  .consumption-trend-summary { grid-template-columns: minmax(0,1fr) 1px minmax(0,1fr) 1px minmax(0,1fr); gap: 6px; margin-right: 12px; margin-left: 12px; padding-right: 8px; padding-left: 8px; }
  .consumption-trend-summary span { font-size: 7px; }
  .consumption-trend-summary strong { font-size: 10px; }
  .consumption-trend-row { grid-template-columns: 23px minmax(0,1fr) 48px 48px; gap: 5px; padding-right: 3px; padding-left: 3px; }
  .consumption-trend-icon { width: 22px; height: 22px; font-size: 11px; }
  .consumption-trend-copy > small { font-size: 6px; }
  .consumption-trend-sparkline { width: 46px; height: 18px; }
  .consumption-trend-trend { font-size: 5px; }
  .consumption-trend-change strong { font-size: 7px; }
  .consumption-trend-change small { font-size: 6px; }
  .consumption-trend-explanation { margin-right: 12px; margin-left: 12px; }
  .consumption-trend-weight-note,.consumption-trend-sort { margin-right: 12px; margin-left: 12px; }
  .consumption-heatmap-weekdays,.consumption-heatmap-grid { gap: 3px; padding-right: 11px; padding-left: 11px; }
  .consumption-heatmap-day { min-height: 37px; padding: 4px 3px; }
  .consumption-heatmap-day strong { font-size: 8px; }
  .consumption-heatmap-day small { font-size: 5px; }
  .consumption-heatmap-detail { margin-right: 11px; margin-left: 11px; }
  .consumption-heatmap-similarity-note { margin-right: 11px; margin-left: 11px; }
  .category-calendar-heatmap-filter { justify-content: stretch; padding-right: 11px; padding-left: 11px; }
  .category-calendar-heatmap-filter label { width: 100%; justify-content: space-between; }
  .category-calendar-heatmap-filter select { flex: 1; min-width: 0; }
  .category-heatmap-insights { grid-template-columns: repeat(2,minmax(0,1fr)); padding-right: 10px; padding-left: 10px; }
  .category-heatmap-metric-switch { padding-right: 11px; padding-left: 11px; }
  .category-heatmap-subheading { display: grid; gap: 3px; }
  .category-heatmap-weekday-row { grid-template-columns: 16px 1fr 62px 28px; gap: 6px; }
  .category-heatmap-transaction-row { grid-template-columns: 34px minmax(0,1fr) auto; gap: 3px 6px; }
  .category-forecast-summary { gap: 9px; margin-right: 11px; margin-left: 11px; padding-right: 8px; padding-left: 8px; }
  .category-forecast-summary b { font-size: 9px; }
  .category-forecast-list { padding-right: 11px; padding-left: 11px; }
  .category-forecast-track,.category-forecast-row > small { margin-left: 29px; }
  .category-forecast-note { padding-right: 11px; padding-left: 11px; }
  .consumption-structure-health-note { margin-right: 14px; margin-left: 14px; }
  .consumption-time-list { padding-right: 10px; padding-left: 10px; }
  .consumption-time-row { grid-template-columns: 58px minmax(0,1fr) 65px; gap: 7px; padding-right: 4px; padding-left: 4px; }
  .consumption-time-value b { font-size: 8px; }
  .consumption-time-detail { margin-right: 10px; margin-left: 10px; }
  .monthly-top-intro { padding: 0 12px 5px; }
  .monthly-top-list { padding-right: 11px; padding-left: 11px; }
  .monthly-top-row { grid-template-columns: 14px 23px minmax(0,1fr) auto; gap: 6px; }
  .monthly-top-icon { width: 23px; height: 23px; flex-basis: 23px; font-size: 12px; }
  .monthly-top-row > b { font-size: 9px; }
  .monthly-top-budget-impact { font-size: 8px; white-space: normal; overflow-wrap: anywhere; }
  .monthly-top-actions { padding-right: 11px; padding-left: 11px; }
  .monthly-trend-card .annual-card-heading { gap: 6px; padding-right: 12px; padding-left: 12px; }
  .monthly-trend-card .annual-card-heading > span { max-width: 40%; font-size: 7px; }
  .monthly-trend-heading { align-items: flex-start; gap: 6px; }
  .monthly-trend-mode-switch button { padding-right: 6px; padding-left: 6px; }
  .monthly-report-selected { gap: 7px; padding-right: 12px; font-size: 7px; }
  .monthly-report-chart-scroll { padding-right: 5px; padding-left: 5px; }
  .monthly-pressure-card .annual-card-heading { align-items: flex-start; }
  .monthly-pressure-card .annual-card-heading > span { white-space: nowrap; }
  .monthly-pressure-chart-scroll { padding-right: 5px; padding-left: 5px; }
  .monthly-pressure-summary { grid-template-columns: 1fr; margin-right: 11px; margin-left: 11px; }
  .cashflow-cycle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-right: 11px; margin-left: 11px; }
  .cashflow-cycle-detail { margin-right: 11px; margin-left: 11px; }
  .cashflow-cycle-note { padding-right: 11px; padding-left: 11px; }
  .free-cashflow-waterfall-card .annual-card-heading { align-items: flex-start; }
  .free-cashflow-waterfall-card .annual-card-heading > div span { max-width: 250px; font-size: 8px; line-height: 1.45; }
  .free-cashflow-waterfall-visual { margin-right: 11px; margin-left: 11px; }
  .free-cashflow-waterfall-axis { width: 34px; font-size: 7px; }
  .free-cashflow-waterfall-axis > span { right: 2px; }
  .free-cashflow-waterfall-chart { height: 190px; gap: 4px; margin-left: 37px; }
  .free-cashflow-waterfall-stage-plot { bottom: 38px; }
  .free-cashflow-waterfall-connector { left: calc(-50% - 2px); width: calc(100% + 4px); }
  .free-cashflow-waterfall-amount { max-width: 56px; font-size: 7px; }
  .free-cashflow-waterfall-stage > small { right: -2px; left: -2px; font-size: 7px; }
  .free-cashflow-waterfall-detail { grid-template-columns: repeat(2,minmax(0,1fr)); margin-right: 11px; margin-left: 11px; }
  .free-cashflow-waterfall-hint { margin-right: 11px; margin-left: 11px; font-size: 8px; }
  .free-cashflow-waterfall-legend { gap: 11px; margin-right: 11px; margin-left: 11px; font-size: 8px; }
  .free-cashflow-waterfall-summary { grid-template-columns: repeat(2,minmax(0,1fr)); margin-right: 11px; margin-left: 11px; }
  .free-cashflow-waterfall-summary em { grid-column: 1 / -1; text-align: left; }
  .free-cashflow-waterfall-note { padding-right: 11px; padding-left: 11px; }
  .holiday-consumption-card .annual-card-heading { align-items: flex-start; }
  .holiday-consumption-card .annual-card-heading > span { white-space: nowrap; }
  .holiday-consumption-types { padding-right: 11px; padding-left: 11px; }
  .holiday-consumption-type { grid-template-columns: 76px minmax(0,1fr) 58px 32px; gap: 6px; }
  .holiday-consumption-subheading { padding-right: 11px; padding-left: 11px; }
  .holiday-consumption-list { padding-right: 11px; padding-left: 11px; }
  .holiday-consumption-row { grid-template-columns: 94px minmax(0,1fr) 58px; gap: 6px; }
  .holiday-same-progress-list { padding-right: 11px; padding-left: 11px; }
  .holiday-same-progress-row { grid-template-columns: minmax(0,1fr) 68px; gap: 6px; }
  .holiday-same-progress-row > div:first-child small { overflow-wrap: anywhere; }
  .holiday-same-progress-note { padding-right: 11px; padding-left: 11px; }
  .monthly-report-grid text { font-size: 8px; }
  .account-detail-report-stack,.account-detail-flow-stack { gap: 11px; }
  .account-detail-overview-list { padding: 0 11px 5px; }
  .account-detail-overview-row { grid-template-columns: 23px minmax(0,1fr) auto auto; gap: 6px; min-height: 36px; }
  .account-detail-overview-icon { width: 21px; height: 21px; }
  .account-detail-overview-row > strong { font-size: 8px; }
  .account-detail-overview-row > small { font-size: 6px; }
  .account-detail-overview-row > b { font-size: 8px; }
  .account-detail-obligation-list { padding-right: 10px; padding-left: 10px; }
  .account-detail-obligation-row { grid-template-columns: 23px minmax(0,1fr) auto; gap: 6px; }
  .account-detail-obligation-icon { width: 22px; height: 22px; font-size: 12px; }
  .account-detail-obligation-copy strong { font-size: 8px; }
  .account-detail-obligation-balance > b { font-size: 9px; }
  .account-detail-obligation-balance > small { gap: 5px; font-size: 6px; }
  .auto-budget-card { padding: 15px 14px 14px; }
  .budget-disposition-card,.budget-affordability-card { gap: 10px; padding: 13px 12px; }
  .budget-insight-heading h2 { font-size: 12px; }
  .budget-insight-heading p,.budget-disposition-note,.budget-affordability-note { font-size: 7px; }
  .budget-disposition-values { gap: 5px; }
  .budget-disposition-values b { font-size: 10px; }
  .budget-affordability-metrics { gap: 5px; }
  .budget-affordability-metrics > span { padding: 7px 6px; }
  .budget-affordability-metrics small { font-size: 7px; }
  .budget-affordability-metrics b { font-size: 9px; }
  .budget-affordability-legend { gap: 6px 9px; font-size: 7px; }
  .budget-pace-bullet-legend { gap: 6px 10px; font-size: 7px; }
  .budget-bullet-values { gap: 4px; }
  .budget-bullet-values small,.budget-bullet-values b { font-size: 7px; }
  .auto-budget-header { gap: 9px; }
  .auto-budget-header h2 { font-size: 13px; }
  .auto-budget-header p { font-size: 8px; }
  .auto-budget-button { padding: 0 8px; font-size: 9px; }
  .auto-budget-summary { margin-top: 11px; }
  .auto-budget-item { grid-template-columns: 82px minmax(0,1fr) 62px; gap: 6px; }
  .auto-budget-item-name { font-size: 8px; }
  .auto-budget-item-name i { width: 18px; height: 18px; font-size: 10px; }
  .auto-budget-item b { font-size: 8px; }
  .budget-overrun-card .card-header { align-items: flex-start; }
  .budget-overrun-list { padding-right: 12px; padding-left: 12px; }
  .budget-backtest-card .card-header { gap: 8px; }
  .budget-backtest-card .card-header h2 { font-size: 12px; }
  .budget-backtest-card .card-header p { font-size: 8px; }
  .budget-backtest-metrics { gap: 5px; padding-right: 11px; padding-left: 11px; }
  .budget-backtest-metrics > div { padding: 8px 6px; }
  .budget-backtest-metrics strong { font-size: 11px; }
  .budget-backtest-list { padding-right: 12px; padding-left: 12px; }
  .budget-backtest-row { gap: 6px; }
  .budget-backtest-summary { gap: 5px 8px; }
  .budget-backtest-method,.budget-backtest-empty { padding-right: 13px; padding-left: 13px; }
  .budget-backtest-month { min-width: 95px; }
  .budget-pace-card .card-header { gap: 8px; }
  .budget-pace-card .card-header h2 { font-size: 12px; }
  .budget-pace-card .card-header p { font-size: 8px; }
  .budget-pace-status { padding: 5px 7px; font-size: 7px; }
  .budget-pace-mode-switch { margin-right: 11px; margin-left: 11px; font-size: 8px; }
  .budget-pace-mode-switch button { padding: 5px 7px; }
  .budget-pace-breakdown { display: flex; flex-wrap: wrap; gap: 8px; margin-right: 11px; margin-left: 11px; padding: 9px; }
  .budget-pace-breakdown > div:not(.budget-pace-breakdown-total) { flex: 1 1 calc(33.333% - 8px); }
  .budget-pace-breakdown > i { display: none; }
  .budget-pace-breakdown > div > strong { font-size: 11px; }
  .budget-pace-breakdown-total { flex: 1 1 100%; padding: 7px 0 0; border-top: 1px solid #e7ebed; border-left: 0; }
  .budget-pace-breakdown-total > strong { font-size: 14px; }
  .budget-pace-flags,.budget-pace-range,.budget-pace-reason,.budget-pace-plan { margin-right: 11px; margin-left: 11px; }
  .budget-pace-flags { gap: 6px; }
  .budget-pace-flags > span { padding: 7px; }
  .budget-pace-range { align-items: flex-start; flex-direction: column; gap: 6px; }
  .budget-pace-metrics { margin-right: 11px; margin-left: 11px; }
  .budget-pace-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin-right: 11px; margin-left: 11px; }
  .budget-pace-metrics.is-three .budget-pace-metric:last-child { grid-column: 1 / -1; }
  .budget-pace-metric { gap: 4px; padding: 9px 8px; }
  .budget-pace-metric > span { font-size: 8px; }
  .budget-pace-metric > strong { font-size: 12px; }
  .budget-pace-metric > small { font-size: 7px; }
  .budget-pace-chart-wrap { margin-right: 5px; margin-left: 5px; }
  .budget-pace-legend { gap: 6px 10px; padding-right: 10px; padding-left: 10px; font-size: 7px; }
  .budget-pace-categories { gap: 9px; margin-right: 12px; margin-left: 12px; }
  .budget-pace-categories-heading { align-items: flex-start; flex-direction: column; gap: 4px; }
  .budget-pace-categories-heading span { text-align: left; }
  .budget-pace-category-list { gap: 9px; }
  .budget-pace-category > small { font-size: 7px; }
  .budget-pace-method { margin-right: 12px; margin-left: 12px; font-size: 7px; }
  .household-basket-summary { gap: 9px; margin-right: 13px; margin-left: 13px; padding: 9px; }
  .household-basket-summary strong { font-size: 11px; }
  .household-basket-list { padding-right: 14px; padding-left: 14px; }
  .household-basket-empty { margin-right: 14px; margin-left: 14px; }
  .household-basket-method { padding-right: 14px; padding-left: 14px; }
  .living-cost-trend-card .annual-card-heading { align-items: flex-start; flex-wrap: wrap; }
  .living-cost-trend-card .annual-card-heading > div { flex: 1 1 145px; }
  .living-cost-change { flex: 1 1 100%; max-width: 100%; }
  .living-cost-summary { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; margin-right: 11px; margin-left: 11px; }
  .living-cost-summary article { gap: 4px; padding: 7px 6px; }
  .living-cost-summary span { font-size: 7px; }
  .living-cost-summary strong { font-size: 10px; }
  .living-cost-summary small { font-size: 7px; }
  .living-cost-baseline { margin-right: 11px; margin-left: 11px; }
  .living-cost-legend { gap: 6px 9px; margin-right: 11px; margin-left: 11px; font-size: 7px; }
  .living-cost-chart-scroll { padding-right: 3px; padding-left: 3px; }
  .living-cost-chart-svg { min-width: 480px; }
  .living-cost-method { padding-right: 12px; padding-left: 12px; }
  .budget-edit-row { grid-template-columns: minmax(0,1fr) 54px 84px; gap: 7px; }
  .budget-edit-label { min-width: 0; font-size: 9px; gap: 6px; }
  .budget-item-ring { --ring-size: 50px; --ring-hole-size: 38px; }
  .budget-item-ring strong { font-size: 8px; }
  .budget-primary-copy small,.budget-subcategory-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .budget-primary-copy strong { font-size: 9px; }
  .account-summary-banner { padding: 17px; }
  .account-summary-metrics { gap: 10px; flex: 1; }
  .account-summary-metric + .account-summary-metric { padding-left: 10px; }
  .account-summary-banner strong { font-size: 17px; }
  .account-summary-banner .account-summary-metric > strong { font-size: 24px; }
  .account-summary-banner small { font-size: 7px; }
  .account-row { gap: 7px; padding: 12px 5px; }
  .account-row-main { gap: 8px; }
  .account-row-main .account-icon { width: 32px; height: 32px; flex-basis: 32px; font-size: 15px; }
  .account-row-main .account-copy span { max-width: 43vw; }
  .account-row-balance .account-balance { font-size: 9px; }
  .account-row-chevron { font-size: 15px; }
  .account-detail-hero { padding: 15px; }
  .account-detail-back { min-height: 42px; padding: 0 14px; font-size: 13px; }
  .account-detail-heading { flex-wrap: wrap; gap: 8px; }
  .account-detail-copy { flex: 1; }
  .account-detail-actions { width: 100%; justify-content: flex-end; gap: 5px; }
  .account-detail-actions .account-detail-adjust,.account-detail-actions .account-rename-button,.account-detail-actions .account-visibility-button,.account-detail-actions .account-delete-button { height: 29px; padding: 0 8px; font-size: 7px; }
  .account-detail-balance strong { font-size: 23px; }
  .account-detail-flow { align-items: flex-start; flex-direction: column; gap: 7px; }
  .investment-performance-card { padding: 14px; }
  .investment-performance-heading { align-items: flex-start; }
  .investment-performance-heading > div { flex: 1; }
  .investment-performance-heading .secondary-button { min-height: 32px; padding: 0 8px; font-size: 8px; }
  .investment-performance-actions { gap: 4px; }
  .investment-performance-breakdown { gap: 5px; }
  .investment-performance-breakdown > div { padding: 8px 7px; }
  .investment-performance-breakdown span { font-size: 7px; }
  .investment-performance-breakdown strong { font-size: 8px; }
  .investment-performance-primary > strong { font-size: 21px; }
  .account-ledger-heading { padding: 13px 14px 11px; }
  .account-month-summary { gap: 8px; padding: 13px 12px; }
  .account-month-period { min-width: 48px; }
  .account-month-totals { gap: 5px; }
  .account-month-totals > strong { font-size: 12px; }
  .account-month-totals small { font-size: 7px; gap: 5px; }
  .account-month-transactions { padding: 0 12px 8px; }
  .account-form { margin: 12px 13px 0; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
  .account-form-name,.account-form-balance { grid-column: 1 / 2; }
  .account-form-type { grid-column: 2 / 3; }
  .account-form .primary-button { grid-column: 2 / 3; grid-row: auto; }
  .mobile-nav { display: flex; position: fixed; z-index: 8; bottom: 0; left: 0; right: 0; height: 62px; background: rgba(255,255,255,.96); border-top: 1px solid #edf0f2; justify-content: space-around; align-items: center; padding: 0 10px env(safe-area-inset-bottom); backdrop-filter: blur(12px); }
  .mobile-nav button { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; color: #98a2ad; border: 0; background: none; font-size: 8px; min-width: 44px; }
  .mobile-nav button span { font-size: 19px; line-height: 19px; }
  .mobile-nav button.active { color: var(--orange); font-weight: 700; }
  .mobile-nav .mobile-add { width: 43px; min-width: 43px; height: 43px; margin-top: -22px; border-radius: 15px; background: linear-gradient(140deg,#ff9474,#ed6346); color: white; box-shadow: 0 6px 13px #f36f5040; }
  .mobile-nav .mobile-add span { font-size: 27px; line-height: 25px; }
  .modal-backdrop { align-items: end; padding: 0; }
  .entry-modal { width: 100%; max-height: 96vh; border-radius: 19px 19px 0 0; }
  .shopping-edit-modal .entry-modal { max-height: min(96vh, 850px); max-height: min(96dvh, 850px); }
  .shopping-edit-modal form { padding: 8px 18px calc(14px + env(safe-area-inset-bottom)); scroll-padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .shopping-edit-modal .modal-actions { position: sticky; bottom: 0; z-index: 2; margin: 0 -18px calc(-14px - env(safe-area-inset-bottom)); padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.98); box-shadow: 0 -5px 14px rgba(31,43,54,.06); }
  .shopping-edit-modal .modal-actions button { min-height: 40px; }
  .price-archive-modal .entry-modal { max-height: min(96vh, 850px); max-height: min(96dvh, 850px); }
  .price-archive-modal form { padding: 8px 18px calc(14px + env(safe-area-inset-bottom)); scroll-padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .price-archive-modal .modal-actions { position: sticky; bottom: 0; z-index: 2; margin: 0 -18px calc(-14px - env(safe-area-inset-bottom)); padding: 10px 18px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.98); box-shadow: 0 -5px 14px rgba(31,43,54,.06); }
  .price-archive-modal .modal-actions button { min-height: 40px; }
  .storage-edit-modal .entry-modal { max-height: min(92vh, 850px); max-height: min(92dvh, 850px); }
  .storage-edit-modal form { padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
  .storage-edit-modal .modal-actions { position: static; margin: 4px -18px 0; padding: 12px 18px 0; border-top: 1px solid #edf1ef; background: #fff; box-shadow: none; }
  .storage-edit-modal .modal-actions button { min-height: 42px; }
  .entry-modal .modal-header { flex: 0 0 auto; }
  .entry-modal #entry-form { min-height: 0; }
  .entry-modal .modal-footer { position: sticky; bottom: 0; z-index: 3; margin: 8px -18px -1px; padding: 9px 18px calc(9px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.98); box-shadow: 0 -5px 14px rgba(31,43,54,.06); }
  .entry-modal .modal-footer { position: static; box-shadow: none; }
  .entry-modal .entry-type-tabs { margin: 5px 0 9px; padding: 2px; }
  .entry-modal .entry-type-tabs button { padding: 6px 4px; }
  .entry-modal .amount-field > div { padding-bottom: 6px; }
  .entry-modal .amount-field input { font-size: 27px; }
  .entry-modal .form-block { margin-top: 10px; }
  .entry-modal .entry-category-summary { min-height: 45px; margin-bottom: 4px; }
  .entry-modal .entry-category-group { padding: 5px 0 4px; }
  .entry-modal .entry-category-group-subcategories { margin-top: 2px; }
  .entry-modal .secondary-category-grid { gap: 4px; }
  .entry-modal .secondary-category-choice { height: 30px; }
  .entry-modal .form-row { gap: 7px; margin-top: 9px; }
  .entry-modal #entry-form:not(.entry-transfer-mode) #entry-account-label { grid-column: 1 / -1; }
  .entry-modal #entry-form:not(.entry-transfer-mode) #entry-to-account-wrap { grid-column: 1 / -1; }
  .entry-modal .form-field input,.entry-modal .form-field select { height: 33px; }
  .entry-modal .time-record-option { margin-top: 7px; padding: 7px 9px; }
  .entry-modal .note-field { margin-top: 8px; }
  .entry-modal .non-current-option { margin-top: 8px; padding: 7px 9px; }
  .modal-header { padding: 18px 18px 8px; }
  .entry-modal .modal-header { padding: 10px 18px 5px; }
  .notification-popup-modal { max-height: min(84vh,700px); }
  .notification-popup-description { padding: 0 18px 12px; }
  .notification-popup-content { padding: 0 14px 14px; }
  .notification-popup-budget-row,.notification-popup-repayment-row { gap: 8px; padding: 8px; }
  .notification-popup-icon { width: 31px; height: 31px; flex-basis: 31px; }
  .notification-popup-row-copy strong { font-size: 12px; }
  .notification-popup-row-copy small { font-size: 10px; }
  .notification-popup-amount,.notification-popup-due { font-size: 10px; }
  .notification-popup-actions { padding: 11px 14px calc(14px + env(safe-area-inset-bottom)); }
  .notification-popup-actions button { flex: 1; min-height: 42px; }
  .backup-manager-body { padding: 3px 16px calc(18px + env(safe-area-inset-bottom)); }
  .bill-import-body { padding: 3px 14px calc(18px + env(safe-area-inset-bottom)); }
  .bill-import-options { grid-template-columns: 1fr; gap: 8px; }
  .bill-import-preview { max-height: 32vh; }
  .bill-import-footer { align-items: stretch; flex-direction: column; gap: 9px; }
  .bill-import-footer > div { justify-content: flex-end; }
  .backup-row { gap: 7px; padding: 8px; }
  .backup-kind-icon { width: 28px; height: 28px; flex-basis: 28px; }
  .backup-row-actions { gap: 4px; }
  .backup-row-actions button { min-height: 27px; padding: 0 6px; font-size: 7px; }
  #entry-form { padding: 0 18px calc(18px + env(safe-area-inset-bottom)); }
  .category-grid { gap: 5px; }
  .category-choice { padding: 7px 2px; }
  .category-choice span:first-child { width: 32px; height: 32px; }
  .transaction-table th,.transaction-table td { padding-left: 12px; padding-right: 12px; }
}

@media (max-width: 560px) {
  .runtime-status-hero { align-items: flex-start; flex-direction: column; padding: 17px; }
  .runtime-status-hero .secondary-button { align-self: flex-start; }
  .runtime-status-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .runtime-status-metrics article { padding: 11px; }
  .runtime-status-metrics article:first-child { grid-column: 1 / -1; }
  .runtime-status-metrics article > strong,.runtime-status-metrics article > small { white-space: normal; overflow-wrap: anywhere; }
  .runtime-check-list,.runtime-events-list { padding-left: 14px; padding-right: 14px; }
  .runtime-check-row { grid-template-columns: 29px minmax(0,1fr) auto; gap: 8px; }
  .runtime-check-icon { width: 28px; height: 28px; border-radius: 9px; }
  .runtime-check-row > b { max-width: 58px; text-align: right; white-space: normal; }
  .runtime-status-actions { padding-left: 14px; padding-right: 14px; }
  .runtime-event-row { grid-template-columns: 22px minmax(0,1fr); }
  .runtime-event-row time { grid-column: 2; }
}

/* Improve readability on phone-sized screens without changing the desktop layout. */
@media (max-width: 560px) {
  .topbar-heading { font-size: 15px; }
  .top-add-button,.transaction-trash-link,.trash-clear-button,.trash-count-pill { font-size: 12px; }
  .view-heading p,.eyebrow,.card-header p,.card-link { font-size: 12px; }
  .card-header h2 { font-size: 15px; }
  .period-summary-label > strong { font-size: 17px; }
  .period-summary-label span,.period-value span { font-size: 10px; }
  .period-value strong { font-size: 17px; }
  .category-copy strong,.category-value { font-size: 12px; }
  .category-copy span,.category-copy .category-sub-breakdown { font-size: 10px; }
  .category-progress { height: 5px; }
  .transaction-month-list { gap: 8px; padding: 8px; }
  .transaction-month-summary { min-height: 70px; gap: 7px; padding: 10px 11px; }
  .transaction-month-period { min-width: 48px; }
  .transaction-month-period strong { font-size: 14px; }
  .transaction-month-period small,.transaction-month-net-label,.transaction-month-totals small { font-size: 9px; }
  .transaction-month-totals { gap: 5px; }
  .transaction-month-totals > strong { font-size: 14px; }
  .transaction-month-totals small { gap: 5px; }
  .transaction-month-chevron { width: 23px; height: 23px; flex-basis: 23px; }
  .transaction-month-transactions { padding: 0 8px 5px; }
  .transaction-month-transactions .recent-list { padding: 4px 7px 8px; }
  .day-heading strong { font-size: 12px; }
  .day-heading span,.transaction-main span,.transaction-balance { font-size: 10px; }
  .transaction-main strong { font-size: 12px; }
  .transaction-main.transaction-detail-lines > strong { font-size: 12px; }
  .transaction-main.transaction-detail-lines > span { font-size: 10px; }
  .transaction-amount { font-size: 13px; }
  .account-copy strong { font-size: 12px; }
  .account-copy span,.account-subtotal { font-size: 10px; }
  .account-row-balance .account-balance { font-size: 12px; }
  .account-category-heading { padding: 15px 5px 4px; }
  .account-category-heading strong { font-size: 13px; }
  .account-category-heading > span { font-size: 11px; }
  .account-category-heading small { font-size: 9px; }
  .overview-settings-card .card-header { align-items: stretch; flex-direction: column; }
  .overview-settings-actions { width: 100%; justify-content: flex-start; }
  .overview-settings-list { padding-right: 12px; padding-left: 12px; }
  .overview-settings-row { gap: 9px; padding-right: 5px; padding-left: 5px; }
  .overview-settings-copy strong { font-size: 12px; }
  .overview-settings-copy small { font-size: 9px; }
  .overview-settings-row-actions { gap: 5px; }
  .overview-settings-visibility { min-height: 34px; padding: 0 9px; font-size: 10px; }
  .overview-settings-moves { gap: 5px; }
  .overview-settings-moves button { width: 34px; min-height: 34px; }
  .category-settings-card .card-header { align-items: stretch; flex-direction: column; }
  .category-settings-actions { justify-content: space-between; }
  .category-settings-hint { margin-right: 12px; margin-left: 12px; font-size: 10px; }
  .category-settings-list { padding-right: 12px; padding-left: 12px; }
  .category-settings-primary,.category-settings-secondary { gap: 6px; }
  .category-settings-controls { gap: 3px; }
  .category-settings-controls .secondary-button,.category-settings-delete { min-width: 29px; min-height: 32px; padding: 0 5px; font-size: 9px; }
  .category-settings-name { min-width: 70px; }
  .category-settings-children { margin-left: 13px; padding-left: 12px; }
  .account-rename-button,.account-visibility-button,.account-delete-button,.account-hidden-toggle { font-size: 11px; }
  .account-detail-actions .account-detail-adjust,.account-detail-actions .account-rename-button,.account-detail-actions .account-visibility-button,.account-detail-actions .account-delete-button { font-size: 11px; }
  .account-detail-heading h1 { font-size: 18px; }
  .account-detail-heading p,.account-detail-balance span,.account-ledger-heading span { font-size: 11px; }
  .account-repayment-copy strong { font-size: 12px; }
  .account-repayment-copy small { font-size: 10px; }
  .account-repayment-setting select { min-width: 132px; height: 38px; font-size: 12px; }
  .repayment-reminder-copy strong { font-size: 12px; }
  .repayment-reminder-copy small,.repayment-reminder-empty p { font-size: 10px; }
  .repayment-reminder-days { font-size: 10px; }
  .repayment-reminder-paid { padding: 7px 8px; font-size: 10px; }
  .budget-alert-copy strong { font-size: 12px; }
  .budget-alert-copy small { font-size: 10px; }
  .budget-alert-amount { font-size: 10px; }
  .account-ledger-heading strong { font-size: 13px; }
  .account-month-period strong { font-size: 15px; }
  .account-month-period small,.account-month-net-label,.account-month-totals small { font-size: 9px; }
  .account-month-totals > strong { font-size: 14px; }
  .account-detail-overview-row > strong,.account-detail-overview-row > b { font-size: 10px; }
  .account-detail-overview-row > small { font-size: 8px; }
  .account-detail-obligation-copy strong { font-size: 10px; }
  .account-detail-obligation-balance > b { font-size: 11px; }
  .account-detail-obligation-balance > small { font-size: 8px; }
  .annual-summary-foot { font-size: 9px; }
  .annual-summary-foot b { font-size: 10px; }
  .annual-rank-label b,.annual-rank-label strong,.account-report-ranking .annual-rank-label b { font-size: 10px; }
  .monthly-report-note strong { font-size: 11px; }
  .monthly-report-note p,.monthly-report-change { font-size: 9px; }
  .monthly-top-row > b { font-size: 11px; }
  .monthly-report-selected,.annual-trend-selected { font-size: 9px; }
  .monthly-report-grid text { font-size: 9px; }
  .budget-edit-label,.budget-primary-copy strong { font-size: 11px; }
  .budget-primary-copy small,.budget-subcategory-copy small { font-size: 9px; }
  .budget-item-ring strong { font-size: 10px; }
  .mobile-nav button { font-size: 10px; }
  .backup-row-main strong,.backup-row-actions button,.bill-import-file-card small,.bill-import-table th,.bill-import-table td { font-size: 10px; }
  .backup-row-main span,.backup-empty,.bill-import-warning,.bill-import-more,.bill-import-footer > small { font-size: 9px; }
  .ledger-delete-button { font-size: 11px; }
  .entry-type-tabs button,.field-label,.form-field > span,.primary-category-choice { font-size: 12px; }
  .field-hint,.primary-category-title,.secondary-category-heading span,.secondary-category-choice strong,.category-choice { font-size: 10px; }
  .form-field input,.form-field select,.search-field input,.toolbar-card select { font-size: 12px; }
  .toast { font-size: 12px; }
}
html, body { touch-action: manipulation; -webkit-text-size-adjust: 100%; }
.finance-cashflow-link-grid em.is-down { color: #4d9a83; }
.finance-calendar-view-switch { display: inline-flex; gap: 4px; margin-bottom: 14px; padding: 4px; border: 1px solid #e7edef; border-radius: 10px; background: #f8fbfb; }
.finance-calendar-view-tab { min-height: 30px; padding: 0 13px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font: inherit; font-size: 10px; cursor: pointer; }
.finance-calendar-view-tab:hover { color: var(--ink); background: #eef6f4; }
.finance-calendar-view-tab.is-active { background: #fff; color: #438f83; box-shadow: 0 2px 7px #214c4312; font-weight: 650; }
.finance-calendar-controls { display: grid; gap: 8px; margin: 0 0 12px; padding: 11px 12px; border: 1px solid #e8edef; border-radius: 10px; background: #fafcfc; }
.finance-calendar-control-row { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
.finance-calendar-control-row label { display: grid; min-width: 110px; flex: 1 1 110px; gap: 4px; color: var(--muted); font-size: 9px; }
.finance-calendar-control-row select { width: 100%; min-width: 0; height: 31px; padding: 0 8px; border: 1px solid #dfe7e6; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.finance-calendar-tiny-toggle { min-height: 31px; padding: 0 10px; border: 1px solid #dfe7e6; border-radius: 7px; background: #fff; color: #62737a; font: inherit; font-size: 9px; cursor: pointer; }
.finance-calendar-tiny-toggle:hover { border-color: #afd4ca; color: #3d8277; }
.finance-calendar-filter-note { color: var(--muted); font-size: 9px; line-height: 1.5; }
.finance-calendar-day.is-selected-date { outline: 2px solid #6d9c92; outline-offset: 1px; background: #fbfefd; }
.finance-calendar-day.is-today.is-selected-date { border-color: #d58e6d; box-shadow: inset 0 0 0 1px #f4dfd3; }
.finance-calendar-day.is-filtered-out { visibility: hidden; }
.finance-calendar-date-marker { display: inline-grid; width: 15px; height: 15px; flex: 0 0 15px; place-items: center; border-radius: 50%; color: #fff; font-size: 7px; font-style: normal; font-weight: 700; }
.finance-calendar-date-marker.is-today-marker { background: #d47a5f; }
.finance-calendar-date-marker.is-selected-marker { background: #648b83; }
.finance-calendar-amount-row { display: grid !important; width: 100%; min-width: 0; grid-template-columns: minmax(20px, auto) minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 2px; padding: 2px 3px; border-radius: 4px; line-height: 1.2; }
.finance-calendar-amount-row > span { overflow: hidden; color: #677780; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.finance-calendar-amount-row > b { overflow: hidden; font-size: 7px; font-weight: 650; text-overflow: clip; white-space: nowrap; }
.finance-calendar-amount-row > b.income { color: #d86d4e; }
.finance-calendar-amount-row > b.expense { color: #4e9a82; }
.finance-calendar-amount-row.is-planned { border: 1px dashed #d7e0ef; background: #f6f8fc; }
.finance-calendar-amount-row.is-planned > span { color: #7181a0; }
.finance-calendar-tiny-count { color: #78868b; font-size: 7px !important; }
.finance-calendar-activity-note { margin-top: 1px !important; color: #69777d; font-size: 7px !important; }
.finance-calendar-activity-note.is-planned { color: #7381a0; }
.finance-calendar-no-flow { color: var(--muted); font-size: 10px; }
.finance-calendar-day small.finance-calendar-amount-row { margin-top: 3px; }
.finance-calendar-day small.finance-calendar-tiny-count { margin-top: 2px; }
.finance-calendar-detail > .card-header { align-items: center; }
.finance-calendar-metric-switch { display: inline-flex; flex: 0 0 auto; gap: 3px; padding: 3px; border: 1px solid #e6eceb; border-radius: 8px; background: #f5f8f8; }
.finance-calendar-metric-switch button { min-height: 27px; padding: 0 9px; border: 0; border-radius: 6px; background: transparent; color: #68777c; font: inherit; font-size: 9px; cursor: pointer; }
.finance-calendar-metric-switch button.is-active { background: #fff; color: #347c70; box-shadow: 0 1px 4px #213c3514; font-weight: 650; }
.finance-calendar-net-summary { grid-template-columns: minmax(0, 1fr); gap: 8px; align-items: start; }
.finance-calendar-net-summary > div { display: grid; gap: 5px; }
.finance-calendar-net-summary .finance-calendar-flow-group { grid-template-columns: 54px repeat(3, minmax(0, auto)); align-items: baseline; justify-content: start; gap: 5px 12px; padding: 7px 9px; border: 1px solid #e8edef; border-radius: 8px; background: #fbfcfc; }
.finance-calendar-net-summary .finance-calendar-flow-group.is-planned { border-style: dashed; border-color: #d8e0ef; background: #f7f9fc; }
.finance-calendar-flow-group > b { color: #586a71; font-size: 10px; }
.finance-calendar-flow-group > span { font-size: 10px; }
.finance-calendar-flow-group > span.income { color: #d86d4e; }
.finance-calendar-flow-group > span.expense { color: #4e9a82; }
.finance-calendar-flow-group > span.net { color: var(--ink); }
.finance-calendar-flow-group > small { grid-column: 2 / -1; color: var(--muted); font-size: 9px; }
.finance-calendar-net-summary.is-balance { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.finance-calendar-net-summary.is-balance > div { gap: 4px; }
.finance-calendar-net-summary.is-balance > div > span { color: var(--ink); font-weight: 650; }
.finance-calendar-net-summary.is-balance > strong { color: var(--ink); font-size: 18px; }
.finance-calendar-net-summary.is-balance > div > small { color: var(--muted); font-size: 9px; }
.finance-calendar-detail-row.is-planned { background: linear-gradient(90deg, #f8f9fc, transparent); }
.finance-calendar-detail-row b.planned { color: #6e7fa0; }
.finance-calendar-tiny-details { margin: 5px 0; padding: 0 10px; border: 1px dashed #dfe5e7; border-radius: 8px; background: #fafbfb; }
.finance-calendar-tiny-details summary { padding: 9px 0; color: #68777c; font-size: 10px; cursor: pointer; }
.finance-calendar-tiny-details .finance-calendar-detail-row { padding: 8px 0; }
.finance-calendar-no-detail { margin: 8px 0; color: var(--muted); font-size: 10px; }
.finance-calendar-net-summary strong.positive, .finance-calendar-net-summary strong.negative { color: var(--ink); }
@media (max-width: 600px) {
  .finance-calendar-controls { padding: 9px; }
  .finance-calendar-control-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .finance-calendar-control-row label { min-width: 0; }
  .finance-calendar-tiny-toggle { grid-column: 1 / -1; }
  .finance-calendar-day { min-height: 75px; }
  .finance-calendar-day-head { gap: 2px; }
  .finance-calendar-date-marker { width: 12px; height: 12px; flex-basis: 12px; font-size: 6px; }
  .finance-calendar-amount-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1px; padding: 1px; }
  .finance-calendar-amount-row > span { grid-column: 1 / -1; font-size: 6px; }
  .finance-calendar-amount-row > b { font-size: 6px; }
  .finance-calendar-net-summary .finance-calendar-flow-group { grid-template-columns: 36px repeat(3, minmax(0, auto)); gap: 5px; }
  .finance-calendar-flow-group > span { font-size: 9px; }
  .finance-calendar-metric-switch button { padding: 0 7px; }
  .finance-calendar-detail .card-header { align-items: flex-start; }
}
.finance-calendar-stack > [hidden] { display: none !important; }
.finance-calendar-stack > .is-view-hidden { display: none !important; }
.overview-cashflow-link { margin: 0 20px 16px; padding: 9px 11px; border-radius: 9px; background: #f7faf9; color: #688077; font-size: 10px; }
.overview-cashflow-link small { display: block; margin-top: 4px; color: #8b9993; font-size: 9px; }
.asset-forecast { display: grid; gap: 4px; margin-top: 12px; padding-top: 11px; border-top: 1px solid #edf0f2; }
.asset-forecast strong { color: var(--ink); font-size: 11px; }
.asset-forecast span { color: #5c7180; font-size: 10px; }
.asset-forecast small { color: var(--muted); font-size: 9px; }

/* Cash-flow traffic light calendar */
.cashflow-traffic-card { overflow: hidden; }
.cashflow-traffic-summary { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 20px 12px; color: var(--muted); font-size: 10px; }
.cashflow-traffic-summary span { display: inline-flex; align-items: center; gap: 5px; }
.cashflow-traffic-summary i, .cashflow-traffic-day i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #aab6ba; }
.cashflow-traffic-summary .is-green i, .cashflow-traffic-day.is-green i { background: #4eae8b; box-shadow: 0 0 0 3px #e5f5ee; }
.cashflow-traffic-summary .is-yellow i, .cashflow-traffic-day.is-yellow i { background: #d9a33e; box-shadow: 0 0 0 3px #fff5dc; }
.cashflow-traffic-summary .is-red i, .cashflow-traffic-day.is-red i { background: #d66b55; box-shadow: 0 0 0 3px #ffede8; }
.cashflow-traffic-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; margin: 0 20px 13px; }
.cashflow-traffic-day { display: grid; min-width: 0; gap: 6px; padding: 8px 7px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.cashflow-traffic-day:hover { border-color: #b7ddd5; background: #fbfefd; }
.cashflow-traffic-day > span { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.cashflow-traffic-day > span b { font-size: 11px; }
.cashflow-traffic-day > span b em { color: var(--muted); font-size: 8px; font-style: normal; font-weight: 400; }
.cashflow-traffic-day strong { overflow: hidden; color: #586a73; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-traffic-day small { color: var(--muted); font-size: 8px; }
.cashflow-traffic-day.is-red { border-color: #f0cfc8; background: #fffaf8; }
.cashflow-traffic-day.is-yellow { border-color: #eee0b8; background: #fffdf7; }
.cashflow-traffic-day.is-green { border-color: #d8ece4; background: #fbfefd; }
.cashflow-traffic-day.is-pending { background: #f8fafb; }
.cashflow-traffic-day.is-unrecorded { border-style: dashed; background: #f7f8f9; }
.cashflow-traffic-day.is-unrecorded > strong { color: #8b979c; }
.cashflow-traffic-day.is-provisional { border-style: dashed; }
.cashflow-traffic-day.is-selected { outline: 2px solid #477f76; outline-offset: 1px; }
.cashflow-traffic-risk { display: block !important; width: fit-content; max-width: 100%; padding: 2px 5px; border-radius: 5px; color: #a56716; background: #fff2d6; font-size: 8px; line-height: 1.3; }
.cashflow-traffic-risk.danger { color: #b84c3e; background: #ffe9e4; }
.cashflow-traffic-detail { display: grid; gap: 6px; margin: 0 20px 12px; padding: 11px 13px; border: 1px solid #e5ebea; border-radius: 10px; background: #fbfdfc; font-size: 10px; }
.cashflow-traffic-detail-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 14px; }
.cashflow-traffic-detail-head span, .cashflow-traffic-detail small { color: var(--muted); }
.cashflow-traffic-detail p { margin: 0; color: #5c6d70; }
.cashflow-traffic-detail > div:not(.cashflow-traffic-detail-head) { display: flex; justify-content: space-between; gap: 10px; }
.cashflow-traffic-detail > div:not(.cashflow-traffic-detail-head) span { min-width: 0; overflow-wrap: anywhere; }
.cashflow-traffic-detail > div:not(.cashflow-traffic-detail-head) strong { white-space: nowrap; }
.cashflow-traffic-detail .cashflow-traffic-balance-warning { color: #b36528; }
.cashflow-review-panel { margin: 0 20px 13px; border: 1px solid #f0d8cf; border-radius: 10px; background: #fffaf8; }
.cashflow-review-panel summary { display: flex; justify-content: space-between; gap: 10px; padding: 11px 13px; color: #a64f3e; font-size: 11px; font-weight: 700; cursor: pointer; }
.cashflow-review-panel summary span { color: #987b74; font-size: 10px; font-weight: 400; }
.cashflow-review-panel > p { margin: 0 13px 10px; color: #806a64; font-size: 10px; line-height: 1.5; }
.cashflow-review-row { display: grid; gap: 9px; margin: 0 13px 11px; padding: 12px; border: 1px solid #f1e3de; border-radius: 9px; background: #fff; }
.cashflow-review-title { display: flex; justify-content: space-between; gap: 12px; font-size: 11px; }
.cashflow-review-title b { white-space: nowrap; }
.cashflow-review-fields { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(160px, 2fr); gap: 10px; }
.cashflow-review-fields label { display: grid; gap: 4px; color: var(--muted); font-size: 10px; }
.cashflow-review-fields input, .cashflow-review-fields select { width: 100%; min-width: 0; padding: 8px; border: 1px solid #dfe6e4; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.cashflow-review-exclude { display: flex; align-items: flex-start; gap: 6px; color: #59696a; font-size: 10px; line-height: 1.4; }
.cashflow-review-exclude input { margin: 1px 0 0; }
.cashflow-review-row button { justify-self: start; }
.cashflow-traffic-note { display: block; margin: 0 20px 15px; color: var(--muted); font-size: 8px; line-height: 1.6; }
.cashflow-traffic-heading-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 9px; }
.cashflow-traffic-heading-tools > b { padding: 5px 9px; border-radius: 999px; background: #f3f6f6; color: #5a6a70; font-size: 9px; font-weight: 600; }
.cashflow-traffic-reference { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.cashflow-traffic-reference select { max-width: 150px; padding: 6px 23px 6px 8px; border: 1px solid #dfe7e6; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; }
.cashflow-traffic-month-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 20px 12px; }
.cashflow-traffic-month-summary > div { display: grid; min-width: 0; gap: 4px; padding: 10px; border: 1px solid #e8edef; border-radius: 9px; background: #fbfcfd; }
.cashflow-traffic-month-summary small, .cashflow-traffic-month-summary em { color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.4; }
.cashflow-traffic-month-summary strong { overflow: hidden; color: var(--ink); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-traffic-month-summary strong .is-red-text { color: #c75e4b; }
.cashflow-traffic-month-summary strong .is-yellow-text { color: #b7892f; }
.cashflow-traffic-month-summary strong .is-green-text { color: #46977c; }
.cashflow-traffic-light-counts { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 3px 9px; overflow: visible !important; font-size: 12px !important; white-space: normal !important; }
.cashflow-traffic-light-counts > span { white-space: nowrap; }
.cashflow-traffic-month-summary em { overflow-wrap: anywhere; }
.cashflow-traffic-month-summary > p { grid-column: 1 / -1; margin: 0; padding: 8px 10px; border-radius: 8px; background: #fff8ec; color: #8b6b38; font-size: 9px; }
.cashflow-traffic-summary .is-cash-risk { color: #a76828; }
.cashflow-traffic-summary .is-pending i { background: #aab6ba; }
.cashflow-traffic-day { min-height: 92px; }
.cashflow-traffic-day strong { color: var(--ink); }
.cashflow-traffic-day small { overflow-wrap: anywhere; line-height: 1.35; }
.cashflow-traffic-day.has-cash-risk { box-shadow: inset 0 -3px #e2ad58; }
.cashflow-traffic-day.has-cash-risk.is-red { box-shadow: inset 0 -3px #d66b55; }
.cashflow-traffic-analysis { display: grid; gap: 12px; margin: 0 20px 14px; }
.cashflow-traffic-chart-grid, .cashflow-traffic-bottom-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cashflow-traffic-chart-grid > section, .cashflow-traffic-bottom-grid > section { min-width: 0; padding: 11px; border: 1px solid #e8edef; border-radius: 10px; background: #fff; }
.cashflow-traffic-chart-heading { display: grid; gap: 4px; margin-bottom: 7px; }
.cashflow-traffic-chart-heading strong { color: var(--ink); font-size: 10px; }
.cashflow-traffic-chart-heading small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.cashflow-traffic-svg { display: block; width: 100%; height: auto; overflow: visible; }
.cashflow-traffic-svg line { stroke: #edf1f2; stroke-width: 1; }
.cashflow-traffic-svg text { fill: #8b989f; font: 8px system-ui, sans-serif; }
.cashflow-traffic-svg .range { stroke: #a7d5c4; stroke-width: 4; stroke-linecap: round; }
.cashflow-traffic-svg .actual { fill: #687984; stroke: #fff; stroke-width: 1.5; }
.cashflow-traffic-svg .actual.red { fill: #d66b55; }
.cashflow-traffic-svg .actual.yellow { fill: #d1a044; }
.cashflow-traffic-svg .actual.green { fill: #4eae8b; }
.cashflow-traffic-svg.cumulative path { fill: none; stroke: #5b8f84; stroke-width: 2.3; stroke-linejoin: round; stroke-linecap: round; }
.cashflow-traffic-svg.cumulative circle { fill: #5b8f84; stroke: #fff; stroke-width: 2; }
.cashflow-traffic-svg.cumulative line.zero { stroke: #a8b4b8; stroke-dasharray: 3 3; }
.cashflow-traffic-svg.cumulative text.zero-label { fill: #687780; font-weight: 600; }
.cashflow-traffic-chart-result { margin: 2px 0 0; color: var(--muted); font-size: 9px; }
.cashflow-traffic-chart-result b { color: var(--ink); font-size: 11px; }
.cashflow-traffic-empty { margin: 10px 0; color: var(--muted); font-size: 9px; }
.cashflow-traffic-source-row { display: grid; grid-template-columns: minmax(70px, .8fr) minmax(70px, 1.5fr) auto; align-items: center; gap: 8px; margin: 9px 0; color: #65747b; font-size: 9px; }
.cashflow-traffic-source-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cashflow-traffic-source-row > i { display: block; height: 7px; overflow: hidden; border-radius: 999px; background: #f0f2f2; }
.cashflow-traffic-source-row > i > b { display: block; height: 100%; border-radius: inherit; background: #d68a6d; }
.cashflow-traffic-source-row > strong { color: var(--ink); font-size: 9px; white-space: nowrap; }
.cashflow-traffic-quadrants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.cashflow-traffic-quadrant { display: grid; min-width: 0; gap: 4px; padding: 9px; border: 1px solid #e7ecee; border-radius: 8px; background: #fbfcfd; }
.cashflow-traffic-quadrant small, .cashflow-traffic-quadrant span { color: var(--muted); font-size: 8px; }
.cashflow-traffic-quadrant strong { color: var(--ink); font-size: 13px; }
.cashflow-traffic-quadrant.high-safe, .cashflow-traffic-quadrant.high-tight { border-color: #f0d0c8; background: #fffaf8; }
.cashflow-traffic-quadrant.high-tight { box-shadow: inset 3px 0 #d66b55; }
.cashflow-traffic-quadrant.normal-tight { border-color: #efdfb9; background: #fffdf7; }
.cashflow-traffic-reason { padding: 7px 9px; border-radius: 7px; background: #f6f8f9; }
.cashflow-traffic-safe { color: #548572 !important; }
.cashflow-traffic-cooling { padding: 7px 9px; border-radius: 7px; background: #f0f8f4; color: #4e8273 !important; }
.cashflow-review-exclude { align-items: flex-start; }

/* Monthly expense necessity review */
.necessity-review-card { overflow: hidden; }
.necessity-review-card .annual-card-heading > b { padding: 4px 8px; border-radius: 999px; background: #edf3f5; color: #75848c; font-size: 9px; font-weight: 600; }
.necessity-review-card .annual-card-heading > b.is-good { background: #e9f7f1; color: #428f77; }
.necessity-review-card .annual-card-heading > b.is-warn { background: #fff6df; color: #ae8536; }
.necessity-review-card .annual-card-heading > b.is-danger { background: #fff0ec; color: #c76851; }
.necessity-review-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0 20px 14px; overflow: hidden; border: 1px solid #e7edef; border-radius: 10px; background: #e7edef; }
.necessity-review-summary > div { display: grid; min-width: 0; gap: 4px; padding: 11px; background: #fbfdfd; }
.necessity-review-summary small { color: var(--muted); font-size: 9px; }
.necessity-review-summary strong { overflow: hidden; color: var(--ink); font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-review-summary strong.is-good { color: #428f77; }
.necessity-review-summary strong.is-warn { color: #ae8536; }
.necessity-review-summary strong.is-neutral { color: #75848c; }
.necessity-review-summary span { overflow: hidden; color: #95a1a8; font-size: 8px; line-height: 1.4; text-overflow: ellipsis; }
.necessity-review-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 20px 8px; }
.necessity-review-section-heading strong { color: var(--ink); font-size: 10px; }
.necessity-review-section-heading small { color: var(--muted); font-size: 8px; text-align: right; }
.necessity-review-list { display: grid; gap: 1px; margin: 0 20px 15px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 10px; background: #e8eef0; }
.necessity-review-purpose-group { display: grid; gap: 1px; background: #e8eef0; }
.necessity-review-row { width: 100%; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto auto 12px; align-items: center; gap: 8px; padding: 9px 10px; border: 0; text-align: left; background: #fff; cursor: pointer; }
.necessity-review-row > span:not(.necessity-review-dot):not(.necessity-review-row-chevron) { min-width: 0; }
.necessity-review-purpose-copy { display: grid; gap: 3px; }
.necessity-review-row strong { color: var(--ink); font-size: 10px; }
.necessity-review-row small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-review-row > b { color: var(--ink); font-size: 10px; white-space: nowrap; }
.necessity-review-row > em { min-width: 35px; color: #87959d; font-size: 9px; font-style: normal; text-align: right; }
.necessity-review-row-chevron { color: #96a2a9; font-size: 12px; text-align: center; }
.necessity-review-dot { display: inline-block; width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #aeb9be; }
.necessity-review-dot.necessary { background: #50aa8a; }
.necessity-review-dot.optional { background: #d5a34d; }
.necessity-review-dot.enjoyment { background: #9c78c9; }
.necessity-review-dot.debt { background: #db7862; }
.necessity-review-dot.unmarked { background: #aeb9be; }
.necessity-review-transactions { display: grid; gap: 1px; padding: 1px 8px 8px; background: #f4f7f7; }
.necessity-review-transaction { display: grid; gap: 8px; padding: 10px; border: 1px solid #e7edef; border-radius: 8px; background: #fff; }
.necessity-review-transaction-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.necessity-review-transaction-heading > div { display: grid; min-width: 0; gap: 3px; }
.necessity-review-transaction-heading strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-review-transaction-heading small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-review-transaction-heading > b { color: var(--ink); font-size: 10px; white-space: nowrap; }
.necessity-review-transaction-controls { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(120px, 1fr) auto; align-items: end; gap: 8px; }
.necessity-review-transaction-controls label { display: grid; min-width: 0; gap: 4px; color: var(--muted); font-size: 8px; }
.necessity-review-transaction-controls select { width: 100%; min-width: 0; padding: 6px 8px; border: 1px solid #dfe6e4; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 9px; }
.necessity-review-mark-button { min-height: 29px; padding: 5px 9px; border: 1px solid #e1e7e8; border-radius: 7px; background: #fff; color: #74818a; font: inherit; font-size: 8px; cursor: pointer; white-space: nowrap; }
.necessity-review-mark-button.is-reviewed { border-color: #d1e8df; background: #eff8f4; color: #428f77; }
.necessity-review-advice,.necessity-review-empty { margin: 0 20px 14px; padding: 9px 10px; border-radius: 8px; background: #f7faf9; color: #687a80; font-size: 8px; line-height: 1.55; }
.necessity-review-empty { margin: 0; background: transparent; }
.necessity-review-quadrant,.necessity-review-structure { margin-bottom: 15px; }
.necessity-review-axis-labels { display: flex; justify-content: space-between; gap: 10px; margin: 0 20px 7px; color: var(--muted); font-size: 8px; }
.necessity-review-quadrant-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0 20px; }
.necessity-review-quadrant-cell { min-width: 0; }
.necessity-review-quadrant-cell > button { width: 100%; min-height: 84px; display: grid; justify-items: start; align-content: space-between; gap: 5px; padding: 10px; border: 1px solid #e5eceb; border-radius: 9px; background: #fbfdfc; color: var(--ink); text-align: left; cursor: pointer; }
.necessity-review-quadrant-cell > button[aria-expanded="true"] { border-color: #8fc9b4; background: #f1f8f5; }
.necessity-review-quadrant-cell > button strong { font-size: 9px; }
.necessity-review-quadrant-cell > button small,.necessity-review-quadrant-cell > button span { color: var(--muted); font-size: 7px; }
.necessity-review-quadrant-cell > button b { color: #3f8f7a; font-size: 13px; }
.necessity-review-quadrant-unclassified { margin: 8px 20px 0; color: var(--muted); font-size: 8px; }
.necessity-review-quadrant-transactions { margin: 8px 20px 0; padding: 8px; border-radius: 9px; }
.necessity-review-structure-comparison { margin: 0 20px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fcfdfd; }
.necessity-structure-bar-group { display: grid; grid-template-columns: 105px minmax(0, 1fr) 76px; align-items: center; gap: 8px; margin: 5px 0; }
.necessity-structure-bar-group > span { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-structure-bar-group > b { color: var(--ink); font-size: 8px; text-align: right; white-space: nowrap; }
.necessity-structure-bar { display: flex; min-width: 0; height: 10px; overflow: hidden; border-radius: 99px; background: #eff2f3; }
.necessity-structure-segment { height: 100%; min-width: 1px; }
.necessity-structure-segment.necessary { background: #50aa8a; }
.necessity-structure-segment.optional { background: #d5a34d; }
.necessity-structure-segment.enjoyment { background: #9c78c9; }
.necessity-structure-segment.debt { background: #db7862; }
.necessity-structure-segment.unmarked { background: #aeb9be; }
.necessity-structure-legend { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 8px 0 11px; color: var(--muted); font-size: 7px; }
.necessity-structure-legend span,.necessity-structure-row > span:first-child { display: inline-flex; align-items: center; gap: 5px; }
.necessity-structure-table { display: grid; gap: 1px; overflow: hidden; border: 1px solid #e8eef0; border-radius: 7px; background: #e8eef0; }
.necessity-structure-table-heading,.necessity-structure-row { display: grid; grid-template-columns: minmax(68px, 0.85fr) repeat(2, minmax(88px, 1fr)) minmax(65px, 0.75fr); align-items: center; gap: 5px; padding: 6px 7px; background: #fff; }
.necessity-structure-table-heading { color: var(--muted); font-size: 7px; }
.necessity-structure-row > span { min-width: 0; color: var(--ink); font-size: 8px; white-space: nowrap; }
.necessity-structure-row > span:not(:first-child) { display: flex; justify-content: space-between; gap: 4px; }
.necessity-structure-row small { color: var(--muted); font-size: 7px; }
.necessity-structure-row > b { color: #849198; font-size: 7px; font-weight: 600; text-align: right; white-space: nowrap; }
.necessity-structure-row > b.is-rise { color: #bf725e; }
.necessity-structure-row > b.is-fall { color: #438e78; }
[data-theme="night"] .necessity-review-summary > div,[data-theme="night"] .necessity-review-row,[data-theme="night"] .necessity-review-transaction,[data-theme="night"] .necessity-structure-table-heading,[data-theme="night"] .necessity-structure-row { background: #202b38; }
[data-theme="night"] .necessity-review-list,[data-theme="night"] .necessity-review-purpose-group,[data-theme="night"] .necessity-structure-table { background: #344250; border-color: #344250; }
[data-theme="night"] .necessity-review-transactions,[data-theme="night"] .necessity-review-structure-comparison,[data-theme="night"] .necessity-review-quadrant-cell > button { background: #1b2632; border-color: #344250; }
[data-theme="night"] .necessity-review-quadrant-cell > button[aria-expanded="true"] { background: #24392f; border-color: #4b8a70; }
[data-theme="night"] .necessity-review-transaction-controls select,[data-theme="night"] .necessity-review-mark-button { background: #202b38; border-color: #3a4856; color: #e6edf0; }
[data-theme="night"] .necessity-review-mark-button.is-reviewed { background: #24392f; border-color: #4b8a70; color: #90ccb2; }
.necessity-baseline-card { overflow: hidden; }
.necessity-baseline-card .annual-card-heading > div { display: grid; gap: 3px; }
.necessity-baseline-card .annual-card-heading > div span { color: #a0aab4; font-size: 8px; }
.necessity-baseline-card .annual-card-heading > b { flex: 0 0 auto; color: #588f7e; font-size: 9px; font-weight: 600; white-space: nowrap; }
.necessity-baseline-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 15px 10px; overflow: hidden; border: 1px solid #e7edef; border-radius: 9px; background: #e7edef; }
.necessity-baseline-metrics article { display: grid; min-width: 0; align-content: start; gap: 4px; padding: 9px; background: #fbfdfd; }
.necessity-baseline-metrics small { color: #98a3aa; font-size: 8px; }
.necessity-baseline-metrics strong { overflow: hidden; color: #34434d; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-baseline-metrics strong.is-over { color: #c86650; }
.necessity-baseline-metrics strong.is-under { color: #398c78; }
.necessity-baseline-metrics span { overflow: hidden; color: #9aa5ad; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.necessity-baseline-chart { margin: 0 15px; padding: 7px 10px 8px; border: 1px solid #edf0f2; border-radius: 9px; background: #fcfdfd; }
.necessity-baseline-legend { display: flex; justify-content: flex-end; gap: 13px; margin-bottom: 5px; color: #8e9aa2; font-size: 7px; }
.necessity-baseline-legend span { display: inline-flex; align-items: center; gap: 5px; }
.necessity-baseline-legend i { width: 12px; height: 5px; border-radius: 4px; background: #54a98c; }
.necessity-baseline-legend b { width: 12px; height: 0; border-top: 1px dashed #667caa; }
.necessity-baseline-list { display: grid; gap: 2px; }
.necessity-baseline-row { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 20px; }
.necessity-baseline-row > span { color: #8f9aa2; font-size: 8px; white-space: nowrap; }
.necessity-baseline-row.is-selected > span { color: #3f8f7a; font-weight: 650; }
.necessity-baseline-track { position: relative; height: 6px; border-radius: 999px; background: #eff2f3; }
.necessity-baseline-track > i { position: absolute; top: 0; bottom: 0; left: 0; border-radius: inherit; background: #86bea7; }
.necessity-baseline-row.is-selected .necessity-baseline-track > i { background: #429c80; }
.necessity-baseline-track > b { position: absolute; top: -3px; bottom: -3px; z-index: 1; border-left: 1px dashed #667caa; }
.necessity-baseline-row > strong { min-width: 70px; color: #586570; font-size: 8px; font-weight: 600; text-align: right; white-space: nowrap; }
.necessity-baseline-note { display: block; margin: 8px 15px 13px; color: #98a3aa; font-size: 7px; line-height: 1.55; }

@media (max-width: 560px) {
  .cashflow-traffic-summary { margin-right: 14px; margin-left: 14px; }
  .cashflow-traffic-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin-right: 14px; margin-left: 14px; }
  .cashflow-traffic-day { min-height: 66px; padding: 7px 6px; }
  .cashflow-traffic-day strong { overflow: visible; font-size: 10px; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
  .cashflow-traffic-day small { font-size: 8px; }
  .cashflow-traffic-note { margin-right: 14px; margin-left: 14px; }
  .cashflow-traffic-detail { margin-right: 14px; margin-left: 14px; }
  .cashflow-review-panel { margin-right: 14px; margin-left: 14px; }
  .cashflow-review-fields { grid-template-columns: 1fr; }
  .cashflow-review-panel summary { flex-wrap: wrap; }
  .necessity-review-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-right: 14px; margin-left: 14px; }
  .necessity-review-summary > div { padding: 8px; }
  .necessity-review-summary strong { font-size: 13px; }
  .necessity-review-section-heading { align-items: flex-start; flex-direction: column; gap: 3px; margin-right: 14px; margin-left: 14px; }
  .necessity-review-section-heading small { text-align: left; }
  .necessity-review-list { margin-right: 14px; margin-left: 14px; }
  .necessity-review-row { grid-template-columns: 8px minmax(0, 1fr) auto 11px; gap: 5px; padding: 8px; }
  .necessity-review-row > em { display: none; }
  .necessity-review-row-chevron { grid-column: 4; }
  .necessity-review-purpose-copy { grid-column: 2; }
  .necessity-review-row > b { grid-column: 3; grid-row: 1; }
  .necessity-review-transaction-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .necessity-review-mark-button { grid-column: 1 / -1; justify-self: start; }
  .necessity-review-axis-labels { margin-right: 14px; margin-left: 14px; font-size: 7px; }
  .necessity-review-quadrant-grid { gap: 5px; margin-right: 14px; margin-left: 14px; }
  .necessity-review-quadrant-cell > button { min-height: 79px; padding: 8px; }
  .necessity-review-quadrant-unclassified { margin-right: 14px; margin-left: 14px; }
  .necessity-review-quadrant-transactions { margin-right: 14px; margin-left: 14px; }
  .necessity-review-structure-comparison { margin-right: 14px; margin-left: 14px; padding: 7px; }
  .necessity-structure-bar-group { grid-template-columns: 72px minmax(0, 1fr) 58px; gap: 5px; }
  .necessity-structure-bar-group > span,.necessity-structure-bar-group > b { font-size: 7px; }
  .necessity-structure-table-heading,.necessity-structure-row { grid-template-columns: minmax(50px, 0.8fr) repeat(2, minmax(58px, 1fr)) minmax(50px, 0.75fr); gap: 3px; padding: 5px 4px; }
  .necessity-structure-table-heading { font-size: 6px; }
  .necessity-structure-row > span { font-size: 7px; }
  .necessity-structure-row > span:not(:first-child) { display: grid; justify-content: start; gap: 1px; }
  .necessity-structure-row > b,.necessity-structure-row small { font-size: 6px; }
  .necessity-review-advice { margin-right: 14px; margin-left: 14px; }
  .necessity-baseline-metrics { margin-right: 14px; margin-left: 14px; }
  .necessity-baseline-metrics article { gap: 3px; padding: 7px 6px; }
  .necessity-baseline-metrics small { font-size: 7px; }
  .necessity-baseline-metrics strong { font-size: 10px; }
  .necessity-baseline-metrics span { font-size: 6px; }
  .necessity-baseline-chart { margin-right: 14px; margin-left: 14px; padding-right: 7px; padding-left: 7px; }
  .necessity-baseline-row { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 6px; }
  .necessity-baseline-row > strong { min-width: 58px; font-size: 7px; }
  .necessity-baseline-note { margin-right: 14px; margin-left: 14px; }
}
@media (max-width: 560px) {
  .financial-rule-template-wrap { padding-right: 14px; padding-left: 14px; }
  .financial-rule-template-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .financial-rule-template-list { grid-template-columns: 1fr; }
  .financial-rule-template strong { font-size: 10px; }
  .financial-rule-template small { font-size: 8px; }
  .financial-rule-market-list { padding-right: 14px; padding-left: 14px; }
  .financial-rule-market-item { gap: 8px; }
  .financial-rule-market-copy strong { font-size: 12px; }
  .financial-rule-market-copy small { font-size: 10px; }
  .financial-rule-switch { font-size: 10px; }
  .financial-rule-market-note { margin-right: 14px; margin-left: 14px; font-size: 10px; }
  .report-subscription-toggle { margin-right: 14px; margin-left: 14px; }
  .report-subscription-fields { grid-template-columns: 1fr; padding-right: 14px; padding-left: 14px; }
  .report-subscription-fields label { font-size: 10px; }
  .report-subscription-includes { padding-right: 14px; padding-left: 14px; }
  .report-subscription-footer { align-items: stretch; flex-direction: column; margin-right: 14px; margin-left: 14px; }
  .report-subscription-footer .secondary-button { width: 100%; }
}

/* Keep the finance calendar grid stable on narrow screens. */
.finance-calendar-card { min-width: 0; }
.finance-calendar-title { align-items: flex-start; }
.finance-calendar-title strong { flex: 0 0 auto; white-space: nowrap; line-height: 1.2; }
.finance-calendar-title span { min-width: 0; line-height: 1.5; text-align: right; }
.finance-calendar-day { min-width: 0; overflow: hidden; }
.finance-calendar-day-head { min-width: 0; align-items: center; }
.finance-calendar-markers { min-width: 0; margin-left: auto; }
.finance-calendar-day small { width: 100%; min-width: 0; line-height: 1.2; }

@media (max-width: 560px) {
  .finance-calendar-card { padding: 14px 12px 16px; }
  .finance-calendar-title { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 8px; min-height: 44px; margin-bottom: 12px; }
  .finance-calendar-title strong { font-size: 17px; }
  .finance-calendar-title span { font-size: 8px; line-height: 1.55; text-align: left; }
  .finance-calendar-weekdays { display: none; }
  .finance-calendar-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
  .finance-calendar-day.is-empty { display: none !important; }
  .finance-calendar-day { min-height: 100px; padding: 8px 6px; border-radius: 8px; }
  .finance-calendar-day-head { flex-wrap: wrap; gap: 2px 4px; }
  .finance-calendar-day strong { font-size: 12px; }
  .finance-calendar-weekday-label { display: inline; align-self: center; color: var(--muted); font-size: 9px; }
  .finance-calendar-day small { overflow: visible; margin-top: 4px; font-size: 11px; line-height: 1.25; font-weight: 600; letter-spacing: -.12px; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
  .finance-calendar-markers { flex-wrap: wrap; width: 100%; gap: 2px; margin-left: 0; }
  .finance-calendar-markers i { padding: 2px 3px; font-size: 8px; }
  .finance-calendar-markers i.finance-calendar-round-marker { width: 15px; height: 15px; padding: 0; }
}

@media (max-width: 380px) {
  .finance-calendar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cashflow-traffic-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}



@media (max-width: 560px) {
  .storage-type-settings-form { grid-template-columns: minmax(0, 1fr) 78px; padding: 14px; }
  .storage-type-settings-form > .form-field:first-child, .storage-type-settings-actions { grid-column: 1 / -1; }
  .storage-type-settings-actions { justify-content: flex-start; }
  .storage-type-settings-list { padding-right: 14px; padding-left: 14px; }
  .storage-type-settings-hint { padding-right: 14px; padding-left: 14px; }
}

.storage-qr-dialog { width: min(420px, 100%); }
.storage-qr-dialog .modal-header { justify-content: space-between; }
.storage-qr-label { display: grid; justify-items: center; gap: 7px; padding: 8px 24px 12px; text-align: center; }
.storage-qr-label canvas { display: block; width: min(280px, 72vw); height: auto; aspect-ratio: 1; border: 1px solid #e8eeeb; border-radius: 8px; background: #fff; image-rendering: pixelated; }
.storage-qr-label strong { color: var(--ink); font-size: 16px; overflow-wrap: anywhere; }
.storage-qr-label span { color: var(--muted); font-size: 11px; }
.storage-qr-label small { color: #648477; font-size: 10px; }
.storage-qr-hint { margin: 0; padding: 0 24px 12px; color: var(--muted); font-size: 10px; line-height: 1.5; text-align: center; }
.storage-qr-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 9px; padding: 10px 20px 20px; }
.storage-qr-actions button:disabled { cursor: wait; opacity: .55; }
.storage-cabinet-card { transition: border-color .2s ease, box-shadow .2s ease; }
.storage-cabinet-card.storage-cabinet-qr-target { border-color: #55ad91; box-shadow: 0 0 0 3px #55ad9128; }
.storage-batch-badge { display: inline-flex; align-items: center; min-height: 18px; padding: 2px 7px; border-radius: 999px; background: #f2effb; color: #7663a8; font-size: 9px; line-height: 1.3; }
.stored-item-batch-total { color: #7663a8 !important; }
.travel-missing-check-panel { display: grid; gap: 11px; min-width: 0; margin: 0 20px 16px; padding: 14px; border: 1px solid #e4ede7; border-radius: 12px; background: #f9fcfa; }
.travel-missing-check-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.travel-missing-check-summary > div { display: grid; gap: 4px; min-width: 0; padding: 10px; border: 1px solid #e7eee9; border-radius: 9px; background: #fff; }
.travel-missing-check-summary strong { color: var(--ink); font-size: 17px; }
.travel-missing-check-summary small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.travel-missing-check-details { padding-top: 9px; border-top: 1px solid #e7eee9; color: #537767; font-size: 10px; }
.travel-missing-check-details summary { width: fit-content; cursor: pointer; }
.travel-missing-check-list { display: grid; gap: 6px; margin-top: 9px; }
.travel-missing-check-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; padding: 8px 9px; border: 1px solid #e9efeb; border-radius: 8px; background: #fff; }
.travel-missing-check-row > span { display: grid; min-width: 0; gap: 3px; }
.travel-missing-check-row strong { color: var(--ink); font-size: 10px; overflow-wrap: anywhere; }
.travel-missing-check-row small { color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.travel-missing-check-row b { flex: 0 0 auto; color: #9a7a3c; font-size: 9px; text-align: right; }
.travel-missing-check-row b.is-ready { color: #39866a; }
.travel-missing-check-row b.is-available { color: #4679ad; }
.travel-missing-check-row b.is-short { color: #b65e4d; }
.travel-missing-check-row b.is-pending { color: #9a7a3c; }
.travel-missing-check-note { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.travel-kit-check-panel { display: grid; gap: 10px; min-width: 0; margin: 0 20px 14px; padding: 13px; border: 1px solid #e4ede7; border-radius: 11px; background: #f9fcfa; }
.travel-kit-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.travel-kit-summary > span { display: grid; gap: 3px; min-width: 0; padding: 8px 9px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; }
.travel-kit-summary strong { color: var(--ink); font-size: 15px; }
.travel-kit-summary small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.travel-kit-status-list { display: grid; gap: 6px; }
.travel-kit-status-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; padding: 9px 10px; border: 1px solid #e7eee9; border-radius: 8px; background: #fff; }
.travel-kit-status-row > span { display: grid; gap: 4px; min-width: 0; }
.travel-kit-status-row strong { color: var(--ink); font-size: 10px; }
.travel-kit-status-row > b { flex: 0 0 auto; color: #a67b39; font-size: 9px; }
.travel-kit-status-row.is-ready { border-color: #cde6d8; background: #f5fbf7; }
.travel-kit-status-row.is-ready > b { color: #39866a; }
.travel-kit-status-row.is-missing > b { color: #b65e4d; }
.travel-kit-missing-items { color: var(--muted); font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.travel-kit-config { margin: 0 20px 14px; padding: 11px 12px; border: 1px solid #e7eee9; border-radius: 10px; background: #fff; }
.travel-related-items { display: grid; gap: 9px; margin: 0 20px 14px; padding: 12px; border: 1px solid #e6ecef; border-radius: 10px; background: #fafcfd; }
.travel-related-items > div:first-child { display: grid; gap: 3px; }
.travel-related-items h3 { margin: 0; color: var(--ink); font-size: 11px; }
.travel-related-items p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.travel-related-item-row { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card, #fff); }
.travel-related-item-row > span { display: grid; min-width: 0; gap: 3px; }
.travel-related-item-row strong { color: var(--ink); font-size: 10px; }
.travel-related-item-row small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.travel-related-item-row button { flex: 0 0 auto; min-height: 30px; padding: 4px 8px; font-size: 9px; }
.travel-kit-config > summary { color: #4b9879; font-size: 10px; font-weight: 700; cursor: pointer; }
.travel-kit-config > p { margin: 8px 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.travel-kit-saved-list { display: grid; gap: 6px; margin: 9px 0; }
.travel-kit-saved-list article { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 8px 9px; border: 1px solid #edf1ee; border-radius: 8px; background: #fbfdfc; }
.travel-kit-saved-list article > span { display: grid; gap: 3px; min-width: 0; }
.travel-kit-saved-list strong { color: var(--ink); font-size: 10px; }
.travel-kit-saved-list small { color: var(--muted); font-size: 8px; line-height: 1.4; overflow-wrap: anywhere; }
.travel-kit-saved-list article > div { display: flex; flex: 0 0 auto; gap: 5px; }
.travel-kit-saved-list button { min-height: 27px; padding: 0 8px; border: 1px solid #e5ece8; border-radius: 6px; background: #fff; color: #65756c; font: inherit; font-size: 8px; cursor: pointer; }
.travel-kit-saved-list button.is-danger { color: #a85e50; }
.travel-kit-name-field { display: grid; gap: 5px; margin-top: 9px; color: var(--muted); font-size: 9px; }
.travel-kit-name-field input { width: 100%; min-height: 36px; box-sizing: border-box; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.travel-kit-config fieldset { min-width: 0; margin: 9px 0; padding: 8px; border: 1px solid #edf1ee; border-radius: 8px; }
.travel-kit-config legend { padding: 0 4px; color: var(--muted); font-size: 9px; }
.travel-kit-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; max-height: 220px; overflow: auto; }
.travel-kit-option { display: flex; align-items: flex-start; gap: 7px; min-width: 0; padding: 7px; border: 1px solid #edf1ee; border-radius: 7px; background: #fff; cursor: pointer; }
.travel-kit-option input { flex: 0 0 auto; margin: 2px 0 0; accent-color: #4ba886; }
.travel-kit-option span { display: grid; gap: 2px; min-width: 0; color: var(--ink); font-size: 9px; overflow-wrap: anywhere; }
.travel-kit-option small { color: var(--muted); font-size: 8px; }
.travel-kit-form-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.travel-kit-form-actions button { min-height: 32px; padding: 0 10px; font-size: 9px; }

@media (max-width: 560px) {
  .travel-missing-check-panel { margin-right: 14px; margin-left: 14px; padding: 12px; }
  .travel-missing-check-summary { gap: 6px; }
  .travel-missing-check-summary > div { padding: 8px 7px; }
  .travel-missing-check-summary strong { font-size: 15px; }
  .travel-missing-check-summary small { font-size: 8px; }
  .travel-missing-check-row { align-items: flex-start; }
  .travel-missing-check-row b { max-width: 42%; white-space: normal; }
  .travel-kit-check-panel { margin-right: 14px; margin-left: 14px; padding: 11px; }
  .travel-kit-config { margin-right: 14px; margin-left: 14px; }
  .travel-kit-options { grid-template-columns: 1fr; }
  .travel-kit-status-row { align-items: flex-start; }
}

@media print {
  body * { visibility: hidden !important; }
  #storage-qr-modal:not([hidden]), #storage-qr-modal:not([hidden]) * { visibility: visible !important; }
  #storage-qr-modal:not([hidden]) { position: fixed !important; inset: 0 !important; display: grid !important; place-items: start center !important; padding: 0 !important; background: #fff !important; backdrop-filter: none !important; }
  #storage-qr-modal:not([hidden]) .storage-qr-dialog { width: 76mm !important; max-height: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; overflow: visible !important; animation: none !important; }
  #storage-qr-modal .modal-header, #storage-qr-modal .storage-qr-hint, #storage-qr-modal .storage-qr-actions { display: none !important; }
  #storage-qr-modal .storage-qr-label { gap: 2mm; padding: 4mm; }
  #storage-qr-modal .storage-qr-label canvas { width: 54mm; height: 54mm; border: 0; border-radius: 0; }
  #storage-qr-modal .storage-qr-label strong { font-size: 14pt; }
  #storage-qr-modal .storage-qr-label span { font-size: 9pt; }
  #storage-qr-modal .storage-qr-label small { font-size: 8pt; }
}

.task-center-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 17px 20px; }
.task-center-overview > div { display: grid; gap: 5px; min-width: 0; padding: 11px 14px; border: 1px solid #e8eeeb; border-radius: 10px; background: #fafcfb; }
.task-center-overview span { color: var(--muted); font-size: 9px; }
.task-center-overview strong { color: var(--ink); font-size: 20px; }
.task-center-card { overflow: visible; }
.task-center-filters { display: flex; flex-wrap: wrap; gap: 7px; padding: 0 20px 12px; }
.task-center-filters button { min-height: 34px; padding: 0 12px; border: 1px solid #e3eae7; border-radius: 8px; background: #fff; color: #687780; font-size: 10px; cursor: pointer; }
.task-center-filters button.active { border-color: #76bba4; background: #edf8f3; color: #287b60; font-weight: 700; }
.task-center-filters span { margin-left: 3px; opacity: .7; }
.task-center-list { padding: 0 20px 8px; }
.task-center-row { display: flex; align-items: center; gap: 12px; padding: 13px 0; border-top: 1px solid #eef1ef; }
.task-center-icon { display: grid; width: 36px; height: 36px; flex: 0 0 36px; place-items: center; border-radius: 10px; background: #f1f7f4; font-size: 16px; }
.task-center-copy { display: grid; flex: 1; min-width: 0; gap: 3px; }
.task-center-category { color: #429778; font-size: 9px; font-weight: 700; }
.task-center-copy strong { color: var(--ink); font-size: 12px; overflow-wrap: anywhere; }
.task-center-copy small { color: var(--muted); font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.task-center-due { justify-self: start; color: #89979f; font-size: 9px; font-style: normal; }
.task-center-due.is-overdue { color: #d76858; font-weight: 700; }
.task-center-due.is-today { color: #bf8540; font-weight: 700; }
.task-center-due.is-snoozed { color: #6887ac; }
.task-center-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; max-width: 370px; gap: 6px; }
.task-center-actions button { min-height: 34px; padding: 0 10px; border: 1px solid #e1e8e5; border-radius: 8px; background: #fff; color: #63747c; font: inherit; font-size: 9px; cursor: pointer; }
.task-center-actions button.primary-button { border-color: #f27458; background: #f27458; color: #fff; }
.task-center-card .card-header { align-items: center; gap: 12px; }
.task-add-button { flex: 0 0 auto; min-height: 36px; padding: 0 14px; white-space: nowrap; }
.task-custom-form { margin: 0 20px 16px; padding: 15px; border: 1px solid #e6ece9; border-radius: 10px; background: #f9fcfa; }
.task-custom-fields { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 10px; }
.task-custom-detail { grid-column: 1 / -1; }
.task-custom-buttons { display: flex; gap: 8px; margin-top: 12px; }
.task-custom-buttons button { min-height: 36px; padding: 0 14px; border: 1px solid #e1e8e5; border-radius: 8px; background: #fff; color: #63747c; font: inherit; font-size: 11px; cursor: pointer; }
.task-custom-buttons button.primary-button { border-color: #f27458; background: #f27458; color: #fff; }
.task-center-row.is-completed .task-center-copy strong { color: #8a989f; text-decoration: line-through; }
.task-snooze-options { position: relative; }
.task-snooze-options[open] { z-index: 6; }
.task-snooze-options summary { display: grid; min-height: 34px; place-items: center; padding: 0 10px; border: 1px solid #e1e8e5; border-radius: 8px; background: #fff; color: #63747c; font-size: 9px; cursor: pointer; list-style: none; white-space: nowrap; }
.task-snooze-options summary::-webkit-details-marker { display: none; }
.task-snooze-options[open] > div { position: absolute; right: 0; z-index: 5; display: grid; gap: 7px; width: min(260px, 76vw); padding: 10px; border: 1px solid #e1e8e5; border-radius: 10px; background: #fff; box-shadow: 0 8px 24px rgba(26,45,54,.15); }
.task-custom-snooze-form { display: grid; gap: 7px; }
.task-custom-snooze-form label { display: grid; gap: 4px; color: #63747c; font-size: 10px; }
.task-custom-snooze-form input { box-sizing: border-box; width: 100%; min-height: 34px; padding: 0 8px; border: 1px solid #e1e8e5; border-radius: 7px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.task-center-actions .task-custom-snooze-form button { justify-self: start; }
.task-custom-snooze-form .task-snooze-confirm { min-height: 38px; padding: 0 12px; border-color: #76bba4; background: #edf8f3; color: #287b60; font-weight: 700; }
.task-center-empty { display: grid; justify-items: center; gap: 6px; padding: 28px 10px; color: var(--muted); }
.task-center-empty strong { color: var(--ink); font-size: 12px; }
.task-center-empty small { font-size: 9px; }

.house-count-card { overflow: hidden; }
.house-count-card .card-header { align-items: center; }
.house-count-card .card-header > div { display: grid; gap: 4px; min-width: 0; }
.house-count-card .card-header h2 { margin: 0; font-size: 14px; }
.house-count-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; }
.house-count-card .card-header button { min-height: 36px; white-space: nowrap; }
.house-count-summary { display: flex; align-items: baseline; gap: 11px; padding: 0 20px 10px; }
.house-count-summary strong { color: #287b60; font-size: 19px; }
.house-count-summary strong small { color: var(--muted); font-size: 9px; font-weight: 500; }
.house-count-summary > span { color: var(--muted); font-size: 9px; }
.house-count-track { height: 6px; margin: 0 20px 12px; overflow: hidden; border-radius: 99px; background: #edf1ef; }
.house-count-track i { display: block; height: 100%; border-radius: inherit; background: #68b394; }
.house-count-empty,.house-count-finished { margin: 0; padding: 0 20px 14px; color: var(--muted); font-size: 9px; line-height: 1.6; }
.house-count-rooms { display: grid; gap: 10px; padding: 0 20px 14px; }
.house-count-room { overflow: hidden; border: 1px solid #e9eeeb; border-radius: 10px; }
.house-count-room-heading { display: flex; justify-content: space-between; gap: 8px; padding: 9px 12px; background: #f7faf8; }
.house-count-room-heading strong { color: var(--ink); font-size: 10px; }
.house-count-room-heading small { color: var(--muted); font-size: 9px; }
.house-count-location { display: flex; align-items: center; gap: 9px; min-height: 49px; padding: 7px 12px; border-top: 1px solid #eef1ef; }
.house-count-check { color: #9baaa4; font-size: 14px; }
.house-count-location.is-checked .house-count-check { color: #389b75; }
.house-count-location-copy { display: grid; flex: 1; min-width: 0; gap: 3px; }
.house-count-location-copy strong { color: var(--ink); font-size: 10px; }
.house-count-location-copy small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.house-count-location button { min-height: 32px; padding: 0 10px; border: 1px solid #d8e8df; border-radius: 7px; background: #fff; color: #318263; font-size: 9px; cursor: pointer; }
.house-count-location button:disabled { opacity: .5; cursor: default; }
.house-count-history { margin: 0 20px 14px; padding-top: 9px; border-top: 1px solid #eef1ef; color: var(--muted); font-size: 9px; }
.house-count-history summary { cursor: pointer; }
.house-count-history ul { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.house-count-history li { display: flex; justify-content: space-between; gap: 8px; }
.house-count-history li strong { color: var(--ink); }
.storage-count-empty { padding: 12px; border: 1px dashed #dce7e0; border-radius: 8px; color: var(--muted); font-size: 10px; line-height: 1.6; }

.storage-laundry-card { overflow: hidden; }
.storage-laundry-card .card-header > div { display: grid; gap: 4px; }
.storage-laundry-card .card-header h2 { margin: 0; font-size: 14px; }
.storage-laundry-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.storage-laundry-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 0 20px 17px; }
.storage-laundry-summary span { display: grid; gap: 5px; min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft); }
.storage-laundry-summary small { color: var(--muted); font-size: 9px; }
.storage-laundry-summary strong { color: var(--ink); font-size: 15px; }
.storage-laundry-visual { margin: 0 20px 15px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.storage-laundry-visual-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 7px; }
.storage-laundry-visual-head strong { color: var(--ink); font-size: 11px; }
.storage-laundry-visual-head span { display: flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; }
.storage-laundry-visual-head i { display: inline-block; width: 9px; height: 9px; border-radius: 3px; }
.storage-laundry-visual-head .is-dirty,.storage-laundry-bars .is-dirty { background: #d99b68; }
.storage-laundry-visual-head .is-clean,.storage-laundry-bars .is-clean { background: #69ad97; }
.storage-laundry-chart { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 8px; margin-top: 14px; }
.storage-laundry-month { display: grid; justify-items: center; gap: 4px; min-width: 0; color: var(--muted); font-size: 9px; }
.storage-laundry-month small { font-size: 8px; }
.storage-laundry-month span { font-variant-numeric: tabular-nums; }
.storage-laundry-bars { display: flex; justify-content: center; align-items: end; gap: 4px; width: 100%; height: 72px; border-bottom: 1px solid var(--line); }
.storage-laundry-bars i { display: block; width: min(18px,32%); min-height: 2px; border-radius: 4px 4px 0 0; }
.storage-laundry-extra { display: grid; gap: 4px; padding: 0 20px 15px; }
.storage-laundry-extra span { color: var(--ink); font-size: 10px; font-weight: 700; }
.storage-laundry-extra small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.storage-laundry-pending { display: grid; gap: 0; margin: 0 20px 16px; border-top: 1px solid var(--line); }
.storage-laundry-pending > strong { padding: 13px 0 5px; color: var(--ink); font-size: 10px; }
.storage-laundry-pending-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; }
.storage-laundry-pending-row span { display: grid; gap: 3px; min-width: 0; }
.storage-laundry-pending-row span strong { overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.storage-laundry-pending-row span small { color: var(--muted); font-size: 8px; }
.storage-laundry-pending-row button { flex: 0 0 auto; min-height: 30px; padding: 4px 9px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); color: var(--ink); font-size: 9px; }
.storage-consumable-card { overflow: hidden; }
.storage-consumable-card .card-header { align-items: center; }
.storage-consumable-card .card-header > div { display: grid; gap: 4px; min-width: 0; }
.storage-consumable-card .card-header h2 { margin: 0; font-size: 14px; }
.storage-consumable-card .card-header p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.storage-consumable-count { flex: 0 0 auto; padding: 7px 10px; border-radius: 9px; background: #eef8f3; color: #39866a; font-size: 9px; font-weight: 700; }
.consumable-usage-list { display: grid; padding: 0 20px; }
.consumable-usage-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding: 15px 0; border-top: 1px solid #eef1ef; }
.consumable-usage-main { display: grid; gap: 11px; min-width: 0; }
.consumable-usage-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.consumable-usage-title > div { display: grid; gap: 4px; min-width: 0; }
.consumable-usage-title strong { color: var(--ink); font-size: 12px; overflow-wrap: anywhere; }
.consumable-usage-title small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.consumable-usage-status { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; font-size: 9px; }
.consumable-usage-status.is-good { background: #eef8f3; color: #39866a; }
.consumable-usage-status.is-warn { background: #fff6e6; color: #ae8135; }
.consumable-usage-status.is-low { background: #fff0eb; color: #be644d; }
.consumable-usage-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.consumable-usage-metrics > span { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 9px; border: 1px solid #e9efeb; border-radius: 9px; background: #fcfdfc; }
.consumable-usage-metrics small { color: var(--muted); font-size: 8px; }
.consumable-usage-metrics strong { color: var(--ink); font-size: 11px; overflow-wrap: anywhere; }
.consumable-usage-metrics em { color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.4; overflow-wrap: anywhere; }
.consumable-usage-metrics em.is-up { color: #c56a50; }
.consumable-usage-metrics em.is-down { color: #39866a; }
.consumable-usage-metrics em.is-flat { color: #74818a; }
.consumable-usage-chart { display: grid; grid-template-columns: 115px minmax(0, 1fr); align-items: center; gap: 10px; }
.consumable-usage-chart > div:first-child { display: grid; gap: 3px; }
.consumable-usage-chart > div:first-child strong { color: #61727a; font-size: 9px; }
.consumable-usage-chart > div:first-child small { color: var(--muted); font-size: 8px; }
.consumable-trend-chart { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: end; gap: 7px; min-width: 0; height: 56px; }
.consumable-trend-month { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; align-items: end; gap: 4px; min-width: 0; height: 100%; }
.consumable-trend-month i { display: block; width: min(20px, 70%); min-height: 2px; align-self: end; border-radius: 4px 4px 1px 1px; background: #7bb89f; }
.consumable-trend-month small { color: var(--muted); font-size: 8px; }
.consumable-usage-actions { display: flex; flex-direction: column; justify-content: center; gap: 7px; }
.consumable-usage-actions button { min-height: 34px; padding: 0 10px; white-space: nowrap; font-size: 9px; }
.storage-consumable-empty { margin: 0; padding: 16px 20px; color: var(--muted); font-size: 10px; line-height: 1.6; }
.storage-consumable-note { display: block; padding: 0 20px 14px; color: var(--muted); font-size: 8px; line-height: 1.5; }

@media (max-width: 700px) {
  .storage-laundry-summary { grid-template-columns: repeat(2,minmax(0,1fr)); padding-right: 13px; padding-left: 13px; }
  .storage-laundry-visual { margin-right: 13px; margin-left: 13px; padding: 11px; }
  .storage-laundry-chart { gap: 4px; }
  .storage-laundry-extra { padding-right: 13px; padding-left: 13px; }
  .storage-laundry-pending { margin-right: 13px; margin-left: 13px; }
  .consumable-usage-list { padding-right: 13px; padding-left: 13px; }
  .consumable-usage-row { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .consumable-usage-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .consumable-usage-chart { grid-template-columns: minmax(0, 1fr); gap: 5px; }
  .consumable-trend-chart { height: 52px; }
  .consumable-usage-actions { flex-direction: row; justify-content: flex-start; flex-wrap: wrap; }
  .storage-consumable-empty { padding-right: 13px; padding-left: 13px; }
  .storage-consumable-note { padding-right: 13px; padding-left: 13px; }
}

@media (max-width: 560px) {
  .task-center-overview { gap: 6px; padding: 12px; }
  .task-center-overview > div { padding: 9px 8px; }
  .task-center-overview strong { font-size: 16px; }
  .task-center-filters,.task-center-list { padding-right: 13px; padding-left: 13px; }
  .task-center-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: flex-start; gap: 8px; }
  .task-center-icon { width: 30px; height: 30px; flex-basis: 30px; font-size: 13px; }
  .task-center-actions { grid-column: 2; justify-content: flex-start; max-width: none; }
  .task-center-actions button { min-height: 32px; padding: 0 7px; white-space: nowrap; }
  .task-center-card .card-header { align-items: flex-start; flex-wrap: wrap; }
  .task-custom-form { margin: 0 13px 12px; padding: 11px; }
  .task-custom-fields { grid-template-columns: 1fr; }
  .task-custom-detail { grid-column: auto; }
  .task-snooze-options summary { min-height: 32px; padding: 0 7px; }
  .house-count-card .card-header { align-items: flex-start; }
  .house-count-summary { flex-wrap: wrap; gap: 3px 8px; padding-right: 13px; padding-left: 13px; }
  .house-count-track { margin-right: 13px; margin-left: 13px; }
  .house-count-empty,.house-count-finished { padding-right: 13px; padding-left: 13px; }
  .house-count-rooms { padding-right: 13px; padding-left: 13px; }
  .house-count-history { margin-right: 13px; margin-left: 13px; }
}

.custom-link-rules-card { overflow: hidden; }
.custom-link-rules-card > .card-header { align-items: flex-start; gap: 12px; }
.custom-link-rules-card > .card-header > .primary-button { flex: 0 0 auto; }
.custom-link-rule-list { display: grid; padding: 0 20px 12px; }
.custom-link-rule-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px 0; border-top: 1px solid #eff2f4; }
.custom-link-rule-icon { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 11px; background: #f2f5f6; color: #89969f; font-size: 17px; }
.custom-link-rule-row.is-enabled .custom-link-rule-icon { background: #eaf7f1; color: #3f9a7c; }
.custom-link-rule-copy { display: grid; min-width: 0; gap: 4px; }
.custom-link-rule-copy strong { color: #46515d; font-size: 11px; }
.custom-link-rule-copy small { color: #97a2aa; font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.custom-link-rule-toggle { display: flex; align-items: center; gap: 6px; color: #839099; font-size: 9px; white-space: nowrap; cursor: pointer; }
.custom-link-rule-toggle input { accent-color: #48a584; }
.custom-link-rule-actions { display: flex; align-items: center; gap: 6px; }
.custom-link-rule-actions button { min-height: 32px; padding: 0 9px; font-size: 9px; }
.custom-link-rule-empty { display: grid; justify-items: center; gap: 6px; padding: 26px 12px; color: #89969f; text-align: center; }
.custom-link-rule-empty strong { color: #46515d; font-size: 11px; }
.custom-link-rule-empty small,.custom-link-rule-note { color: #97a2aa; font-size: 9px; line-height: 1.6; }
.custom-link-rule-note { display: block; margin: 0 20px 15px; }
.custom-link-rule-editor { display: grid; gap: 12px; margin: 0 20px 16px; padding: 16px; border: 1px solid #e4eeea; border-radius: 13px; background: #fbfdfc; }
.custom-link-rule-editor-heading { display: grid; gap: 4px; }
.custom-link-rule-editor-heading strong { color: #46515d; font-size: 12px; }
.custom-link-rule-editor-heading small,.custom-link-rule-editor .form-field small { color: #97a2aa; font-size: 9px; line-height: 1.5; }
.custom-link-rule-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.custom-link-rule-editor [data-rule-action-field][hidden],.custom-link-rule-editor [data-rule-item-field][hidden],.custom-link-rule-editor [data-rule-purchase-fields][hidden] { display: none !important; }
.custom-link-rule-editor-actions { display: flex; flex-wrap: wrap; gap: 8px; }

@media (max-width: 700px) {
  .custom-link-rules-card > .card-header { flex-wrap: wrap; }
  .custom-link-rule-list { padding-right: 13px; padding-left: 13px; }
  .custom-link-rule-row { grid-template-columns: 32px minmax(0, 1fr); gap: 8px 10px; }
  .custom-link-rule-icon { width: 32px; height: 32px; }
  .custom-link-rule-toggle,.custom-link-rule-actions { grid-column: 2; justify-self: start; }
  .custom-link-rule-editor { margin-right: 13px; margin-left: 13px; padding: 12px; }
  .custom-link-rule-editor-grid { grid-template-columns: 1fr; }
  .custom-link-rule-note { margin-right: 13px; margin-left: 13px; }
}
.household-item-analysis-stack { gap: 13px; }
.household-analysis-card { overflow: hidden; }
.household-analysis-card .card-header { align-items: flex-start; }
.household-analysis-card .card-header h2 { margin: 3px 0 5px; }
.household-analysis-card .card-header p { margin: 0; color: #87919d; font-size: 12px; line-height: 1.55; }
.future-stock-calendar-card { display: grid; gap: 13px; }
.future-stock-controls { display: flex; flex-wrap: wrap; gap: 10px; }
.future-stock-controls label { display: grid; min-width: 160px; gap: 5px; color: #8c96a0; font-size: 10px; }
.future-stock-controls select { min-height: 38px; padding: 0 10px; border: 1px solid #e6eaed; border-radius: 10px; background: #fff; color: #4c5966; }
.future-stock-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
.future-stock-summary article { display: grid; gap: 4px; min-width: 0; padding: 11px 12px; border: 1px solid #e8edf0; border-radius: 12px; background: #f9fbfc; }
.future-stock-summary article > span { color: #8b96a0; font-size: 10px; }
.future-stock-summary article > strong { overflow-wrap: anywhere; color: #3d725f; font-size: 15px; }
.future-stock-summary article > small { color: #9aa4ad; font-size: 9px; line-height: 1.45; }
.future-stock-summary article.is-warn > strong { color: #b17e2e; }
.future-stock-summary article.is-danger > strong { color: #c45e50; }
.future-stock-calendar-weekdays,.future-stock-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 5px; }
.future-stock-calendar-weekdays { color: #9aa4ad; font-size: 9px; text-align: center; }
.future-stock-calendar-grid { align-items: stretch; }
.future-stock-calendar-empty { min-height: 76px; }
.future-stock-day { display: flex; min-width: 0; min-height: 76px; flex-direction: column; align-items: flex-start; gap: 3px; padding: 7px 6px; border: 1px solid #e7ecef; border-radius: 10px; }
.future-stock-day > span { color: #87929c; font-size: 9px; }
.future-stock-day > strong { color: #3d725f; font-size: 12px; line-height: 1.15; }
.future-stock-day > small { color: #8e9a9f; font-size: 8px; line-height: 1.2; }
.future-stock-day.is-available { background: #f5faf7; }
.future-stock-day.is-low { border-color: #f1ddb1; background: #fff9eb; }
.future-stock-day.is-low > strong { color: #ad7d2e; }
.future-stock-day.is-empty { border-color: #efd1ca; background: #fff5f2; }
.future-stock-day.is-empty > strong { color: #bd5f50; }
.future-stock-calendar-legend { display: flex; flex-wrap: wrap; gap: 13px; color: #89949d; font-size: 9px; }
.future-stock-calendar-legend span { display: inline-flex; align-items: center; gap: 5px; }
.future-stock-calendar-legend i { width: 9px; height: 9px; border-radius: 3px; }
.future-stock-calendar-legend i.is-available { background: #d7eee3; }
.future-stock-calendar-legend i.is-low { background: #f4dfa9; }
.future-stock-calendar-legend i.is-empty { background: #f1cfc6; }
.household-funnel-chart { display: grid; gap: 13px; padding: 18px 2px 4px; }
.household-funnel-row { display: grid; grid-template-columns: 105px minmax(40px, 1fr) 38px 74px; align-items: center; gap: 10px; color: #596575; font-size: 12px; }
.household-funnel-label { font-weight: 650; }
.household-funnel-track, .expiry-deadline-track, .expiry-quantity-track { display: block; height: 10px; overflow: hidden; border-radius: 999px; background: #f0f2f5; }
.household-funnel-track i { display: block; height: 100%; min-width: 0; border-radius: inherit; background: linear-gradient(90deg, #f2a087, #ed7658); }
.household-funnel-row strong { color: #263243; text-align: right; font-size: 14px; }
.household-funnel-row small { color: #98a1ab; text-align: right; font-size: 10px; }
.household-analysis-note { margin: 14px 0 0; color: #929ba5; font-size: 11px; line-height: 1.6; }
.household-analysis-empty { padding: 22px 14px; border-radius: 12px; background: #f7f8fa; color: #8a94a0; text-align: center; font-size: 12px; line-height: 1.65; }
.purchase-cohort-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 15px 0 12px; }
.purchase-cohort-summary article { display: grid; gap: 4px; min-width: 0; padding: 11px 12px; border-radius: 11px; background: #f7f8fa; }
.purchase-cohort-summary article span,.purchase-cohort-summary article small { color: #8b95a0; font-size: 10px; }
.purchase-cohort-summary article strong { overflow: hidden; color: #283447; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.purchase-cohort-scroll { overflow-x: auto; margin: 0 -5px; padding: 0 5px 5px; scrollbar-width: thin; }
.purchase-cohort-table { min-width: 560px; }
.purchase-cohort-head,.purchase-cohort-row { display: grid; grid-template-columns: minmax(178px, 1.8fr) repeat(6, minmax(48px, .55fr)); align-items: center; gap: 7px; }
.purchase-cohort-head { padding: 7px 8px; color: #929da6; font-size: 9px; text-align: center; }
.purchase-cohort-head span:first-child { text-align: left; }
.purchase-cohort-row { width: 100%; min-height: 48px; padding: 5px 8px; border: 0; border-top: 1px solid #f0f2f4; background: #fff; color: inherit; text-align: center; cursor: pointer; }
.purchase-cohort-row:hover { background: #fbfdfc; }
.purchase-cohort-label { position: sticky; left: 0; z-index: 1; display: grid; gap: 3px; min-width: 0; padding: 3px 5px 3px 0; background: #fff; text-align: left; }
.purchase-cohort-row:hover .purchase-cohort-label { background: #fbfdfc; }
.purchase-cohort-label strong { overflow: hidden; color: #465462; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.purchase-cohort-label small { overflow: hidden; color: #9aa4ad; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.purchase-cohort-cell { display: grid; min-height: 30px; place-items: center; border-radius: 7px; background: #f1f4f4; color: #87939a; font-size: 9px; font-weight: 650; font-variant-numeric: tabular-nums; }
.purchase-cohort-cell.level-1 { background: #eef6f3; color: #719b8c; }
.purchase-cohort-cell.level-2 { background: #dcefe8; color: #548b77; }
.purchase-cohort-cell.level-3 { background: #c0e3d7; color: #397e67; }
.purchase-cohort-cell.level-4 { background: #91cdb9; color: #235e4e; }
.purchase-cohort-cell.level-5 { background: #51aa91; color: #fff; }
.purchase-cohort-cell.is-future { background: #fafbfb; color: #c5ccd0; font-weight: 400; }
.expiry-risk-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0 12px; }
.expiry-risk-summary article { display: grid; gap: 4px; min-width: 0; padding: 12px; border-radius: 12px; background: #f7f8fa; }
.expiry-risk-summary article span, .expiry-risk-summary article small { color: #8b95a0; font-size: 10px; }
.expiry-risk-summary article strong { overflow: hidden; color: #283447; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.expiry-risk-legend { display: flex; flex-wrap: wrap; gap: 14px; margin: 14px 0 8px; color: #8b95a0; font-size: 10px; }
.expiry-risk-legend span { display: inline-flex; align-items: center; gap: 6px; }
.expiry-risk-legend i { display: inline-block; width: 16px; height: 5px; border-radius: 99px; }
.expiry-risk-legend .deadline-key { background: #e9a343; }
.expiry-risk-legend .quantity-key { background: #e87862; }
.expiry-risk-list { display: grid; gap: 7px; }
.expiry-risk-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(80px, 22%) 18px; gap: 12px; align-items: center; width: 100%; padding: 12px; border: 1px solid #edf0f2; border-radius: 12px; background: #fff; color: inherit; text-align: left; cursor: pointer; }
.expiry-risk-row:hover, .find-difficulty-row:hover { border-color: #f3c0b2; background: #fffaf8; }
.expiry-risk-copy { display: grid; gap: 4px; min-width: 0; }
.expiry-risk-copy strong { overflow: hidden; color: #303b4a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.expiry-risk-copy small { color: #8b95a0; font-size: 10px; line-height: 1.5; }
.expiry-risk-row.danger .expiry-risk-copy > small:first-of-type { color: #c75d4e; }
.expiry-risk-row.warn .expiry-risk-copy > small:first-of-type { color: #ad7b32; }
.expiry-risk-bars { display: grid; gap: 6px; }
.expiry-deadline-track, .expiry-quantity-track { height: 6px; }
.expiry-risk-row .expiry-deadline-track i, .expiry-risk-row .expiry-quantity-track i { display: block; height: 100%; border-radius: inherit; }
.expiry-risk-row .expiry-deadline-track i { background: #e9a343; }
.expiry-risk-row.danger .expiry-deadline-track i { background: #e87862; }
.expiry-risk-row .expiry-quantity-track i { background: #92b9a9; }
.expiry-risk-row.danger .expiry-quantity-track i { background: #e87862; }
.expiry-risk-arrow { color: #b1bac3; font-size: 20px; text-align: center; }
.find-difficulty-total-badge { flex: 0 0 auto; padding: 6px 9px; border-radius: 99px; background: #f6f3ef; color: #9a7553; font-size: 10px; }
.find-difficulty-list { display: grid; gap: 7px; margin-top: 14px; }
.find-difficulty-row { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto 14px; align-items: center; gap: 10px; width: 100%; min-height: 68px; padding: 10px 12px; border: 1px solid #edf0f2; border-radius: 12px; background: #fff; color: inherit; text-align: left; }
button.find-difficulty-row { cursor: pointer; }
.find-difficulty-rank { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #f5f6f8; color: #7b8794; font-size: 11px; font-weight: 700; }
.find-difficulty-copy { display: grid; gap: 4px; min-width: 0; }
.find-difficulty-copy strong { overflow: hidden; color: #303b4a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.find-difficulty-copy small { color: #8b95a0; font-size: 10px; }
.find-difficulty-copy i { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #f0f2f5; }
.find-difficulty-copy i b { display: block; height: 100%; border-radius: inherit; background: #94b9aa; }
.find-difficulty-total { color: #455363; font-size: 12px; text-align: right; white-space: nowrap; }
.find-difficulty-total small { display: block; margin-top: 3px; color: #98a1ab; font-size: 9px; font-weight: 400; }
.find-difficulty-row.is-archived { opacity: .65; }
.restock-window-count { flex: 0 0 auto; padding: 6px 9px; border-radius: 99px; background: #eaf6f1; color: #378569; font-size: 10px; }
.restock-window-axis { display: flex; justify-content: space-between; margin: 13px 4px 4px 57%; color: #99a3ad; font-size: 8px; }
.restock-window-list { display: grid; gap: 8px; }
.restock-window-row { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(130px, .9fr); align-items: center; gap: 14px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.restock-window-copy { display: grid; gap: 4px; min-width: 0; }
.restock-window-copy strong { overflow: hidden; color: #303b4a; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.restock-window-copy small { color: #8b95a0; font-size: 9px; line-height: 1.45; }
.restock-window-copy b { color: #47896f; font-size: 10px; }
.restock-window-row.is-urgent .restock-window-copy b { color: #a97a32; }
.restock-window-row.is-over-line .restock-window-copy b { color: #c75d4e; }
.restock-window-track { position: relative; height: 12px; border-radius: 99px; background: repeating-linear-gradient(90deg,#f1f3f5 0,#f1f3f5 calc(33.333% - 1px),#fff calc(33.333% - 1px),#fff 33.333%); }
.restock-window-track i { position: absolute; top: 2px; bottom: 2px; border-radius: 99px; background: #72b99c; }
.restock-window-row.is-urgent .restock-window-track i { background: #e9b35c; }
.restock-window-row.is-over-line .restock-window-track i { background: #e47b67; }
.restock-window-track b { position: absolute; top: -3px; bottom: -3px; width: 2px; border-radius: 2px; background: #293a4a; }
.restock-lead-card { display: grid; gap: 12px; }
.restock-lead-list { display: grid; gap: 8px; }
.restock-lead-row { display: grid; grid-template-columns: minmax(150px,1.1fr) auto minmax(220px,1fr); align-items: center; gap: 10px 14px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.restock-lead-copy { display: grid; gap: 4px; min-width: 0; }
.restock-lead-copy strong { overflow: hidden; color: #303b4a; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.restock-lead-copy small { color: #8b95a0; font-size: 9px; line-height: 1.45; }
.restock-lead-row.is-learned .restock-lead-copy small:last-child { color: #47896f; }
.restock-lead-samples { padding: 5px 8px; border-radius: 99px; background: #f2f5f6; color: #7e8b95; font-size: 9px; white-space: nowrap; }
.restock-lead-history { display: flex; flex-wrap: wrap; gap: 5px; }
.restock-lead-history span { display: grid; gap: 2px; min-width: 52px; padding: 5px 7px; border-radius: 8px; background: #f7f9fa; text-align: center; }
.restock-lead-history b { color: #4d806c; font-size: 9px; }
.restock-lead-history small { color: #9aa4ad; font-size: 8px; }
.restock-backtest-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 20px 12px; }
.restock-backtest-summary article { display: grid; gap: 4px; min-width: 0; padding: 10px 11px; border: 1px solid #e9eef0; border-radius: 9px; background: #fbfdfd; }
.restock-backtest-summary span,.restock-backtest-summary small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.restock-backtest-summary strong { color: var(--ink); font-size: 17px; }
.restock-backtest-axis { display: flex; justify-content: space-between; gap: 8px; margin: 0 20px 5px; color: #98a3ac; font-size: 8px; }
.restock-backtest-axis b { color: #687985; font-weight: 600; }
.restock-backtest-list { display: grid; gap: 7px; margin: 0 20px; }
.restock-backtest-row { display: grid; grid-template-columns: 22px minmax(145px,1fr) minmax(90px,.8fr); align-items: center; gap: 9px; min-width: 0; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; }
.restock-backtest-number { display: grid; width: 20px; height: 20px; place-items: center; border-radius: 50%; background: #f1f4f5; color: #7d8992; font-size: 9px; font-weight: 700; }
.restock-backtest-copy { display: grid; gap: 3px; min-width: 0; }
.restock-backtest-copy strong { overflow: hidden; color: #303b4a; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.restock-backtest-copy small { color: #8b95a0; font-size: 8px; line-height: 1.45; }
.restock-backtest-track { position: relative; height: 8px; border-radius: 99px; background: linear-gradient(90deg,#fff2e9 0 37.5%,#e9f5ef 37.5% 62.5%,#fff2e9 62.5% 100%); }
.restock-backtest-track b { position: absolute; top: -3px; bottom: -3px; left: 50%; width: 1px; background: #687985; }
.restock-backtest-track i { position: absolute; top: -2px; bottom: -2px; z-index: 1; width: 3px; border-radius: 3px; background: #4ba886; transform: translateX(-50%); }
.restock-backtest-row.is-over .restock-backtest-track i { background: #d8755e; }
.restock-backtest-row.is-under .restock-backtest-track i { background: #7f9fc8; }
.buy-consume-chart-wrap { width: 100%; overflow: hidden; margin-top: 10px; }
.buy-consume-chart { display: block; width: 100%; height: auto; overflow: visible; }
.buy-consume-grid-line { stroke: #edf0f3; stroke-width: 1; }
.buy-consume-axis-label { fill: #97a1ab; font-size: 9px; }
.buy-consume-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.buy-line { stroke: #ed805f; }
.consume-line { stroke: #48a789; }
.buy-dot { fill: #ed805f; stroke: #fff; stroke-width: 1.5; }
.consume-dot { fill: #48a789; stroke: #fff; stroke-width: 1.5; }
.buy-consume-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px; color: #7f8a96; font-size: 10px; }
.buy-consume-legend span { display: inline-flex; align-items: center; gap: 6px; }
.buy-consume-legend i { display: inline-block; width: 16px; height: 3px; border-radius: 99px; }
.buy-consume-legend i.buy { background: #ed805f; }
.buy-consume-legend i.consume { background: #48a789; }
.buy-consume-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 14px; }
.buy-consume-summary article { display: grid; gap: 5px; min-width: 0; padding: 10px; border-radius: 9px; background: #f7f8fa; }
.buy-consume-summary article span { color: #8b95a0; font-size: 9px; }
.buy-consume-summary article strong { overflow: hidden; color: #334151; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.buy-consume-summary article strong.is-positive { color: #3c9578; }
.buy-consume-summary article strong.is-negative { color: #c96f5d; }
.travel-efficiency-list { display: grid; gap: 8px; margin-top: 14px; }
.travel-efficiency-row { display: grid; gap: 6px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; }
.travel-efficiency-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.travel-efficiency-heading strong { overflow: hidden; color: #334151; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.travel-efficiency-heading span,.travel-efficiency-row small { color: #8b95a0; font-size: 9px; }
.travel-efficiency-track { height: 7px; overflow: hidden; border-radius: 99px; background: #f0f2f5; }
.travel-efficiency-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#78c4a6,#45a486); }
.shopping-plan-summary,.bag-putaway-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 14px 0; }
.shopping-plan-summary article,.bag-putaway-summary article { display: grid; gap: 4px; min-width: 0; padding: 10px; border-radius: 10px; background: #f7f8fa; }
.shopping-plan-summary article span,.shopping-plan-summary article small,.bag-putaway-summary article span,.bag-putaway-summary article small { color: #8b95a0; font-size: 9px; }
.shopping-plan-summary article strong,.bag-putaway-summary article strong { overflow: hidden; color: #334151; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-plan-summary article strong.is-over { color: #c96f5d; }
.shopping-plan-summary article strong.is-under { color: #3c9578; }
.shopping-plan-axis,.bag-putaway-axis { display: flex; justify-content: space-between; margin: 12px 72px 5px 38%; color: #99a3ad; font-size: 8px; }
.shopping-plan-list,.bag-putaway-list { display: grid; gap: 7px; }
.shopping-plan-row { display: grid; grid-template-columns: minmax(105px,.85fr) minmax(90px,1fr) 70px; align-items: center; gap: 5px 10px; padding: 10px 11px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; }
.shopping-plan-copy,.bag-putaway-copy { display: grid; gap: 4px; min-width: 0; }
.shopping-plan-copy strong,.bag-putaway-copy strong { overflow: hidden; color: #334151; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-plan-copy small,.bag-putaway-copy small { overflow: hidden; color: #8b95a0; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.shopping-plan-date-track,.bag-putaway-track { position: relative; height: 10px; border-radius: 99px; background: linear-gradient(90deg,#f0f2f5 0,#f0f2f5 49.5%,#e8ecef 49.5%,#e8ecef 50.5%,#f0f2f5 50.5%,#f0f2f5 100%); }
.shopping-plan-date-track i,.bag-putaway-track i { position: absolute; top: 2px; bottom: 2px; border-radius: 99px; background: #df806c; }
.shopping-plan-date-track i.is-early,.bag-putaway-track i.is-early { background: #6bb396; }
.shopping-plan-date-track i.is-on-time,.bag-putaway-track i.is-on-time { background: #8aa2b2; }
.shopping-plan-date-track b,.bag-putaway-track b { position: absolute; top: -2px; bottom: -2px; left: 50%; width: 2px; border-radius: 2px; background: #566473; }
.shopping-plan-date-delta,.bag-putaway-days { color: #687583; font-size: 9px; text-align: right; white-space: nowrap; }
.shopping-plan-date-delta.is-late,.bag-putaway-days.is-late { color: #c96f5d; }
.shopping-plan-date-delta.is-early,.bag-putaway-days.is-early { color: #3c9578; }
.shopping-plan-price-delta { grid-column: 1 / -1; color: #89939d; font-size: 9px; }
.shopping-plan-price-delta.is-over { color: #c96f5d; }
.shopping-plan-price-delta.is-under { color: #3c9578; }
.shopping-plan-overdue { margin: 11px 0 0; padding: 9px 11px; border-radius: 9px; background: #fff4ef; color: #b76c53; font-size: 10px; }
.bag-putaway-row { display: grid; grid-template-columns: minmax(105px,.85fr) minmax(90px,1fr) 90px; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; }
.bag-putaway-pending { display: grid; gap: 7px; margin-top: 12px; padding: 11px; border-radius: 10px; background: #fff6ed; }
.bag-putaway-pending > strong { color: #9b6b36; font-size: 10px; }
.bag-putaway-pending-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 7px; border-top: 1px solid #f0e6dc; }
.bag-putaway-pending-row span { display: grid; gap: 3px; min-width: 0; }
.bag-putaway-pending-row strong { overflow: hidden; color: #485461; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.bag-putaway-pending-row small { color: #929ba5; font-size: 8px; }
.bag-putaway-pending-row b { flex: 0 0 auto; color: #b47637; font-size: 9px; }
.consumption-quadrant-chart-wrap,.travel-decision-chart-wrap { width: 100%; overflow: hidden; margin: 10px 0 4px; }
.consumption-quadrant-chart,.travel-decision-chart { display: block; width: 100%; height: auto; overflow: visible; }
.consumption-grid-line,.travel-decision-grid-line { stroke: #e6ebee; stroke-width: 1; }
.consumption-threshold-line,.travel-decision-threshold { stroke: #9ca8af; stroke-width: 1; stroke-dasharray: 4 4; }
.consumption-axis-label,.travel-decision-axis-label { fill: #96a1aa; font-size: 9px; }
.consumption-axis-title,.travel-decision-axis-title { fill: #74818c; font-size: 10px; }
.consumption-quadrant-bg.is-low-high-bg { fill: #f9f2fa; }
.consumption-quadrant-bg.is-high-high-bg { fill: #fff2ec; }
.consumption-quadrant-bg.is-low-stable-bg { fill: #f2f6fb; }
.consumption-quadrant-bg.is-high-stable-bg { fill: #eef8f3; }
.consumption-quadrant-label,.travel-decision-quadrant-label { fill: #9aa4aa; font-size: 9px; }
.consumption-point circle,.travel-decision-point circle { stroke: #fff; stroke-width: 1.5; opacity: .9; }
.consumption-point text,.travel-decision-point text { fill: #fff; font-size: 8px; font-weight: 700; pointer-events: none; }
.consumption-point.is-low-high circle { fill: #a07ab2; }
.consumption-point.is-high-high circle { fill: #e47e5d; }
.consumption-point.is-low-stable circle { fill: #7396c7; }
.consumption-point.is-high-stable circle { fill: #4da486; }
.consumption-size-legend { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin: 5px 0 11px; color: #87929d; font-size: 9px; }
.consumption-size-legend span { display: inline-flex; align-items: center; gap: 5px; }
.consumption-size-legend i { display: inline-block; width: 12px; height: 12px; border: 2px solid #4da486; border-radius: 50%; }
.consumption-size-legend b { color: #556372; font-weight: 650; }
.consumption-point-legend-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.consumption-point-legend { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 2px 7px; align-items: center; min-width: 0; padding: 8px 9px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; color: inherit; text-align: left; cursor: pointer; }
.consumption-point-legend > span,.travel-decision-item > span { display: grid; width: 19px; height: 19px; grid-row: span 2; place-items: center; border-radius: 50%; color: #fff; font-size: 9px; font-weight: 700; }
.consumption-point-legend > strong,.travel-decision-item > strong { overflow: hidden; color: #465462; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-point-legend > small,.travel-decision-item > small { overflow: hidden; color: #8d98a2; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-point-legend.is-low-high > span { background: #a07ab2; }
.consumption-point-legend.is-high-high > span { background: #e47e5d; }
.consumption-point-legend.is-low-stable > span { background: #7396c7; }
.consumption-point-legend.is-high-stable > span { background: #4da486; }
.consumption-volatility-summary,.travel-decision-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 14px 0; }
.consumption-volatility-summary article,.travel-decision-summary article { display: grid; gap: 4px; min-width: 0; padding: 10px; border-radius: 10px; background: #f7f8fa; }
.consumption-volatility-summary article span,.consumption-volatility-summary article small,.travel-decision-summary article span,.travel-decision-summary article small { color: #8b95a0; font-size: 9px; }
.consumption-volatility-summary article strong,.travel-decision-summary article strong { overflow: hidden; color: #334151; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.travel-decision-types { display: grid; gap: 11px; }
.travel-decision-type { min-width: 0; padding: 10px; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.travel-decision-type-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.travel-decision-type-heading strong { color: #3e4a56; font-size: 11px; }
.travel-decision-type-heading small { color: #929ca6; font-size: 8px; text-align: right; }
.travel-decision-quadrant.is-overpacked-bg { fill: #f1f5fb; }
.travel-decision-quadrant.is-review-bg { fill: #f8f1f9; }
.travel-decision-quadrant.is-core-bg { fill: #eef8f3; }
.travel-decision-quadrant.is-forgotten-bg { fill: #fff3ed; }
.travel-decision-point.is-core circle { fill: #4da486; }
.travel-decision-point.is-overpacked circle { fill: #7798c8; }
.travel-decision-point.is-forgotten circle { fill: #e2835e; }
.travel-decision-point.is-review circle { fill: #a07ab2; }
.travel-decision-legend { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
.travel-decision-item { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 2px 6px; align-items: center; min-width: 0; padding: 6px 7px; border-radius: 8px; background: #f8f9fa; }
.travel-decision-item.is-core > span { background: #4da486; }
.travel-decision-item.is-overpacked > span { background: #7798c8; }
.travel-decision-item.is-forgotten > span { background: #e2835e; }
.travel-decision-item.is-review > span { background: #a07ab2; }
.travel-decision-unassessed { margin: 8px 0 0; color: #8d98a2; font-size: 9px; line-height: 1.5; }
[data-theme="night"] .travel-bag-usage,[data-theme="night"] .travel-bag-usage-row,[data-theme="night"] .restock-window-row,[data-theme="night"] .restock-lead-row,[data-theme="night"] .travel-efficiency-row,[data-theme="night"] .shopping-plan-row,[data-theme="night"] .bag-putaway-row { border-color: #344250; background: #1a2631; }
[data-theme="night"] .future-stock-summary article,[data-theme="night"] .future-stock-day.is-available { border-color: #344250; background: #1a302a; }
[data-theme="night"] .future-stock-day.is-low { border-color: #58472c; background: #342d20; }
[data-theme="night"] .future-stock-day.is-empty { border-color: #583d39; background: #342421; }
[data-theme="night"] .future-stock-summary article > strong,[data-theme="night"] .future-stock-day.is-available > strong { color: #9bd0b7; }
[data-theme="night"] .future-stock-summary article.is-warn > strong,[data-theme="night"] .future-stock-day.is-low > strong { color: #e6bd70; }
[data-theme="night"] .future-stock-summary article.is-danger > strong,[data-theme="night"] .future-stock-day.is-empty > strong { color: #e99a89; }
[data-theme="night"] .future-stock-controls select { border-color: #344250; background: #202e3a; color: #d7e0e8; }
[data-theme="night"] .restock-backtest-summary article,[data-theme="night"] .restock-backtest-row,[data-theme="night"] .travel-kit-summary > span,[data-theme="night"] .travel-kit-status-row,[data-theme="night"] .travel-kit-config,[data-theme="night"] .travel-kit-option,[data-theme="night"] .travel-kit-saved-list article { border-color: #344250; background: #1a2631; }
[data-theme="night"] .restock-backtest-copy strong,[data-theme="night"] .restock-backtest-summary strong,[data-theme="night"] .travel-kit-status-row strong,[data-theme="night"] .travel-kit-saved-list strong,[data-theme="night"] .travel-kit-option span { color: #d7e0e8; }
[data-theme="night"] .travel-kit-check-panel { border-color: #344250; background: #18242d; }
[data-theme="night"] .travel-kit-status-row.is-ready { border-color: #315345; background: #1c3029; }
[data-theme="night"] .travel-kit-config fieldset,[data-theme="night"] .travel-kit-option,[data-theme="night"] .travel-kit-saved-list article { border-color: #344250; }
[data-theme="night"] .travel-kit-name-field input,[data-theme="night"] .travel-kit-saved-list button { border-color: #344250; background: #202e3a; color: #d7e0e8; }
[data-theme="night"] .storage-item-group-form,[data-theme="night"] .storage-item-group-choice,[data-theme="night"] .travel-related-items,[data-theme="night"] .travel-related-item-row { border-color: #344250; background: #1a2631; }
[data-theme="night"] .storage-item-group-form fieldset { border-color: #344250; }
[data-theme="night"] .storage-item-group-choice strong,[data-theme="night"] .travel-related-items h3,[data-theme="night"] .travel-related-item-row strong { color: #d7e0e8; }
[data-theme="night"] .storage-related-item-badge { background: #213a35; color: #8bc8ae; }
@media (max-width: 560px) {
  .storage-related-groups { padding: 12px; }
  .storage-related-groups .card-header { align-items: flex-start; }
  .storage-item-group-row { align-items: flex-start; }
  .storage-item-group-actions { flex-direction: column; }
  .storage-item-group-choices { grid-template-columns: 1fr; }
  .travel-related-items { margin-right: 14px; margin-left: 14px; }
  .travel-related-item-row { align-items: flex-start; }
}
[data-theme="night"] .restock-backtest-track { background: linear-gradient(90deg,#382e29 0 37.5%,#23372f 37.5% 62.5%,#382e29 62.5% 100%); }
[data-theme="night"] .restock-backtest-track b { background: #9ba9b5; }
[data-theme="night"] .shopping-plan-summary article,[data-theme="night"] .bag-putaway-summary article { background: #202e3a; }
[data-theme="night"] .shopping-plan-summary article strong,[data-theme="night"] .bag-putaway-summary article strong,[data-theme="night"] .shopping-plan-copy strong,[data-theme="night"] .bag-putaway-copy strong,[data-theme="night"] .bag-putaway-pending-row strong { color: #d7e0e8; }
[data-theme="night"] .bag-putaway-pending { background: #382e25; }
[data-theme="night"] .bag-putaway-pending-row { border-color: #514237; }
[data-theme="night"] .consumption-point-legend,[data-theme="night"] .travel-decision-type { border-color: #344250; background: #1a2631; }
[data-theme="night"] .consumption-point-legend > strong,[data-theme="night"] .travel-decision-type-heading strong { color: #d7e0e8; }
[data-theme="night"] .consumption-point-legend > small,[data-theme="night"] .travel-decision-type-heading small,[data-theme="night"] .consumption-size-legend { color: #9ca9b5; }
[data-theme="night"] .consumption-volatility-summary article,[data-theme="night"] .travel-decision-summary article,[data-theme="night"] .travel-decision-item { background: #202e3a; }
[data-theme="night"] .consumption-volatility-summary article strong,[data-theme="night"] .travel-decision-summary article strong,[data-theme="night"] .travel-decision-item > strong { color: #d7e0e8; }
[data-theme="night"] .consumption-grid-line,[data-theme="night"] .travel-decision-grid-line { stroke: #344250; }
[data-theme="night"] .consumption-quadrant-bg.is-low-high-bg { fill: #30263a; }
[data-theme="night"] .consumption-quadrant-bg.is-high-high-bg { fill: #3b2b27; }
[data-theme="night"] .consumption-quadrant-bg.is-low-stable-bg { fill: #263247; }
[data-theme="night"] .consumption-quadrant-bg.is-high-stable-bg { fill: #20372f; }
[data-theme="night"] .travel-decision-quadrant.is-overpacked-bg { fill: #263247; }
[data-theme="night"] .travel-decision-quadrant.is-review-bg { fill: #30263a; }
[data-theme="night"] .travel-decision-quadrant.is-core-bg { fill: #20372f; }
[data-theme="night"] .travel-decision-quadrant.is-forgotten-bg { fill: #3b2b27; }
[data-theme="night"] .travel-bag-usage-group > div { border-color: #344250; }
[data-theme="night"] .restock-window-copy strong,[data-theme="night"] .restock-lead-copy strong,[data-theme="night"] .buy-consume-summary article strong,[data-theme="night"] .travel-efficiency-heading strong { color: #d7e0e8; }
[data-theme="night"] .buy-consume-grid-line { stroke: #344250; }
[data-theme="night"] .buy-dot,[data-theme="night"] .consume-dot { stroke: #1a2631; }
@media (max-width: 640px) {
  .household-funnel-row { grid-template-columns: 82px minmax(35px, 1fr) 30px 57px; gap: 7px; font-size: 10px; }
  .household-funnel-row small { font-size: 9px; }
  .future-stock-controls label { min-width: 130px; flex: 1 1 130px; }
  .future-stock-calendar-weekdays,.future-stock-calendar-grid { gap: 3px; }
  .future-stock-calendar-empty,.future-stock-day { min-height: 66px; }
  .future-stock-day { gap: 2px; padding: 5px 3px; }
  .future-stock-day > span,.future-stock-day > small { font-size: 7px; }
  .future-stock-day > strong { font-size: 10px; }
  .future-stock-summary { gap: 5px; }
  .future-stock-summary article { padding: 8px 7px; }
  .future-stock-summary article > span { font-size: 8px; }
  .future-stock-summary article > strong { font-size: 12px; }
  .future-stock-summary article > small { font-size: 8px; }
  .purchase-cohort-summary { gap: 6px; }
  .purchase-cohort-summary article { padding: 9px 8px; }
  .purchase-cohort-summary article strong { font-size: 14px; }
  .purchase-cohort-summary article span,.purchase-cohort-summary article small { font-size: 8px; }
  .purchase-cohort-table { min-width: 540px; }
  .purchase-cohort-head,.purchase-cohort-row { grid-template-columns: minmax(160px, 1.8fr) repeat(6, minmax(45px, .55fr)); gap: 5px; }
  .purchase-cohort-label strong { font-size: 9px; }
  .purchase-cohort-label small { font-size: 7px; }
  .purchase-cohort-cell { min-height: 28px; font-size: 8px; }
  .expiry-risk-summary { gap: 6px; }
  .expiry-risk-summary article { padding: 10px 8px; }
  .expiry-risk-summary article strong { font-size: 15px; }
  .expiry-risk-summary article span, .expiry-risk-summary article small { font-size: 9px; }
  .expiry-risk-row { grid-template-columns: minmax(0, 1fr) 52px 12px; gap: 8px; padding: 10px 8px; }
  .expiry-risk-bars { gap: 5px; }
  .find-difficulty-row { grid-template-columns: 24px minmax(0, 1fr) auto 10px; gap: 7px; padding: 9px 8px; }
  .find-difficulty-total { font-size: 10px; }
  .restock-window-axis { margin-left: 0; }
  .restock-window-row { grid-template-columns: 1fr; gap: 9px; }
  .restock-lead-row { grid-template-columns: minmax(0,1fr) auto; gap: 8px; padding: 10px; }
  .restock-lead-history { grid-column: 1 / -1; }
  .restock-backtest-summary { gap: 5px; margin-right: 14px; margin-left: 14px; }
  .restock-backtest-summary article { padding: 8px 7px; }
  .restock-backtest-summary strong { font-size: 14px; }
  .restock-backtest-summary span,.restock-backtest-summary small { font-size: 8px; }
  .restock-backtest-axis { margin-right: 14px; margin-left: 14px; }
  .restock-backtest-list { margin-right: 14px; margin-left: 14px; }
  .restock-backtest-row { grid-template-columns: 20px minmax(0,1fr); gap: 7px; padding: 8px; }
  .restock-backtest-track { grid-column: 2; }
  .buy-consume-summary { gap: 5px; }
  .buy-consume-summary article { padding: 8px 6px; }
  .buy-consume-summary article strong { font-size: 11px; }
  .shopping-plan-summary,.bag-putaway-summary { gap: 5px; }
  .shopping-plan-summary article,.bag-putaway-summary article { padding: 8px 6px; }
  .shopping-plan-summary article strong,.bag-putaway-summary article strong { font-size: 11px; }
  .shopping-plan-summary article span,.shopping-plan-summary article small,.bag-putaway-summary article span,.bag-putaway-summary article small { font-size: 8px; }
  .consumption-point-legend-list,.travel-decision-legend { grid-template-columns: 1fr; }
  .consumption-volatility-summary,.travel-decision-summary { gap: 5px; }
  .consumption-volatility-summary article,.travel-decision-summary article { padding: 8px 6px; }
  .consumption-volatility-summary article strong,.travel-decision-summary article strong { font-size: 11px; }
  .consumption-volatility-summary article span,.consumption-volatility-summary article small,.travel-decision-summary article span,.travel-decision-summary article small { font-size: 8px; }
  .travel-decision-type { padding: 8px 6px; }
  .travel-decision-type-heading { align-items: flex-start; flex-direction: column; }
  .shopping-plan-axis,.bag-putaway-axis { margin-right: 0; margin-left: 0; }
  .shopping-plan-row { grid-template-columns: minmax(90px,.8fr) minmax(65px,1fr) 60px; gap: 5px 7px; padding: 9px 8px; }
  .bag-putaway-row { grid-template-columns: minmax(90px,.8fr) minmax(65px,1fr) 80px; gap: 7px; padding: 9px 8px; }
  .travel-bag-usage-row { grid-template-columns: minmax(0, 1fr) 82px; }
}

.weekly-report-stack { gap: 14px; }
.weekly-report-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.weekly-report-metrics article { display: grid; gap: 6px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.weekly-report-metrics small, .weekly-report-metrics span { color: var(--muted); font-size: 10px; }
.weekly-report-metrics strong { color: var(--ink); font-size: 20px; }
.weekly-report-metrics strong.income, .weekly-report-account .income { color: #cb6f52; }
.weekly-report-metrics strong.expense, .weekly-report-account .expense { color: #438e7a; }
.weekly-report-metrics strong.positive, .weekly-report-day b.negative { color: #cb6f52; }
.weekly-report-metrics strong.negative, .weekly-report-day b.positive { color: #438e7a; }
.weekly-report-card { min-width: 0; overflow: hidden; }
.weekly-report-days, .weekly-report-categories, .weekly-report-accounts { display: grid; gap: 0; padding: 0 20px 15px; }
.weekly-report-day { min-width: 0; border-bottom: 1px solid var(--line); }
.weekly-report-day:last-child { border-bottom: 0; }
.weekly-report-day > summary { display: grid; grid-template-columns: minmax(130px,1fr) minmax(90px,auto) minmax(90px,auto) auto 16px; align-items: center; gap: 10px; min-height: 49px; list-style: none; cursor: pointer; }
.weekly-report-day > summary::-webkit-details-marker { display: none; }
.weekly-report-day-date { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: baseline; gap: 1px 7px; }
.weekly-report-day-date strong { color: var(--ink); font-size: 11px; }
.weekly-report-day-date small,.weekly-report-day-count { color: var(--muted); font-size: 9px; }
.weekly-report-day-date em { grid-column: 1 / -1; color: var(--muted); font-size: 8px; font-style: normal; }
.weekly-report-day-net { font-size: 10px; font-weight: 700; text-align: right; }
.weekly-report-day-net.positive { color: #cb6f52; }
.weekly-report-day-net.negative { color: #438e7a; }
.weekly-report-day-net.is-muted { color: #909ba4; font-weight: 500; }
.weekly-report-day-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 4px; }
.weekly-report-day-badges > i { display: inline-flex; width: 17px; height: 17px; align-items: center; justify-content: center; border-radius: 5px; background: #eef3f2; color: #63717b; font-size: 8px; font-style: normal; }
.weekly-cashflow-day-plan,.weekly-cashflow-day-large { padding: 3px 5px; border-radius: 5px; background: #edf4fb; color: #587ca5; font-size: 7px; font-style: normal; }
.weekly-cashflow-day-large { background: #fff0e9; color: #b65f3d; }
.weekly-report-day-chevron { color: #929ca5; font-size: 15px; transition: transform .18s ease; }
.weekly-report-day[open] .weekly-report-day-chevron { transform: rotate(180deg); }
.weekly-report-day.is-unrecorded > summary { opacity: .78; }
.weekly-report-day.is-future > summary { background: linear-gradient(90deg, transparent, #f8fafb); }
.weekly-report-day-detail { display: grid; gap: 7px; padding: 4px 10px 13px 12px; border-left: 2px solid #e5eceb; }
.weekly-cashflow-day-cause { margin: 0; color: var(--ink); font-size: 9px; line-height: 1.5; }
.weekly-cashflow-reference,.weekly-cashflow-day-count,.weekly-cashflow-no-record,.weekly-cashflow-day-balance { color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-cashflow-day-group { display: grid; gap: 5px; padding-top: 7px; border-top: 1px solid var(--line); }
.weekly-cashflow-day-group > strong { color: #53616d; font-size: 8px; }
.weekly-cashflow-day-group.is-plan { border-color: #dce7f1; }
.weekly-cashflow-transaction { display: grid; grid-template-columns: 55px minmax(0,1fr) auto; align-items: center; gap: 8px; min-width: 0; padding: 6px 8px; border-radius: 8px; background: #f8fafb; }
.weekly-cashflow-transaction[role="button"] { cursor: pointer; }
.weekly-cashflow-transaction[role="button"]:hover { background: #eef3f4; }
.weekly-cashflow-transaction.is-planned { border: 1px dashed #c7d5e3; background: #f7fafc; }
.weekly-cashflow-transaction.is-transfer { background: #f5f7fa; }
.weekly-cashflow-tx-kind { color: var(--muted); font-size: 8px; }
.weekly-cashflow-tx-copy { display: grid; gap: 2px; min-width: 0; }
.weekly-cashflow-tx-copy > strong { overflow: hidden; color: var(--ink); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-cashflow-tx-copy > small { overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-cashflow-tx-copy > span { display: flex; flex-wrap: wrap; gap: 4px; }
.weekly-cashflow-tag { padding: 2px 4px; border-radius: 4px; background: #eef2f3; color: #66747d; font-size: 7px; font-style: normal; }
.weekly-cashflow-tag.is-source { background: #fff3ee; color: #b4684e; }
.weekly-cashflow-tag.is-plan { background: #edf4fb; color: #587ca5; }
.weekly-cashflow-tag.is-large { background: #fff0e9; color: #b65f3d; }
.weekly-cashflow-transaction > b { font-size: 9px; white-space: nowrap; }
.weekly-cashflow-transaction > b.is-income { color: #cb6f52; }
.weekly-cashflow-transaction > b.is-expense { color: #438e7a; }
.weekly-cashflow-transaction > b.is-transfer { color: #6687ae; }
.weekly-cashflow-transaction[role="button"]:focus-visible,.weekly-report-day > summary:focus-visible { outline: 2px solid #7196be; outline-offset: 2px; }
.weekly-cashflow-card > .card-header { align-items: center; }
.weekly-cashflow-mode-switch { display: flex; align-items: center; gap: 3px; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #f8fafb; }
.weekly-cashflow-mode-switch > span { padding: 0 5px; color: var(--muted); font-size: 8px; }
.weekly-cashflow-mode-switch button { min-height: 27px; padding: 0 8px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 8px; cursor: pointer; }
.weekly-cashflow-mode-switch button.active { background: #fff; color: var(--ink); box-shadow: 0 1px 4px #24334018; font-weight: 700; }
.weekly-cashflow-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 0 20px 12px; }
.weekly-cashflow-summary > span { display: grid; gap: 4px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.weekly-cashflow-summary small,.weekly-cashflow-summary em { color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.4; }
.weekly-cashflow-summary strong { color: var(--ink); font-size: 12px; line-height: 1.35; }
.weekly-cashflow-summary strong.positive { color: #cb6f52; }
.weekly-cashflow-summary strong.negative { color: #438e7a; }
.weekly-cashflow-summary strong.is-risk { color: #bb624b; }
.weekly-cashflow-summary strong.is-ok { color: #438e7a; }
.weekly-cashflow-pressure em { color: #a15c4d; }
.weekly-cashflow-plan-note { display: flex; flex-wrap: wrap; gap: 5px 9px; margin: 0 20px 10px; padding: 8px 10px; border-radius: 8px; background: #f4f7fa; }
.weekly-cashflow-plan-note strong { color: #52616f; font-size: 8px; }
.weekly-cashflow-plan-note span { color: var(--muted); font-size: 8px; }
.weekly-cashflow-chart-wrap { padding: 0 15px 8px; }
.weekly-cashflow-chart { display: block; width: 100%; height: auto; overflow: visible; }
.weekly-cashflow-grid { stroke: #edf0f2; stroke-width: 1; }
.weekly-cashflow-zero { stroke: #cfd7dc; stroke-width: 1; stroke-dasharray: 3 4; }
.weekly-cashflow-bar.is-income { fill: #d47a5f; }
.weekly-cashflow-bar.is-expense { fill: #52a086; }
.weekly-cashflow-bar.is-planned-income { fill: #fff; stroke: #d47a5f; stroke-width: 2; stroke-dasharray: 3 2; }
.weekly-cashflow-bar.is-planned-expense { fill: #fff; stroke: #52a086; stroke-width: 2; stroke-dasharray: 3 2; }
.weekly-cashflow-cumulative polyline { fill: none; stroke: #7180b1; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.weekly-cashflow-cumulative circle { fill: #7180b1; stroke: #fff; stroke-width: 1.5; }
.weekly-cashflow-cutoff { stroke: #72818b; stroke-width: 1; stroke-dasharray: 3 4; }
.weekly-cashflow-cutoff-label { fill: #6e7b84; font-size: 8px; }
.weekly-cashflow-axis { fill: #8c969d; font-size: 8px; }
.weekly-cashflow-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 14px; padding: 2px 5px 7px; color: var(--muted); font-size: 8px; }
.weekly-cashflow-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.weekly-cashflow-chart-legend i { width: 11px; height: 6px; border-radius: 4px; background: #52a086; }
.weekly-cashflow-chart-legend i.is-income { background: #d47a5f; }
.weekly-cashflow-chart-legend i.is-expense { background: #52a086; }
.weekly-cashflow-chart-legend i.is-net { height: 2px; background: #7180b1; }
.weekly-cashflow-chart-legend i.is-plan { border: 1px dashed #6687ae; background: #fff; }
.weekly-cashflow-week-totals { display: flex; flex-wrap: wrap; gap: 6px 15px; padding: 0 20px 11px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-cashflow-week-totals b { color: var(--ink); }
.weekly-cashflow-week-totals > span:last-child { flex-basis: 100%; }
.weekly-cashflow-chart [data-cashflow-expense-series].is-hidden { display: none; }
.weekly-report-category { display: grid; grid-template-columns: minmax(100px, .8fr) minmax(80px, 1fr) minmax(135px, auto); align-items: center; gap: 10px; min-height: 42px; border-bottom: 1px solid var(--line); font-size: 10px; }
.weekly-report-category:last-child { border-bottom: 0; }
.weekly-report-category > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-category > i { height: 7px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-category > i b { display: block; min-width: 2px; height: 100%; border-radius: inherit; background: #58a48d; }
.weekly-report-category > strong { text-align: right; white-space: nowrap; }
.weekly-report-category > small { grid-column: 1 / -1; padding-bottom: 6px; color: var(--muted); text-align: left; font-size: 9px; }
.weekly-report-category > i b.over { background: #cf765e; }
.weekly-report-category > strong.over { color: #cb6f52; }
.weekly-report-budget-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding: 0 20px 12px; }
.weekly-report-budget-summary article, .weekly-report-shopping-summary article { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfc; }
.weekly-report-budget-summary small, .weekly-report-shopping-summary small, .weekly-report-shopping-summary span { color: var(--muted); font-size: 9px; }
.weekly-report-budget-summary span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.weekly-report-budget-summary strong { color: var(--ink); font-size: 16px; }
.weekly-report-budget-summary strong.positive { color: #438e7a; }
.weekly-report-budget-summary strong.negative { color: #cb6f52; }
.weekly-report-budget-section { display: grid; gap: 12px; padding-bottom: 14px; }
.weekly-report-budget-disposition, .weekly-report-budget-pace, .weekly-report-budget-daytype, .weekly-report-budget-month-splits, .weekly-report-budget-overrun, .weekly-report-unbudgeted { margin: 0 20px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfc; }
.weekly-report-disposition-bar { display: flex; height: 11px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-disposition-bar i { display: block; min-width: 2px; height: 100%; }
.weekly-report-disposition-bar .spent, .weekly-report-disposition-legend i.spent { background: #58a48d; }
.weekly-report-disposition-bar .reserved, .weekly-report-disposition-legend i.reserved { background: #e5ad59; }
.weekly-report-disposition-bar .restricted, .weekly-report-disposition-legend i.restricted { background: #aab4c0; }
.weekly-report-disposition-bar .available, .weekly-report-disposition-legend i.available { background: #6d83bb; }
.weekly-report-disposition-legend { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 9px; color: var(--muted); font-size: 9px; }
.weekly-report-disposition-legend span { display: inline-flex; align-items: center; gap: 5px; }
.weekly-report-disposition-legend i, .weekly-report-pace-legend i { width: 9px; height: 7px; border-radius: 4px; }
.weekly-report-budget-pace svg { display: block; width: 100%; height: auto; overflow: visible; }
.weekly-report-budget-pace .grid { stroke: var(--line); stroke-dasharray: 3 4; }
.weekly-report-budget-pace .axis, .weekly-report-budget-pace .day { fill: var(--muted); font-size: 9px; }
.weekly-report-budget-pace polyline { fill: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2.5; }
.weekly-report-budget-pace polyline.pace { stroke: #7685b6; stroke-dasharray: 5 4; }
.weekly-report-budget-pace polyline.actual { stroke: #d47a5f; }
.weekly-report-budget-pace circle { fill: #d47a5f; stroke: #fff; stroke-width: 1.5; }
.weekly-report-budget-pace > small { display: block; margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-report-pace-legend { display: flex; gap: 14px; color: var(--muted); font-size: 9px; }
.weekly-report-pace-legend span { display: inline-flex; align-items: center; gap: 5px; }
.weekly-report-pace-legend i.pace { height: 2px; background: #7685b6; }
.weekly-report-pace-legend i.actual { height: 2px; background: #d47a5f; }
.weekly-report-budget-daytype > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.weekly-report-budget-daytype > div:last-child > span { display: grid; gap: 4px; padding: 10px; border-radius: 9px; background: #fff; }
.weekly-report-budget-daytype small, .weekly-report-budget-daytype em { color: var(--muted); font-size: 9px; font-style: normal; }
.weekly-report-budget-daytype b { color: var(--ink); font-size: 14px; }
.weekly-report-budget-month-splits { display: grid; gap: 7px; }
.weekly-report-budget-month-splits > span { display: grid; grid-template-columns: minmax(70px,.6fr) minmax(100px,1fr) minmax(190px,auto); gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.weekly-report-budget-month-splits > span:last-of-type { border-bottom: 0; }
.weekly-report-budget-month-splits > span b, .weekly-report-budget-month-splits > span strong { color: var(--ink); font-size: 9px; }
.weekly-report-budget-month-splits > span small { color: var(--muted); font-size: 8px; }
.weekly-report-budget-overrun-row { display: grid; grid-template-columns: minmax(90px,.8fr) minmax(60px,1fr) 75px; gap: 8px; align-items: center; min-height: 35px; border-bottom: 1px solid var(--line); font-size: 9px; }
.weekly-report-budget-overrun-row:last-child { border-bottom: 0; }
.weekly-report-budget-overrun-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-budget-overrun-row > i { height: 6px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-budget-overrun-row > i b { display: block; height: 100%; border-radius: inherit; background: #cf765e; }
.weekly-report-budget-overrun-row > strong { color: #cb6f52; text-align: right; }
.weekly-report-budget-overrun-row > small { grid-column: 1 / -1; padding-bottom: 6px; color: var(--muted); font-size: 8px; }
.weekly-report-unbudgeted { display: grid; gap: 5px; border-color: #f0dfc2; background: #fffaf2; }
.weekly-report-unbudgeted strong { color: var(--ink); font-size: 10px; }
.weekly-report-unbudgeted span { color: #a8712e; font-size: 10px; font-weight: 700; }
.weekly-report-unbudgeted small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-report-category.is-over-pace > span { color: #b8674e; }
.weekly-report-category.is-over-pace > i { background: #f5e7e2; }
.weekly-report-category.is-over-pace > i b { min-width: 3px; }
.weekly-report-budget-section ~ .weekly-report-categories { padding-top: 0; }
.weekly-report-contribution-wrap { border-top: 1px solid var(--line); margin: 0 20px; padding: 14px 0 12px; }
.weekly-report-subheading { display: grid; gap: 4px; margin-bottom: 8px; }
.weekly-report-subheading strong { color: var(--ink); font-size: 12px; }
.weekly-report-subheading small { color: var(--muted); font-size: 9px; }
.weekly-report-contributions { display: grid; }
.weekly-report-contribution { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(70px, 1fr) 86px minmax(130px, 1fr); align-items: center; gap: 9px; min-height: 38px; border-bottom: 1px solid var(--line); font-size: 10px; }
.weekly-report-contribution:last-child { border-bottom: 0; }
.weekly-report-contribution > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-contribution > i, .weekly-report-shopping-bars i { display: block; height: 7px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-contribution > i b, .weekly-report-shopping-bars i b { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #cf765e; }
.weekly-report-contribution > i b.decreased { background: #52a086; }
.weekly-report-contribution > strong { text-align: right; }
.weekly-report-contribution > strong.increased { color: #cb6f52; }
.weekly-report-contribution > strong.decreased { color: #438e7a; }
.weekly-report-contribution > small { color: var(--muted); text-align: right; font-size: 9px; }
.weekly-report-worktime { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 20px; }
.weekly-report-worktime h2 { margin: 5px 0; color: var(--ink); font-size: 21px; }
.weekly-report-worktime p { margin: 0; color: var(--muted); font-size: 10px; }
.weekly-report-worktime-icon { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border-radius: 13px; background: #edf6f3; color: #438e7a; font-size: 24px; }
.weekly-report-shopping-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; padding: 0 20px 14px; }
.weekly-report-shopping-summary strong { color: var(--ink); font-size: 15px; }
.weekly-report-shopping-bars { display: grid; gap: 9px; padding: 0 20px 12px; }
.weekly-report-shopping-bars > div { display: grid; grid-template-columns: minmax(85px, .8fr) minmax(80px, 1fr) 85px; align-items: center; gap: 9px; font-size: 10px; }
.weekly-report-shopping-bars > div > span { color: var(--muted); }
.weekly-report-shopping-bars > div > strong { text-align: right; }
.weekly-report-shopping-bars i b.actual { background: #52a086; }
.weekly-report-card > .weekly-report-note { padding: 0 20px 14px; }
.weekly-report-account { display: grid; grid-template-columns: minmax(100px, 1fr) 120px 120px; gap: 10px; align-items: center; min-height: 40px; border-bottom: 1px solid var(--line); font-size: 10px; }
.weekly-report-account:last-child { border-bottom: 0; }
.weekly-report-account span { text-align: right; }
.weekly-account-report { overflow: hidden; }
.weekly-account-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; padding: 0 20px 15px; }
.weekly-account-summary article { display: grid; gap: 5px; min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.weekly-account-summary small, .weekly-account-detail-kpis small { color: var(--muted); font-size: 9px; }
.weekly-account-summary strong { overflow-wrap: anywhere; color: var(--ink); font-size: 15px; }
.weekly-account-summary strong.positive { color: #438e7a; }
.weekly-account-summary strong.negative { color: #cb6f52; }
.weekly-account-summary article > span { color: var(--muted); font-size: 8px; line-height: 1.45; }
.weekly-account-summary .income, .weekly-account-income b { color: #cb6f52; }
.weekly-account-summary .expense, .weekly-account-expense b { color: #438e7a; }
.weekly-account-waterfall, .weekly-account-chart, .weekly-account-flow { margin: 0 20px 14px; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.weekly-account-waterfall-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.weekly-account-waterfall svg { display: block; width: 100%; min-width: 600px; height: auto; }
.weekly-account-waterfall svg .zero { stroke: #dce4e7; stroke-dasharray: 3 4; }
.weekly-account-waterfall svg .connector { stroke: #b7c2c8; stroke-dasharray: 3 3; }
.weekly-account-waterfall svg rect.total { fill: #6379bd; }
.weekly-account-waterfall svg rect.positive { fill: #d27c62; }
.weekly-account-waterfall svg rect.negative { fill: #57a18b; }
.weekly-account-waterfall svg rect.neutral { fill: #9aa6b2; }
.weekly-account-waterfall svg text { font-family: inherit; }
.weekly-account-waterfall svg text.value { fill: #455360; font-size: 9px; font-weight: 650; }
.weekly-account-waterfall svg text.label { fill: #7b8791; font-size: 8px; }
.weekly-account-waterfall > small, .weekly-account-flow-note { display: block; color: var(--muted); font-size: 8px; line-height: 1.55; }
.weekly-account-chart .weekly-report-subheading, .weekly-account-waterfall .weekly-report-subheading, .weekly-account-flow .weekly-report-subheading { margin-bottom: 10px; }
.weekly-account-bar-row { display: grid; grid-template-columns: minmax(82px, 1fr) minmax(100px, 1.7fr) minmax(130px, 1.2fr); gap: 10px; align-items: center; min-height: 39px; border-bottom: 1px solid #edf0f2; }
.weekly-account-bar-row > strong { overflow: hidden; color: #46535e; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-account-bars { display: grid; gap: 4px; }
.weekly-account-bars i { display: block; overflow: hidden; height: 5px; border-radius: 9px; background: #edf1f2; }
.weekly-account-bars i b { display: block; height: 100%; border-radius: inherit; }
.weekly-account-bars i.income b, .weekly-account-chart-legend i.income { background: #d27c62; }
.weekly-account-bars i.expense b, .weekly-account-chart-legend i.expense { background: #57a18b; }
.weekly-account-bar-values { display: flex; justify-content: flex-end; gap: 9px; font-size: 8px; white-space: nowrap; }
.weekly-account-bar-values .income { color: #cb6f52; }
.weekly-account-bar-values .expense { color: #438e7a; }
.weekly-account-chart-legend { display: flex; justify-content: flex-end; gap: 12px; padding-top: 8px; color: var(--muted); font-size: 8px; }
.weekly-account-chart-legend span { display: inline-flex; align-items: center; gap: 4px; }
.weekly-account-chart-legend i { width: 8px; height: 8px; border-radius: 3px; }
.weekly-account-flow-row { display: grid; grid-template-columns: minmax(60px, 1fr) 14px minmax(60px, 1fr) minmax(55px, 1.2fr) 76px 34px; align-items: center; gap: 7px; min-height: 32px; border-bottom: 1px solid #edf0f2; font-size: 8px; }
.weekly-account-flow-row > b { overflow: hidden; color: #52606c; text-overflow: ellipsis; white-space: nowrap; }
.weekly-account-flow-row > span { color: #83919b; text-align: center; }
.weekly-account-flow-row > i { overflow: hidden; height: 6px; border-radius: 8px; background: #edf1f2; }
.weekly-account-flow-row > i em { display: block; height: 100%; border-radius: inherit; background: #7488bb; }
.weekly-account-flow-row > strong, .weekly-account-flow-row > small { text-align: right; white-space: nowrap; }
.weekly-account-flow-row > strong { color: #46535e; }
.weekly-account-flow-row > small { color: var(--muted); }
.weekly-account-flow-note { margin: 8px 0 0; }
.weekly-account-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 10px; margin: 4px 20px 0; padding: 0 0 9px; border-bottom: 1px solid var(--line); }
.weekly-account-section-heading strong { color: var(--ink); font-size: 11px; }
.weekly-account-section-heading span { color: var(--muted); font-size: 8px; }
.weekly-account-detail { border-bottom: 1px solid var(--line); }
.weekly-account-detail:last-child { border-bottom: 0; }
.weekly-account-detail > summary { display: grid; grid-template-columns: minmax(150px, 1.2fr) minmax(185px, 1.3fr) minmax(125px, .9fr) minmax(125px, .9fr) 14px; gap: 9px; align-items: center; min-height: 60px; list-style: none; cursor: pointer; }
.weekly-account-detail > summary::-webkit-details-marker { display: none; }
.weekly-account-name, .weekly-account-balance-pair, .weekly-account-income, .weekly-account-expense { display: grid; gap: 3px; min-width: 0; }
.weekly-account-name > b { overflow: hidden; color: var(--ink); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-account-name > b img { width: 15px; height: 15px; margin-right: 3px; border-radius: 4px; object-fit: cover; vertical-align: -3px; }
.weekly-account-name > small, .weekly-account-balance-pair > small, .weekly-account-income > small, .weekly-account-expense > small { color: var(--muted); font-size: 8px; }
.weekly-account-name > i { display: flex; gap: 4px; font-style: normal; }
.weekly-account-name > i i { padding: 2px 5px; border-radius: 8px; background: #f0f4f5; color: #71808b; font-size: 7px; font-style: normal; }
.weekly-account-balance-pair > b { color: #46535e; font-size: 9px; }
.weekly-account-balance-pair > em, .weekly-account-income > em, .weekly-account-expense > em { color: var(--muted); font-size: 8px; font-style: normal; }
.weekly-account-balance-pair > em.is-increase { color: #cb6f52; }
.weekly-account-balance-pair > em.is-decrease { color: #438e7a; }
.weekly-account-income > b, .weekly-account-expense > b { font-size: 10px; }
.weekly-account-chevron { color: #82909a; font-size: 13px; transition: transform .16s ease; }
.weekly-account-detail[open] .weekly-account-chevron { transform: rotate(180deg); }
.weekly-account-detail-body { display: grid; gap: 10px; padding: 0 4px 13px; }
.weekly-account-detail-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.weekly-account-detail-kpis > span { display: grid; gap: 3px; min-width: 0; padding: 8px; border-radius: 8px; background: #f8fafb; }
.weekly-account-detail-kpis b { overflow-wrap: anywhere; color: #495763; font-size: 9px; }
.weekly-account-detail-kpis em { color: var(--muted); font-size: 7px; font-style: normal; }
.weekly-account-detail-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.weekly-account-detail-columns > div { min-width: 0; padding: 9px; border: 1px solid var(--line); border-radius: 8px; }
.weekly-account-detail-columns > div > strong, .weekly-account-daily > strong { display: block; margin-bottom: 7px; color: #53616c; font-size: 9px; }
.weekly-account-mini-list { display: grid; gap: 6px; }
.weekly-account-mini-list > span { display: grid; grid-template-columns: minmax(0, 1fr) auto 35px; gap: 6px; align-items: center; font-size: 8px; }
.weekly-account-mini-list > span > b { overflow: hidden; color: #65727d; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.weekly-account-mini-list > span > strong { color: #53616c; }
.weekly-account-mini-list > span > small, .weekly-account-mini-list > small { color: var(--muted); text-align: right; font-size: 7px; }
.weekly-account-mini-list .is-increase { color: #cb6f52; }
.weekly-account-mini-list .is-decrease { color: #438e7a; }
.weekly-account-comparison, .weekly-account-reference, .weekly-account-liability-note { margin: 0; color: #73808b; font-size: 8px; line-height: 1.5; }
.weekly-account-daily { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(140px, 220px) auto; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; background: #f8fafb; }
.weekly-account-daily > strong { margin: 0; }
.weekly-account-daily > small { color: var(--muted); font-size: 7px; }
.weekly-account-spark { display: block; width: 100%; height: 32px; overflow: visible; }
.weekly-account-spark polyline { fill: none; stroke: #7488bb; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.weekly-account-spark circle { fill: #7488bb; stroke: #fff; stroke-width: 1; }
.weekly-account-liability-note { padding: 8px 10px; border-left: 2px solid #d9a073; background: #fff9f3; }
.weekly-report-card > .weekly-report-note { padding: 0 20px 14px; }
.weekly-report-empty { margin: 12px 0; color: var(--muted); font-size: 11px; }
.weekly-report-note { display: block; color: var(--muted); font-size: 9px; line-height: 1.6; }
@media (max-width: 600px) {
  .weekly-report-metrics { gap: 6px; }
  .weekly-report-metrics article { padding: 10px 8px; }
  .weekly-report-metrics strong { font-size: 15px; }
  .weekly-report-metrics small, .weekly-report-metrics span { font-size: 8px; }
  .weekly-report-days, .weekly-report-categories, .weekly-report-accounts { padding-right: 14px; padding-left: 14px; }
  .weekly-report-day > summary { grid-template-columns: minmax(0,1fr) auto auto 15px; gap: 5px; min-height: 47px; }
  .weekly-report-day-date { grid-column: 1; grid-row: 1; }
  .weekly-report-day-net { grid-column: 2; grid-row: 1; min-width: 63px; font-size: 9px; }
  .weekly-report-day-count { grid-column: 1 / 3; grid-row: 2; font-size: 7px; }
  .weekly-report-day-badges { grid-column: 3; grid-row: 1 / 3; max-width: 65px; }
  .weekly-report-day-chevron { grid-column: 4; grid-row: 1 / 3; }
  .weekly-report-day-detail { padding-right: 3px; padding-left: 8px; }
  .weekly-cashflow-card > .card-header { align-items: flex-start; flex-direction: column; }
  .weekly-cashflow-mode-switch { max-width: 100%; }
  .weekly-cashflow-mode-switch button { padding: 0 7px; }
  .weekly-cashflow-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; padding-right: 14px; padding-left: 14px; }
  .weekly-cashflow-summary > span { padding: 8px 7px; }
  .weekly-cashflow-summary strong { font-size: 10px; }
  .weekly-cashflow-plan-note { margin-right: 14px; margin-left: 14px; }
  .weekly-cashflow-chart-wrap { padding-right: 7px; padding-left: 7px; }
  .weekly-cashflow-week-totals { padding-right: 14px; padding-left: 14px; }
  .weekly-cashflow-transaction { grid-template-columns: 42px minmax(0,1fr) auto; gap: 5px; padding: 6px; }
  .weekly-cashflow-tx-kind { font-size: 7px; }
  .weekly-cashflow-tx-copy > strong { font-size: 8px; }
  .weekly-cashflow-transaction > b { font-size: 8px; }
  .weekly-report-category { grid-template-columns: minmax(75px, .8fr) minmax(45px, 1fr) minmax(95px,auto); gap: 7px; }
  .weekly-report-category > small { grid-column: 1 / -1; text-align: left; padding: 0 0 6px; }
  .weekly-report-budget-summary, .weekly-report-shopping-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; padding-right: 14px; padding-left: 14px; }
  .weekly-report-budget-summary article, .weekly-report-shopping-summary article { padding: 9px 7px; }
  .weekly-report-budget-summary strong, .weekly-report-shopping-summary strong { font-size: 12px; }
  .weekly-report-budget-summary small, .weekly-report-shopping-summary small, .weekly-report-shopping-summary span { font-size: 8px; }
  .weekly-report-contribution-wrap { margin-right: 14px; margin-left: 14px; }
  .weekly-report-budget-disposition, .weekly-report-budget-pace, .weekly-report-budget-daytype, .weekly-report-budget-month-splits, .weekly-report-budget-overrun, .weekly-report-unbudgeted { margin-right: 14px; margin-left: 14px; padding: 10px; }
  .weekly-report-budget-summary span { font-size: 8px; }
  .weekly-report-budget-month-splits > span { grid-template-columns: 55px minmax(70px,1fr); gap: 4px 7px; }
  .weekly-report-budget-month-splits > span strong { grid-column: 1 / -1; }
  .weekly-report-budget-overrun-row { grid-template-columns: minmax(70px,.8fr) minmax(35px,1fr) 62px; gap: 6px; }
  .weekly-report-contribution { grid-template-columns: minmax(65px, .8fr) minmax(35px, .8fr) 66px; gap: 6px; min-height: 44px; }
  .weekly-report-contribution > small { grid-column: 1 / -1; text-align: left; padding: 0 0 6px; }
  .weekly-report-contribution > span, .weekly-report-contribution > strong { font-size: 9px; }
  .weekly-report-worktime { padding: 13px 14px; }
  .weekly-report-worktime h2 { font-size: 18px; }
  .weekly-report-shopping-bars { gap: 10px; padding-right: 14px; padding-left: 14px; }
  .weekly-report-shopping-bars > div { grid-template-columns: minmax(75px, .9fr) minmax(45px, 1fr) 68px; gap: 6px; font-size: 9px; }
  .weekly-report-card > .weekly-report-note { padding-right: 14px; padding-left: 14px; }
  .weekly-report-account { grid-template-columns: minmax(65px, 1fr) 95px 95px; gap: 5px; font-size: 9px; }
  .weekly-account-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding-right: 14px; padding-left: 14px; }
  .weekly-account-summary article { gap: 4px; padding: 9px 8px; }
  .weekly-account-summary strong { font-size: 12px; }
  .weekly-account-waterfall, .weekly-account-chart, .weekly-account-flow { margin-right: 14px; margin-left: 14px; padding: 9px; }
  .weekly-account-waterfall svg { min-width: 580px; }
  .weekly-account-bar-row { grid-template-columns: minmax(63px, .8fr) minmax(68px, 1fr) minmax(102px, 1.1fr); gap: 5px; min-height: 36px; }
  .weekly-account-bar-values { flex-direction: column; align-items: flex-end; gap: 2px; font-size: 7px; }
  .weekly-account-flow-row { grid-template-columns: minmax(48px, 1fr) 11px minmax(48px, 1fr) minmax(35px, .7fr) 58px 25px; gap: 4px; font-size: 7px; }
  .weekly-account-flow-row > strong { font-size: 7px; }
  .weekly-account-flow-row > small { font-size: 6px; }
  .weekly-account-section-heading { margin-right: 14px; margin-left: 14px; }
  .weekly-account-detail > summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 13px; gap: 6px; padding: 8px 0; }
  .weekly-account-name { grid-column: 1 / 3; grid-row: 1; }
  .weekly-account-balance-pair { grid-column: 1 / 3; grid-row: 2; }
  .weekly-account-income { grid-column: 1; grid-row: 3; }
  .weekly-account-expense { grid-column: 2; grid-row: 3; }
  .weekly-account-chevron { grid-column: 3; grid-row: 1 / 3; justify-self: end; }
  .weekly-account-detail-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .weekly-account-detail-columns { grid-template-columns: 1fr; gap: 6px; }
  .weekly-account-daily { grid-template-columns: 1fr auto; gap: 5px; }
  .weekly-account-daily > strong { grid-column: 1 / -1; }
  .weekly-account-spark { min-width: 120px; }
  .weekly-account-report > .weekly-report-note { padding-right: 14px; padding-left: 14px; }
  .weekly-report-legend { padding-right: 14px; padding-left: 14px; }
  .budget-transfer-summary { padding: 13px 14px; }
  .budget-transfer-body { padding-right: 14px; padding-left: 14px; }
  .budget-transfer-fields, .budget-transfer-target-list { grid-template-columns: 1fr; }
  .budget-transfer-method label { flex: 1 1 auto; justify-content: center; padding: 0 7px; }
}


.consumption-time-selected-detail { margin: 7px 14px 9px; padding: 9px 10px; border-radius: 8px; background: #f8fafb; }
.consumption-time-detail-summary { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 10px; }
.consumption-time-detail-summary strong { color: #4b5967; font-size: 10px; }
.consumption-time-detail-summary span { color: #667782; font-size: 8px; }
.consumption-time-expand { margin-top: 7px; padding: 5px 8px; border: 1px solid #e5ebed; border-radius: 6px; background: #fff; color: #538d7a; font: inherit; font-size: 8px; cursor: pointer; }
.consumption-time-drilldown-content { display: grid; gap: 10px; margin-top: 9px; }

.weekly-report-metrics article > span { min-width: 0; line-height: 1.45; }
.weekly-report-metrics article > .weekly-report-delta { font-size: 9px; }
.weekly-report-delta { display: block; color: #798692; font-size: 9px; line-height: 1.5; }
.weekly-report-delta.is-up { color: #cb6f52; }
.weekly-report-delta.is-down { color: #438e7a; }
.weekly-report-delta.is-flat { color: #75818d; }
.weekly-report-delta.is-muted { color: #929ca5; }
.weekly-report-surplus-detail { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.weekly-report-surplus-detail > span { display: grid; gap: 5px; min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.weekly-report-surplus-detail small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.weekly-report-surplus-detail b { color: var(--ink); font-size: 16px; }
.weekly-report-net-change,.weekly-report-extra,.weekly-report-reference,.weekly-report-status { padding: 13px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.weekly-report-net-change { display: grid; gap: 5px; }
.weekly-report-net-change strong,.weekly-report-extra > strong { color: var(--ink); font-size: 11px; }
.weekly-report-net-change span,.weekly-report-net-change small { color: var(--muted); font-size: 9px; line-height: 1.55; }
.weekly-report-reference-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.weekly-report-reference-grid > span { display: grid; gap: 4px; padding: 9px 10px; border-radius: 9px; background: #f8fafb; }
.weekly-report-reference-grid small,.weekly-report-source-list small { color: var(--muted); font-size: 8px; }
.weekly-report-reference-grid b { color: var(--ink); font-size: 13px; }
.weekly-report-reference-grid b.positive { color: #cb6f52; }
.weekly-report-reference-grid b.negative { color: #438e7a; }
.weekly-report-extra { display: grid; gap: 8px; }
.weekly-report-source-list { display: grid; gap: 0; }
.weekly-report-source-list > span { display: grid; grid-template-columns: minmax(0,1fr) auto 42px; align-items: center; gap: 8px; min-height: 32px; border-bottom: 1px solid var(--line); }
.weekly-report-source-list > span:last-child { border-bottom: 0; }
.weekly-report-source-list b { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-source-list strong { color: var(--ink); font-size: 10px; text-align: right; }
.weekly-report-source-list small { text-align: right; }
.weekly-report-salary-hint { display: grid; gap: 4px; padding: 9px 10px; border-radius: 9px; background: #fff8ee; }
.weekly-report-salary-hint strong { color: #a66a32; font-size: 9px; }
.weekly-report-salary-hint span { color: #8a765f; font-size: 8px; line-height: 1.5; }
.weekly-report-salary-hint.is-muted { background: #f8fafb; }
.weekly-report-salary-hint.is-muted strong,.weekly-report-salary-hint.is-muted span { color: var(--muted); }
.weekly-report-driver-list { display: grid; gap: 0; }
.weekly-report-driver-list > span { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 9px; min-height: 34px; border-bottom: 1px solid var(--line); }
.weekly-report-driver-list > span:last-child { border-bottom: 0; }
.weekly-report-driver-list b { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-driver-list strong { font-size: 10px; }
.weekly-report-driver-list strong.is-increase { color: #cb6f52; }
.weekly-report-driver-list strong.is-decrease { color: #438e7a; }
.weekly-report-driver-list small,.weekly-report-inline-empty { color: var(--muted); font-size: 8px; }
.weekly-report-inline-empty { margin: 0; line-height: 1.5; }
.weekly-report-status { display: grid; gap: 4px; background: #f8fafb; }
.weekly-report-status strong { color: #53616d; font-size: 9px; }
.weekly-report-status span { color: var(--muted); font-size: 8px; line-height: 1.5; }
[data-theme="night"] .weekly-report-surplus-detail > span,[data-theme="night"] .weekly-report-net-change,[data-theme="night"] .weekly-report-extra,[data-theme="night"] .weekly-report-reference,[data-theme="night"] .weekly-report-status { background: #1c2832; }
[data-theme="night"] .weekly-report-reference-grid > span,[data-theme="night"] .weekly-report-salary-hint,[data-theme="night"] .weekly-report-salary-hint.is-muted { background: #202d37; }
[data-theme="night"] .weekly-report-budget-summary article,[data-theme="night"] .weekly-report-budget-disposition,[data-theme="night"] .weekly-report-budget-pace,[data-theme="night"] .weekly-report-budget-daytype,[data-theme="night"] .weekly-report-budget-month-splits,[data-theme="night"] .weekly-report-budget-overrun { background: #1c2832; }
[data-theme="night"] .weekly-report-budget-daytype > div:last-child > span { background: #202d37; }
[data-theme="night"] .weekly-report-unbudgeted { border-color: #5d4932; background: #2b2824; }
[data-theme="night"] .weekly-report-category > i { background: #293640; }
[data-theme="night"] .weekly-report-budget-pace circle { stroke: #1c2832; }
[data-theme="night"] .weekly-cashflow-summary > span,[data-theme="night"] .weekly-cashflow-transaction,[data-theme="night"] .weekly-cashflow-transaction.is-transfer,[data-theme="night"] .weekly-cashflow-mode-switch,[data-theme="night"] .weekly-cashflow-plan-note { background: #1c2832; }
[data-theme="night"] .weekly-report-day.is-future > summary,[data-theme="night"] .weekly-cashflow-transaction.is-planned { background: #202d37; }
[data-theme="night"] .weekly-cashflow-mode-switch button.active { background: #293640; color: #e6edf2; }
[data-theme="night"] .weekly-cashflow-bar.is-planned-income,[data-theme="night"] .weekly-cashflow-bar.is-planned-expense { fill: #1c2832; }
[data-theme="night"] .weekly-cashflow-grid { stroke: #293640; }
@media (max-width: 600px) {
  .weekly-report-metrics article > .weekly-report-delta { font-size: 8px; }
  .weekly-report-surplus-detail { gap: 6px; }
  .weekly-report-surplus-detail > span { padding: 10px 9px; }
  .weekly-report-reference-grid { gap: 5px; }
  .weekly-report-reference-grid > span { padding: 8px 6px; }
  .weekly-report-reference-grid b { font-size: 11px; }
  .weekly-report-net-change,.weekly-report-extra,.weekly-report-reference,.weekly-report-status { padding: 11px 12px; }
}
.consumption-time-drilldown-content[hidden] { display: none; }
.consumption-time-drilldown-content section > strong { display: flex; justify-content: space-between; color: #63707c; font-size: 8px; }
.consumption-time-drilldown-content section > strong small { color: #9aa5ae; font-size: 7px; font-weight: 400; }

.weekly-report-worktime { display: grid; gap: 12px; align-items: initial; }
.weekly-report-worktime-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.weekly-report-worktime-heading h2 { margin: 5px 0; color: var(--ink); font-size: 21px; }
.weekly-report-worktime-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.weekly-report-worktime-kpis { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.weekly-report-worktime-kpis > span,.weekly-report-budget-hours > span { display: grid; gap: 5px; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.weekly-report-worktime-kpis small,.weekly-report-budget-hours small { color: var(--muted); font-size: 9px; }
.weekly-report-worktime-kpis b,.weekly-report-budget-hours b { color: var(--ink); font-size: 12px; line-height: 1.4; }
.weekly-report-hours-track-block,.weekly-report-hours-comparison-block,.weekly-report-worktime-subsection { display: grid; gap: 8px; padding-top: 10px; border-top: 1px solid var(--line); }
.weekly-report-hours-track-block > div,.weekly-report-hours-comparison-block > div { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 5px 10px; }
.weekly-report-hours-track-block strong,.weekly-report-hours-comparison-block strong,.weekly-report-worktime-subsection > strong { color: var(--ink); font-size: 10px; }
.weekly-report-hours-track-block > div > span { color: #438e7a; font-size: 11px; font-weight: 700; }
.weekly-report-hours-track-block > small,.weekly-report-hours-comparison-block > div > small,.weekly-report-hours-comparison-block > p,.weekly-report-hours-note { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.55; }
.weekly-report-hours-track { display: block; height: 9px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-hours-track b { display: block; height: 100%; min-width: 0; border-radius: inherit; background: linear-gradient(90deg,#70b69e,#438e7a); }
.weekly-report-hours-track b.over { background: linear-gradient(90deg,#e6a06d,#cf765e); }
.weekly-report-hours-comparison-block { gap: 7px; }
.weekly-report-hours-comparison { display: grid; gap: 3px; }
.weekly-report-hours-comparison b { color: var(--ink); font-size: 10px; }
.weekly-report-hours-comparison small { color: var(--muted); font-size: 8px; }
.weekly-report-hours-comparison-block > p { padding: 8px 10px; border-radius: 8px; background: #f8fafb; }
.weekly-report-category-hours { display: grid; gap: 1px; }
.weekly-report-category-hours > div { display: grid; grid-template-columns: minmax(85px, .8fr) minmax(55px,1fr) minmax(145px,auto) 90px; align-items: center; gap: 9px; min-height: 34px; border-bottom: 1px solid var(--line); }
.weekly-report-category-hours > div:last-child { border-bottom: 0; }
.weekly-report-category-hours > div > span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.weekly-report-category-hours > div > i { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.weekly-report-category-hours > div > i b { display: block; height: 100%; min-width: 2px; border-radius: inherit; background: #58a48d; }
.weekly-report-category-hours > div > strong { color: var(--ink); font-size: 9px; text-align: right; }
.weekly-report-category-hours > div > small { color: var(--muted); font-size: 8px; text-align: right; }
.weekly-report-routine-large,.weekly-report-budget-hours { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.weekly-report-routine-large article { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.weekly-report-routine-large small { color: var(--muted); font-size: 9px; }
.weekly-report-routine-large strong { color: var(--ink); font-size: 14px; }
.weekly-report-routine-large span { color: var(--muted); font-size: 8px; }
.weekly-report-budget-hours { grid-template-columns: repeat(3,minmax(0,1fr)); }
.weekly-report-budget-hours b { font-size: 10px; }
.weekly-report-hour-range { display: grid; gap: 4px; margin-top: 10px; padding: 10px 12px; border-radius: 9px; background: #f8fafb; }
.weekly-report-hour-range small,.weekly-report-hour-range span { color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-report-hour-range strong { color: var(--ink); font-size: 10px; }
[data-theme="night"] .weekly-report-worktime-kpis > span,[data-theme="night"] .weekly-report-budget-hours > span,[data-theme="night"] .weekly-report-routine-large article,[data-theme="night"] .weekly-report-hours-comparison-block > p,[data-theme="night"] .weekly-report-hour-range { background: #1c2832; }
.weekly-report-salary-analysis { display: grid; gap: 9px; }
.weekly-report-salary-month,.weekly-report-salary-change-block,.weekly-report-wage-week-compare,.weekly-report-post-pay,.weekly-report-salary-coverage { display: grid; gap: 7px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.weekly-report-salary-month > strong,.weekly-report-salary-change-block > strong,.weekly-report-wage-week-compare > div > strong,.weekly-report-post-pay > strong,.weekly-report-salary-coverage > strong { color: var(--ink); font-size: 9px; }
.weekly-report-salary-month > div { display: flex; flex-wrap: wrap; gap: 7px; }
.weekly-report-salary-month > div > span { display: grid; gap: 3px; flex: 1 1 100px; padding: 8px; border-radius: 8px; background: #f8fafb; color: var(--muted); font-size: 8px; }
.weekly-report-salary-month b { color: var(--ink); font-size: 11px; }
.weekly-report-salary-change-block > small,.weekly-report-wage-week-compare > div > small,.weekly-report-post-pay > small,.weekly-report-salary-coverage > small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-report-salary-changes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.weekly-report-salary-changes > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border-radius: 8px; background: #f8fafb; }
.weekly-report-salary-changes > span > b { color: var(--muted); font-size: 8px; }
.weekly-report-salary-changes > span > strong { color: var(--ink); font-size: 10px; }
.weekly-report-salary-changes > span > strong.is-up { color: #cb6f52; }
.weekly-report-salary-changes > span > strong.is-down { color: #438e7a; }

/* Financial sign colors: positive amounts are red, negative amounts are green. */
:root { --sign-positive: #d9534f; --sign-negative: #2f9a63; }
[data-theme="night"] { --sign-positive: #ff8b82; --sign-negative: #65c897; }
:where(.positive, .is-positive, .is-up, .is-increase, .sign-positive) { color: var(--sign-positive) !important; }
:where(.negative, .is-negative, .is-down, .is-decrease, .sign-negative, .sign-outflow) { color: var(--sign-negative) !important; }
svg .sign-positive { fill: var(--sign-positive) !important; }
svg .sign-negative, svg .sign-outflow { fill: var(--sign-negative) !important; }
.overview-dashboard-card[data-overview-section="cashflow"] .cashflow-forecast-item.net > strong .sign-positive,
.overview-dashboard-card[data-overview-section="cashflow"] .cashflow-forecast-item.net > strong .sign-negative,
.overview-dashboard-card[data-overview-section="cashflow"] .cashflow-forecast-item.net > strong .sign-outflow { color: #111827 !important; }
.summary-card, .summary-card * { color: #fff !important; }
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-main > strong,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-main > span,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-metrics b,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-metric-score,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-metrics b .sign-positive,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-metrics b .sign-negative,
.overview-dashboard-card[data-overview-section="health"] .health-score-card .health-score-metrics b .sign-outflow { color: #111 !important; }
.cashflow-forecast-item.expense > strong,
.metric-card.expense strong,
.monthly-report-metric.expense > strong,
.weekly-report-metrics strong.expense,
.annual-trend-selected .expense,
.monthly-report-selected .expense,
.monthly-report-chart-hint .expense { color: var(--sign-positive) !important; }
.balance-amount,
.balance-liquid strong,
.weekly-account-summary article:first-child > strong,
.weekly-account-summary article:nth-child(2) > strong { color: var(--sign-positive); }
.metric-card.balance-positive strong,
.account-detail-balance strong:not(.liability-balance),
.account-detail-overview-row > b:not(.negative),
.account-detail-flow > strong:not(.negative),
.account-month-totals > strong:not(.negative) { color: var(--sign-positive); }
.account-balance.liability-balance,
.account-detail-balance strong.liability-balance { color: var(--sign-negative); }
.finance-calendar-day small.work-earned,
.finance-calendar-day small.work-paid,
.finance-calendar-day small.work-planned { color: var(--sign-positive); }
.weekly-account-balance-pair > b { color: var(--sign-positive); }
[data-theme="night"] .metric-card.balance-positive strong,
[data-theme="night"] .account-detail-balance strong:not(.liability-balance),
[data-theme="night"] .account-detail-overview-row > b:not(.negative),
[data-theme="night"] .account-detail-flow > strong:not(.negative),
[data-theme="night"] .account-month-totals > strong:not(.negative) { color: var(--sign-positive); }
.weekly-report-salary-changes > span > small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.weekly-report-wage-week-compare > div:first-child { display: grid; gap: 3px; }
.weekly-report-wage-week-grid,.weekly-report-post-pay > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.weekly-report-wage-week-grid > span,.weekly-report-post-pay > div > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border-radius: 8px; background: #f8fafb; }
.weekly-report-wage-week-grid > span > b,.weekly-report-post-pay > div > span > small { color: var(--muted); font-size: 8px; }
.weekly-report-wage-week-grid > span > strong,.weekly-report-post-pay > div > span > b { color: var(--ink); font-size: 9px; }
.weekly-report-wage-week-grid > span > small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.weekly-report-post-pay > div > span > small { line-height: 1.4; }

/* Report amount colors follow the meaning of the flow, never its sign. */
.report-tab-panel { --report-net: var(--ink); }
.report-tab-panel :where(.positive, .negative, .is-positive, .is-negative, .is-up, .is-down, .is-increase, .is-decrease, .up, .down, .increased, .decreased, .sign-positive, .sign-negative, .sign-outflow) { color: var(--ink) !important; }
.report-tab-panel svg :where(.sign-positive, .sign-negative, .sign-outflow) { fill: currentColor !important; }
:root { --report-income: #d9534f; --report-expense: #2f9a63; --report-net: #111827; }
[data-theme="night"] { --report-income: #ff8b82; --report-expense: #65c897; --report-net: #e6edf2; }
.report-tab-panel .report-amount-income,
.report-tab-panel .report-amount-income .sign-positive,
.report-tab-panel .report-amount-income .sign-negative,
.report-tab-panel .report-amount-income .sign-outflow,
.report-tab-panel .income > strong,
.report-tab-panel .income > b,
.report-tab-panel strong.income,
.report-tab-panel b.income,
.report-tab-panel span.income,
.report-tab-panel .income-category-report .category-report-heading > div span:first-child b,
.report-tab-panel .income-category-report .category-donut-center-total,
.report-tab-panel .annual-report-metric.income > strong,
.report-tab-panel .monthly-report-metric.income > strong,
.report-tab-panel .weekly-report-metrics strong.income,
.report-tab-panel .weekly-account-summary .income,
.report-tab-panel .weekly-report-account .income,
.report-tab-panel .annual-month-income,
.report-tab-panel .monthly-report-selected .income,
.report-tab-panel .annual-trend-selected .income,
.report-tab-panel .transaction-amount.income { color: var(--report-income) !important; }
.report-tab-panel svg .report-amount-income,
.report-tab-panel .income-category-report svg .category-donut-center-total { fill: var(--report-income) !important; }
.report-tab-panel .report-amount-expense,
.report-tab-panel .report-amount-expense .sign-positive,
.report-tab-panel .report-amount-expense .sign-negative,
.report-tab-panel .report-amount-expense .sign-outflow,
.report-tab-panel .expense > strong,
.report-tab-panel .expense > b,
.report-tab-panel strong.expense,
.report-tab-panel b.expense,
.report-tab-panel span.expense,
.report-tab-panel .expense-category-report .category-report-heading > div span:first-child b,
.report-tab-panel .expense-category-report .category-donut-center-total,
.report-tab-panel .annual-report-metric.expense > strong,
.report-tab-panel .monthly-report-metric.expense > strong,
.report-tab-panel .weekly-report-metrics strong.expense,
.report-tab-panel .weekly-account-summary .expense,
.report-tab-panel .weekly-report-account .expense,
.report-tab-panel .annual-month-expense,
.report-tab-panel .monthly-report-selected .expense,
.report-tab-panel .annual-trend-selected .expense,
.report-tab-panel .transaction-amount.expense,
.report-tab-panel .fund-purpose-summary-card .annual-card-heading > b,
.report-tab-panel .fund-purpose-summary-row > em,
.report-tab-panel .fund-purpose-matrix-row > span > b,
.report-tab-panel .fund-purpose-trend-detail-list button > strong,
.report-tab-panel [data-report-year-category-type="expense"] .annual-rank-label > b { color: var(--report-expense) !important; }
.report-tab-panel svg .report-amount-expense,
.report-tab-panel .expense-category-report svg .category-donut-center-total { fill: var(--report-expense) !important; }
.report-tab-panel .report-amount-net,
.report-tab-panel .report-amount-net .sign-positive,
.report-tab-panel .report-amount-net .sign-negative,
.report-tab-panel .report-amount-net .sign-outflow,
.report-tab-panel strong.net,
.report-tab-panel b.net,
.report-tab-panel span.net:not(.is-muted),
.report-tab-panel .weekly-report-metrics article:nth-child(3) > strong,
.report-tab-panel .weekly-report-day-net:not(.is-muted),
.report-tab-panel .weekly-account-summary strong.net,
.report-tab-panel .monthly-summary-kpis article:nth-child(2) > strong,
.report-tab-panel .monthly-summary-kpis article:nth-child(3) > strong,
.report-tab-panel .monthly-summary-forecast-grid b,
.report-tab-panel .monthly-summary-change-list strong,
.report-tab-panel .monthly-report-hero-content > strong,
.report-tab-panel .monthly-report-disposable b,
.report-tab-panel .annual-summary-card .annual-summary-content > strong,
.report-tab-panel .annual-month-row > b,
.report-tab-panel .compare-metric.net > strong,
.report-tab-panel .compare-metric.net > small b,
.report-tab-panel .compare-metric.net > b,
.report-tab-panel .account-summary-change > b,
.report-tab-panel .account-asset-insight-metrics article:nth-child(3) > strong,
.report-tab-panel .account-asset-insight-breakdown > div:nth-child(-n+2) > b { color: var(--report-net) !important; }
.report-tab-panel svg .report-amount-net { fill: var(--report-net) !important; }
.report-tab-panel .annual-report-metric.income > strong,
.report-tab-panel .annual-report-metric.expense > strong,
.report-tab-panel .monthly-report-metric.income > strong,
.report-tab-panel .monthly-report-metric.expense > strong { font-variant-numeric: tabular-nums; }
.report-tab-panel .income-category-report .annual-rank-label > b,
.report-tab-panel [data-report-year-category-type="income"] .annual-rank-label > b { color: var(--report-income) !important; }
.report-tab-panel .expense-category-report .annual-rank-label > b { color: var(--report-expense) !important; }
.report-tab-panel .weekly-report-delta.income,
.report-tab-panel .monthly-report-change.income,
.report-tab-panel .fund-purpose-income-summary article:first-child > strong { color: var(--report-income) !important; }
.report-tab-panel .weekly-report-delta.expense,
.report-tab-panel .monthly-report-change.expense { color: var(--report-expense) !important; }
.report-tab-panel .weekly-report-delta.net:not(.is-muted) { color: var(--report-net) !important; }
.report-tab-panel [data-report-flow="inflow"] .annual-card-heading > span { color: var(--report-income) !important; }
.report-tab-panel [data-report-flow="outflow"] .annual-card-heading > span { color: var(--report-expense) !important; }
.report-tab-panel [data-report-flow="net"] .annual-card-heading > span { color: var(--report-net) !important; }
.report-tab-panel .consumption-trend-overall.is-up,
.report-tab-panel .consumption-trend-change.is-up { color: var(--report-income) !important; }
.report-tab-panel .consumption-trend-overall.is-down,
.report-tab-panel .consumption-trend-change.is-down { color: var(--report-expense) !important; }
.report-tab-panel .consumption-trend-overall.is-flat,
.report-tab-panel .consumption-trend-change.is-flat { color: var(--ink) !important; }
.report-tab-panel .monthly-summary-analysis .monthly-summary-signed-change.is-positive { color: var(--report-income) !important; }
.report-tab-panel .monthly-summary-analysis .monthly-summary-signed-change.is-negative { color: var(--report-expense) !important; }

/* Keep semantic colors readable on the report summary cards. */
.report-tab-panel .annual-summary-card { border: 1px solid #e3ece7; background: linear-gradient(112deg,#f5faf8,#eff8f3 52%,#edf7f2); color: #26352f; box-shadow: 0 8px 20px #298b7910; }
.report-tab-panel .annual-summary-card .annual-summary-kicker { color: #52645d; }
.report-tab-panel .annual-summary-card .annual-summary-label { color: #718179; }
.report-tab-panel .annual-summary-card .annual-summary-foot { color: #718179; }
.report-tab-panel .annual-summary-card .annual-summary-foot span:first-child b { color: var(--report-income) !important; }
.report-tab-panel .annual-summary-card .annual-summary-foot span:last-child b { color: var(--report-expense) !important; }
.report-tab-panel .annual-summary-card .annual-summary-art { opacity: .32; }
.report-tab-panel .monthly-report-hero { border: 1px solid #e0e8f0; background: linear-gradient(112deg,#f1f6fc,#eef5fa 52%,#edf7f7); color: #263544; box-shadow: 0 8px 20px #5985e20c; }
.report-tab-panel .monthly-report-hero-kicker { color: #506579; }
.report-tab-panel .monthly-report-hero-label { color: #718397; }
.report-tab-panel .monthly-report-disposable { color: #718397; }
.report-tab-panel .monthly-report-hero-foot { color: #718397; }
.report-tab-panel .monthly-report-hero-foot b { color: #52606e; }
.report-tab-panel .monthly-report-hero-flow { color: #718397; }
.report-tab-panel .monthly-report-hero-flow b { color: #52606e; }
.report-tab-panel .monthly-report-hero-flow b.report-amount-expense { color: var(--report-expense) !important; }
.report-tab-panel .monthly-report-hero-flow b.report-amount-income { color: var(--report-income) !important; }
.report-tab-panel .monthly-report-hero-art { opacity: .42; }
.report-tab-panel .monthly-report-hero-foot span:first-child b { color: var(--report-expense) !important; }
.report-tab-panel .monthly-report-hero-foot span:last-child b { color: var(--report-income) !important; }

[data-theme="night"] .report-tab-panel .annual-summary-card { border-color: #34443e; background: linear-gradient(112deg,#202e2a,#23352e 52%,#263a32); color: #e7efea; }
[data-theme="night"] .report-tab-panel .annual-summary-card .annual-summary-kicker,
[data-theme="night"] .report-tab-panel .annual-summary-card .annual-summary-label,
[data-theme="night"] .report-tab-panel .annual-summary-card .annual-summary-foot { color: #bdccc4; }
[data-theme="night"] .report-tab-panel .monthly-report-hero { border-color: #344250; background: linear-gradient(112deg,#202b38,#202e3b 52%,#203538); color: #e7edf2; }
[data-theme="night"] .report-tab-panel .monthly-report-hero-kicker,
[data-theme="night"] .report-tab-panel .monthly-report-hero-label,
[data-theme="night"] .report-tab-panel .monthly-report-disposable,
[data-theme="night"] .report-tab-panel .monthly-report-hero-foot { color: #b8c6d1; }
[data-theme="night"] .report-tab-panel .monthly-report-hero-foot b { color: #e6edf2; }

/* Overview monthly budget figures use one neutral color, independent of state. */
:root { --overview-budget-number: #111827; }
[data-theme="night"] { --overview-budget-number: #e6edf2; }
.overview-dashboard-card[data-overview-section="budget"] .budget-number > strong,
.overview-dashboard-card[data-overview-section="budget"] .budget-number > strong > small,
.overview-dashboard-card[data-overview-section="budget"] .budget-number > span,
.overview-dashboard-card[data-overview-section="budget"] .budget-footnote > b,
.overview-dashboard-card[data-overview-section="budget"] .budget-footnote > strong,
.overview-dashboard-card[data-overview-section="budget"] .budget-footnote > span > b,
.overview-dashboard-card[data-overview-section="budget"] .daily-spend-guidance > strong,
.overview-dashboard-card[data-overview-section="budget"] .daily-spend-guidance > strong > em,
.overview-dashboard-card[data-overview-section="budget"] .daily-spend-guidance small > b { color: var(--overview-budget-number) !important; }
.overview-dashboard-card[data-overview-section="budget"] .budget-footnote > span > b,
.overview-dashboard-card[data-overview-section="budget"] .daily-spend-guidance small > b { font-weight: 650; }

/* Stocks and differences are neutral; only actual incoming/outgoing money is colored. */
.report-tab-panel .weekly-account-summary article:nth-child(-n+3) > strong,
.report-tab-panel .weekly-account-balance-pair > b,
.report-tab-panel .weekly-account-balance-pair > em,
.report-tab-panel .account-summary-change,
.report-tab-panel .net-assets-chip,
.report-tab-panel .net-assets-growth-chip,
.report-tab-panel .net-assets-detail-metrics b,
.report-tab-panel .net-assets-month-detail > summary span,
.report-tab-panel .liquid-cash-month-detail > summary span,
.report-tab-panel .free-cashflow-waterfall-result,
.report-tab-panel .free-cashflow-waterfall-summary > em,
.report-tab-panel .free-cashflow-waterfall-detail > span:nth-child(2) > b,
.report-tab-panel .free-cashflow-waterfall-detail > span:nth-child(3) > b,
.report-tab-panel .free-cashflow-waterfall-stage.total-positive .free-cashflow-waterfall-amount,
.report-tab-panel .free-cashflow-waterfall-stage.total-negative .free-cashflow-waterfall-amount { color: var(--ink) !important; }
.report-tab-panel .free-cashflow-waterfall-stage.income .free-cashflow-waterfall-amount { color: var(--report-income) !important; }
.report-tab-panel .free-cashflow-waterfall-stage:is(.necessary,.optional,.enjoyment,.other,.debt) .free-cashflow-waterfall-amount,
.report-tab-panel .free-cashflow-waterfall-summary > span > b { color: var(--report-expense) !important; }
.report-tab-panel svg text[class*="axis"],
.report-tab-panel svg [class*="axis"] text,
.report-tab-panel svg [class*="grid"] text,
.report-tab-panel svg text:is(.annual-chart-month,.monthly-report-date,.monthly-pressure-date,.engel-month-label,.living-cost-month,.normal-expense-month,.account-forecast-band-month,.day),
.report-tab-panel .fund-purpose-trend-month > text { fill: var(--muted) !important; color: var(--muted) !important; }
.report-tab-panel :is(.free-cashflow-waterfall-axis,.trend-y-axis,.monthly-chart-y-axis),
.report-tab-panel :is(.free-cashflow-waterfall-axis,.trend-y-axis,.monthly-chart-y-axis) * { color: var(--muted) !important; }
.weekly-report-wage-week-compare > p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.weekly-report-salary-coverage > span { color: var(--ink); font-size: 9px; line-height: 1.5; }
[data-theme="night"] .weekly-report-salary-month,[data-theme="night"] .weekly-report-salary-change-block,[data-theme="night"] .weekly-report-wage-week-compare,[data-theme="night"] .weekly-report-post-pay,[data-theme="night"] .weekly-report-salary-coverage { background: #1c2832; }
[data-theme="night"] .weekly-report-salary-month > div > span,[data-theme="night"] .weekly-report-salary-changes > span,[data-theme="night"] .weekly-report-wage-week-grid > span,[data-theme="night"] .weekly-report-post-pay > div > span { background: #202d37; }
@media (max-width: 600px) {
  .weekly-report-worktime { gap: 10px; }
  .weekly-report-worktime-heading h2 { font-size: 18px; }
  .weekly-report-worktime-kpis { gap: 5px; }
  .weekly-report-worktime-kpis > span { padding: 8px 7px; }
  .weekly-report-worktime-kpis small { font-size: 8px; }
  .weekly-report-worktime-kpis b { font-size: 9px; }
  .weekly-report-category-hours > div { grid-template-columns: minmax(70px,.75fr) minmax(35px,.7fr) minmax(105px,auto); gap: 6px; }
  .weekly-report-category-hours > div > small { grid-column: 1 / -1; margin-top: -5px; padding-bottom: 5px; text-align: left; }
  .weekly-report-category-hours > div > strong { font-size: 8px; }
  .weekly-report-routine-large { gap: 5px; }
  .weekly-report-routine-large article { padding: 8px 7px; }
  .weekly-report-routine-large strong { font-size: 12px; }
  .weekly-report-routine-large span { font-size: 7px; }
  .weekly-report-budget-hours { gap: 5px; }
  .weekly-report-budget-hours > span { padding: 8px 6px; }
  .weekly-report-budget-hours small { font-size: 8px; }
  .weekly-report-budget-hours b { font-size: 8px; }
  .weekly-report-salary-month,.weekly-report-salary-change-block,.weekly-report-wage-week-compare,.weekly-report-post-pay,.weekly-report-salary-coverage { padding: 8px; }
  .weekly-report-salary-changes { grid-template-columns: 1fr; gap: 5px; }
  .weekly-report-salary-changes > span { grid-template-columns: minmax(65px,.6fr) minmax(56px,auto) minmax(0,1fr); align-items: center; gap: 6px; }
  .weekly-report-salary-changes > span > small { text-align: right; }
  .weekly-report-wage-week-grid,.weekly-report-post-pay > div { gap: 5px; }
  .weekly-report-salary-month > div > span { flex-basis: 80px; }
}
.consumption-time-category-list,.consumption-time-transaction-list { display: grid; max-height: 220px; overflow: auto; margin-top: 4px; border-top: 1px solid #edf0f2; }
.consumption-time-category-row,.consumption-time-transaction-row { display: grid; grid-template-columns: minmax(0,1fr) auto 34px; align-items: center; gap: 7px; padding: 6px 2px; border-bottom: 1px solid #f0f2f4; }
.consumption-time-category-row > span,.consumption-time-transaction-row > span { display: grid; min-width: 0; gap: 2px; }
.consumption-time-category-row strong,.consumption-time-transaction-row strong { overflow: hidden; color: #586574; font-size: 8px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.consumption-time-category-row span small,.consumption-time-transaction-row span small { overflow: hidden; color: #9aa5ae; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.consumption-time-category-row b,.consumption-time-transaction-row b { color: #596775; font-size: 8px; white-space: nowrap; }
.consumption-time-category-row > small { color: #9aa5ae; font-size: 7px; text-align: right; }
.consumption-time-empty { padding: 8px 2px; color: #9aa5ae; font-size: 8px; }
.consumption-time-daytype-section,.consumption-time-heatmap-section { margin: 0 14px 10px; }
.consumption-time-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 8px; padding-bottom: 6px; }
.consumption-time-section-heading strong { color: #596775; font-size: 9px; }
.consumption-time-section-heading small,.consumption-time-heatmap-note { color: #9aa5ae; font-size: 7px; }
.consumption-time-daytype-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.consumption-time-daytype { display: grid; grid-template-columns: 1fr auto; gap: 4px 6px; padding: 8px; border: 1px solid #edf0f2; border-radius: 7px; }
.consumption-time-daytype strong { color: #596775; font-size: 8px; }
.consumption-time-daytype > span { color: #9aa5ae; font-size: 7px; text-align: right; }
.consumption-time-daytype b { color: #398f78; font-size: 10px; }
.consumption-time-daytype > small { color: #9aa5ae; font-size: 7px; text-align: right; }
.consumption-time-heatmap { display: grid; gap: 3px; }
.consumption-time-heatmap-header,.consumption-time-heatmap-row { display: grid; grid-template-columns: 48px repeat(7,minmax(0,1fr)); align-items: stretch; gap: 3px; }
.consumption-time-heatmap-weekday { color: #8d99a3; font-size: 7px; text-align: center; }
.consumption-time-heatmap-row > strong { align-self: center; color: #687581; font-size: 7px; }
.consumption-time-heat-cell { display: grid; min-width: 0; min-height: 34px; align-content: center; gap: 2px; padding: 3px 1px; border: 1px solid transparent; border-radius: 5px; background: #f2f5f5; color: #687581; cursor: pointer; }
.consumption-time-heat-cell strong { overflow: hidden; font-size: 6px; font-weight: 600; text-overflow: clip; white-space: nowrap; text-align: center; }
.consumption-time-heat-cell small { color: #87939c; font-size: 6px; text-align: center; }
.consumption-time-heat-cell.level-1 { background: #e7f4ef; }
.consumption-time-heat-cell.level-2 { background: #cceadd; }
.consumption-time-heat-cell.level-3 { background: #9fd4bc; }
.consumption-time-heat-cell.level-4 { background: #68b899; color: #fff; }
.consumption-time-heat-cell.level-4 small { color: #f1fffa; }
.consumption-time-heat-cell.selected { border-color: #4d9e83; box-shadow: 0 0 0 1px #4d9e8333; }
.consumption-time-heatmap-note { display: block; margin-top: 5px; line-height: 1.5; }
@media (max-width: 430px) {
  .consumption-time-selected-detail,.consumption-time-daytype-section,.consumption-time-heatmap-section { margin-right: 10px; margin-left: 10px; }
  .consumption-time-heatmap-header,.consumption-time-heatmap-row { grid-template-columns: 41px repeat(7,minmax(0,1fr)); gap: 2px; }
  .consumption-time-heat-cell { min-height: 32px; }
  .consumption-time-heat-cell strong,.consumption-time-heat-cell small { font-size: 5px; }
}

.cashflow-cycle-cutoff { margin: -3px 15px 10px; color: #8b98a3; font-size: 8px; }
.cashflow-cycle-subsection { display: grid; gap: 9px; margin: 10px 15px 0; padding: 11px 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fcfdfd; }
.cashflow-cycle-subheading { display: grid; gap: 3px; }
.cashflow-cycle-subheading strong { color: #53616f; font-size: 10px; }
.cashflow-cycle-subheading small { color: #9ba5af; font-size: 7px; line-height: 1.45; }
.cashflow-cycle-burn-summary { display: flex; flex-wrap: wrap; gap: 6px 14px; color: #87939e; font-size: 8px; }
.cashflow-cycle-burn-summary span { display: flex; gap: 4px; align-items: baseline; }
.cashflow-cycle-burn-summary b { color: #4c5c68; font-size: 9px; }
.cashflow-cycle-burn-bands { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.cashflow-cycle-burn-bands > div { display: grid; gap: 4px; min-width: 0; padding: 8px 7px; border-radius: 7px; background: #f3f7f6; }
.cashflow-cycle-burn-bands span { color: #8997a2; font-size: 7px; }
.cashflow-cycle-burn-bands strong { color: #498f7d; font-size: 10px; }
.cashflow-cycle-burn-bands small { color: #a0aab3; font-size: 6px; }
.cashflow-cycle-method { color: #a0aab3; font-size: 7px; line-height: 1.45; }
.cashflow-cycle-half-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.cashflow-cycle-half { display: grid; gap: 5px; min-width: 0; padding: 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; }
.cashflow-cycle-half-heading { display: flex; justify-content: space-between; gap: 5px; align-items: baseline; }
.cashflow-cycle-half-heading strong { color: #53616f; font-size: 9px; }
.cashflow-cycle-half-heading small,.cashflow-cycle-half > span { color: #9ba5af; font-size: 7px; }
.cashflow-cycle-half > b { color: #d27660; font-size: 13px; }
.cashflow-cycle-half-track { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #eef1f2; }
.cashflow-cycle-half-track em { display: block; height: 100%; border-radius: inherit; background: #e68c70; }
.cashflow-cycle-half.late .cashflow-cycle-half-track em { background: #7c91c1; }
.cashflow-cycle-half-change { color: #697987; font-size: 8px; font-weight: 600; }
.cashflow-cycle-category-change { display: flex; flex-wrap: wrap; gap: 5px; }
.cashflow-cycle-category-change span { padding: 4px 6px; border-radius: 6px; background: #f3f6f8; color: #758390; font-size: 7px; }
@media (max-width: 600px) {
  .cashflow-cycle-subsection { margin-right: 11px; margin-left: 11px; }
  .cashflow-cycle-cutoff { margin-right: 11px; margin-left: 11px; }
  .cashflow-cycle-burn-bands { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
[data-theme="night"] .cashflow-cycle-subsection,
[data-theme="night"] .cashflow-cycle-detail,
[data-theme="night"] .cashflow-cycle-half { border-color: #344250; background: #18242d; }
[data-theme="night"] .cashflow-cycle-burn-bands > div,
[data-theme="night"] .cashflow-cycle-category-change span { background: #202b38; }
[data-theme="night"] .cashflow-cycle-subheading strong,
[data-theme="night"] .cashflow-cycle-burn-summary b,
[data-theme="night"] .cashflow-cycle-half-heading strong { color: #d2dbe3; }
[data-theme="night"] .free-cashflow-waterfall-axis { color: #a8b5c1; }
[data-theme="night"] .free-cashflow-waterfall-axis .zero { background: #1a2631; color: #e1e8ee; }
[data-theme="night"] .free-cashflow-waterfall-stage.is-selected { background: #253544; }
[data-theme="night"] .free-cashflow-waterfall-stage-plot::after { background: #43515e; }
[data-theme="night"] .free-cashflow-waterfall-connector { background: #a7b5c29c; }
[data-theme="night"] .free-cashflow-waterfall-amount { color: #d6dee6; text-shadow: 0 1px 2px #111a22,0 -1px 2px #111a22; }
[data-theme="night"] .free-cashflow-waterfall-stage.income .free-cashflow-waterfall-amount { color: #ff9b84; }
[data-theme="night"] .free-cashflow-waterfall-stage.total-positive .free-cashflow-waterfall-amount { color: #8bd0b7; }
[data-theme="night"] .free-cashflow-waterfall-stage.total-negative .free-cashflow-waterfall-amount { color: #ff9a8d; }
[data-theme="night"] .free-cashflow-waterfall-stage > small { color: #c0cbd4; }
[data-theme="night"] .free-cashflow-waterfall-stage.total-positive > small { color: #8bd0b7; }
[data-theme="night"] .free-cashflow-waterfall-stage.total-negative > small { color: #ff9a8d; }
[data-theme="night"] .free-cashflow-waterfall-detail { border-color: #344250; background: #18242d; }
[data-theme="night"] .free-cashflow-waterfall-detail b { color: #d6dee6; }
[data-theme="night"] .free-cashflow-waterfall-detail b.positive { color: #8bd0b7; }
[data-theme="night"] .free-cashflow-waterfall-detail b.negative { color: #ff9a8d; }
[data-theme="night"] .free-cashflow-waterfall-hint,
[data-theme="night"] .free-cashflow-waterfall-legend { color: #a6b2bf; }
[data-theme="night"] .free-cashflow-waterfall-legend i.income { background: #49302e; color: #ff9b84; }
[data-theme="night"] .free-cashflow-waterfall-legend i.outflow { background: #2b3641; color: #d6dee6; }
[data-theme="night"] .free-cashflow-waterfall-legend i.ending { background: #254036; color: #8bd0b7; }
[data-theme="night"] .free-cashflow-waterfall-summary { border-color: #344250; background: #18242d; }
[data-theme="night"] .free-cashflow-waterfall-summary b { color: #d6dee6; }
[data-theme="night"] .free-cashflow-waterfall-summary em { color: #c1ccd5; }
[data-theme="night"] .free-cashflow-waterfall-summary em.positive { color: #8bd0b7; }
[data-theme="night"] .free-cashflow-waterfall-summary em.negative { color: #ff9a8d; }
[data-theme="night"] .free-cashflow-waterfall-note { color: #a6b2bf; }
[data-theme="night"] .monthly-trend-heading > div span { color: #9ca9b5; }
[data-theme="night"] .monthly-trend-mode-switch { border-color: #344250; background: #202b38; }
[data-theme="night"] .monthly-trend-mode-switch button { color: #a6b2bf; }
[data-theme="night"] .monthly-trend-mode-switch button[aria-pressed="true"] { background: #344250; color: #e1e8ee; box-shadow: none; }
[data-theme="night"] .monthly-report-line.income-comparison { stroke: #9ca9b5; }
[data-theme="night"] .monthly-report-line.expense-comparison { stroke: #9ca9b5; }
[data-theme="night"] .monthly-report-line.expense-budget-pace { stroke: #d9b45e; }
[data-theme="night"] .monthly-report-chart-hint .expense-budget-legend { color: #d9b45e; }
[data-theme="night"] .monthly-report-trend-empty { color: #a6b2bf; }
[data-theme="night"] .category-fund-purpose-card .fund-purpose-summary-item { border-color: #344250; }
[data-theme="night"] .fund-purpose-comparison-line,[data-theme="night"] .fund-purpose-trend-heading small { color: #a6b2bf; }
[data-theme="night"] .fund-purpose-income-line { color: #91c6aa; }
[data-theme="night"] .fund-purpose-income-summary article,[data-theme="night"] .fund-purpose-trend { border-color: #344250; background: #1d2b33; }
[data-theme="night"] .fund-purpose-income-summary small,[data-theme="night"] .fund-purpose-trend-heading strong,[data-theme="night"] .fund-purpose-trend-legend { color: #a6b2bf; }
[data-theme="night"] .fund-purpose-income-summary strong { color: #91c6aa; }
[data-theme="night"] .fund-purpose-trend-svg line { stroke: #344250; }
[data-theme="night"] .fund-purpose-trend-svg text { fill: #a6b2bf; }
[data-theme="night"] .category-fund-purpose-card .fund-purpose-summary-row:hover,[data-theme="night"] .fund-purpose-transaction:hover { background: #263640; }
[data-theme="night"] .fund-purpose-coverage > div,[data-theme="night"] .fund-purpose-analysis-block { border-color: #344250; background: #1d2b33; }
[data-theme="night"] .fund-purpose-coverage strong,[data-theme="night"] .fund-purpose-section-heading strong,[data-theme="night"] .fund-purpose-contribution-row > strong,[data-theme="night"] .fund-purpose-matrix-row > strong,[data-theme="night"] .fund-purpose-trend-detail-heading strong,[data-theme="night"] .fund-purpose-trend-detail-heading b,[data-theme="night"] .fund-purpose-trend-detail-list button strong,[data-theme="night"] .fund-purpose-transaction > b { color: #d0d9df; }
[data-theme="night"] .fund-purpose-coverage small,[data-theme="night"] .fund-purpose-coverage span,[data-theme="night"] .fund-purpose-section-heading small,[data-theme="night"] .fund-purpose-analysis-note,[data-theme="night"] .fund-purpose-contribution-row > span,[data-theme="night"] .fund-purpose-contribution-row > small,[data-theme="night"] .fund-purpose-matrix-row > span,[data-theme="night"] .fund-purpose-drill-heading small,[data-theme="night"] .fund-purpose-drill-category small,[data-theme="night"] .fund-purpose-transaction strong,[data-theme="night"] .fund-purpose-transaction small,[data-theme="night"] .fund-purpose-detail-empty,[data-theme="night"] .fund-purpose-trend-detail > small { color: #a6b2bf; }
[data-theme="night"] .fund-purpose-matrix-row,[data-theme="night"] .fund-purpose-drill-group { border-color: #344250; }
[data-theme="night"] .fund-purpose-matrix-row.is-heading { border-color: #40505c; }
[data-theme="night"] .fund-purpose-drill { border-left-color: #406453; background: #1d2b33; }
[data-theme="night"] .fund-purpose-trend-mode { border-color: #344250; background: #202b38; }
[data-theme="night"] .fund-purpose-trend-mode button { color: #a6b2bf; }
[data-theme="night"] .fund-purpose-trend-mode button.active,[data-theme="night"] .fund-purpose-trend-detail-list button { border-color: #344250; background: #263640; color: #d0d9df; box-shadow: none; }
[data-theme="night"] .fund-purpose-trend-month .fund-purpose-month-highlight { fill: #263640; }
[data-theme="night"] .fund-purpose-trend-month.is-selected text { fill: #9ac7af; }
[data-theme="night"] .fund-purpose-trend-detail { background: #202b38; }
[data-theme="night"] .fund-purpose-trend-detail-list button.necessary,[data-theme="night"] .fund-purpose-trend-detail-list button.optional,[data-theme="night"] .fund-purpose-trend-detail-list button.enjoyment { border-color: #40505c; }
[data-theme="night"] .annual-trend-controls > small,[data-theme="night"] .annual-trend-legend,[data-theme="night"] .annual-trend-legend small,[data-theme="night"] .annual-trend-compare-note,[data-theme="night"] .annual-trend-note { color: #a6b2bf; }
[data-theme="night"] .annual-trend-controls > small span { color: #c0ccd2; }
[data-theme="night"] .annual-trend-mode { border-color: #344250; background: #202b38; }
[data-theme="night"] .annual-trend-mode button { color: #a6b2bf; }
[data-theme="night"] .annual-trend-mode button.active { background: #344250; color: #e1e8ee; box-shadow: none; }
[data-theme="night"] .annual-trend-detail { border-color: #344250; background: #1d2b33; }
[data-theme="night"] .annual-trend-detail-head strong,[data-theme="night"] .annual-trend-detail-grid strong { color: #d4e0e2; }
[data-theme="night"] .annual-trend-detail-grid > div > span,[data-theme="night"] .annual-trend-detail-grid small { color: #a0aeb5; }
[data-theme="night"] .annual-trend-status { background: #263a34; color: #8fc5ae; }
[data-theme="night"] .annual-trend-status.current { background: #46372a; color: #e4b37b; }
[data-theme="night"] .annual-trend-status.forecast { background: #2b3346; color: #aab7e0; }
[data-theme="night"] .annual-trend-excluded-note,[data-theme="night"] .annual-trend-start-excluded { color: #a0aeb5; }
[data-theme="night"] .annual-trend-excluded-note,[data-theme="night"] .annual-trend-start-excluded { color: #a0aeb5; }
[data-theme="night"] .annual-chart-grid line { stroke: #344250; }
[data-theme="night"] .annual-chart-grid text,[data-theme="night"] .annual-chart-month { fill: #a6b2bf; }
[data-theme="night"] .annual-chart-cursor,[data-theme="night"] .annual-trend-zero { stroke: #50606c; }
[data-theme="night"] .annual-net-point { stroke: #1c2832; }
[data-theme="night"] .annual-net-point.is-forecast { fill: #1c2832; stroke: #8794ce; }
[data-theme="night"] .annual-trend-status.is-ledger-start-month { background: #303d47; color: #bdc8ce; }

@media (max-width: 560px) {
  .engel-legend { gap: 7px 10px; padding-right: 11px; padding-left: 11px; font-size: 8px; }
  .engel-legend small { flex-basis: 100%; }
  .engel-chart-scroll { padding-right: 7px; padding-left: 7px; }
  .engel-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-right: 11px; margin-left: 11px; }
  .engel-detail-grid article { min-height: 64px; padding: 8px; }
  .engel-detail-grid article strong { font-size: 9px; }
  .engel-selected { margin-right: 11px; margin-left: 11px; }
}

[data-theme="night"] .living-cost-mode { border-color: #344250; background: #18242d; }
[data-theme="night"] .living-cost-mode button { color: #a0aeb5; }
[data-theme="night"] .living-cost-mode button.is-active { background: #2a3945; color: #83cbb8; }
[data-theme="night"] .living-cost-summary article,[data-theme="night"] .living-cost-baseline { border-color: #344250; background: #18242d; }
[data-theme="night"] .living-cost-summary strong,[data-theme="night"] .living-cost-baseline > span { color: #d4e0e2; }
[data-theme="night"] .living-cost-legend { color: #a0aeb5; }
[data-theme="night"] .living-cost-grid line { stroke: #344250; }
[data-theme="night"] .living-cost-grid text,[data-theme="night"] .living-cost-month { fill: #9ba9b4; }
[data-theme="night"] .living-cost-stack-segment { stroke: #1a2631; }
[data-theme="night"] .living-cost-zero-point.is-zero { fill: #1a2631; }
[data-theme="night"] .wage-guarantee-tolerance article,[data-theme="night"] .wage-guarantee-actual-forecast,[data-theme="night"] .wage-guarantee-stack-wrap,[data-theme="night"] .wage-guarantee-trend,[data-theme="night"] .wage-guarantee-contribution { border-color: #344250; background: #18242d; }
[data-theme="night"] .wage-guarantee-tolerance strong,[data-theme="night"] .wage-guarantee-actual-forecast strong,[data-theme="night"] .wage-guarantee-stack-title strong,[data-theme="night"] .wage-guarantee-subheading strong,[data-theme="night"] .wage-guarantee-stack-wrap > strong,[data-theme="night"] .wage-guarantee-contribution-row { color: #d4e0e2; }
[data-theme="night"] .wage-guarantee-grid line { stroke: #344250; }
[data-theme="night"] .wage-guarantee-grid:nth-child(2) line { stroke: #75838a; }
[data-theme="night"] .wage-guarantee-grid text,[data-theme="night"] .wage-guarantee-month-label { fill: #9ba9b4; }
[data-theme="night"] .wage-guarantee-stack { background: #303c43; }
[data-theme="night"] .wage-guarantee-contribution-row > i { background: linear-gradient(90deg,#303c43 49.5%,#7b8990 49.5%,#7b8990 50.5%,#303c43 50.5%); }
[data-theme="night"] .necessary-hours-rate-switch,[data-theme="night"] .necessary-hours-comparison,[data-theme="night"] .necessary-hours-chart,[data-theme="night"] .necessary-hours-day-allocation { border-color: #344250; background: #18242d; }
[data-theme="night"] .necessary-hours-rate-switch button { color: #a0aeb5; }
[data-theme="night"] .necessary-hours-rate-switch button.active { background: #2a3945; color: #83cbb8; box-shadow: none; }
[data-theme="night"] .necessary-hours-rate-summary { background: #1b302e; }
[data-theme="night"] .necessary-hours-rate-summary strong,[data-theme="night"] .necessary-hours-comparison strong,[data-theme="night"] .necessary-hours-comparison b,[data-theme="night"] .necessary-hours-chart-heading strong { color: #d4e0e2; }
[data-theme="night"] .necessary-hours-chart-grid line { stroke: #344250; }
[data-theme="night"] .necessary-hours-chart-grid text,[data-theme="night"] .necessary-hours-chart-label,[data-theme="night"] .necessary-hours-chart-missing { fill: #9ba9b4; }
[data-theme="night"] .necessary-hours-chart-value { fill: #c3ced2; }
[data-theme="night"] .necessary-hours-day-track { background: #303c43; }
.account-report-summary-card .account-report-summary-content { width: 100%; }
.account-report-summary-card .annual-summary-kicker { display: block; max-width: 100%; line-height: 1.6; white-space: normal; }
.account-report-summary-card .annual-summary-foot { flex-wrap: wrap; }
.account-summary-change,.account-summary-ratio-change { margin-top: 9px; color: #fff; font-size: 11px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.account-summary-asset-split { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 12px; padding-top: 10px; border-top: 1px solid #ffffff40; font-size: 11px; line-height: 1.6; }
.account-summary-asset-split b { font-weight: 600; font-variant-numeric: tabular-nums; }
.report-tab-panel .account-report-summary-card .annual-summary-kicker,
.report-tab-panel .account-report-summary-card .annual-summary-label,
.report-tab-panel .account-report-summary-card .annual-summary-foot,
.report-tab-panel .account-report-summary-card .annual-summary-foot b,
.report-tab-panel .account-report-summary-card .account-summary-change,
.report-tab-panel .account-report-summary-card .account-summary-change > b,
.report-tab-panel .account-report-summary-card .account-summary-asset-split,
.report-tab-panel .account-report-summary-card .account-summary-asset-split b,
.report-tab-panel .account-report-summary-card .account-summary-ratio-change { color: #fff !important; }
.report-tab-panel .account-report-summary-card .annual-summary-foot i { background: #ffffff80; }
.cash-reserve-card .reserve-metric-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 16px; }
.reserve-metric-grid>div { min-width:0;padding:12px;background:#f6f8fa;border-radius:10px;font-size:12px; }
.reserve-metric-grid strong,.reserve-metric-grid small { display:block;margin-top:5px;overflow-wrap:anywhere; }
.reserve-metric-grid strong { font-size:18px;font-variant-numeric:tabular-nums; }
.reserve-metric-grid small { color:#87919f;font-size:11px;line-height:1.6; }
.cash-reserve-card form,.cash-reserve-card>details { margin:14px 16px; }
.cash-reserve-card details { padding:10px 0;border-top:1px solid #edf0f3;font-size:12px;line-height:1.7; }
.cash-reserve-card summary { cursor:pointer;font-weight:600; }
.cash-reserve-card details small { color:#87919f; }
.reserve-month-setting { display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:12px; }
.reserve-month-setting input { width:76px;padding:8px;border:1px solid #dfe5e9;border-radius:7px; }
.reserve-plan-row,.reserve-sample-row { display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #edf0f3; }
.reserve-plan-row>div { flex:1 1 160px;min-width:0;overflow-wrap:anywhere; }
.reserve-plan-row small { display:block; }
.reserve-plan-row label,.reserve-sample-row label { display:flex;align-items:center;gap:5px;font-size:11px; }
.reserve-history-chart { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;padding:20px 0 4px; }
.reserve-history-column { min-width:0;text-align:center; }
.reserve-history-column>small { font-size:9px;white-space:nowrap; }
.reserve-history-bar { height:140px;position:relative;border-bottom:1px solid #dfe5e9; }
.reserve-history-stack { display:flex;flex-direction:column-reverse;position:absolute;bottom:0;left:20%;right:20%;min-height:0; }
.reserve-history-stack i { display:block;min-height:0; }
.reserve-history-stack .turnover { background:#e4a659; }
.reserve-history-stack .emergency { background:#57ad96; }
.reserve-history-stack .flexible { background:#799bc8; }
.reserve-history-target { position:absolute;left:5%;right:5%;border-top:2px solid #46566d; }
.reserve-history-empty { position:absolute;bottom:0;left:0;right:0;color:#a2abb5; }
.reserve-chart-legend { font-size:10px;color:#7c8996; }
.reserve-history-detail { display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;padding:7px 0;border-bottom:1px solid #edf0f3; }

/* Liquid cash trend: balance line with monthly flow bars and expandable audit details */
.liquid-cash-trend-selected { flex-wrap: wrap; gap: 5px; }
.liquid-cash-trend-selected .net-assets-chip { background: #f2f5f8; color: #586675; }
.liquid-cash-trend-selected .net-assets-chip i { background: #8b9aaa; }
.liquid-cash-trend-selected .liquid-cash-end-chip i { background: #5687d9; }
.liquid-cash-trend-selected .liquid-cash-change-chip i { background: #db8667; }
.liquid-cash-period-status { flex-basis: 100%; text-align: left; line-height: 1.6; }
.liquid-cash-balance-segment { stroke: #5b89df; stroke-width: 2.8; stroke-linecap: round; }
.liquid-cash-balance-segment.is-forecast { stroke: #91a0ae; stroke-dasharray: 5 4; }
.liquid-cash-balance-point { fill: #5b89df; stroke: #fff; stroke-width: 2; opacity: .64; pointer-events: none; }
.liquid-cash-balance-point.is-forecast { fill: #91a0ae; }
.liquid-cash-balance-point.active { opacity: 1; r: 5; }
.liquid-cash-flow-baseline { stroke: #cbd3d9; stroke-width: 1; }
.liquid-cash-flow-bar.is-inflow { fill: #56a88f; }
.liquid-cash-flow-bar.is-outflow { fill: #df816c; }
.liquid-cash-flow-month.is-current { opacity: .95; }
.liquid-cash-flow-month.is-forecast { opacity: .42; }
.liquid-cash-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 7px 16px; padding: 0 12px 12px; color: #8b97a1; font-size: 9px; }
.liquid-cash-chart-note { display: block; margin: 0 18px 12px; color: #98a3aa; font-size: 8px; line-height: 1.5; text-align: center; }
.liquid-cash-chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.liquid-cash-chart-legend i { display: inline-block; width: 12px; height: 7px; border-radius: 3px; background: #56a88f; }
.liquid-cash-chart-legend i.is-balance { height: 3px; background: #5b89df; }
.liquid-cash-chart-legend i.is-outflow { background: #df816c; }
.liquid-cash-month-details { margin-top: 0; }
.liquid-cash-month-detail { overflow: hidden; border: 1px solid #e9eef0; border-radius: 10px; background: #fbfcfd; }
.liquid-cash-month-detail > summary { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 10px; cursor: pointer; list-style: none; }
.liquid-cash-month-detail > summary::-webkit-details-marker,.liquid-cash-accounts > summary::-webkit-details-marker { display: none; }
.liquid-cash-month-detail > summary strong { color: #47535f; font-size: 10px; }
.liquid-cash-month-detail > summary span { color: #8b97a1; font-size: 9px; text-align: right; }
.liquid-cash-detail-metrics { grid-template-columns: repeat(3,minmax(0,1fr)); }
.liquid-cash-detail-metrics > div { min-width: 0; }
.liquid-cash-detail-metrics b { overflow-wrap: anywhere; }
.liquid-cash-detail-section { display: grid; gap: 7px; padding: 10px; border-top: 1px solid #edf0f2; }
.liquid-cash-detail-heading { display: grid; gap: 3px; }
.liquid-cash-detail-heading strong { color: #56636e; font-size: 9px; }
.liquid-cash-detail-heading small { color: #8e99a3; font-size: 8px; line-height: 1.5; }
.liquid-cash-contribution-row { display: grid; grid-template-columns: minmax(82px,1fr) auto minmax(70px,1.2fr); align-items: center; gap: 7px; font-size: 8px; }
.liquid-cash-contribution-row > span { color: #82909a; }
.liquid-cash-contribution-row > b,.liquid-cash-destination-row b,.liquid-cash-account-row b { white-space: nowrap; font-size: 8px; }
.liquid-cash-contribution-row > b.is-positive,.liquid-cash-account-row b.is-positive { color: #36977e; }
.liquid-cash-contribution-row > b.is-negative,.liquid-cash-account-row b.is-negative { color: #d36f59; }
.liquid-cash-contribution-row > i { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #edf1f3; }
.liquid-cash-contribution-row > i > em { display: block; height: 100%; border-radius: inherit; background: #55ad95; }
.liquid-cash-contribution-row > i > em.is-negative { background: #d97c65; }
.liquid-cash-destination-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: 1px solid #f0f2f3; color: #7f8c96; font-size: 8px; }
.liquid-cash-destination-row:last-child { border-bottom: 0; }
.liquid-cash-destination-row b { color: #d47762; }
.liquid-cash-reconciliation { padding: 8px; border-radius: 7px; background: #f2f6f5; color: #60746f; font-size: 8px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.liquid-cash-accounts { border-top: 1px solid #edf0f2; }
.liquid-cash-accounts > summary { padding: 9px 10px; color: #657580; font-size: 9px; cursor: pointer; list-style: none; }
.liquid-cash-account-list { display: grid; gap: 0; padding: 0 10px 8px; }
.liquid-cash-account-row { display: grid; grid-template-columns: minmax(70px,1.2fr) repeat(2,minmax(58px,1fr)) auto; align-items: center; gap: 6px; padding: 7px 0; border-top: 1px solid #eef1f2; color: #8a969e; font-size: 8px; }
.liquid-cash-account-row strong { overflow: hidden; color: #586874; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.liquid-cash-account-row span { white-space: nowrap; }
[data-theme="night"] .liquid-cash-trend-selected .net-assets-chip { background: #202e3a; color: #c0ccd2; }
[data-theme="night"] .liquid-cash-balance-segment { stroke: #86a9f4; }
[data-theme="night"] .liquid-cash-balance-segment.is-forecast { stroke: #96a7b3; }
[data-theme="night"] .liquid-cash-balance-point { fill: #86a9f4; stroke: #17232d; }
[data-theme="night"] .liquid-cash-balance-point.is-forecast { fill: #96a7b3; }
[data-theme="night"] .liquid-cash-flow-baseline { stroke: #52616d; }
[data-theme="night"] .liquid-cash-flow-bar.is-inflow { fill: #57b49b; }
[data-theme="night"] .liquid-cash-flow-bar.is-outflow { fill: #d98270; }
[data-theme="night"] .liquid-cash-chart-legend,[data-theme="night"] .liquid-cash-chart-note,[data-theme="night"] .liquid-cash-period-status { color: #a0aeb5; }
[data-theme="night"] .liquid-cash-month-detail { border-color: #344250; background: #18242d; }
[data-theme="night"] .liquid-cash-month-detail > summary strong,[data-theme="night"] .liquid-cash-detail-heading strong,[data-theme="night"] .liquid-cash-account-row strong { color: #d4e0e2; }
[data-theme="night"] .liquid-cash-month-detail > summary span,[data-theme="night"] .liquid-cash-detail-heading small,[data-theme="night"] .liquid-cash-contribution-row > span,[data-theme="night"] .liquid-cash-destination-row,[data-theme="night"] .liquid-cash-account-row { color: #a0aeb5; }
[data-theme="night"] .liquid-cash-detail-section,[data-theme="night"] .liquid-cash-accounts,[data-theme="night"] .liquid-cash-account-row { border-color: #344250; }
[data-theme="night"] .liquid-cash-contribution-row > i { background: #303c43; }
[data-theme="night"] .liquid-cash-reconciliation { background: #1b302e; color: #b6c9c5; }
@media (max-width: 540px) {
  .liquid-cash-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .liquid-cash-account-row { grid-template-columns: minmax(58px,1.1fr) repeat(2,minmax(48px,1fr)) auto; gap: 4px; font-size: 7px; }
  .liquid-cash-account-row strong,.liquid-cash-account-row b { font-size: 7px; }
}
.account-forecast-enhanced { gap: 11px; }
.account-forecast-enhanced .annual-card-heading { align-items: flex-start; }
.account-forecast-enhanced .annual-card-heading .secondary-button { flex: 0 0 auto; min-height: 30px; padding: 6px 10px; font-size: 8px; }
.account-forecast-horizons { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; padding: 0 15px; }
.account-forecast-horizon-card { display: grid; gap: 7px; min-width: 0; padding: 11px; border: 1px solid #e9eef0; border-radius: 10px; background: #fbfcfd; }
.account-forecast-horizon-card > span { color: #778690; font-size: 9px; font-weight: 650; }
.account-forecast-horizon-card > div { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; }
.account-forecast-horizon-card small { color: #94a0a8; font-size: 7px; }
.account-forecast-horizon-card strong { color: #52616c; font-size: 9px; font-weight: 650; white-space: nowrap; }
.account-forecast-horizon-card strong.is-negative { color: #318d78; }
.account-forecast-horizon-date { padding-top: 2px; border-top: 1px solid #edf1f2; }
.account-forecast-enhanced .account-forecast-heading-values { grid-template-columns: repeat(3,minmax(0,1fr)); justify-items: stretch; gap: 6px; padding: 0 15px; }
.account-forecast-enhanced .account-forecast-heading-values strong { overflow: hidden; padding: 8px 9px; border: 1px solid #edf0f2; border-radius: 8px; color: #52616c; font-size: 8px; text-overflow: ellipsis; }
.account-forecast-enhanced .account-forecast-heading-values strong:first-child { color: #668fe9; }
.account-forecast-enhanced .account-forecast-heading-values strong:nth-child(2) { color: #8465bf; }
.account-forecast-enhanced .account-forecast-heading-values strong:last-child { color: #46ae9e; }
.account-forecast-subcard { display: grid; gap: 9px; margin: 0 15px; padding: 11px; border: 1px solid #e9eef0; border-radius: 10px; background: #fff; }
.account-forecast-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.account-forecast-subheading > div { display: grid; gap: 3px; }
.account-forecast-subheading strong { color: #455762; font-size: 9px; }
.account-forecast-subheading small,.account-forecast-subheading > span { color: #93a0a8; font-size: 7px; line-height: 1.5; }
.account-forecast-svg-scroll { width: 100%; overflow-x: auto; }
.account-forecast-path,.account-forecast-waterfall,.account-forecast-revision-chart { display: block; width: 100%; min-width: 560px; height: auto; }
.account-forecast-path g line { stroke: #edf0f2; stroke-dasharray: 3 4; }
.account-forecast-path g text,.account-forecast-path-label,.account-forecast-revision-chart text { fill: #98a4ac; font: 8px system-ui,sans-serif; }
.account-forecast-path-line { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.account-forecast-path-line.is-assets { stroke: #668fe9; }
.account-forecast-path-line.is-net { stroke: #8968c7; }
.account-forecast-path-line.is-cash { stroke: #46ae9e; }
.account-forecast-path-line.is-forecast { stroke-dasharray: 5 4; opacity: .85; }
.account-forecast-path-point.is-assets { fill: #668fe9; }
.account-forecast-path-point.is-net { fill: #8968c7; }
.account-forecast-path-point.is-cash { fill: #46ae9e; }
.account-forecast-path-band { fill: #46ae9e20; stroke: none; }
.account-forecast-today-line { stroke: #d88d60; stroke-width: 1.2; stroke-dasharray: 3 3; }
.account-forecast-path-legend { display: flex; flex-wrap: wrap; gap: 7px 13px; color: #84929a; font-size: 7px; }
.account-forecast-path-legend span { display: inline-flex; align-items: center; gap: 5px; }
.account-forecast-path-legend i { display: inline-block; width: 10px; height: 3px; border-radius: 3px; background: #668fe9; }
.account-forecast-path-legend i.is-net { background: #8968c7; }
.account-forecast-path-legend i.is-cash { background: #46ae9e; }
.account-forecast-path-legend i.is-actual-line { background: #687680; }
.account-forecast-path-legend i.is-forecast-line { height: 0; border-top: 1px dashed #687680; background: transparent; }
.account-forecast-path-legend i.is-range-band { height: 8px; border: 1px solid #a9d9d0; background: #46ae9e20; }
.account-forecast-source-layers { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 0 15px; }
.account-forecast-source-layers article { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 9px; border: 1px solid #e9eef0; border-radius: 9px; background: #fbfcfd; }
.account-forecast-source-layers strong { color: #4d626c; font-size: 8px; }
.account-forecast-source-layers span { color: #52616c; font-size: 8px; line-height: 1.45; }
.account-forecast-source-layers small { color: #94a0a8; font-size: 7px; line-height: 1.5; }
.account-forecast-segment-note,.account-forecast-footnote { display: block; margin: 0 15px; color: #929ea6; font-size: 7px; line-height: 1.6; }
.account-forecast-band-explanation { display: grid; gap: 4px; margin: 0 15px; padding: 9px 10px; border-left: 3px solid #78bbae; border-radius: 6px; background: #f4faf8; }
.account-forecast-band-explanation strong { color: #4a7068; font-size: 8px; }
.account-forecast-band-explanation span { color: #879792; font-size: 7px; line-height: 1.5; }
.account-forecast-capacity-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.account-forecast-capacity-row { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; }
.account-forecast-capacity-row strong { color: #52616c; font-size: 8px; }
.account-forecast-capacity-row span { color: #438f7c; font-size: 8px; font-weight: 650; }
.account-forecast-capacity-row span.is-risk { color: #d16e58; }
.account-forecast-capacity-row small { color: #98a4ab; font-size: 7px; }
.account-forecast-waterfall .account-forecast-zero-line { stroke: #dce3e5; stroke-width: 1; stroke-dasharray: 3 4; }
.account-forecast-waterfall-step rect { fill: #46ae9e; }
.account-forecast-waterfall-step.is-down rect { fill: #d97b68; }
.account-forecast-waterfall-step.is-total rect { fill: #668fe9; }
.account-forecast-waterfall-step line { stroke: #aab5ba; stroke-dasharray: 2 3; }
.account-forecast-waterfall-step text { fill: #76858e; font: 7px system-ui,sans-serif; }
.account-forecast-waterfall-label { overflow: hidden; color: #84919a; font: 7px system-ui,sans-serif; line-height: 1.2; text-align: center; overflow-wrap: anywhere; }
.account-forecast-timeline { display: grid; gap: 4px; }
.account-forecast-timeline-row { display: grid; grid-template-columns: 96px minmax(0,1fr) 76px auto; align-items: center; gap: 7px; min-width: 0; padding: 7px 8px; border: 1px solid #edf0f2; border-radius: 7px; background: #fbfcfd; }
.account-forecast-timeline-row time,.account-forecast-timeline-row > span { color: #94a0a8; font-size: 7px; }
.account-forecast-timeline-row > strong { min-width: 0; overflow: hidden; color: #53626c; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.account-forecast-timeline-row > b { color: #52616c; font-size: 8px; white-space: nowrap; }
.account-forecast-timeline-row.is-large { border-color: #f0d7bc; background: #fffaf4; }
.account-forecast-timeline-row em { margin-left: 5px; padding: 2px 4px; border-radius: 4px; background: #fff0db; color: #b17b3c; font-size: 6px; font-style: normal; }
.account-forecast-more-events summary,.account-forecast-assumption-editor summary,.account-forecast-backtest-details summary { color: #71818b; font-size: 8px; cursor: pointer; }
.account-forecast-more-events[open],.account-forecast-assumption-editor[open],.account-forecast-backtest-details[open] { display: grid; gap: 8px; }
.account-forecast-assumption-editor { margin: 0 15px; padding: 10px; border: 1px solid #e9eef0; border-radius: 9px; background: #fbfcfd; }
.account-forecast-form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: 7px; padding: 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; }
.account-forecast-form > strong { grid-column: 1 / -1; color: #52616c; font-size: 8px; }
.account-forecast-form label { display: grid; gap: 4px; min-width: 0; color: #87949d; font-size: 7px; }
.account-forecast-form input,.account-forecast-form select { width: 100%; min-width: 0; min-height: 30px; padding: 5px 7px; border: 1px solid #e7ecee; border-radius: 6px; background: #fff; color: #52616c; font: inherit; font-size: 8px; }
.account-forecast-form .secondary-button { min-height: 30px; padding: 5px 8px; font-size: 7px; }
.account-forecast-assumption-list { display: grid; gap: 4px; }
.account-forecast-assumption-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border-radius: 6px; background: #fff; color: #77868f; font-size: 7px; }
.account-forecast-assumption-row button { border: 0; background: transparent; color: #bf7768; font-size: 7px; cursor: pointer; }
.account-forecast-revision-chart polyline { fill: none; stroke: #668fe9; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.account-forecast-revision-chart circle { fill: #668fe9; stroke: #fff; stroke-width: 1.5; }
.account-forecast-revision-chart text { fill: #97a2aa; font: 8px system-ui,sans-serif; }
.account-forecast-revision-list { display: grid; gap: 4px; }
.account-forecast-revision-list > div { display: grid; grid-template-columns: 75px repeat(3,minmax(0,1fr)); gap: 6px; padding: 6px 8px; border-radius: 6px; background: #f8fafb; color: #7d8b94; font-size: 7px; }
.account-forecast-revision-list b { color: #52616c; }
.account-forecast-empty { margin: 0; padding: 8px; border-radius: 7px; background: #f8fafb; color: #95a0a7; font-size: 7px; line-height: 1.5; }
.account-forecast-backtest-details { margin: 0 15px; padding: 9px 10px; border: 1px solid #e9eef0; border-radius: 9px; background: #fbfcfd; }
.account-forecast-backtest-details .forecast-backtest-card { margin: 0; box-shadow: none; }
[data-theme="night"] .account-forecast-horizon-card,[data-theme="night"] .account-forecast-subcard,[data-theme="night"] .account-forecast-source-layers article,[data-theme="night"] .account-forecast-capacity-row,[data-theme="night"] .account-forecast-timeline-row,[data-theme="night"] .account-forecast-assumption-editor,[data-theme="night"] .account-forecast-form,[data-theme="night"] .account-forecast-backtest-details { border-color: #344250; background: #18242d; }
[data-theme="night"] .account-forecast-horizon-card strong,[data-theme="night"] .account-forecast-subheading strong,[data-theme="night"] .account-forecast-source-layers span,[data-theme="night"] .account-forecast-capacity-row strong,[data-theme="night"] .account-forecast-timeline-row > strong,[data-theme="night"] .account-forecast-timeline-row > b { color: #d0dade; }
[data-theme="night"] .account-forecast-form input,[data-theme="night"] .account-forecast-form select,[data-theme="night"] .account-forecast-assumption-row { border-color: #344250; background: #202e3a; color: #cbd6dc; }
[data-theme="night"] .account-forecast-band-explanation { background: #1b302e; }

/* Account behavior profile: external flows, balance safety, and correction controls. */
.account-behavior-card { padding-bottom: 12px; }
.account-behavior-method-note { margin: -4px 15px 9px; padding: 8px 10px; border-radius: 8px; background: #f5f8f8; color: #84919a; font-size: 9px; line-height: 1.55; }
.account-behavior-card .account-behavior-list { grid-template-columns: 1fr; gap: 7px; padding: 3px 13px 9px; }
.account-behavior-profile { display: block; min-width: 0; padding: 10px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; }
.account-behavior-meta em.transfer { background: #eef4fb; color: #6488b4; }
.account-behavior-main { display: grid; grid-template-columns: 30px minmax(0,1fr) auto 24px; align-items: center; gap: 8px; min-width: 0; }
.account-behavior-profile .account-behavior-copy small { overflow: visible; white-space: normal; line-height: 1.5; }
.account-behavior-profile .account-behavior-meta small { max-width: 190px; }
.account-behavior-open { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #e8edef; border-radius: 7px; background: #fff; color: #8d9aa3; font-size: 17px; cursor: pointer; }
.account-behavior-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 9px 0 0 38px; }
.account-behavior-metrics > span { display: grid; gap: 3px; min-width: 0; color: #9aa5ad; font-size: 8px; line-height: 1.4; }
.account-behavior-metrics b { overflow-wrap: anywhere; color: #566571; font-size: 9px; font-weight: 650; }
.account-behavior-metrics b.is-negative { color: #ca6f59; }
.account-behavior-correction { margin: 8px 0 0 38px; color: #84919a; font-size: 8px; }
.account-behavior-correction summary { width: max-content; color: #6d9385; cursor: pointer; }
.account-behavior-correction form { display: grid; grid-template-columns: minmax(125px,.8fr) minmax(160px,1fr) auto; align-items: end; gap: 8px; margin-top: 7px; }
.account-behavior-correction label { display: grid; gap: 4px; color: #97a1a9; }
.account-behavior-correction input,.account-behavior-correction select,.account-behavior-panel select { min-width: 0; height: 31px; padding: 0 8px; border: 1px solid #e7ecef; border-radius: 7px; background: #fff; color: #5f6c77; font: inherit; }
.account-behavior-correction button { height: 31px; padding: 0 11px; border: 1px solid #dcebe5; border-radius: 7px; background: #f5faf8; color: #548a76; font-size: 8px; cursor: pointer; }
.account-behavior-correction > small { display: block; margin-top: 5px; color: #a5afb6; }
.account-behavior-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 3px 13px 7px; }
.account-behavior-panel { min-width: 0; padding: 11px; border: 1px solid #edf0f2; border-radius: 10px; background: #fff; }
.account-behavior-panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 7px; }
.account-behavior-panel-heading h3 { margin: 0; color: #53616e; font-size: 10px; font-weight: 650; }
.account-behavior-panel-heading small { display: block; margin-top: 3px; color: #9aa5ad; font-size: 8px; line-height: 1.4; }
.account-behavior-panel-heading > b { color: #7c8992; font-size: 8px; font-weight: 550; line-height: 1.6; text-align: right; white-space: nowrap; }
.account-behavior-panel-heading select { max-width: 135px; height: 28px; font-size: 8px; }
.account-behavior-empty,.account-behavior-note { margin: 7px 0 0; color: #9ba6ad; font-size: 8px; line-height: 1.55; }
.account-behavior-note { padding: 6px 8px; border-radius: 7px; background: #f7f9fa; }
.account-transfer-sankey-svg,.account-role-history-svg,.account-retention-svg { display: block; width: 100%; height: auto; overflow: visible; }
.account-transfer-sankey-svg text { fill: #71808a; font-size: 9px; }
.account-role-history-svg line,.account-retention-svg line { stroke: #e6ebee; stroke-dasharray: 3 4; }
.account-role-history-svg text,.account-retention-svg text { fill: #98a3ab; font-size: 8px; }
.account-role-history-svg > text:first-of-type { font-size: 7px; }
.account-retention-svg polyline { fill: none; stroke: #5ba58b; stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.account-retention-svg circle { fill: #fff; stroke: #5ba58b; stroke-width: 2; }
.account-behavior-legend { display: flex; flex-wrap: wrap; gap: 6px 10px; margin-top: 6px; color: #929ea7; font-size: 7px; }
.account-behavior-legend span { display: inline-flex; align-items: center; gap: 4px; }
.account-behavior-legend i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; background: #9ba7ad; }
.account-behavior-legend i.is-safe { background: #73b498; }
.account-behavior-legend i.is-low { background: #e68d72; }
.account-behavior-legend i.is-missing { background: #e7ecef; }
.account-behavior-legend i.is-future { background: #f7f8f9; border: 1px solid #e6ebee; }
.account-behavior-legend i.is-income { background: #69ad91; }
.account-behavior-legend i.is-transfer { background: #759abe; }
.account-behavior-legend i.is-expense { background: #e19a71; }
.account-safety-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; }
.account-safety-calendar-grid > b { padding: 2px 0; color: #a0aab1; font-size: 7px; font-weight: 500; text-align: center; }
.account-safety-day { display: grid; min-width: 0; min-height: 38px; align-content: start; gap: 2px; padding: 3px; border-radius: 5px; background: #edf6f2; color: #5a9a80; }
.account-safety-day small { font-size: 7px; }
.account-safety-day b { overflow: hidden; font-size: 6px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-safety-day.is-low { background: #fff0e9; color: #c36f56; }
.account-safety-day.is-missing,.account-safety-day.is-empty { background: #f3f5f6; color: #adb6bc; }
.account-safety-day.is-future { border: 1px dashed #e5e9ec; background: #fff; color: #c0c7cc; }
.account-safety-day.is-empty { min-height: 18px; }
.account-behavior-change-list { display: grid; gap: 2px; }
.account-behavior-change-row { display: flex; justify-content: space-between; gap: 8px; padding: 7px 1px; border-bottom: 1px solid #f0f2f4; color: #6f7c86; font-size: 8px; }
.account-behavior-change-row b { color: #cc765f; font-size: 8px; font-weight: 650; white-space: nowrap; }
.account-behavior-change-row b.is-down { color: #57977f; }
[data-theme="night"] .account-behavior-method-note,[data-theme="night"] .account-behavior-profile,[data-theme="night"] .account-behavior-panel { border-color: #344250; background: #202e3a; }
[data-theme="night"] .account-behavior-method-note,[data-theme="night"] .account-behavior-note { background: #1c2933; color: #a0adb6; }
[data-theme="night"] .account-behavior-profile .account-behavior-copy strong,[data-theme="night"] .account-behavior-metrics b,[data-theme="night"] .account-behavior-panel-heading h3 { color: #d0dade; }
[data-theme="night"] .account-behavior-open,[data-theme="night"] .account-behavior-correction input,[data-theme="night"] .account-behavior-correction select,[data-theme="night"] .account-behavior-panel select { border-color: #344250; background: #1c2933; color: #cbd6dc; }
@media (max-width: 600px) {
  .account-behavior-grid { grid-template-columns: 1fr; padding-right: 10px; padding-left: 10px; }
  .account-behavior-card .account-behavior-list { padding-right: 10px; padding-left: 10px; }
  .account-behavior-profile { padding: 8px; }
  .account-behavior-main { grid-template-columns: 28px minmax(0,1fr) auto 22px; gap: 6px; }
  .account-behavior-profile .account-behavior-copy small { font-size: 7px; }
  .account-behavior-profile .account-behavior-meta small { max-width: 115px; font-size: 6px; }
  .account-behavior-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); margin-left: 34px; }
  .account-behavior-correction { margin-left: 34px; }
  .account-behavior-correction form { grid-template-columns: 1fr 1fr; }
  .account-behavior-correction button { grid-column: 1 / -1; }
  .account-safety-day { min-height: 34px; padding: 2px; }
  .account-safety-day b { font-size: 5px; }
}
@media (max-width: 600px) {
  .account-forecast-horizons { grid-template-columns: 1fr; }
  .account-forecast-horizon-card { grid-template-columns: 1fr auto; align-items: baseline; }
  .account-forecast-horizon-card > span,.account-forecast-horizon-date { grid-column: 1 / -1; }
  .account-forecast-horizon-card > div { display: contents; }
  .account-forecast-horizon-card > div small { align-self: center; }
  .account-forecast-horizon-card > div strong { text-align: right; }
  .account-forecast-enhanced .account-forecast-heading-values { grid-template-columns: 1fr; }
  .account-forecast-source-layers { grid-template-columns: 1fr; }
  .account-forecast-capacity-list { grid-template-columns: 1fr; }
  .account-forecast-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-forecast-timeline-row { grid-template-columns: 75px minmax(0,1fr) auto; gap: 5px; }
  .account-forecast-timeline-row > span { grid-column: 2; }
  .account-forecast-timeline-row > b { grid-column: 3; grid-row: 1 / span 2; }
  .account-forecast-revision-list > div { grid-template-columns: 55px repeat(3,minmax(0,1fr)); gap: 4px; font-size: 6px; }
  .account-forecast-enhanced .annual-card-heading { flex-direction: column; }
}

@media (max-width: 520px) { .category-forecast-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-right: 11px; margin-left: 11px; } .category-forecast-summary article { padding: 7px; } .category-forecast-legend { padding-right: 11px; padding-left: 11px; } .category-forecast-list { padding-right: 11px; padding-left: 11px; } .category-forecast-row > small { margin-left: 29px; white-space: normal; } .category-forecast-subsection { margin-right: 11px; margin-left: 11px; } .category-forecast-note { padding-right: 11px; padding-left: 11px; } }

.consumption-structure-health-card { overflow: hidden; padding-bottom: 14px; }
.consumption-structure-health-card .card-header { align-items: flex-start; }
.consumption-health-score-main { display: grid; grid-template-columns: auto auto minmax(0,1fr); align-items: end; gap: 5px; padding: 8px 20px 5px; }
.consumption-health-score-main > strong { color: var(--ink); font-size: 34px; line-height: 1; }
.consumption-health-score-main > span { padding-bottom: 3px; color: var(--muted); font-size: 11px; }
.consumption-health-score-main .health-score-track { grid-column: 1/-1; }
.consumption-health-score-main > small { grid-column: 1/-1; color: var(--muted); font-size: 8px; }
.consumption-structure-health-card .health-score-advice { margin-top: 5px; }
.consumption-health-completeness,.consumption-health-assessment,.consumption-health-flow-section,.consumption-health-visuals,.consumption-health-change-section { margin-top: 13px; padding: 12px 16px 0; border-top: 1px solid var(--line); }
.consumption-health-section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.consumption-health-section-heading strong { color: var(--ink); font-size: 10px; }
.consumption-health-section-heading small { color: var(--muted); font-size: 8px; text-align: right; }
.consumption-health-completeness-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.consumption-health-completeness-grid article { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); }
.consumption-health-completeness-grid small,.consumption-health-completeness-grid span { color: var(--muted); font-size: 8px; line-height: 1.45; }
.consumption-health-completeness-grid b { color: var(--ink); font-size: 12px; font-variant-numeric: tabular-nums; }
.consumption-health-completeness-empty,.consumption-health-chart-empty { padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); color: var(--muted); font-size: 9px; line-height: 1.55; }
.consumption-health-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.consumption-health-metric { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); }
.consumption-health-metric > summary { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 5px 8px; padding: 9px; cursor: pointer; list-style: none; }
.consumption-health-metric > summary::-webkit-details-marker,.consumption-health-deduction-details > summary::-webkit-details-marker,.consumption-health-reference > summary::-webkit-details-marker,.consumption-health-visual-card > summary::-webkit-details-marker { display: none; }
.consumption-health-metric > summary > span { display: grid; gap: 3px; min-width: 0; }
.consumption-health-metric > summary strong { color: var(--ink); font-size: 9px; }
.consumption-health-metric > summary small { grid-column: 1/-1; color: var(--muted); font-size: 7px; line-height: 1.4; }
.consumption-health-metric > summary > span small { grid-column: auto; }
.consumption-health-metric > summary > b { color: #4b9879; font-size: 9px; white-space: nowrap; }
.consumption-health-metric.is-okay > summary > b { color: #ad8535; }
.consumption-health-metric.is-warn > summary > b { color: #c76851; }
.consumption-health-metric.is-neutral > summary > b { color: var(--muted); }
.consumption-health-metric-body { padding: 0 9px 9px; }
.consumption-health-metric-body p,.consumption-health-visual-card > p,.consumption-health-reference > p { margin: 0 0 7px; color: var(--muted); font-size: 8px; line-height: 1.55; }
.consumption-health-linked-list { display: grid; gap: 4px; }
.consumption-health-linked-list button { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 2px 7px; padding: 6px 7px; border: 1px solid var(--line); border-radius: 7px; background: var(--card); color: var(--muted); text-align: left; cursor: pointer; }
.consumption-health-linked-list button span,.consumption-health-linked-list button small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.consumption-health-linked-list button span,.consumption-health-linked-list button small { font-size: 7px; }
.consumption-health-linked-list button b { grid-column: 2; grid-row: 1/3; align-self: center; color: var(--ink); font-size: 8px; }
.consumption-health-no-links { color: var(--muted); font-size: 7px; }
.consumption-health-deduction-details,.consumption-health-reference,.consumption-health-visual-card { margin-top: 8px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft); }
.consumption-health-deduction-details > summary,.consumption-health-reference > summary { padding: 8px 9px; color: var(--ink); font-size: 9px; font-weight: 600; cursor: pointer; list-style: none; }
.consumption-health-deduction-details > p { margin: 0 9px 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.consumption-health-deduction-details > .consumption-health-metric { margin: 0 7px 6px; background: var(--card); }
.consumption-health-flow-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.consumption-health-flow-row { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
.consumption-health-flow-row > div { display: flex; justify-content: space-between; gap: 6px; }
.consumption-health-flow-row strong { color: var(--ink); font-size: 9px; }
.consumption-health-flow-row b { color: var(--ink); font-size: 9px; font-variant-numeric: tabular-nums; }
.consumption-health-flow-row small { color: var(--muted); font-size: 7px; line-height: 1.45; overflow-wrap: anywhere; }
.consumption-health-concentration { margin-top: 7px; padding: 8px 9px; border-radius: 8px; background: var(--soft); }
.consumption-health-concentration strong { color: var(--ink); font-size: 8px; }
.consumption-health-concentration p { margin: 4px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.consumption-health-reference > div { display: grid; gap: 4px; padding: 0 9px 8px; }
.consumption-health-reference > div span { color: var(--muted); font-size: 8px; }
.consumption-health-reference > p { margin: 0 9px 9px; }
.consumption-health-visuals { display: grid; grid-template-columns: minmax(0,1fr); }
.consumption-health-visual-card { min-width: 0; overflow: hidden; margin-top: 0; padding: 0 9px 9px; }
.consumption-health-visual-card + .consumption-health-visual-card { margin-top: 7px; }
.consumption-health-visual-card > summary { display: grid; gap: 3px; padding: 9px 0 5px; cursor: pointer; list-style: none; }
.consumption-health-visual-card > summary strong { color: var(--ink); font-size: 9px; }
.consumption-health-visual-card > summary small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.consumption-health-visual-card > p { margin: 4px 0; }
.consumption-health-quadrant { display: block; width: min(100%,430px); height: auto; margin: 0 auto; }
.consumption-health-quadrant rect.is-pressure { fill: #fbefed; }
.consumption-health-quadrant rect.is-flex-pressure { fill: #fff5e5; }
.consumption-health-quadrant rect.is-basic-pressure { fill: #fff8e9; }
.consumption-health-quadrant rect.is-covered { fill: #eaf6f0; }
.consumption-health-quadrant text { fill: #79858f; font-size: 7px; }
.consumption-health-quadrant .consumption-health-quadrant-axis { stroke: #aeb8bd; stroke-width: 1; stroke-dasharray: 3 3; }
.consumption-health-quadrant circle { fill: #9aa7b0; stroke: #fff; stroke-width: 1.4; }
.consumption-health-quadrant circle.is-current { fill: #e27a5e; stroke-width: 2; }
.consumption-health-legend { display: flex; flex-wrap: wrap; gap: 4px 9px; padding: 4px 0; }
.consumption-health-legend span { display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 7px; }
.consumption-health-legend i { width: 7px; height: 7px; border-radius: 2px; }
.consumption-health-legend b { width: 12px; border-top: 2px solid #7187bd; }
.consumption-health-combo-chart { display: block; width: 100%; height: auto; overflow: visible; }
.consumption-health-gridline { stroke: var(--line); stroke-dasharray: 3 4; }
.consumption-health-combo-chart text { fill: var(--muted); font-size: 7px; }
.consumption-health-combo-chart .consumption-health-month-label { font-size: 8px; }
.consumption-health-chart-missing { fill: #a4adb3 !important; font-size: 7px !important; }
.consumption-health-rate-line { fill: none; stroke: #7187bd; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.consumption-health-rate-point { fill: #7187bd; stroke: #fff; stroke-width: 1; vector-effect: non-scaling-stroke; }
.consumption-health-change-section > span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 8px; }
.consumption-health-contributions { display: grid; gap: 6px; }
.consumption-health-contribution-row { display: grid; grid-template-columns: 82px minmax(0,1fr) 40px; align-items: center; gap: 6px; }
.consumption-health-contribution-row > span,.consumption-health-contribution-row > b { color: var(--muted); font-size: 7px; }
.consumption-health-contribution-row > b { text-align: right; }
.consumption-health-contribution-row > b.is-positive { color: #3e967f; }
.consumption-health-contribution-row > b.is-negative { color: #d66f60; }
.consumption-health-contribution-row > i { position: relative; height: 7px; border-radius: 99px; background: linear-gradient(90deg,transparent calc(50% - .5px),#9aa6ad calc(50% - .5px),#9aa6ad calc(50% + .5px),transparent calc(50% + .5px)),#eef1f2; }
.consumption-health-contribution-row > i em { position: absolute; top: 0; height: 100%; border-radius: 99px; }
.consumption-health-contribution-row > i em.is-positive { background: #55a98c; }
.consumption-health-contribution-row > i em.is-negative { background: #d8755e; }
.consumption-structure-health-note { display: block; margin: 9px 16px 0; color: var(--muted); font-size: 7px; line-height: 1.55; }
[data-theme="night"] .consumption-health-completeness-grid article,[data-theme="night"] .consumption-health-flow-row,[data-theme="night"] .consumption-health-visual-card,[data-theme="night"] .consumption-health-deduction-details,[data-theme="night"] .consumption-health-reference,[data-theme="night"] .consumption-health-concentration { border-color: #344250; background: #18242d; }
[data-theme="night"] .consumption-health-metric,[data-theme="night"] .consumption-health-completeness-empty,[data-theme="night"] .consumption-health-chart-empty { border-color: #344250; background: #202b38; }
[data-theme="night"] .consumption-health-linked-list button { border-color: #344250; background: #18242d; }
[data-theme="night"] .consumption-health-quadrant rect.is-pressure { fill: #3a282a; }
[data-theme="night"] .consumption-health-quadrant rect.is-flex-pressure,[data-theme="night"] .consumption-health-quadrant rect.is-basic-pressure { fill: #362e23; }
[data-theme="night"] .consumption-health-quadrant rect.is-covered { fill: #20352e; }
[data-theme="night"] .consumption-health-quadrant circle { stroke: #18242d; }
[data-theme="night"] .consumption-health-contribution-row > i { background-color: #293743; }
@media (max-width: 620px) {
  .consumption-health-completeness-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .consumption-health-completeness,.consumption-health-assessment,.consumption-health-flow-section,.consumption-health-visuals,.consumption-health-change-section { padding-right: 12px; padding-left: 12px; }
}
@media (max-width: 420px) {
  .consumption-health-metrics,.consumption-health-flow-grid { grid-template-columns: minmax(0,1fr); }
  .consumption-health-section-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .consumption-health-section-heading small { text-align: left; }
  .consumption-health-contribution-row { grid-template-columns: 75px minmax(0,1fr) 36px; }
}

.monthly-summary-analysis { display: grid; gap: 13px; padding: 16px; }
.monthly-summary-heading,.monthly-summary-forecast-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.monthly-summary-heading h2 { margin: 0; color: var(--ink); font-size: 15px; }
.monthly-summary-heading p { margin: 4px 0 0; color: #88939d; font-size: 10px; }
.monthly-summary-status-pill { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; background: #f2f5f7; color: #687582; font-size: 9px; }
.monthly-summary-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.monthly-summary-kpis article { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 10px; border: 1px solid #edf0f2; border-radius: 10px; background: #fbfcfd; }
.monthly-summary-kpis small,.monthly-summary-forecast-grid small { color: #89949e; font-size: 9px; }
.monthly-summary-kpis strong { overflow-wrap: anywhere; color: #384754; font-size: 15px; font-variant-numeric: tabular-nums; }
.monthly-summary-kpis span { color: #929ca5; font-size: 8px; line-height: 1.45; }
.monthly-summary-analysis .is-positive { color: #df6b51; }
.monthly-summary-analysis .is-negative { color: #3d9b82; }
.monthly-summary-reason,.monthly-summary-forecast,.monthly-summary-key-changes,.monthly-summary-conclusion { padding: 11px 12px; border-radius: 10px; background: #f8fafb; }
.monthly-summary-reason { display: grid; gap: 5px; }
.monthly-summary-reason > strong,.monthly-summary-key-changes > strong,.monthly-summary-conclusion > strong,.monthly-summary-forecast-heading > strong { color: #4b5966; font-size: 10px; }
.monthly-summary-reason > span,.monthly-summary-conclusion p { margin: 0; color: #65727d; font-size: 10px; line-height: 1.6; }
.monthly-summary-reason > small,.monthly-summary-method,.monthly-summary-data-status { color: #929ca5; font-size: 8px; line-height: 1.55; }
.monthly-summary-forecast { display: grid; gap: 9px; }
.monthly-summary-forecast-heading > span { padding: 4px 7px; border-radius: 999px; background: #eaf5f3; color: #498f7c; font-size: 8px; }
.monthly-summary-forecast-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.monthly-summary-forecast-grid article { display: grid; gap: 4px; min-width: 0; padding: 9px 10px; border: 1px solid #e9eef0; border-radius: 9px; background: #fff; }
.monthly-summary-forecast-grid b { overflow-wrap: anywhere; color: #3f4d59; font-size: 15px; font-variant-numeric: tabular-nums; }
.monthly-summary-forecast-grid span { color: #87929c; font-size: 8px; line-height: 1.5; }
.monthly-summary-method { display: block; }
.monthly-summary-key-changes { display: grid; gap: 8px; }
.monthly-summary-change-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.monthly-summary-change-list > span { display: grid; gap: 3px; min-width: 0; padding: 8px; border: 1px solid #e9eef0; border-radius: 8px; background: #fff; }
.monthly-summary-change-list b { overflow: hidden; color: #64717c; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.monthly-summary-change-list strong { font-size: 12px; font-variant-numeric: tabular-nums; }
.monthly-summary-change-list small,.monthly-summary-muted { color: #929ca5; font-size: 8px; }
.monthly-summary-muted { margin: 0; }
.monthly-summary-conclusion { border: 1px solid #f5e9dc; background: linear-gradient(120deg,#fffaf5,#fff); }
.monthly-summary-conclusion p { margin-top: 5px; }
.monthly-summary-data-status { margin: 0; padding: 0 2px; }
[data-theme="night"] .monthly-summary-status-pill,[data-theme="night"] .monthly-summary-kpis article,[data-theme="night"] .monthly-summary-reason,[data-theme="night"] .monthly-summary-forecast,[data-theme="night"] .monthly-summary-key-changes { border-color: #293743; background: #1c2832; }
[data-theme="night"] .monthly-summary-forecast-grid article,[data-theme="night"] .monthly-summary-change-list > span { border-color: #293743; background: #202d37; }
[data-theme="night"] .monthly-summary-conclusion { border-color: #4a3b31; background: #2d2825; }
@media (max-width: 620px) {
  .monthly-summary-analysis { gap: 10px; padding: 12px; }
  .monthly-summary-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monthly-summary-kpis strong { font-size: 14px; }
  .monthly-summary-change-list { grid-template-columns: 1fr; }
}

/* Real monthly forecast snapshots and forecast backtesting. */
.monthly-forecast-backtest { display: grid; gap: 10px; }
.monthly-forecast-backtest > .annual-card-heading { align-items: center; }
.monthly-forecast-backtest > .annual-card-heading .secondary-button { flex: 0 0 auto; }
.monthly-backtest-checkpoint-note,.monthly-backtest-validity,.monthly-backtest-empty { margin: 0 18px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.monthly-backtest-checkpoint-note { padding: 8px 10px; border-radius: 8px; background: #f7f9fa; }
.monthly-backtest-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 18px; }
.monthly-backtest-metrics article,.monthly-backtest-salary-grid article,.monthly-backtest-budget-metrics article { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-soft); }
.monthly-backtest-metrics small,.monthly-backtest-salary-grid small,.monthly-backtest-budget-metrics small { color: var(--muted); font-size: 8px; }
.monthly-backtest-metrics strong,.monthly-backtest-salary-grid strong,.monthly-backtest-budget-metrics strong { color: var(--ink); font-size: 15px; font-variant-numeric: tabular-nums; }
.monthly-backtest-metrics span,.monthly-backtest-metrics em,.monthly-backtest-salary-grid span,.monthly-backtest-salary-grid em,.monthly-backtest-budget-metrics span { color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.45; }
.monthly-backtest-metrics em { color: var(--ink); }
.report-tab-panel .monthly-forecast-backtest .is-positive { color: var(--report-income) !important; }
.report-tab-panel .monthly-forecast-backtest .is-negative { color: var(--report-expense) !important; }
.monthly-backtest-summary-strip { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0 18px; color: var(--muted); font-size: 8px; }
.monthly-backtest-summary-strip b { color: var(--ink); }
.monthly-backtest-subcard { display: grid; gap: 8px; margin: 0 18px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.monthly-backtest-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.monthly-backtest-subheading strong { color: var(--ink); font-size: 10px; }
.monthly-backtest-subheading small { color: var(--muted); font-size: 8px; line-height: 1.4; text-align: right; }
.monthly-backtest-table-scroll { overflow-x: auto; }
.monthly-backtest-table { width: 100%; border-collapse: collapse; font-size: 8px; white-space: nowrap; }
.monthly-backtest-table th,.monthly-backtest-table td { padding: 7px 8px; border-bottom: 1px solid var(--line); color: var(--ink); text-align: right; }
.monthly-backtest-table thead th { color: var(--muted); font-weight: 500; }
.monthly-backtest-table th:first-child { text-align: left; }
.monthly-backtest-horizon-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.monthly-backtest-horizon-grid article { display: grid; gap: 4px; min-width: 0; padding: 8px; border-radius: 7px; background: var(--surface-soft); }
.monthly-backtest-horizon-grid strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-horizon-grid span,.monthly-backtest-horizon-grid small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.monthly-backtest-salary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.monthly-backtest-budget-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.monthly-backtest-warning-list { display: grid; gap: 5px; }
.monthly-backtest-warning-list article { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; border-top: 1px solid var(--line); }
.monthly-backtest-warning-list article > div:first-child { display: grid; gap: 3px; min-width: 0; }
.monthly-backtest-warning-list article strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-warning-list article small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.monthly-backtest-warning-list article > div:last-child { display: flex; flex: 0 0 auto; gap: 4px; }
.monthly-backtest-warning-list button { padding: 5px 7px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--muted); font: inherit; font-size: 7px; cursor: pointer; }
.monthly-backtest-warning-list button[aria-pressed="true"] { border-color: #d8a28f; background: #fff5f1; color: var(--report-income); }
.monthly-backtest-warning-list button[data-forecast-budget-review="none"][aria-pressed="true"] { border-color: #9ec9b5; background: #f0f8f3; color: var(--report-expense); }
.monthly-backtest-chart-legend,.monthly-backtest-range-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; color: var(--muted); font-size: 8px; }
.monthly-backtest-chart-legend span,.monthly-backtest-range-legend span { display: inline-flex; align-items: center; gap: 4px; }
.monthly-backtest-chart-legend i,.monthly-backtest-range-legend i { display: inline-block; width: 14px; height: 2px; background: #7380ca; }
.monthly-backtest-chart-legend i.actual { height: 0; border-top: 1px dashed var(--muted); background: transparent; }
.monthly-backtest-revision-chart,.monthly-backtest-category-waterfall { display: block; width: 100%; height: auto; overflow: visible; }
.monthly-backtest-revision-chart polyline { fill: none; stroke: #7380ca; stroke-width: 2; vector-effect: non-scaling-stroke; }
.monthly-backtest-revision-chart circle { fill: #7380ca; stroke: var(--surface); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.monthly-backtest-revision-chart .actual-line { stroke: var(--muted); stroke-dasharray: 4 3; stroke-width: 1; }
.monthly-backtest-revision-chart text,.monthly-backtest-category-waterfall text { fill: var(--muted); font: 8px system-ui,sans-serif; }
.monthly-backtest-revision-deltas { display: flex; flex-wrap: wrap; gap: 5px 12px; color: var(--muted); font-size: 7px; }
.monthly-backtest-category-waterfall .zero { stroke: var(--line-strong); stroke-width: 1; }
.monthly-backtest-category-waterfall g rect { fill: var(--report-income); }
.monthly-backtest-category-waterfall g.is-negative rect { fill: var(--report-expense); }
.monthly-backtest-subcard > small { color: var(--muted); font-size: 7px; }
.monthly-backtest-heatmap { display: grid; gap: 3px; overflow-x: auto; }
.monthly-backtest-heatmap-row { display: grid; grid-template-columns: minmax(58px,1fr) repeat(4,minmax(66px,1fr)); align-items: stretch; gap: 4px; min-width: 340px; }
.monthly-backtest-heatmap-row > strong,.monthly-backtest-heatmap-row > b,.monthly-backtest-heatmap-row > span { display: grid; align-content: center; justify-items: center; gap: 2px; min-height: 30px; padding: 4px; border-radius: 5px; color: var(--ink); font-size: 7px; font-weight: 600; text-align: center; }
.monthly-backtest-heatmap-row > strong { justify-items: start; background: transparent; }
.monthly-backtest-heatmap-row > b { color: var(--muted); font-weight: 500; }
.monthly-backtest-heatmap-row > span.is-positive { background: #fff0ec; }
.monthly-backtest-heatmap-row > span.is-negative { background: #edf7f1; }
.monthly-backtest-heatmap-row > span.is-empty { color: var(--muted); background: var(--surface-soft); font-weight: 400; }
.monthly-backtest-heatmap-row > span small { color: inherit; font-size: 6px; font-weight: 400; }
.monthly-backtest-range-legend > strong { margin-left: auto; color: var(--ink); font-size: 8px; }
.monthly-backtest-range-legend > span:first-child i { height: 7px; border-radius: 4px; background: #dceee4; }
.monthly-backtest-range-legend > span:nth-child(2) b { width: 2px; height: 12px; background: #55616d; }
.monthly-backtest-range-list { display: grid; gap: 7px; }
.monthly-backtest-range-row { display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 3px 8px; }
.monthly-backtest-range-row > strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-range-row > small { grid-column: 2; color: var(--muted); font-size: 7px; }
.monthly-backtest-range-track { position: relative; height: 10px; border-radius: 99px; background: var(--surface-soft); }
.monthly-backtest-range-track .band { position: absolute; top: 2px; bottom: 2px; min-width: 2px; border-radius: 99px; background: #b9dfca; }
.monthly-backtest-range-track .actual { position: absolute; top: 0; width: 2px; height: 10px; background: #4b5661; transform: translateX(-50%); }
.monthly-backtest-range-track .actual.is-covered { width: 4px; border-radius: 4px; background: #548f71; }
.monthly-backtest-heatmap-row > span.is-positive,.monthly-backtest-warning-list button[data-forecast-budget-review="acted"][aria-pressed="true"] { color: var(--report-income); }
.monthly-backtest-heatmap-row > span.is-negative { color: var(--report-expense); }
.monthly-backtest-category-waterfall > small { fill: var(--muted); }
.monthly-backtest-validity { display: grid; gap: 4px; padding: 9px 10px; border-radius: 8px; background: var(--surface-soft); }
.monthly-backtest-validity strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-record { margin: 0 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.monthly-backtest-record > summary { display: grid; grid-template-columns: minmax(110px,1fr) auto auto; align-items: center; gap: 5px 10px; padding: 9px 10px; cursor: pointer; list-style: none; }
.monthly-backtest-record > summary::-webkit-details-marker { display: none; }
.monthly-backtest-record > summary::after { content: '⌄'; grid-column: 3; grid-row: 1; justify-self: end; color: var(--muted); }
.monthly-backtest-record[open] > summary::after { content: '⌃'; }
.monthly-backtest-record > summary strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-record > summary span,.monthly-backtest-record > summary em { color: var(--muted); font-size: 7px; font-style: normal; }
.monthly-backtest-record > summary b { grid-column: 2; grid-row: 1; font-size: 8px; }
.monthly-backtest-record > summary em { grid-column: 1 / -1; }
.monthly-backtest-record-body { display: grid; gap: 7px; padding: 8px 10px 10px; border-top: 1px solid var(--line); }
.monthly-backtest-error-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; }
.monthly-backtest-error-grid > div { display: grid; gap: 3px; min-width: 0; padding: 7px; border-radius: 6px; background: var(--surface-soft); }
.monthly-backtest-error-grid strong { color: var(--ink); font-size: 8px; }
.monthly-backtest-error-grid span,.monthly-backtest-error-grid small { color: var(--muted); font-size: 7px; line-height: 1.4; }
.monthly-backtest-error-grid b { font-size: 8px; }
.monthly-backtest-record-body p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.monthly-backtest-category-errors { display: flex; flex-wrap: wrap; gap: 5px 12px; color: var(--muted); font-size: 7px; }
.monthly-backtest-category-errors > strong { flex-basis: 100%; color: var(--ink); }
.monthly-backtest-category-errors b { margin-left: 3px; }
.monthly-backtest-older,.monthly-backtest-simulation { display: grid; gap: 6px; margin: 0 18px; }
.monthly-backtest-older > summary,.monthly-backtest-simulation > summary { padding: 8px; border: 1px solid var(--line); border-radius: 7px; color: var(--muted); font-size: 8px; text-align: center; cursor: pointer; list-style: none; }
.monthly-backtest-simulation > p { margin: 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.monthly-backtest-simulation > article { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 10px; padding: 7px 8px; border-radius: 6px; background: var(--surface-soft); font-size: 7px; }
.monthly-backtest-simulation > article strong { color: var(--ink); }
.monthly-backtest-simulation > article span,.monthly-backtest-simulation > article small { color: var(--muted); }
[data-theme="night"] .monthly-backtest-checkpoint-note,[data-theme="night"] .monthly-backtest-validity,[data-theme="night"] .monthly-backtest-horizon-grid article,[data-theme="night"] .monthly-backtest-error-grid > div { background: #1c2832; }
[data-theme="night"] .monthly-backtest-subcard,[data-theme="night"] .monthly-backtest-metrics article,[data-theme="night"] .monthly-backtest-salary-grid article,[data-theme="night"] .monthly-backtest-budget-metrics article,[data-theme="night"] .monthly-backtest-record,[data-theme="night"] .monthly-backtest-simulation > article { border-color: #293743; background: #18242d; }
[data-theme="night"] .monthly-backtest-warning-list button { border-color: #344250; background: #1c2832; }
[data-theme="night"] .monthly-backtest-warning-list button[aria-pressed="true"] { background: #352720; }
[data-theme="night"] .monthly-backtest-warning-list button[data-forecast-budget-review="none"][aria-pressed="true"] { background: #1e3029; }
[data-theme="night"] .monthly-backtest-heatmap-row > span.is-positive { background: #382825; }
[data-theme="night"] .monthly-backtest-heatmap-row > span.is-negative { background: #20342d; }
@media (max-width: 700px) {
  .monthly-forecast-backtest > .annual-card-heading { align-items: flex-start; flex-direction: column; }
  .monthly-forecast-backtest > .annual-card-heading .secondary-button { align-self: stretch; }
  .monthly-backtest-checkpoint-note,.monthly-backtest-validity,.monthly-backtest-metrics,.monthly-backtest-summary-strip,.monthly-backtest-subcard,.monthly-backtest-record,.monthly-backtest-older,.monthly-backtest-simulation { margin-right: 11px; margin-left: 11px; }
  .monthly-backtest-metrics { grid-template-columns: 1fr; }
  .monthly-backtest-budget-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monthly-backtest-horizon-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monthly-backtest-subheading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .monthly-backtest-subheading small { text-align: left; }
  .monthly-backtest-record > summary { grid-template-columns: minmax(0,1fr) auto 16px; }
  .monthly-backtest-record > summary::after { grid-column: 3; }
  .monthly-backtest-record > summary b { grid-column: 2; }
  .monthly-backtest-record > summary em { grid-column: 1 / -1; }
  .monthly-backtest-error-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .monthly-backtest-warning-list article { align-items: flex-start; flex-direction: column; }
  .monthly-backtest-warning-list article > div:last-child { align-self: flex-end; }
}

/* 二级支出分类对比 */
.compare-expense-category-card { overflow: hidden; }
.compare-expense-category-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; padding: 12px 20px; }
.compare-expense-category-toolbar > label { display: grid; gap: 5px; color: #87929d; font-size: 9px; }
.compare-expense-category-toolbar select { min-width: 120px; height: 32px; padding: 0 8px; border: 1px solid #e5eaee; border-radius: 8px; background: #fff; color: #46515d; font: inherit; font-size: 10px; }
.compare-expense-total-change { display: grid; gap: 4px; margin: 0 20px 12px; padding: 11px 13px; border: 1px solid #e8edf0; border-radius: 10px; background: #f8fafb; }
.compare-expense-total-change strong { color: #3d4955; font-size: 10px; }
.compare-expense-total-change span { color: var(--ink); font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.compare-expense-total-change small { color: #84909b; font-size: 8px; line-height: 1.5; }
.compare-expense-category-list { display: grid; gap: 9px; padding: 0 20px 18px; }
.compare-expense-category-row { display: grid; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.compare-expense-category-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 7px; min-width: 0; }
.compare-expense-category-head > strong { min-width: 0; color: #35414d; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; white-space: normal; }
.compare-expense-badges { display: flex; flex-wrap: wrap; gap: 4px; }
.compare-category-badge { padding: 3px 6px; border-radius: 99px; background: #f0f3f5; color: #788592; font-size: 8px; line-height: 1.3; }
.compare-category-badge.is-new { background: #fff3ed; color: #ca7458; }
.compare-category-badge.is-no-spend { background: #f1f4f6; color: #77838f; }
.compare-category-badge.is-over { background: #fff1ee; color: #c55f52; }
.compare-expense-periods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.compare-expense-periods > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 9px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; }
.compare-expense-periods small,.compare-expense-reference { color: #84909b; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.compare-expense-periods > div > strong { color: var(--report-expense); font-size: 14px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.compare-expense-periods > div > strong.compare-category-share { color: #46515d; }
.compare-category-routine-oneoff { padding-top: 3px; border-top: 1px solid #edf0f2; }
.compare-category-routine-oneoff b { font-weight: 600; }
.compare-expense-pair-bars { display: grid; gap: 4px; padding: 2px 0; }
.compare-expense-pair-bars > span { display: block; min-width: 2px; height: 5px; border-radius: 99px; }
.compare-expense-pair-bars .compare-bar-primary { background: #5c86e8; }
.compare-expense-pair-bars .compare-bar-secondary { background: #e98669; }
.compare-expense-change-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; color: #75818d; font-size: 8px; line-height: 1.5; }
.compare-expense-change-grid > span { min-width: 0; overflow-wrap: anywhere; }
.compare-expense-change-grid b { color: var(--report-expense); font-weight: 600; }
.compare-category-budget-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.compare-category-budget-pair > div { display: grid; gap: 3px; min-width: 0; padding: 7px 8px; border-radius: 8px; background: #f8fafb; }
.compare-category-budget-pair > div > small:first-child { color: #88939e; font-size: 8px; }
.compare-category-budget { color: #64717d; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.compare-category-budget.is-over { color: #b95f4e; }
.compare-category-budget.is-muted,.compare-expense-transactions-empty { color: #97a1aa; }
.compare-category-sparkline { width: 84px; height: 26px; vertical-align: middle; }
.compare-category-sparkline polyline { fill: none; stroke: #5e8d83; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.compare-category-sparkline circle { fill: #5e8d83; }
.compare-category-sparkline-empty { color: #a2abb3; font-size: 8px; }
.compare-expense-expand,.compare-expense-show-all { justify-self: start; min-height: 28px; padding: 0 9px; border: 1px solid #e5eaee; border-radius: 7px; background: #fff; color: #566370; font: inherit; font-size: 8px; cursor: pointer; }
.compare-expense-row-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding-top: 8px; border-top: 1px solid #edf0f2; }
.compare-expense-row-details > section { display: grid; align-content: start; gap: 6px; min-width: 0; }
.compare-expense-row-details > section > strong { color: #5a6672; font-size: 9px; }
.compare-expense-transactions { display: grid; gap: 4px; }
.compare-expense-transaction { display: grid; grid-template-columns: 75px minmax(0, 1fr) auto; gap: 6px; align-items: center; min-width: 0; padding: 6px 7px; border: 1px solid #eff1f3; border-radius: 7px; background: #fbfcfd; color: #697580; text-align: left; cursor: pointer; }
.compare-expense-transaction > span { color: #929ca6; font-size: 8px; }
.compare-expense-transaction > strong { overflow: hidden; color: #53606c; font-size: 8px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.compare-expense-transaction > b { color: var(--report-expense); font-size: 8px; white-space: nowrap; }
.compare-expense-transactions-empty { font-size: 8px; line-height: 1.5; }
[data-theme="night"] .compare-expense-category-toolbar select,[data-theme="night"] .compare-expense-category-row,[data-theme="night"] .compare-expense-expand,[data-theme="night"] .compare-expense-show-all { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .compare-expense-total-change,[data-theme="night"] .compare-expense-periods > div,[data-theme="night"] .compare-category-budget-pair > div,[data-theme="night"] .compare-expense-transaction { border-color: #35414b; background: #1d2730; }
[data-theme="night"] .compare-expense-category-head > strong,[data-theme="night"] .compare-expense-total-change strong,[data-theme="night"] .compare-expense-transaction > strong { color: #d5dde4; }
[data-theme="night"] .compare-expense-change-grid { color: #a6b1bb; }
@media (max-width: 700px) {
  .compare-expense-category-toolbar { align-items: stretch; padding: 10px 14px; }
  .compare-expense-category-toolbar > label { flex: 1 1 calc(50% - 6px); min-width: 0; }
  .compare-expense-category-toolbar select { width: 100%; min-width: 0; }
  .compare-expense-total-change { margin-right: 14px; margin-left: 14px; }
  .compare-expense-category-list { padding-right: 14px; padding-left: 14px; }
  .compare-expense-periods,.compare-category-budget-pair,.compare-expense-row-details { grid-template-columns: 1fr; }
  .compare-expense-change-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compare-expense-category-head { flex-direction: column; }
  .compare-expense-transaction { grid-template-columns: 65px minmax(0, 1fr) auto; }
}

/* 二级收入分类对比 */
.compare-income-category-card { overflow: hidden; }
.compare-income-classification-note { display: block; margin-top: 5px; color: #87929d; font-size: 8px; line-height: 1.5; }
.compare-income-kind-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; padding: 10px 20px 0; }
.compare-income-kind-summary > span { display: grid; gap: 4px; min-width: 0; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.compare-income-kind-summary small,.compare-income-kind-summary em { color: #87929d; font-size: 8px; font-style: normal; }
.compare-income-kind-summary b { color: var(--report-income); font-size: 9px; overflow-wrap: anywhere; }
.compare-income-fixed-variable { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 8px 20px 4px; }
.compare-income-fixed-variable article { display: grid; gap: 4px; min-width: 0; padding: 10px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; }
.compare-income-fixed-variable small,.compare-income-fixed-variable em { color: #87929d; font-size: 8px; font-style: normal; }
.compare-income-fixed-variable strong { color: var(--report-income); font-size: 12px; overflow-wrap: anywhere; }
.compare-income-fixed-variable strong span { color: #9ba5ae; font-size: 9px; font-weight: 400; }
.compare-income-fixed-variable b { color: #65717e; font-size: 8px; font-weight: 500; line-height: 1.5; }
.compare-income-category-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 9px; padding: 11px 20px; }
.compare-income-category-toolbar > label { display: grid; gap: 5px; color: #87929d; font-size: 9px; }
.compare-income-category-toolbar select { min-width: 120px; height: 32px; padding: 0 8px; border: 1px solid #e5eaee; border-radius: 8px; background: #fff; color: #46515d; font: inherit; font-size: 10px; }
.compare-income-total-change { display: grid; gap: 7px; margin: 0 20px 9px; padding: 11px 13px; border: 1px solid #e8edf0; border-radius: 10px; background: #f8fafb; }
.compare-income-total-change > strong { color: #3d4955; font-size: 10px; }
.compare-income-total-change > span { color: var(--report-income); font-size: 10px; font-weight: 650; line-height: 1.5; }
.compare-income-contribution-rank { display: grid; gap: 6px; }
.compare-income-contribution-rank > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(52px, .7fr) auto; gap: 7px; align-items: center; }
.compare-income-contribution-rank > div > span { color: #687580; font-size: 8px; overflow-wrap: anywhere; }
.compare-income-contribution-rank > div > i { display: block; height: 5px; overflow: hidden; border-radius: 8px; background: #e9edf0; }
.compare-income-contribution-rank > div > i > b { display: block; height: 100%; border-radius: inherit; background: var(--report-income); }
.compare-income-contribution-rank > div > strong { font-size: 8px; white-space: nowrap; }
.compare-income-contribution-rank.is-empty { color: #98a2ac; font-size: 8px; }
.compare-income-regular-oneoff { display: grid; gap: 3px; padding-top: 6px; border-top: 1px solid #e8edf0; }
.compare-income-regular-oneoff b { color: #56626e; font-size: 8px; }
.compare-income-regular-oneoff span { color: var(--report-income); font-size: 9px; font-weight: 600; }
.compare-income-regular-oneoff small { color: #89949e; font-size: 8px; line-height: 1.5; }
.compare-income-surplus-link { display: grid; gap: 4px; margin: 0 20px 10px; padding: 10px 13px; border-left: 3px solid #e16f64; border-radius: 7px; background: #fff8f6; }
.compare-income-surplus-link strong { color: #596570; font-size: 9px; }
.compare-income-surplus-link span { color: #6f7a85; font-size: 8px; line-height: 1.6; }
.compare-income-category-list { display: grid; gap: 9px; padding: 0 20px 18px; }
.compare-income-category-row { display: grid; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #edf0f2; border-radius: 11px; background: #fff; }
.compare-income-category-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 7px; min-width: 0; }
.compare-income-category-head > strong { min-width: 0; color: #35414d; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; white-space: normal; }
.compare-income-category-head > div { display: flex; flex-wrap: wrap; gap: 4px; }
.compare-income-kind-badge { padding: 3px 6px; border-radius: 99px; background: #f0f3f5; color: #74808b; font-size: 8px; line-height: 1.3; }
.compare-income-kind-badge.is-fixed { background: #fff0ed; color: #c5584e; }
.compare-income-kind-badge.is-bonus { background: #fff5e8; color: #af7529; }
.compare-income-kind-badge.is-other { background: #edf4ff; color: #5479ad; }
.compare-income-kind-badge.is-new { background: #fff0ed; color: #c5584e; }
.compare-income-kind-badge.is-missing { background: #f2f4f6; color: #77838e; }
.compare-income-periods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.compare-income-periods > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 9px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; }
.compare-income-periods small,.compare-income-reference-pair small { color: #84909b; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.compare-income-periods > div > strong { color: var(--report-income); font-size: 14px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.compare-income-periods > div > strong.compare-income-share { color: #46515d; }
.compare-income-period-timing { padding-top: 3px; border-top: 1px solid #edf0f2; }
.compare-income-pair-bars { display: grid; gap: 4px; padding: 2px 0; }
.compare-income-pair-bars > span { display: block; min-width: 2px; height: 5px; border-radius: 99px; }
.compare-income-bar-primary { background: #e98669; }
.compare-income-bar-secondary { background: #6d90cf; }
.compare-income-change-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; color: #75818d; font-size: 8px; line-height: 1.5; }
.compare-income-change-grid > span { min-width: 0; overflow-wrap: anywhere; }
.compare-income-change-grid b { color: var(--report-income); font-weight: 600; }
.compare-income-category-sparkline { width: 84px; height: 26px; vertical-align: middle; }
.compare-income-category-sparkline polyline { fill: none; stroke: var(--report-income); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.compare-income-category-sparkline circle { fill: var(--report-income); }
.compare-income-category-sparkline-empty { color: #98a2ac; font-size: 8px; }
.compare-income-reference-pair { display: grid; gap: 3px; padding: 7px 8px; border-radius: 8px; background: #f8fafb; }
.compare-income-expand,.compare-income-show-all { justify-self: start; min-height: 28px; padding: 0 9px; border: 1px solid #e5eaee; border-radius: 7px; background: #fff; color: #566370; font: inherit; font-size: 8px; cursor: pointer; }
.compare-income-row-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; padding-top: 8px; border-top: 1px solid #edf0f2; }
.compare-income-row-details > section { display: grid; align-content: start; gap: 6px; min-width: 0; }
.compare-income-row-details > section > strong { color: #5a6672; font-size: 9px; }
.compare-income-transactions { display: grid; gap: 4px; }
.compare-income-transaction { display: grid; grid-template-columns: 75px minmax(0, 1fr) auto; gap: 6px; align-items: center; min-width: 0; padding: 6px 7px; border: 1px solid #eff1f3; border-radius: 7px; background: #fbfcfd; color: #697580; text-align: left; cursor: pointer; }
.compare-income-transaction > span { color: #929ca6; font-size: 8px; }
.compare-income-transaction > strong { overflow: hidden; color: #53606c; font-size: 8px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.compare-income-transaction > b { color: var(--report-income); font-size: 8px; white-space: nowrap; }
.compare-income-transactions-empty { color: #97a1aa; font-size: 8px; line-height: 1.5; }
[data-theme="night"] .compare-income-kind-summary > span,[data-theme="night"] .compare-income-fixed-variable article,[data-theme="night"] .compare-income-periods > div,[data-theme="night"] .compare-income-category-row,[data-theme="night"] .compare-income-reference-pair,[data-theme="night"] .compare-income-expand,[data-theme="night"] .compare-income-show-all,[data-theme="night"] .compare-income-transaction { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .compare-income-total-change,[data-theme="night"] .compare-income-surplus-link { border-color: #38434d; background: #1d2730; }
[data-theme="night"] .compare-income-category-head > strong,[data-theme="night"] .compare-income-total-change > strong,[data-theme="night"] .compare-income-fixed-variable b,[data-theme="night"] .compare-income-regular-oneoff b,[data-theme="night"] .compare-income-surplus-link strong,[data-theme="night"] .compare-income-transaction > strong { color: #d5dde4; }
[data-theme="night"] .compare-income-classification-note { color: #9ba8b3; }
[data-theme="night"] .compare-income-category-toolbar select { border-color: #38434d; background: #202a33; color: #d4dde4; }
@media (max-width: 700px) {
  .compare-income-kind-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-right: 14px; padding-left: 14px; }
  .compare-income-fixed-variable { grid-template-columns: 1fr; padding-right: 14px; padding-left: 14px; }
  .compare-income-category-toolbar { align-items: stretch; padding: 10px 14px; }
  .compare-income-category-toolbar > label { flex: 1 1 calc(50% - 6px); min-width: 0; }
  .compare-income-category-toolbar select { width: 100%; min-width: 0; }
  .compare-income-total-change,.compare-income-surplus-link { margin-right: 14px; margin-left: 14px; }
  .compare-income-category-list { padding-right: 14px; padding-left: 14px; }
  .compare-income-periods,.compare-income-row-details { grid-template-columns: 1fr; }
  .compare-income-change-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .compare-income-category-head { flex-direction: column; }
  .compare-income-transaction { grid-template-columns: 65px minmax(0, 1fr) auto; }
}

/* 账户详情：余额核对与变动来源 */
.account-detail-overview { display: grid; gap: 12px; padding: 0 0 14px; }
.account-detail-overview > .annual-card-heading { align-items: flex-start; margin: 0; padding: 15px 18px 0; }
.account-detail-overview > .annual-card-heading > div { display: grid; gap: 4px; }
.account-detail-cutoff-badge { max-width: 58%; padding: 5px 8px; border-radius: 99px; background: #f2f5f7; color: #65717d; font-size: 8px; font-weight: 500; line-height: 1.4; text-align: right; }
.account-detail-overview-balance-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; padding: 0 18px; }
.account-detail-overview-balance-card { display: grid; gap: 6px; min-width: 0; padding: 11px; border: 1px solid #edf0f2; border-radius: 10px; background: #fafbfc; }
.account-detail-overview-balance-card > small,.account-detail-overview-flow-metric > small { color: #84909b; font-size: 8px; }
.account-detail-overview-balance-card > b { color: #35414d; font-size: 15px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.account-detail-overview-balance-card > span { display: grid; gap: 3px; color: #77838e; font-size: 8px; line-height: 1.45; }
.account-detail-overview-balance-card > span i { font-style: normal; overflow-wrap: anywhere; }
.account-detail-overview-flow-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; padding: 0 18px; }
.account-detail-overview-flow-metric { display: grid; gap: 6px; min-width: 0; padding: 9px 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; }
.account-detail-overview-flow-metric > b { color: #35414d; font-size: 10px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.account-detail-overview-flow-metric.is-income > b,.account-detail-source-flows .is-income { color: var(--report-income); }
.account-detail-overview-flow-metric.is-expense > b,.account-detail-source-flows .is-expense { color: var(--report-expense); }
.account-detail-overview-comparison { display: grid; gap: 8px; margin: 0 18px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.account-detail-overview-comparison > div:first-child { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 10px; align-items: baseline; }
.account-detail-overview-comparison > div:first-child > strong { color: #46525e; font-size: 9px; }
.account-detail-overview-comparison > div:first-child > small { color: #87929d; font-size: 8px; }
.account-detail-overview-compare-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.account-detail-overview-compare-metric { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fff; }
.account-detail-overview-compare-metric > small { color: #87929d; font-size: 8px; }
.account-detail-overview-compare-metric > b { color: #35414d; font-size: 10px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.account-detail-overview-compare-metric > span { color: #76828d; font-size: 8px; line-height: 1.45; overflow-wrap: anywhere; }
.account-detail-overview-compare-metric.is-income > b,.account-detail-overview-compare-metric.is-income > span { color: var(--report-income); }
.account-detail-overview-compare-metric.is-expense > b,.account-detail-overview-compare-metric.is-expense > span { color: var(--report-expense); }
.account-detail-liquid-breakdown,.account-detail-liability-explanation { display: grid; gap: 5px; margin: 0 18px; padding: 11px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #f8fafb; }
.account-detail-liquid-breakdown > strong,.account-detail-liability-explanation > strong,.account-detail-bridge-section > div > strong,.account-detail-overview-sources-heading strong,.account-detail-anomalies > strong { color: #46525e; font-size: 9px; }
.account-detail-liquid-breakdown > span,.account-detail-liability-explanation > span { color: #55616d; font-size: 9px; line-height: 1.6; overflow-wrap: anywhere; }
.account-detail-liquid-breakdown > span > b { color: #35414d; font-weight: 650; }
.account-detail-liquid-breakdown > small { color: #87929d; font-size: 8px; line-height: 1.5; }
.account-detail-bridge-section { display: grid; gap: 6px; padding: 0 18px; }
.account-detail-bridge-section > div:first-child { display: grid; gap: 4px; }
.account-detail-bridge-section > div:first-child > span,.account-detail-reconciliation,.account-detail-overview-note { color: #84909b; font-size: 8px; line-height: 1.55; }
.account-detail-bridge-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.account-detail-bridge-svg { display: block; width: 560px; max-width: none; height: 154px; overflow: visible; }
.account-detail-bridge-grid { stroke: #edf0f2; stroke-width: 1; }
.account-detail-bridge-axis,.account-detail-bridge-label,.account-detail-bridge-value { fill: #78848f; font-family: inherit; font-size: 8px; }
.account-detail-bridge-label { font-size: 7px; }
.account-detail-bridge-value { font-size: 7px; }
.account-detail-bridge-value.is-income { fill: var(--report-income); }
.account-detail-bridge-value.is-expense { fill: var(--report-expense); }
.account-detail-bridge-baseline { stroke: #9aa4ad; stroke-width: 1.1; }
.account-detail-bridge-item rect.is-total { fill: #85919c; }
.account-detail-bridge-item rect.is-income { fill: var(--report-income); }
.account-detail-bridge-item rect.is-expense { fill: var(--report-expense); }
.account-detail-bridge-item rect.is-adjustment,.account-detail-bridge-item rect.is-residual { fill: #9ba6b0; }
.account-detail-bridge-section > p { margin: 0; }
.account-detail-overview-sources { display: grid; gap: 9px; padding: 0 18px; }
.account-detail-overview-sources-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.account-detail-overview-sources-heading > div { display: grid; gap: 3px; }
.account-detail-overview-sources-heading small { color: #87929d; font-size: 8px; line-height: 1.45; }
.account-detail-overview-expand { flex: 0 0 auto; min-height: 29px; padding: 0 9px; border: 1px solid #e4e9ed; border-radius: 7px; background: #fff; color: #596673; font: inherit; font-size: 8px; cursor: pointer; }
.account-detail-contribution-list { display: grid; gap: 7px; }
.account-detail-contribution-row { display: grid; grid-template-columns: minmax(70px, 1fr) minmax(80px, 1.3fr) auto; gap: 8px; align-items: center; min-width: 0; }
.account-detail-contribution-row > span { overflow: hidden; color: #64717d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.account-detail-contribution-row > i { position: relative; display: block; height: 8px; overflow: hidden; border-radius: 99px; background: #edf0f2; }
.account-detail-contribution-row > i::after { position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: #a8b1b9; content: ""; }
.account-detail-contribution-row > i > b { position: absolute; top: 1px; bottom: 1px; border-radius: 99px; background: #82909c; }
.account-detail-contribution-row > strong { color: #35414d; font-size: 8px; font-weight: 550; white-space: nowrap; }
.account-detail-source-list { display: grid; gap: 7px; padding-top: 8px; border-top: 1px solid #edf0f2; }
.account-detail-source-account { display: grid; gap: 7px; padding: 10px; border: 1px solid #edf0f2; border-radius: 9px; background: #fff; }
.account-detail-source-heading { display: flex; align-items: center; gap: 7px; min-width: 0; }
.account-detail-source-heading > span { display: grid; width: 22px; height: 22px; flex: 0 0 auto; place-items: center; }
.account-detail-source-heading img { max-width: 22px; max-height: 22px; }
.account-detail-source-heading > strong { min-width: 0; overflow: hidden; color: #3d4955; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.account-detail-source-heading > small { margin-left: auto; color: #87929d; font-size: 8px; white-space: nowrap; }
.account-detail-source-balances { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; color: #5e6a76; font-size: 8px; line-height: 1.5; }
.account-detail-source-balances > span { min-width: 0; overflow-wrap: anywhere; }
.account-detail-source-flows { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #687580; font-size: 8px; }
.account-detail-source-check { color: #89949e; font-size: 8px; }
.account-detail-anomalies { display: grid; gap: 6px; margin: 0 18px; padding: 10px 12px; border: 1px solid #edf0f2; border-radius: 9px; background: #fafbfc; }
.account-detail-flow-note { margin: -5px 14px 2px; color: #84909b; font-size: 8px; line-height: 1.45; }
.account-external-income-card { overflow: visible; padding: 0 0 12px; }
.account-external-income-card > .annual-card-heading { align-items: flex-start; }
.account-external-income-card > .annual-card-heading > div { display: grid; gap: 4px; min-width: 0; }
.account-external-income-card > .annual-card-heading > div > span { line-height: 1.45; }
.account-income-total { flex: 0 0 auto; color: var(--report-income); font-size: 14px; }
.account-external-income-card > .account-detail-flow-note { margin: -4px 14px 10px; }
.account-income-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0 14px 9px; }
.account-income-summary-grid > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-income-summary-grid small { color: #89949e; font-size: 7px; }
.account-income-summary-grid b { overflow-wrap: anywhere; color: var(--ink); font-size: 9px; font-weight: 600; }
.account-income-notices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 0 14px 9px; }
.account-income-notices > span { display: grid; gap: 4px; padding: 8px 9px; border: 1px solid #f0e5df; border-radius: 8px; background: #fffaf7; color: #74685f; font-size: 8px; line-height: 1.45; }
.account-income-notices b { color: #596674; font-size: 8px; }
.account-income-contribution { display: grid; gap: 6px; margin: 0 14px 9px; padding: 8px 9px; border-radius: 8px; background: #f8fafb; }
.account-income-contribution > strong { color: #566472; font-size: 8px; }
.account-income-contribution > div { display: flex; flex-wrap: wrap; gap: 5px; }
.account-income-contribution > div > span { display: flex; align-items: baseline; gap: 5px; padding: 4px 6px; border: 1px solid #e9edf0; border-radius: 6px; background: #fff; font-size: 7px; }
.account-income-contribution > div > span > b { color: #65717d; font-weight: 500; }
.account-income-contribution > div > span > strong { font-size: 8px; }
.account-income-change-value { color: var(--ink); font-weight: 600; }
.account-income-contribution > div > span > small { color: #89949e; }
.account-income-toolbar { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 14px 8px; }
.account-income-toolbar label { display: grid; grid-template-columns: auto minmax(90px, 1fr); align-items: center; gap: 5px; color: #89949e; font-size: 8px; }
.account-income-toolbar select { min-width: 0; max-width: 170px; height: 28px; padding: 0 7px; border: 1px solid #e7ebee; border-radius: 7px; background: #fff; color: #586572; font: inherit; }
.account-income-legend { display: flex; flex-wrap: wrap; gap: 5px 10px; padding: 0 14px 8px; color: #77838e; font-size: 7px; }
.account-income-legend > span { display: inline-flex; align-items: center; gap: 4px; }
.account-income-legend i,.account-income-source-breakdown i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 2px; background: var(--account-income-source, var(--report-income)); }
.account-income-account-list { display: grid; }
.account-income-account-row { display: grid; gap: 5px; padding: 8px 14px; border-top: 1px solid #eef1f3; }
.account-income-account-row.is-selected { background: #fff9f6; box-shadow: inset 3px 0 #e97963; }
.account-income-account-button { display: grid; grid-template-columns: 26px minmax(68px, 1fr) minmax(95px, auto); align-items: center; gap: 7px; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.account-income-account-icon { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #f3f6f8; font-size: 13px; }
.account-income-account-icon .account-custom-icon { max-width: 21px; max-height: 21px; border-radius: 5px; }
.account-income-account-name,.account-income-current-total { display: grid; gap: 3px; min-width: 0; }
.account-income-account-name b { overflow: hidden; color: #596674; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-income-account-name small,.account-income-current-total small { color: #929da7; font-size: 7px; }
.account-income-current-total { justify-items: end; text-align: right; }
.account-income-current-total > b { color: var(--report-income); font-size: 10px; font-variant-numeric: tabular-nums; }
.account-income-row-insights { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-left: 33px; color: #87929c; font-size: 7px; }
.account-income-row-insights b { color: var(--report-income); font-weight: 600; }
.account-income-row-insights > span { display: inline-flex; align-items: center; gap: 3px; }
.account-income-sparkline { display: block; width: 66px; height: 22px; overflow: visible; }
.account-income-sparkline polyline { fill: none; stroke: var(--report-income); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-income-sparkline circle { fill: var(--report-income); stroke: #fff; stroke-width: 1; }
.account-income-spark-empty { color: #a1abb4; }
.account-income-stack-line { display: grid; grid-template-columns: minmax(80px, 1fr) auto; align-items: center; gap: 9px; padding-left: 33px; }
.account-income-bar-track { position: relative; display: block; height: 9px; overflow: visible; border-radius: 999px; background: #f0f2f4; }
.account-income-bar-stack { position: absolute; inset: 0 auto 0 0; display: flex; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; }
.account-income-stack-segment { display: block; width: var(--segment-width); height: 100%; min-width: 0; background: var(--account-income-source); }
.account-income-stack-empty { display: block; width: 0; }
.account-income-previous-marker { position: absolute; z-index: 1; top: -3px; bottom: -3px; width: 2px; transform: translateX(-1px); border-radius: 2px; background: #374151; box-shadow: 0 0 0 1px #fff; }
.account-income-previous-value { color: #7b8791; font-size: 7px; font-weight: 500; white-space: nowrap; }
.account-income-pinned-detail { position: sticky; bottom: 8px; z-index: 1; display: grid; gap: 8px; margin: 10px 12px 0; padding: 10px; border: 1px solid #e6eaed; border-radius: 10px; background: rgba(255,255,255,.98); box-shadow: 0 5px 18px rgba(31,41,51,.08); }
.account-income-pinned-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.account-income-pinned-heading > div { display: grid; gap: 3px; min-width: 0; }
.account-income-pinned-heading > div > b { color: #46525e; font-size: 9px; }
.account-income-pinned-heading > div > small { color: #929da7; font-size: 7px; line-height: 1.4; }
.account-income-pinned-heading > span { color: #6c7883; font-size: 7px; text-align: right; white-space: nowrap; }
.account-income-detail-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.account-income-detail-metrics > span { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 6px; border-radius: 7px; background: #f7f9fa; }
.account-income-detail-metrics small { color: #8b97a1; font-size: 7px; }
.account-income-detail-metrics b { overflow-wrap: anywhere; color: #46525e; font-size: 8px; font-weight: 600; line-height: 1.35; }
.account-income-source-breakdown { display: flex; flex-wrap: wrap; gap: 5px; }
.account-income-source-breakdown > span { display: grid; grid-template-columns: 7px minmax(0, 1fr); align-items: center; gap: 4px; min-width: 120px; padding: 5px 6px; border: 1px solid #edf0f2; border-radius: 6px; }
.account-income-source-breakdown > span > b { overflow: hidden; color: #697580; font-size: 7px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account-income-source-breakdown > span > small { grid-column: 2; color: #929da7; font-size: 7px; }
.account-income-source-breakdown > p { margin: 0; color: #89949e; font-size: 8px; }
.account-income-detail-transactions { display: grid; gap: 5px; }
.account-income-detail-transactions > strong { color: #606d78; font-size: 8px; }
.account-income-detail-transactions > div { display: flex; justify-content: space-between; gap: 8px; padding-top: 4px; border-top: 1px solid #eff1f2; }
.account-income-detail-transactions > div > span { overflow: hidden; color: #7d8993; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-income-detail-transactions > div > b { flex: 0 0 auto; font-size: 8px; }
.account-income-detail-transactions > p { margin: 0; color: #89949e; font-size: 8px; }
.account-income-status-note { margin: 8px 14px 0; color: #929da7; font-size: 7px; line-height: 1.5; }
[data-theme="night"] .account-income-summary-grid > span,[data-theme="night"] .account-income-notices > span,[data-theme="night"] .account-income-contribution,[data-theme="night"] .account-income-contribution > div > span,[data-theme="night"] .account-income-pinned-detail,[data-theme="night"] .account-income-detail-metrics > span,[data-theme="night"] .account-income-source-breakdown > span { border-color: #38434d; background: #202a33; }
[data-theme="night"] .account-income-notices > span,[data-theme="night"] .account-income-pinned-heading > div > b,[data-theme="night"] .account-income-summary-grid b,[data-theme="night"] .account-income-account-name b,[data-theme="night"] .account-income-detail-metrics b,[data-theme="night"] .account-income-source-breakdown > span > b,[data-theme="night"] .account-income-detail-transactions > strong { color: #d5dee5; }
[data-theme="night"] .account-income-account-row { border-color: #303a44; }
[data-theme="night"] .account-income-account-row.is-selected { background: #302a2b; }
[data-theme="night"] .account-income-toolbar select { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .account-income-bar-track { background: #303a44; }
[data-theme="night"] .account-income-previous-marker { background: #d2d9df; box-shadow: 0 0 0 1px #202a33; }
@media (max-width: 700px) {
  .account-income-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-income-notices { grid-template-columns: 1fr; }
  .account-income-toolbar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-income-toolbar label { grid-template-columns: 1fr; }
  .account-income-toolbar select { width: 100%; max-width: none; }
  .account-income-detail-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-income-row-insights { gap: 4px 8px; }
  .account-income-pinned-detail { bottom: 4px; margin-right: 8px; margin-left: 8px; }
}
.account-external-expense-card { overflow: visible; padding: 0 0 12px; }
.account-external-expense-card > .annual-card-heading { align-items: flex-start; }
.account-external-expense-card > .annual-card-heading > div { display: grid; gap: 4px; min-width: 0; }
.account-external-expense-card > .annual-card-heading > div > span { line-height: 1.45; }
.account-expense-total { flex: 0 0 auto; color: var(--report-expense); font-size: 14px; }
.account-expense-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; margin: 0 14px 9px; }
.account-expense-summary-grid > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-expense-summary-grid small { color: #89949e; font-size: 7px; }
.account-expense-summary-grid b { overflow-wrap: anywhere; color: var(--ink); font-size: 9px; font-weight: 600; }
.account-expense-summary-grid .report-amount-expense { color: var(--report-expense); }
.account-expense-contribution { display: grid; gap: 6px; margin: 0 14px 9px; padding: 8px 9px; border-radius: 8px; background: #f8fafb; }
.account-expense-contribution > strong,.account-expense-section-heading > strong { color: #566472; font-size: 8px; }
.account-expense-contribution > div { display: flex; flex-wrap: wrap; gap: 5px; }
.account-expense-contribution > div > span { display: flex; align-items: baseline; gap: 5px; padding: 4px 6px; border: 1px solid #e9edf0; border-radius: 6px; background: #fff; font-size: 7px; }
.account-expense-contribution > div > span > b { color: #65717d; font-weight: 500; }
.account-expense-contribution > div > span > strong { color: var(--report-expense); font-size: 8px; }
.account-expense-contribution > div > span > small { color: #89949e; }
.account-expense-budget-impact { display: grid; gap: 7px; margin: 0 14px 9px; padding: 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-expense-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.account-expense-section-heading > small { color: #89949e; font-size: 7px; text-align: right; }
.account-expense-budget-list { display: grid; gap: 6px; }
.account-expense-budget-row { display: grid; grid-template-columns: minmax(86px,1fr) minmax(70px,1.4fr) auto; align-items: center; gap: 5px 8px; }
.account-expense-budget-row > span { display: grid; gap: 2px; min-width: 0; }
.account-expense-budget-row > span > b { overflow: hidden; color: #66737e; font-size: 7px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account-expense-budget-row > span > small,.account-expense-budget-row > small { color: #919ca6; font-size: 6px; }
.account-expense-budget-row > i { display: block; height: 6px; overflow: hidden; border-radius: 99px; background: #e9edef; }
.account-expense-budget-row > i > em { display: block; height: 100%; border-radius: inherit; background: var(--budget-fill,#55a994); }
.account-expense-budget-row > strong { justify-self: end; font-size: 7px; font-weight: 600; }
.account-expense-budget-row > small { grid-column: 2 / 4; margin-top: -3px; }
.account-expense-budget-empty { color: #89949e; font-size: 8px; }
.account-expense-toolbar { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 14px 8px; }
.account-expense-toolbar label { display: grid; grid-template-columns: auto minmax(90px,1fr); align-items: center; gap: 5px; color: #89949e; font-size: 8px; }
.account-expense-toolbar select { min-width: 0; max-width: 180px; height: 28px; padding: 0 7px; border: 1px solid #e7ebee; border-radius: 7px; background: #fff; color: #586572; font: inherit; }
.account-expense-legend { display: flex; flex-wrap: wrap; gap: 5px 10px; padding: 0 14px 8px; color: #77838e; font-size: 7px; }
.account-expense-legend > span { display: inline-flex; align-items: center; gap: 4px; }
.account-expense-legend i,.account-expense-category-breakdown i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 2px; background: var(--account-expense-source,var(--report-expense)); }
.account-expense-prior-legend { width: 2px !important; height: 10px; border-radius: 0 !important; background: #374151 !important; }
.account-expense-account-list { display: grid; }
.account-expense-account-row { display: grid; gap: 5px; padding: 8px 14px; border-top: 1px solid #eef1f3; }
.account-expense-account-row.is-selected { background: #f4fbf8; box-shadow: inset 3px 0 #55a994; }
.account-expense-account-button { display: grid; grid-template-columns: 26px minmax(68px,1fr) minmax(95px,auto); align-items: center; gap: 7px; width: 100%; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.account-expense-account-icon { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 7px; background: #f3f6f8; font-size: 13px; }
.account-expense-account-icon .account-custom-icon { max-width: 21px; max-height: 21px; border-radius: 5px; }
.account-expense-account-name,.account-expense-current-total { display: grid; gap: 3px; min-width: 0; }
.account-expense-account-name b { overflow: hidden; color: #596674; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-expense-account-name small,.account-expense-current-total small { color: #929da7; font-size: 7px; }
.account-expense-current-total { justify-items: end; text-align: right; }
.account-expense-current-total > b { color: var(--report-expense); font-size: 10px; font-variant-numeric: tabular-nums; }
.account-expense-row-insights { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-left: 33px; color: #87929c; font-size: 7px; }
.account-expense-row-insights > span { display: inline-flex; align-items: center; gap: 3px; }
.account-expense-row-insights > span:first-child > b { color: var(--ink); font-weight: 600; }
.account-expense-sparkline { display: block; width: 66px; height: 22px; overflow: visible; }
.account-expense-sparkline polyline { fill: none; stroke: var(--report-expense); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.account-expense-sparkline circle { fill: var(--report-expense); stroke: #fff; stroke-width: 1; }
.account-expense-spark-empty { color: #a1abb4; }
.account-expense-stack-line { display: grid; grid-template-columns: minmax(80px,1fr) auto; align-items: center; gap: 9px; padding-left: 33px; }
.account-expense-bar-track { position: relative; display: block; height: 10px; overflow: visible; border-radius: 999px; background: #f0f2f4; }
.account-expense-bar-track > span { position: absolute; inset: 0 auto 0 0; display: flex; width: 100%; height: 100%; overflow: hidden; border-radius: inherit; }
.account-expense-stack-segment { display: block; width: var(--segment-width); height: 100%; min-width: 0; background: var(--account-expense-source,var(--report-expense)); }
.account-expense-previous-marker { position: absolute; z-index: 1; top: -3px; bottom: -3px; width: 2px; transform: translateX(-1px); border-radius: 2px; background: #374151; box-shadow: 0 0 0 1px #fff; }
.account-expense-previous-value { color: #7b8791; font-size: 7px; font-weight: 500; white-space: nowrap; }
.account-expense-pinned-detail { position: sticky; bottom: 8px; z-index: 1; display: grid; gap: 8px; margin: 10px 12px 0; padding: 10px; border: 1px solid #e6eaed; border-radius: 10px; background: rgba(255,255,255,.98); box-shadow: 0 5px 18px rgba(31,41,51,.08); }
.account-expense-pinned-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.account-expense-pinned-heading > div { display: grid; gap: 3px; min-width: 0; }
.account-expense-pinned-heading > div > b { color: #46525e; font-size: 9px; }
.account-expense-pinned-heading > div > small { color: #929da7; font-size: 7px; line-height: 1.4; }
.account-expense-pinned-heading > span { color: var(--ink); font-size: 7px; text-align: right; white-space: nowrap; }
.account-expense-detail-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 5px; }
.account-expense-detail-metrics > span { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 6px; border-radius: 7px; background: #f7f9fa; }
.account-expense-detail-metrics small { color: #8b97a1; font-size: 7px; }
.account-expense-detail-metrics b { overflow-wrap: anywhere; color: var(--ink); font-size: 8px; font-weight: 600; line-height: 1.35; }
.account-expense-category-breakdown { display: flex; flex-wrap: wrap; gap: 5px; }
.account-expense-category-breakdown > span { display: grid; grid-template-columns: 7px minmax(0,1fr); align-items: center; gap: 4px; min-width: 120px; padding: 5px 6px; border: 1px solid #edf0f2; border-radius: 6px; }
.account-expense-category-breakdown > span > b { overflow: hidden; color: #697580; font-size: 7px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account-expense-category-breakdown > span > small { grid-column: 2; color: #929da7; font-size: 7px; }
.account-expense-category-breakdown > p { margin: 0; color: #89949e; font-size: 8px; }
.account-expense-detail-transactions { display: grid; gap: 5px; }
.account-expense-detail-transactions > strong { color: #606d78; font-size: 8px; }
.account-expense-detail-transactions > button { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border: 0; border-top: 1px solid #eff1f2; background: transparent; text-align: left; cursor: pointer; }
.account-expense-detail-transactions > button > span { overflow: hidden; color: #7d8993; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-expense-detail-transactions > button > b { flex: 0 0 auto; font-size: 8px; }
.account-expense-detail-transactions > p { margin: 0; color: #89949e; font-size: 8px; }
.account-expense-status-note { margin: 8px 14px 0; color: #929da7; font-size: 7px; line-height: 1.5; }
[data-theme="night"] .account-expense-summary-grid > span,[data-theme="night"] .account-expense-contribution,[data-theme="night"] .account-expense-contribution > div > span,[data-theme="night"] .account-expense-budget-impact,[data-theme="night"] .account-expense-pinned-detail,[data-theme="night"] .account-expense-detail-metrics > span,[data-theme="night"] .account-expense-category-breakdown > span { border-color: #38434d; background: #202a33; }
[data-theme="night"] .account-expense-summary-grid b,[data-theme="night"] .account-expense-contribution > strong,[data-theme="night"] .account-expense-section-heading > strong,[data-theme="night"] .account-expense-account-name b,[data-theme="night"] .account-expense-pinned-heading > div > b,[data-theme="night"] .account-expense-detail-metrics b,[data-theme="night"] .account-expense-category-breakdown > span > b,[data-theme="night"] .account-expense-detail-transactions > strong { color: #d5dee5; }
[data-theme="night"] .account-expense-budget-row > i,[data-theme="night"] .account-expense-bar-track { background: #303a44; }
[data-theme="night"] .account-expense-toolbar select { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .account-expense-account-row { border-color: #303a44; }
[data-theme="night"] .account-expense-account-row.is-selected { background: #202e2b; }
[data-theme="night"] .account-expense-previous-marker { background: #d2d9df; box-shadow: 0 0 0 1px #202a33; }
@media (max-width: 700px) {
  .account-expense-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-expense-toolbar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-expense-toolbar label { grid-template-columns: 1fr; }
  .account-expense-toolbar select { width: 100%; max-width: none; }
  .account-expense-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-expense-row-insights { gap: 4px 8px; }
  .account-expense-pinned-detail { bottom: 4px; margin-right: 8px; margin-left: 8px; }
  .account-expense-budget-row { grid-template-columns: minmax(68px,1fr) minmax(48px,1fr) auto; }
}
.account-internal-transfer-card > .annual-card-heading > div { display: grid; gap: 4px; min-width: 0; }
.account-internal-transfer-card > .annual-card-heading > div > span { line-height: 1.45; }
.account-internal-transfer-card > .annual-card-heading > b { color: var(--ink); font-size: 13px; }
.account-transfer-summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 0 14px 9px; }
.account-transfer-summary-grid > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-transfer-summary-grid small { color: #89949e; font-size: 7px; }
.account-transfer-summary-grid b { overflow-wrap: anywhere; color: var(--ink); font-size: 8px; font-weight: 600; line-height: 1.4; }
.account-transfer-summary-grid i,.account-transfer-pinned-detail i { font-style: normal; }
.account-transfer-summary-grid .report-amount-income,.account-transfer-pinned-detail .report-amount-income { color: var(--report-income); }
.account-transfer-summary-grid .report-amount-expense,.account-transfer-pinned-detail .report-amount-expense { color: var(--report-expense); }
.account-internal-transfer-card > .account-transfer-summary-grid + span { display: block; margin: -2px 14px 9px; color: var(--ink); font-size: 7px; line-height: 1.45; }
.account-internal-transfer-card > .account-transfer-summary-grid + span b { font-weight: 600; }
.account-transfer-change { display: grid; gap: 6px; margin: 0 14px 9px; padding: 8px 9px; border-radius: 8px; background: #f8fafb; }
.account-transfer-change > strong,.account-transfer-section-heading > strong { color: #566472; font-size: 8px; }
.account-transfer-change > div { display: grid; gap: 5px; }
.account-transfer-change > div > span { display: grid; grid-template-columns: minmax(68px,1fr) minmax(45px,2fr) auto; align-items: center; gap: 7px; color: #707c87; font-size: 7px; }
.account-transfer-change > div > span > b { overflow: hidden; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.account-transfer-change > div > span > i { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #e9edef; }
.account-transfer-change > div > span > i > em { display: block; height: 100%; border-radius: inherit; background: #7c8791; }
.account-transfer-change > div > span > strong { color: var(--ink); font-size: 7px; font-weight: 600; }
.account-transfer-change > div > p { margin: 0; color: #89949e; font-size: 8px; }
.account-transfer-toolbar { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 14px 8px; }
.account-transfer-toolbar label { display: grid; grid-template-columns: auto minmax(90px,1fr); align-items: center; gap: 5px; color: #89949e; font-size: 8px; }
.account-transfer-toolbar select { min-width: 0; max-width: 180px; height: 28px; padding: 0 7px; border: 1px solid #e7ebee; border-radius: 7px; background: #fff; color: #586572; font: inherit; }
.account-transfer-legend { display: flex; flex-wrap: wrap; gap: 5px 11px; padding: 0 14px 8px; color: #77838e; font-size: 7px; }
.account-transfer-legend > span { display: inline-flex; align-items: center; gap: 4px; }
.account-transfer-legend i { width: 8px; height: 8px; border-radius: 2px; background: #cdd3d8; }
.account-transfer-legend i.is-in { background: var(--report-income); }
.account-transfer-legend i.is-out { background: var(--report-expense); }
.account-transfer-account-list { display: grid; padding: 0 14px; }
.account-transfer-row { display: grid; gap: 4px; padding: 8px 0; border-top: 1px solid #f0f2f3; }
.account-transfer-row.is-selected { margin: 0 -6px; padding-right: 6px; padding-left: 6px; border-radius: 8px; background: #f4f8f7; }
.account-transfer-select { display: grid; grid-template-columns: 25px minmax(0,1fr) auto; align-items: center; gap: 7px; width: 100%; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.account-transfer-icon { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 7px; background: #f0f5f6; font-size: 12px; }
.account-transfer-icon .account-custom-icon { width: 17px; height: 17px; border-radius: 5px; }
.account-transfer-account-name { display: grid; gap: 2px; min-width: 0; }
.account-transfer-account-name b { overflow: hidden; color: #55626e; font-size: 8px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-transfer-account-name small { color: #929da7; font-size: 6px; }
.account-transfer-net { color: var(--ink); font-size: 8px; font-weight: 600; text-align: right; white-space: nowrap; }
.account-transfer-dual-labels { display: flex; justify-content: space-between; gap: 8px; padding-left: 32px; font-size: 7px; }
.account-transfer-dual-labels .report-amount-income { color: var(--report-income); }
.account-transfer-dual-labels .report-amount-expense { color: var(--report-expense); }
.account-transfer-dual-track { position: relative; height: 9px; margin-left: 32px; overflow: visible; border-radius: 99px; background: linear-gradient(90deg,#f0f2f4 0 49.6%,transparent 49.6% 50.4%,#f0f2f4 50.4%); }
.account-transfer-axis { position: absolute; z-index: 2; top: -3px; bottom: -3px; left: 50%; width: 1px; background: #bfc7cd; }
.account-transfer-out-bar,.account-transfer-in-bar { position: absolute; top: 0; height: 100%; }
.account-transfer-out-bar { right: 50%; border-radius: 99px 0 0 99px; background: var(--report-expense); }
.account-transfer-in-bar { left: 50%; border-radius: 0 99px 99px 0; background: var(--report-income); }
.account-transfer-previous-out,.account-transfer-previous-in { position: absolute; z-index: 3; top: -3px; bottom: -3px; width: 2px; border-radius: 3px; background: #35414c; box-shadow: 0 0 0 1px #fff; }
.account-transfer-row-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 3px 8px; padding-left: 32px; color: #89949e; font-size: 6px; }
.account-transfer-pinned-detail { display: grid; gap: 8px; margin: 10px 12px 0; padding: 10px; border: 1px solid #e6eaed; border-radius: 10px; background: #fff; }
.account-transfer-pinned-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.account-transfer-pinned-heading > div { display: grid; gap: 3px; min-width: 0; }
.account-transfer-pinned-heading > div > b { color: #46525e; font-size: 9px; }
.account-transfer-pinned-heading > div > small { color: #929da7; font-size: 7px; line-height: 1.45; }
.account-transfer-pinned-heading > span { color: #74808a; font-size: 7px; text-align: right; white-space: nowrap; }
.account-transfer-pinned-heading > span strong { color: var(--ink); font-size: 8px; }
.account-transfer-detail-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
.account-transfer-detail-metrics > span { display: grid; align-content: start; gap: 4px; min-width: 0; padding: 6px; border: 1px solid #edf0f2; border-radius: 7px; background: #f8fafb; }
.account-transfer-detail-metrics small { color: #8b97a1; font-size: 7px; }
.account-transfer-detail-metrics b { overflow-wrap: anywhere; color: var(--ink); font-size: 7px; font-weight: 600; line-height: 1.4; }
.account-transfer-counterpart-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.account-transfer-counterpart-grid > div { display: grid; align-content: start; gap: 5px; min-width: 0; padding: 7px; border-radius: 7px; background: #f8fafb; }
.account-transfer-counterpart-grid > div > strong,.account-transfer-trend-detail > strong { color: #66727e; font-size: 7px; }
.account-transfer-counterpart-grid > div > span { display: grid; gap: 2px; min-width: 0; }
.account-transfer-counterpart-grid > div > span > b { overflow: hidden; color: #67737e; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-transfer-counterpart-grid > div > span > small { font-size: 6px; }
.account-transfer-counterpart-grid > div > p { margin: 0; color: #909aa4; font-size: 7px; }
.account-transfer-sparkline { display: block; width: 72px; height: 24px; overflow: visible; }
.account-transfer-sparkline polyline { fill: none; stroke: #65717d; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-transfer-sparkline circle { fill: #65717d; stroke: #fff; stroke-width: 1; }
.account-transfer-trend-detail > small { color: #98a2ab; font-size: 6px; }
.account-transfer-detail-transactions { display: grid; gap: 4px; }
.account-transfer-detail-transactions > strong { color: #606d78; font-size: 8px; }
.account-transfer-detail-transactions > button { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border: 0; border-top: 1px solid #eff1f2; background: transparent; text-align: left; cursor: pointer; }
.account-transfer-detail-transactions > button > span { overflow: hidden; color: #7d8993; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.account-transfer-detail-transactions > button > b { flex: 0 0 auto; font-size: 8px; }
.account-transfer-detail-transactions > p { margin: 0; color: #89949e; font-size: 8px; }
.account-transfer-matrix-section,.account-transfer-reversal { display: grid; gap: 6px; margin: 9px 14px 0; padding: 8px 9px; border-radius: 8px; background: #f8fafb; }
.account-transfer-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; }
.account-transfer-section-heading > small { color: #89949e; font-size: 6px; text-align: right; }
.account-transfer-matrix-scroll { overflow-x: auto; scrollbar-width: thin; }
.account-transfer-matrix { width: max-content; min-width: 100%; border-collapse: collapse; font-size: 7px; }
.account-transfer-matrix th,.account-transfer-matrix td { min-width: 58px; max-width: 100px; padding: 5px; border: 1px solid #e8ecef; text-align: center; }
.account-transfer-matrix th { color: #73808b; font-weight: 500; }
.account-transfer-matrix tbody th { text-align: left; }
.account-transfer-matrix td { color: var(--ink); }
.account-transfer-matrix td b { display: block; color: var(--ink); font-size: 7px; font-weight: 600; }
.account-transfer-matrix td small { color: #89949e; font-size: 6px; }
.account-transfer-matrix td.is-diagonal { color: #acb5bc; background: #f0f2f4; }
.account-transfer-matrix-note { color: #89949e; font-size: 6px; line-height: 1.4; }
.account-transfer-reversal > strong { color: #66727e; font-size: 8px; }
.account-transfer-reversal > strong > small { margin-left: 4px; color: #929da7; font-size: 6px; font-weight: 400; }
.account-transfer-reversal > div { display: flex; flex-wrap: wrap; gap: 5px; }
.account-transfer-reversal > div > span { display: grid; gap: 3px; min-width: 125px; padding: 6px; border: 1px solid #e9edf0; border-radius: 6px; background: #fff; }
.account-transfer-reversal > div > span > small { color: #8c97a1; font-size: 6px; }
.account-transfer-reversal > div > span > b { color: #65717d; font-size: 7px; }
.account-transfer-reversal > div > span > button { width: fit-content; padding: 0; border: 0; background: transparent; color: #687582; font: inherit; font-size: 6px; text-align: left; cursor: pointer; }
.account-transfer-reversal > div > p { margin: 0; color: #89949e; font-size: 7px; }
.account-transfer-status-note { margin: 8px 14px 0; color: #929da7; font-size: 7px; line-height: 1.5; }
[data-theme="night"] .account-transfer-summary-grid > span,[data-theme="night"] .account-transfer-change,[data-theme="night"] .account-transfer-change > div > span > i,[data-theme="night"] .account-transfer-row.is-selected,[data-theme="night"] .account-transfer-pinned-detail,[data-theme="night"] .account-transfer-detail-metrics > span,[data-theme="night"] .account-transfer-counterpart-grid > div,[data-theme="night"] .account-transfer-matrix-section,[data-theme="night"] .account-transfer-reversal,[data-theme="night"] .account-transfer-reversal > div > span { border-color: #38434d; background: #202a33; }
[data-theme="night"] .account-transfer-summary-grid b,[data-theme="night"] .account-transfer-change > strong,[data-theme="night"] .account-transfer-change > div > span > strong,[data-theme="night"] .account-transfer-section-heading > strong,[data-theme="night"] .account-transfer-account-name b,[data-theme="night"] .account-transfer-net,[data-theme="night"] .account-transfer-pinned-heading > div > b,[data-theme="night"] .account-transfer-pinned-heading > span strong,[data-theme="night"] .account-transfer-detail-metrics b,[data-theme="night"] .account-transfer-counterpart-grid > div > strong,[data-theme="night"] .account-transfer-counterpart-grid > div > span > b,[data-theme="night"] .account-transfer-detail-transactions > strong,[data-theme="night"] .account-transfer-matrix td,[data-theme="night"] .account-transfer-matrix td b,[data-theme="night"] .account-transfer-reversal > strong,[data-theme="night"] .account-transfer-reversal > div > span > b { color: #d5dee5; }
[data-theme="night"] .account-transfer-toolbar select { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .account-transfer-row { border-color: #303a44; }
[data-theme="night"] .account-transfer-dual-track { background: linear-gradient(90deg,#303a44 0 49.6%,transparent 49.6% 50.4%,#303a44 50.4%); }
[data-theme="night"] .account-transfer-previous-out,[data-theme="night"] .account-transfer-previous-in { background: #d2d9df; box-shadow: 0 0 0 1px #202a33; }
[data-theme="night"] .account-transfer-matrix th,[data-theme="night"] .account-transfer-matrix td { border-color: #38434d; }
[data-theme="night"] .account-transfer-matrix td.is-diagonal { background: #303a44; }
[data-theme="night"] .account-transfer-detail-transactions > button { border-color: #38434d; }
@media (max-width: 700px) {
  .account-transfer-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-transfer-toolbar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-transfer-toolbar label { grid-template-columns: 1fr; }
  .account-transfer-toolbar select { width: 100%; max-width: none; }
  .account-transfer-detail-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-transfer-counterpart-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-transfer-trend-detail { grid-column: 1 / -1; }
  .account-transfer-pinned-detail { margin-right: 8px; margin-left: 8px; }
  .account-transfer-section-heading { align-items: flex-start; flex-direction: column; }
  .account-transfer-section-heading > small { text-align: left; }
}
.account-detail-payable-card > .annual-card-heading > div { display: grid; gap: 4px; }
.account-detail-payable-card > .annual-card-heading > div > span { color: #89949e; font-size: 7px; }
.account-detail-payable-card > .annual-card-heading > b { color: var(--ink); font-size: 13px; }
.account-obligation-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; margin: 0 14px 9px; }
.account-obligation-summary > span { display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-obligation-summary small { color: #89949e; font-size: 7px; }
.account-obligation-summary b { overflow-wrap: anywhere; color: var(--ink); font-size: 9px; font-weight: 600; }
.account-obligation-section { display: grid; gap: 7px; margin: 0 14px 10px; padding: 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fafbfc; }
.account-obligation-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.account-obligation-section-heading > strong { color: #566472; font-size: 8px; }
.account-obligation-section-heading > small { color: #89949e; font-size: 6px; text-align: right; }
.account-obligation-due-list { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 5px; }
.account-obligation-due-layer { display: grid; align-content: space-between; gap: 7px; min-height: 54px; padding: 7px; border: 1px solid #e8ecef; border-radius: 7px; background: #fff; }
.account-obligation-due-layer > div { display: grid; gap: 3px; min-width: 0; }
.account-obligation-due-layer > div > strong { color: #65717d; font-size: 7px; }
.account-obligation-due-layer > div > small { overflow: hidden; color: #929da7; font-size: 6px; text-overflow: ellipsis; white-space: nowrap; }
.account-obligation-due-layer > b { color: var(--ink); font-size: 9px; font-weight: 600; }
.account-detail-payable-card .account-detail-obligation-list { padding: 0 14px 8px; }
.account-detail-payable-card .account-detail-obligation-row { grid-template-columns: 26px minmax(0,1fr) auto; }
.account-obligation-row-change { grid-column: 2 / 4; margin-top: -5px; color: #7d8993; font-size: 6px; }
.account-obligation-waterfall-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.account-obligation-waterfall { display: block; width: 660px; max-width: none; height: 166px; overflow: visible; }
.account-obligation-chart-grid { stroke: #edf0f2; stroke-width: 1; stroke-dasharray: 3 4; }
.account-obligation-chart-axis,.account-obligation-chart-label,.account-obligation-chart-value { fill: #78848f; font-family: inherit; font-size: 7px; }
.account-obligation-chart-axis { font-size: 6px; }
.account-obligation-chart-label { font-size: 6px; }
.account-obligation-chart-baseline { stroke: #9aa4ad; stroke-width: 1.1; }
.account-obligation-waterfall-bar.is-total { fill: #74808b; }
.account-obligation-waterfall-bar.is-change { fill: #9ba6b0; }
.account-obligation-waterfall-bar.is-adjustment { fill: #8996a0; }
.account-obligation-waterfall-bar.is-residual { fill: #c2a275; }
.account-obligation-note { margin: 0; color: #89949e; font-size: 7px; line-height: 1.5; }
.account-obligation-comparison-empty { color: #89949e; font-size: 8px; line-height: 1.5; }
.account-obligation-repayment-list { display: grid; gap: 6px; }
.account-obligation-repayment-row { display: grid; gap: 6px; padding: 7px; border: 1px solid #e8ecef; border-radius: 7px; background: #fff; }
.account-obligation-repayment-heading { display: flex; justify-content: space-between; gap: 8px; }
.account-obligation-repayment-heading > strong { overflow: hidden; color: #596674; font-size: 7px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.account-obligation-repayment-heading > b { flex: 0 0 auto; color: var(--ink); font-size: 7px; }
.account-obligation-paired-bars { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; }
.account-obligation-paired-bars > span { display: grid; gap: 3px; min-width: 0; }
.account-obligation-paired-bars small { color: #89949e; font-size: 6px; }
.account-obligation-paired-bars b { overflow: hidden; color: var(--ink); font-size: 7px; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.account-obligation-paired-bars i { display: flex; gap: 2px; height: 6px; overflow: hidden; border-radius: 99px; background: #e9edef; }
.account-obligation-paired-bars i > em { display: block; height: 100%; min-width: 1px; border-radius: inherit; background: #85919c; }
.account-obligation-paired-bars i > em.after { background: #c3cbd1; }
.account-obligation-liquid-delta { color: #84909a; font-size: 6px; }
.account-obligation-chart-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 10px; color: #87929d; font-size: 6px; }
.account-obligation-chart-legend > span { display: inline-flex; align-items: center; gap: 4px; }
.account-obligation-chart-legend i { width: 8px; height: 6px; border-radius: 2px; background: #85919c; }
.account-obligation-chart-legend i.after { background: #c3cbd1; }
.account-obligation-chart-legend small { flex-basis: 100%; font-size: 6px; }
.account-detail-payable-card > .account-obligation-note:last-child { margin: 0 14px 10px; }
[data-theme="night"] .account-obligation-summary > span,[data-theme="night"] .account-obligation-section,[data-theme="night"] .account-obligation-due-layer,[data-theme="night"] .account-obligation-repayment-row { border-color: #38434d; background: #202a33; }
[data-theme="night"] .account-obligation-summary b,[data-theme="night"] .account-obligation-due-layer > div > strong,[data-theme="night"] .account-obligation-due-layer > b,[data-theme="night"] .account-obligation-section-heading > strong,[data-theme="night"] .account-obligation-row-change,[data-theme="night"] .account-obligation-repayment-heading > strong,[data-theme="night"] .account-obligation-repayment-heading > b,[data-theme="night"] .account-obligation-paired-bars b { color: #d5dee5; }
[data-theme="night"] .account-obligation-paired-bars i { background: #303a44; }
[data-theme="night"] .account-obligation-paired-bars i > em.after { background: #58636e; }
[data-theme="night"] .account-obligation-waterfall-bar.is-total { fill: #a0acb7; }
[data-theme="night"] .account-obligation-waterfall-bar.is-change { fill: #73808a; }
[data-theme="night"] .account-obligation-waterfall-bar.is-adjustment { fill: #8996a0; }
[data-theme="night"] .account-obligation-chart-grid { stroke: #39434c; }
[data-theme="night"] .account-obligation-chart-axis,[data-theme="night"] .account-obligation-chart-label,[data-theme="night"] .account-obligation-chart-value { fill: #abb6bf; }
@media (max-width: 700px) {
  .account-obligation-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-obligation-due-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .account-obligation-section-heading { align-items: flex-start; flex-direction: column; }
  .account-obligation-section-heading > small { text-align: left; }
  .account-obligation-paired-bars { grid-template-columns: 1fr; }
}
.account-detail-anomaly-list { display: grid; gap: 4px; color: #9b6d31; font-size: 8px; line-height: 1.5; }
.account-detail-overview-empty { margin: 0; color: #87929d; font-size: 8px; }
.account-detail-liability-explanation .is-income { color: var(--report-income); font-style: normal; }
.account-detail-liability-explanation .is-expense { color: var(--report-expense); font-style: normal; }
[data-theme="night"] .account-detail-cutoff-badge,[data-theme="night"] .account-detail-overview-balance-card,[data-theme="night"] .account-detail-liquid-breakdown,[data-theme="night"] .account-detail-liability-explanation,[data-theme="night"] .account-detail-overview-flow-metric,[data-theme="night"] .account-detail-overview-comparison,[data-theme="night"] .account-detail-overview-compare-metric,[data-theme="night"] .account-detail-source-account,[data-theme="night"] .account-detail-anomalies { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .account-detail-overview-balance-card > b,[data-theme="night"] .account-detail-overview-flow-metric.is-neutral > b,[data-theme="night"] .account-detail-liquid-breakdown > span,[data-theme="night"] .account-detail-liquid-breakdown > span > b,[data-theme="night"] .account-detail-liability-explanation > span,[data-theme="night"] .account-detail-overview-sources-heading strong,[data-theme="night"] .account-detail-anomalies > strong,[data-theme="night"] .account-detail-source-heading > strong,[data-theme="night"] .account-detail-contribution-row > strong { color: #e2e8ed; }
[data-theme="night"] .account-detail-overview-expand { border-color: #38434d; background: #202a33; color: #d4dde4; }
[data-theme="night"] .account-detail-overview-comparison > div:first-child > strong { color: #e2e8ed; }
[data-theme="night"] .account-detail-bridge-grid { stroke: #39434c; }
[data-theme="night"] .account-detail-bridge-axis,[data-theme="night"] .account-detail-bridge-label,[data-theme="night"] .account-detail-bridge-value { fill: #abb6bf; }
[data-theme="night"] .account-detail-contribution-row > i,[data-theme="night"] .account-detail-contribution-row > i::after { background-color: #3c4853; }
@media (max-width: 700px) {
  .account-detail-overview > .annual-card-heading { padding-right: 14px; padding-left: 14px; }
  .account-detail-overview-balance-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 14px; }
  .account-detail-overview-balance-card:last-child { grid-column: 1 / -1; }
  .account-detail-overview-flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 14px; }
  .account-detail-overview-flow-metric:last-child { grid-column: 1 / -1; }
  .account-detail-liquid-breakdown,.account-detail-liability-explanation,.account-detail-anomalies,.account-detail-overview-comparison { margin-right: 14px; margin-left: 14px; }
  .account-detail-bridge-section,.account-detail-overview-sources { padding-right: 14px; padding-left: 14px; }
  .account-detail-source-balances { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-detail-contribution-row { grid-template-columns: minmax(62px, .8fr) minmax(58px, 1fr) auto; gap: 6px; }
  .account-detail-overview-compare-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .shopping-affordability-price-band,.shopping-affordability-timing,.shopping-affordability-chart { margin-right: 12px; margin-left: 12px; padding: 9px; }
  .shopping-affordability-plans,.shopping-affordability-explanation { margin-right: 12px; margin-left: 12px; }
  .shopping-affordability-timing-grid { grid-template-columns: 1fr; }
  .shopping-affordability-price-band-heading,.shopping-affordability-chart-heading,.shopping-affordability-timing-head { align-items: flex-start; flex-direction: column; }
  .shopping-affordability-price-band-heading span,.shopping-affordability-chart-heading span,.shopping-affordability-timing-head span { text-align: left; }
  .shopping-affordability-chart svg { min-height: 150px; }
}
.task-insight-card { padding: 15px 18px; }
.task-insight-heading,.task-count-trend,.task-date-group-heading,.task-chain-heading,.task-undo-banner,.task-batch-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.task-insight-heading > div { display: grid; gap: 3px; }
.task-insight-heading strong,.task-date-group-heading strong { color: var(--ink); font-size: 12px; }
.task-insight-heading small,.task-insight-heading > span,.task-date-group-heading span,.task-chain-heading span,.task-count-trend > span { color: var(--muted); font-size: 9px; }
.task-insight-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.task-insight-metrics article { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 9px 10px; border: 1px solid #e8eeeb; border-radius: 9px; background: #fbfcfc; }
.task-insight-metrics small { color: var(--muted); font-size: 9px; }
.task-insight-metrics strong { color: var(--ink); font-size: 10px; line-height: 1.55; }
.task-count-trend { justify-content: flex-start; margin-top: 8px; color: #409878; }
.task-count-trend svg { width: min(260px,55%); height: 48px; overflow: visible; }
.task-count-trend circle { fill: currentColor; }
.task-center-overview { grid-template-columns: repeat(4,minmax(0,1fr)); }
.task-center-search { display: flex; gap: 8px; padding: 0 20px 12px; }
.task-center-search label:first-child { flex: 1; min-width: 120px; }
.task-center-search input,.task-center-search select { width: 100%; min-height: 37px; padding: 0 11px; border: 1px solid #e2e9e6; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 10px; }
.task-date-group { padding: 0 20px 14px; }
.task-date-group-heading { margin: 11px 0 4px; padding: 8px 10px; border-radius: 8px; background: #f5f8f7; }
.task-date-group-overdue .task-date-group-heading { background: #fff4f1; }
.task-date-group-overdue .task-date-group-heading strong { color: #b95042; }
.task-date-group-today .task-date-group-heading { background: #fff9ef; }
.task-chain { border-bottom: 1px solid #edf1ef; }
.task-chain-heading { justify-content: flex-start; padding: 8px 0 0 12px; }
.task-chain-heading strong { color: #5c7180; font-size: 9px; }
.task-chain-history { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 7px 12px 0; }
.task-chain-history span { color: #4b9476; font-size: 8px; }
.task-chain.has-steps { margin: 7px 0; padding: 0 10px; border: 1px solid #e6eeea; border-radius: 10px; background: #fcfdfd; }
.task-chain.has-steps .task-center-row { border-top: 0; }
.task-center-row { align-items: flex-start; }
.task-select { display: flex; flex: 0 0 auto; align-items: center; padding-top: 9px; }
.task-select input { width: 15px; height: 15px; accent-color: #3f9c7a; }
.task-impact { display: inline-flex; margin-left: 6px; padding: 2px 5px; border-radius: 5px; background: #f2f4f4; color: #68777e; font-size: 8px; font-style: normal; font-weight: 600; }
.task-impact.is-high { background: #fff1ed; color: #c45845; }
.task-impact.is-low { background: #f1f4f5; color: #7a8990; }
.task-completion-hint { color: #6c817a !important; }
.task-center-actions select { min-height: 32px; padding: 0 7px; border: 1px solid #e1e8e5; border-radius: 8px; background: #fff; color: #63747c; font: inherit; font-size: 9px; }
.task-wait-duration { color: #bd8141 !important; }
.task-undo-banner { margin: 0 20px 11px; padding: 9px 11px; border: 1px solid #ead6ac; border-radius: 8px; background: #fffaf0; color: #786032; font-size: 10px; }
.task-undo-banner button,.task-batch-bar button { min-height: 30px; padding: 0 10px; border: 1px solid #e5d6b4; border-radius: 7px; background: #fff; color: #6c5933; font: inherit; font-size: 9px; cursor: pointer; }
.task-batch-bar { justify-content: flex-start; flex-wrap: wrap; margin: 0 20px 10px; padding: 9px 11px; border-radius: 9px; background: #f1f8f5; }
.task-batch-bar strong { margin-right: auto; color: #38765f; font-size: 10px; }
.task-batch-bar button { border-color: #d7e6df; color: #456b5d; }
.task-history-row { display: grid; gap: 4px; padding: 12px 0; border-top: 1px solid #edf1ef; }
.task-history-row > span { color: #409878; font-size: 9px; }
.task-history-row > strong { color: var(--ink); font-size: 11px; }
.task-history-row > small,.task-history-row > time { color: var(--muted); font-size: 9px; }
.task-custom-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
@media (max-width: 720px) {
  .task-insight-card { padding: 12px; }
  .task-insight-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .task-center-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .task-center-search { padding-right: 13px; padding-left: 13px; }
  .task-date-group { padding-right: 13px; padding-left: 13px; }
  .task-undo-banner,.task-batch-bar { margin-right: 13px; margin-left: 13px; }
  .task-select { grid-column: 1; grid-row: 1; padding-top: 7px; }
  .task-center-row { grid-template-columns: 20px 30px minmax(0,1fr); }
  .task-center-copy { grid-column: 3; }
  .task-center-actions { grid-column: 3; }
  .task-custom-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .task-snooze-options[open] { flex: 1 0 100%; }
  .task-snooze-options[open] > div { position: static; right: auto; box-sizing: border-box; width: 100%; margin-top: 6px; box-shadow: none; }
  .task-custom-snooze-form { grid-template-columns: auto minmax(0,1fr); align-items: end; }
  .task-custom-snooze-form label { min-width: 0; }
  .task-custom-snooze-form input { min-width: 0; min-height: 40px; }
  .task-center-actions .task-custom-snooze-form button { justify-self: stretch; min-height: 40px; }
}
@media (max-width: 420px) {
  .task-center-search { flex-wrap: wrap; }
  .task-center-search label { flex: 1 1 100%; }
  .task-custom-fields { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 640px) {
  .cashflow-traffic-card .annual-card-heading { align-items: flex-start; }
  .cashflow-traffic-heading-tools { justify-content: flex-start; }
  .cashflow-traffic-month-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-right: 13px; margin-left: 13px; }
  .cashflow-traffic-month-summary > div:first-child { grid-column: 1 / -1; }
  .cashflow-traffic-light-counts { gap: 4px 9px; font-size: 11px !important; }
  .cashflow-traffic-summary,.cashflow-traffic-grid,.cashflow-traffic-analysis,.cashflow-traffic-detail,.cashflow-review-panel,.cashflow-traffic-note { margin-right: 13px; margin-left: 13px; }
  .cashflow-traffic-grid { gap: 4px; }
  .cashflow-traffic-day { min-height: 82px; gap: 4px; padding: 6px 4px; }
  .cashflow-traffic-day > span b { font-size: 9px; }
  .cashflow-traffic-day > span b em { font-size: 7px; }
  .cashflow-traffic-day strong { font-size: 8px; }
  .cashflow-traffic-day small { font-size: 7px; }
  .cashflow-traffic-chart-grid,.cashflow-traffic-bottom-grid { grid-template-columns: minmax(0, 1fr); }
  .cashflow-traffic-source-row { grid-template-columns: minmax(62px, .7fr) minmax(55px, 1fr) auto; gap: 6px; font-size: 8px; }
}

.compare-category-list-toggle { width: calc(100% - 40px); margin: -8px 20px 14px; border: 1px solid #e8edf0; border-radius: 8px; background: #fafbfc; }
[data-theme="night"] .compare-category-list-toggle { border-color: #38434d; background: #202a33; color: #c7d1d9; }
@media (max-width: 700px) {
  .compare-category-list-toggle { width: calc(100% - 28px); margin: -8px 14px 12px; }
}

.compare-sustainable-grid,.compare-frequency-grid,.compare-living-period-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0 20px; }
.compare-sustainable-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.compare-sustainable-grid article,.compare-frequency-grid article,.compare-living-period-grid article { display: grid; align-content: start; gap: 6px; min-width: 0; padding: 11px; border: 1px solid #edf0f2; border-radius: 9px; background: #fbfcfd; }
.compare-sustainable-grid article > small,.compare-frequency-grid article > small,.compare-living-period-grid article > small { color: #87939c; font-size: 8px; }
.compare-sustainable-grid article > strong { color: var(--report-net); font-size: 13px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.compare-sustainable-grid article > small:not(:first-child) { line-height: 1.5; }
.compare-sustainable-grid article.is-delta { background: #f7f9fa; }
.compare-sustainable-grid article.is-delta > strong { font-size: 11px; }
.compare-sustainable-grid article.is-delta > small:last-child { color: #74828c; }
.compare-new-card-note { margin: 10px 20px 14px; color: #89959e; font-size: 8px; line-height: 1.6; }
.compare-migration-legend { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 20px 7px; color: #87939c; font-size: 8px; }
.compare-migration-status { margin: 0 20px 8px; color: #82909a; font-size: 8px; }
.compare-migration-legend span { display: inline-flex; align-items: center; gap: 5px; }
.compare-migration-legend i { display: inline-block; width: 13px; height: 5px; border-radius: 99px; background: #9eacb6; }
.compare-migration-legend i.is-first { background: #67a892; }
.compare-migration-list { display: grid; gap: 6px; margin: 0 20px; }
.compare-migration-row { display: grid; grid-template-columns: minmax(100px,1.1fr) minmax(190px,2fr) auto auto; align-items: center; gap: 7px; padding: 7px 8px; border: 1px solid #edf0f2; border-radius: 8px; }
.compare-migration-row > strong { min-width: 0; color: #52616c; font-size: 8px; overflow-wrap: anywhere; }
.compare-migration-row > div { display: grid; gap: 4px; }
.compare-migration-period { display: grid; grid-template-columns: 42px minmax(30px,1fr) 38px; align-items: center; gap: 5px; }
.compare-migration-period small,.compare-migration-period em { color: #8b97a0; font-size: 7px; font-style: normal; white-space: nowrap; }
.compare-migration-period i { display: block; height: 5px; overflow: hidden; border-radius: 99px; background: #edf1f2; }
.compare-migration-period i b { display: block; height: 100%; border-radius: inherit; background: #9eacb6; }
.compare-migration-period i b.is-first { background: #67a892; }
.compare-migration-row > b { color: #64737d; font-size: 8px; font-weight: 600; white-space: nowrap; }
.compare-migration-row > small { font-size: 8px; white-space: nowrap; }
.compare-frequency-grid article > strong { color: #43515c; font-size: 11px; font-variant-numeric: tabular-nums; }
.compare-frequency-grid article > span,.compare-living-period-grid article > span { color: #71808a; font-size: 8px; line-height: 1.45; }
.compare-frequency-summary,.compare-living-daily-change { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin: 9px 20px 0; padding: 9px 11px; border-radius: 8px; background: #f7f9fa; color: #78858e; font-size: 8px; }
.compare-frequency-summary strong { color: var(--report-net); font-size: 9px; }
.compare-living-period-grid article > strong { color: var(--report-expense); font-size: 11px; font-variant-numeric: tabular-nums; }
.compare-living-period-grid article > strong em { color: #87939c; font-size: 8px; font-style: normal; font-weight: 400; }
.compare-living-daily-change { justify-content: flex-start; gap: 12px 20px; }
.compare-living-daily-change span { color: #78858e; }
.compare-living-drivers { display: grid; gap: 6px; margin: 11px 20px 0; }
.compare-living-drivers > strong { color: #56646e; font-size: 9px; }
.compare-living-drivers > span { display: grid; grid-template-columns: minmax(100px,1fr) minmax(140px,1.3fr) auto; gap: 8px; align-items: center; padding: 6px 8px; border-bottom: 1px solid #edf0f2; }
.compare-living-drivers > span b { color: #66757f; font-size: 8px; overflow-wrap: anywhere; }
.compare-living-drivers > span small { color: #8a969e; font-size: 7px; }
.compare-living-drivers > span em { font-size: 8px; font-style: normal; white-space: nowrap; }
.compare-sustainability-card > .annual-card-heading > b { padding: 4px 8px; border-radius: 99px; background: #eef5f2; color: #628f80; font-size: 8px; font-weight: 500; }
.compare-sustainability-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin: 0 20px 8px; }
.compare-sustainability-summary span { display: grid; gap: 4px; padding: 8px 9px; border: 1px solid #edf0f2; border-radius: 8px; background: #fbfcfd; }
.compare-sustainability-summary small { color: #89959e; font-size: 7px; }
.compare-sustainability-summary strong { color: var(--report-net); font-size: 10px; font-variant-numeric: tabular-nums; }
.compare-sustainability-chart { margin: 0 18px; }
.compare-sustainability-chart svg { display: block; width: 100%; min-height: 120px; overflow: visible; }
.compare-sustainability-chart svg line { stroke: #e8edef; stroke-width: 1; }
.compare-sustainability-chart svg line.zero { stroke: #b9c4ca; stroke-dasharray: 3 3; }
.compare-sustainability-chart svg text { fill: #87949c; font: 8px sans-serif; }
.compare-sustainability-chart svg polyline { fill: none; stroke: #6c9c8c; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.compare-sustainability-chart svg circle { fill: #6c9c8c; stroke: #fff; stroke-width: 2; }
[data-theme="night"] .compare-sustainable-grid article,[data-theme="night"] .compare-frequency-grid article,[data-theme="night"] .compare-living-period-grid article,[data-theme="night"] .compare-migration-row,[data-theme="night"] .compare-sustainability-summary span { border-color: #35414b; background: #1d2730; }
[data-theme="night"] .compare-sustainable-grid article.is-delta,[data-theme="night"] .compare-frequency-summary,[data-theme="night"] .compare-living-daily-change { background: #202a33; }
[data-theme="night"] .compare-sustainable-grid article > strong,[data-theme="night"] .compare-frequency-grid article > strong,[data-theme="night"] .compare-migration-row > strong,[data-theme="night"] .compare-living-drivers > strong { color: #d5dde4; }
@media (max-width: 700px) {
  .compare-sustainable-grid,.compare-frequency-grid,.compare-living-period-grid { grid-template-columns: 1fr; margin-right: 14px; margin-left: 14px; }
  .compare-sustainable-grid { grid-template-columns: 1fr; }
  .compare-migration-legend,.compare-migration-list,.compare-migration-status,.compare-new-card-note,.compare-frequency-summary,.compare-living-daily-change,.compare-living-drivers,.compare-sustainability-summary { margin-right: 14px; margin-left: 14px; }
  .compare-migration-row { grid-template-columns: minmax(0,1fr) auto; }
  .compare-migration-row > div { grid-column: 1 / -1; grid-row: 2; }
  .compare-migration-row > small { grid-column: 1 / -1; }
  .compare-living-drivers > span { grid-template-columns: minmax(0,1fr) auto; }
  .compare-living-drivers > span small { grid-column: 1 / -1; grid-row: 2; }
  .compare-sustainability-summary { grid-template-columns: 1fr; }
}
.surplus-conversion-card .annual-card-heading > b { line-height: 1.1; }
@media (max-width: 520px) {
  .surplus-conversion-summary { align-items: flex-start; gap: 7px; margin-right: 11px; margin-left: 11px; padding: 9px; }
  .surplus-conversion-summary strong { font-size: 10px; }
  .surplus-conversion-list { margin-right: 11px; margin-left: 11px; }
  .surplus-conversion-list > div { grid-template-columns: minmax(88px, 1fr) minmax(74px, auto) 70px; gap: 5px; }
  .surplus-conversion-list span { font-size: 8px; }
  .surplus-conversion-list b { font-size: 9px; }
  .surplus-conversion-list small { font-size: 7px; }
  .surplus-conversion-note { margin-right: 11px; margin-left: 11px; }
}
