:root {
  color-scheme: light;
  --bg: #f4f5f2;
  --surface: #ffffff;
  --surface-muted: #eef0ec;
  --line: #d9ddd7;
  --text: #1d2226;
  --muted: #68717d;
  --green: #11884a;
  --green-soft: #e3f5e9;
  --red: #d92d20;
  --red-soft: #fde9e7;
  --amber: #b65f00;
  --amber-soft: #fff0d9;
  --blue: #1769aa;
  --blue-soft: #e6f1fa;
  --violet: #5b4fcf;
  --shadow: 0 5px 18px rgba(29, 34, 38, 0.06);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
  letter-spacing: 0;
}

* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { color: inherit; }
.hidden { display: none !important; }
.access-hidden { display: none !important; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 220px minmax(0, 1fr); }
.side-rail { position: sticky; top: 0; height: 100vh; padding: 20px 14px; background: #202529; color: #fff; display: flex; flex-direction: column; overflow-y: auto; }
.brand-lockup, .mobile-brand, .login-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.brand-lockup strong, .login-brand strong { display: block; font-size: 19px; }
.brand-lockup span:not(.brand-mark), .login-brand span:not(.brand-mark) { display: block; color: #aeb6bd; font-size: 12px; margin-top: 2px; }
.brand-mark { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: #fff; color: #202529; font-weight: 900; }
.rail-nav { display: grid; gap: 3px; margin-top: 22px; }
.nav-group { margin: 14px 10px 4px; color: #858f97; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.nav-group:first-child { margin-top: 0; }
.nav-item { position: relative; width: 100%; min-height: 36px; padding: 0 10px; display: grid; grid-template-columns: 22px 1fr; align-items: center; gap: 9px; border: 0; border-radius: 6px; background: transparent; color: #bcc3c9; text-align: left; cursor: pointer; }
.nav-item span { font-size: 19px; line-height: 1; text-align: center; }
.nav-item b { font-size: 14px; }
.nav-item:hover, .nav-item.active { background: #343a3f; color: #fff; }
.nav-item.nav-has-urgent::after { content: attr(data-alert-count); position: absolute; top: 7px; right: 9px; min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; border-radius: 9px; background: #ef3b30; color: #fff; font-size: 10px; font-weight: 900; }
.rail-status { margin-top: 20px; padding: 10px 6px 2px; display: flex; align-items: center; gap: 8px; color: #bfc7cc; font-size: 11px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #23b563; box-shadow: 0 0 0 4px rgba(35, 181, 99, 0.14); }

.workspace { min-width: 0; }
.topbar { position: sticky; z-index: 10; top: 0; height: 72px; padding: 0 28px; display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, 0.96); }
.mobile-brand { display: none; }
.mobile-icon-nav { display: none; }
.topbar-status { margin-right: auto; display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 13px; min-width: 0; }
.month-switcher { display: flex; align-items: center; gap: 6px; min-width: 162px; }
.month-switcher strong { min-width: 104px; text-align: center; font-size: 13px; }
.month-switcher button { width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 20px; line-height: 1; cursor: pointer; }
.preview-badge, .lock-badge, .state-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 999px; font-weight: 800; font-size: 11px; white-space: nowrap; }
.preview-badge { color: var(--violet); background: #eeecff; }
.lock-badge { color: var(--amber); background: var(--amber-soft); }
.state-badge.state-open { color: var(--red); background: var(--red-soft); }
.topbar-balance { text-align: right; min-width: 126px; }
.topbar-balance span { display: block; color: var(--muted); font-size: 11px; }
.topbar-balance strong { display: block; margin-top: 2px; font-size: 18px; font-variant-numeric: tabular-nums; }
.icon-button, .avatar-button { flex: 0 0 38px; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); cursor: pointer; }
.icon-button { font-size: 21px; }
.add-button { border-color: #cfc9ff; background: var(--violet); color: #fff; font-size: 25px; }
.avatar-button { border-color: #d7d2ff; background: #eeecff; color: var(--violet); font-size: 11px; font-weight: 900; overflow: hidden; }
.avatar-button img { width: 100%; height: 100%; display: none; object-fit: cover; }
.avatar-button img.visible { display: block; }
.icon-button:hover, .avatar-button:hover { border-color: #9ca5ad; }
.profile-popover { position: absolute; z-index: 30; top: 62px; right: 26px; width: min(310px, calc(100vw - 24px)); padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: 0 18px 48px rgba(29, 34, 38, .18); }
.profile-member { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px; border-bottom: 1px solid var(--line); }
.profile-member-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-muted); color: var(--violet); font-size: 11px; font-weight: 900; overflow: hidden; }
.profile-member-avatar img { width: 100%; height: 100%; object-fit: cover; }
.profile-member strong, .profile-member small { display: block; overflow-wrap: anywhere; }
.profile-member strong { font-size: 13px; }
.profile-member small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.profile-popover > button { width: 100%; min-height: 38px; margin-top: 10px; border: 0; border-radius: 6px; background: var(--surface-muted); font-size: 12px; font-weight: 800; cursor: pointer; }

main { width: min(1320px, 100%); margin: 0 auto; padding: 30px 30px 70px; }
.view-panel { display: none; }
.view-panel.active { display: block; }
.page-heading, .section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; }
.page-heading { margin-bottom: 22px; }
.page-heading h1 { margin: 3px 0 0; font-size: 30px; line-height: 1.15; }
.heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.secondary-button, .primary-small { min-height: 36px; padding: 0 12px; border-radius: 6px; font-size: 12px; font-weight: 800; cursor: pointer; }
.secondary-button { border: 1px solid var(--line); background: var(--surface); }
.primary-small { border: 1px solid var(--violet); background: var(--violet); color: #fff; }
.eyebrow { margin: 0; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.source-note, .count-label { color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.error-banner { margin-bottom: 18px; padding: 12px 14px; border: 1px solid #f0b5ae; border-radius: 6px; background: var(--red-soft); color: #8d2118; font-weight: 700; }
.notice-banner { position: sticky; z-index: 8; top: 82px; margin-bottom: 18px; padding: 12px 14px; border: 1px solid #a9c9e1; border-radius: 6px; background: var(--blue-soft); color: #124d7b; font-weight: 700; }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.metric-card { min-height: 126px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: var(--shadow); overflow: hidden; }
.metric-card > span { display: block; color: var(--muted); font-size: 12px; font-weight: 800; text-transform: uppercase; }
.metric-card strong { display: block; margin-top: 13px; font-size: 27px; line-height: 1; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.metric-card small { display: block; margin-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.metric-card[data-explain] { cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease; }
.metric-card[data-explain]:hover, .metric-card[data-explain]:focus-visible { border-color: #7c71d9; box-shadow: 0 0 0 3px rgba(91, 79, 207, .12); outline: 0; }
.balance-card { border-top: 3px solid var(--red); }
.payment-card { border-top: 3px solid var(--amber); }
.claim-card { border-top: 3px solid var(--green); }
.sync-card { border-top: 3px solid var(--blue); }
.money-negative { color: var(--red) !important; }
.money-positive { color: var(--green) !important; }
.status-good { color: var(--green) !important; }
.status-warning { color: var(--amber) !important; }

.due-alert-stack { margin-top: 14px; display: grid; gap: 8px; }
.due-alert { min-height: 76px; padding: 12px 14px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; border: 1px solid var(--line); border-left-width: 5px; border-radius: 7px; background: var(--surface); }
.due-alert-critical { border-color: #e7837c; border-left-color: var(--red); background: #fff1ef; }
.due-alert-unknown { border-color: #e8b66f; border-left-color: var(--amber); background: #fff8ea; }
.due-alert-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; background: #fff; color: var(--red); }
.due-alert-unknown .due-alert-icon { color: var(--amber); }
.due-alert-icon .lucide { width: 20px; height: 20px; }
.due-alert-copy small, .due-alert-copy strong, .due-alert-copy span { display: block; }
.due-alert-copy small { color: var(--red); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.due-alert-unknown .due-alert-copy small { color: var(--amber); }
.due-alert-copy strong { margin-top: 3px; font-size: 17px; line-height: 1.2; }
.due-alert-copy span { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }

.two-column-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 34px; margin-top: 36px; }
.content-band { min-width: 0; margin-top: 36px; }
.two-column-layout > .content-band { margin-top: 0; }
.section-heading { min-height: 42px; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.section-heading h2 { margin: 3px 0 0; font-size: 19px; line-height: 1.2; }
.text-link { padding: 4px 0; border: 0; background: transparent; color: var(--violet); font-size: 12px; font-weight: 800; cursor: pointer; }
.record-list { min-height: 80px; }
.record-row { min-height: 66px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 10px 10px 8px; border-bottom: 1px solid var(--line); border-left: 3px solid transparent; }
.record-row:last-child { border-bottom: 0; }
.record-row.row-booked { border-left-color: #7fc99d; background: #f8fcf9; }
.record-row.row-open, .record-row.row-reserved { border-left-color: #e3a14d; background: #fffbf4; }
.record-row.row-to_transfer { border-left-color: var(--red); background: #fff8f7; }
.record-row.payment-overdue, .record-row.payment-today { border-left-width: 5px; border-left-color: var(--red); background: #fff0ee; }
.record-row.payment-unknown { border-left-width: 5px; border-left-color: var(--amber); background: #fff8e9; }
.record-row.payment-soon { border-left-width: 5px; border-left-color: #d78317; background: #fffaf1; }
.record-row.payment-scheduled { border-left-color: var(--blue); background: #f4f9fd; }
.record-row.row-forecast { border-left-color: var(--violet); background: #f8f7ff; }
.record-row.row-stopped { border-left-color: #aab1b7; opacity: .68; }
.record-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: var(--surface-muted); color: #48515a; font-size: 12px; font-weight: 900; }
.record-icon.payment { background: var(--amber-soft); color: var(--amber); }
.record-icon.claim { background: var(--green-soft); color: var(--green); }
.record-title { min-width: 0; }
.record-title strong { display: block; font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.record-title small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.3; overflow-wrap: anywhere; }
.record-amount { padding-left: 8px; text-align: right; font-size: 14px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.deadline-badge { display: inline-flex; align-items: center; min-height: 20px; margin-left: 5px; padding: 1px 6px; border-radius: 4px; vertical-align: 1px; background: var(--surface-muted); color: var(--muted); font-size: 9px; font-weight: 900; white-space: nowrap; }
.deadline-badge.deadline-overdue, .deadline-badge.deadline-today { background: var(--red); color: #fff; }
.deadline-badge.deadline-unknown, .deadline-badge.deadline-soon { background: var(--amber-soft); color: #8f4700; }
.deadline-badge.deadline-scheduled { background: var(--blue-soft); color: #115b92; }
.row-edit, .card-edit { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--violet); font-size: 16px; cursor: pointer; }
.row-edit:hover, .card-edit:hover { border-color: var(--violet); background: #f3f1ff; }
.record-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.claim-submit { min-height: 32px; padding: 0 9px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid #13874a; border-radius: 6px; background: #edf8f1; color: #08723b; font-size: 10px; font-weight: 900; white-space: nowrap; cursor: pointer; }
.claim-submit:hover, .claim-submit:focus-visible { outline: 3px solid rgba(19, 135, 74, .14); outline-offset: 1px; background: #e2f5e9; }
.claim-submit:disabled { cursor: wait; opacity: .6; }
.claim-submit .lucide, .reimbursement-badge .lucide { width: 14px; height: 14px; flex: 0 0 auto; }
.reimbursement-badge { min-height: 30px; padding: 0 8px; display: inline-flex; align-items: center; gap: 5px; border-radius: 6px; font-size: 9px; font-weight: 900; white-space: nowrap; cursor: pointer; }
.reimbursement-open { border: 1px solid #e0b266; background: #fff8e9; color: #8a5000; }
.reimbursement-partial { border: 1px solid #d78317; background: #fff3dc; color: #7a3d00; }
.reimbursement-received { border: 1px solid #80caa0; background: #edf8f1; color: #08723b; }
.reimbursement-rejected { border: 1px solid #d5a3a0; background: #fff1f0; color: #9d2520; }
.empty-row { padding: 26px 0; color: var(--muted); font-size: 13px; }
.date-group { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; box-shadow: var(--shadow); }
.date-group-heading { min-height: 44px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: #e9ece7; }
.date-group-heading strong { font-size: 13px; }
.date-group-heading span { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.date-group-records { padding: 0 8px; }

.health-band { margin-top: 42px; }
.finance-watcher { margin-top: 26px; padding: 16px 18px; border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 8px; background: #f7faf8; }
.finance-watcher.watcher-amber { border-left-color: var(--amber); background: #fffbf3; }
.finance-watcher.watcher-red { border-left-color: var(--red); background: #fff7f6; }
.watcher-heading { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.watcher-heading h2 { margin: 2px 0 0; font-size: 18px; line-height: 1.25; }
.watcher-heading > div > span { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.watcher-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; background: var(--green-soft); color: var(--green); }
.watcher-amber .watcher-icon { background: var(--amber-soft); color: #8a5000; }
.watcher-red .watcher-icon { background: #ffe5e2; color: var(--red); }
.watcher-facts { margin-top: 14px; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; }
.watcher-facts::-webkit-scrollbar { display: none; }
.watcher-fact { min-width: 132px; padding: 8px 10px; border-left: 2px solid var(--line); }
.watcher-fact span, .watcher-fact strong { display: block; }
.watcher-fact span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.watcher-fact strong { margin-top: 3px; font-size: 13px; }
.watcher-issues { margin-top: 12px; display: grid; gap: 6px; }
.watcher-issue { min-height: 42px; width: 100%; padding: 7px 9px; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; align-items: center; gap: 8px; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.watcher-issue:first-child { border-top: 0; }
.watcher-issue > .lucide { width: 16px; color: var(--amber); }
.watcher-issue.issue-critical > .lucide { color: var(--red); }
.watcher-issue span strong, .watcher-issue span small { display: block; }
.watcher-issue span strong { font-size: 11px; }
.watcher-issue span small { margin-top: 2px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.watcher-issue > b { font-size: 11px; white-space: nowrap; }
.watcher-all-clear { padding-top: 10px; border-top: 1px solid var(--line); color: #08723b; font-size: 11px; font-weight: 800; }
.daily-decision-band { margin-top: 26px; }
.daily-decision-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.daily-decision-row { min-width: 0; min-height: 116px; padding: 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr) 15px; align-items: start; gap: 8px; border: 0; border-right: 1px solid var(--line); border-top: 3px solid transparent; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.daily-decision-row:last-child { border-right: 0; }
.daily-decision-row:hover, .daily-decision-row:focus-visible { outline: 0; background: var(--surface); box-shadow: inset 0 0 0 2px rgba(91, 79, 207, .12); }
.daily-decision-row.decision-good { border-top-color: var(--green); }
.daily-decision-row.decision-critical { border-top-color: var(--red); background: #fff8f7; }
.daily-decision-row.decision-warning { border-top-color: var(--amber); background: #fffbf4; }
.daily-decision-row.decision-saving { border-top-color: var(--blue); background: #f7fbfe; }
.daily-decision-icon { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 6px; background: var(--surface-muted); color: var(--muted); }
.decision-good .daily-decision-icon { background: var(--green-soft); color: var(--green); }
.decision-critical .daily-decision-icon { background: var(--red-soft); color: var(--red); }
.decision-warning .daily-decision-icon { background: var(--amber-soft); color: var(--amber); }
.decision-saving .daily-decision-icon { background: var(--blue-soft); color: var(--blue); }
.daily-decision-icon .lucide, .daily-decision-row > .lucide { width: 15px; height: 15px; }
.daily-decision-row > .lucide { align-self: center; color: var(--muted); }
.daily-decision-row small, .daily-decision-row strong, .daily-decision-row em { display: block; }
.daily-decision-row small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.daily-decision-row strong { margin-top: 6px; font-size: 16px; line-height: 1.15; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.daily-decision-row em { margin-top: 5px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; overflow-wrap: anywhere; }
.gate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.gate-item { min-height: 64px; padding: 12px; border-left: 3px solid var(--line); background: var(--surface); }
.gate-item.good { border-color: var(--green); }
.gate-item.wait { border-color: var(--amber); }
.gate-item strong { display: block; font-size: 13px; }
.gate-item span { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.3; }
.recovery-cockpit { margin-top: 26px; }
.recovery-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.recovery-grid > div { min-height: 86px; padding: 13px 16px; border-right: 1px solid var(--line); }
.recovery-grid > div:last-child { border-right: 0; }
.recovery-grid span, .recovery-grid strong, .recovery-grid small { display: block; }
.recovery-grid span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.recovery-grid strong { margin-top: 7px; font-size: 20px; }
.recovery-grid small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.recovery-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.recovery-action { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 4px 8px; border-left: 3px solid var(--green); background: var(--green-soft); color: var(--text); font-size: 10px; }
.recovery-action.stop { border-left-color: var(--red); background: var(--red-soft); }
.recovery-action .lucide { width: 14px; height: 14px; }

.portfolio-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--line); gap: 1px; }
.portfolio-stat { min-width: 0; min-height: 94px; padding: 15px 17px; background: var(--surface); }
.portfolio-stat span, .portfolio-stat strong, .portfolio-stat small { display: block; }
.portfolio-stat span { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.portfolio-stat strong { margin-top: 8px; font-size: 21px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.portfolio-stat small { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.3; }
.account-selector-band { margin-top: 28px; }
.account-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.account-card { min-width: 0; min-height: 104px; padding: 13px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--text); text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.account-card:hover, .account-card:focus-visible { border-color: #7c71d9; outline: 0; box-shadow: 0 0 0 3px rgba(91, 79, 207, .1); }
.account-card.active { border-color: var(--violet); background: #f8f7ff; box-shadow: inset 3px 0 0 var(--violet); }
.account-card-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #e8eef1; color: #29424f; }
.account-card-icon .lucide, .bank-mark .lucide { width: 20px; height: 20px; }
.account-card-copy { min-width: 0; }
.account-card-copy small, .account-card-copy strong, .account-card-copy em { display: block; }
.account-card-copy small { color: var(--muted); font-size: 9px; font-style: normal; font-weight: 900; text-transform: uppercase; }
.account-card-copy strong { margin-top: 4px; font-size: 13px; line-height: 1.25; overflow-wrap: anywhere; }
.account-card-copy em { margin-top: 5px; color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.25; }
.account-card-value { min-width: 86px; text-align: right; }
.account-card-value b, .account-card-value small { display: block; }
.account-card-value b { font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.connection-badge { width: max-content; max-width: 100%; margin: 7px 0 0 auto; padding: 3px 5px; border-radius: 4px; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.connection-connected { background: var(--green-soft); color: var(--green); }
.connection-forecast, .connection-prepared { background: var(--amber-soft); color: var(--amber); }
.connection-missing { background: #edf0f2; color: #59636b; }
.account-mark-bank { background: #e1261c; color: #fff; }
.account-mark-credit { background: #242b31; color: #fff; }
.account-mark-wallet { background: #087f8c; color: #fff; }
.account-mark-savings { background: #2e7d4d; color: #fff; }
.selected-account-band { margin-top: 32px; }
.account-connection-help { margin-top: 10px; padding: 12px 14px; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; border-left: 3px solid #8a949b; background: #f2f4f5; }
.account-connection-help.good { border-color: var(--green); background: var(--green-soft); }
.account-connection-help.warning { border-color: var(--amber); background: var(--amber-soft); }
.account-connection-help .lucide { width: 19px; height: 19px; }
.account-connection-help strong, .account-connection-help small { display: block; }
.account-connection-help strong { font-size: 12px; }
.account-connection-help small { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.account-actions { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.account-action-link { min-height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid var(--violet); border-radius: 6px; background: var(--violet); color: #fff; font-size: 12px; font-weight: 800; text-decoration: none; cursor: pointer; }
.account-action-link.secondary { border-color: var(--line); background: var(--surface); color: var(--text); }
.account-action-link:hover, .account-action-link:focus-visible { outline: 3px solid rgba(91, 79, 207, .16); outline-offset: 1px; }
.account-action-link .lucide { width: 16px; height: 16px; }

.account-overview { display: grid; grid-template-columns: minmax(260px, 1.8fr) minmax(150px, 1fr) minmax(150px, 1fr); gap: 1px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--line); box-shadow: var(--shadow); }
.account-identity, .account-stat { min-height: 132px; padding: 20px; background: var(--surface); }
.account-identity { display: flex; align-items: center; gap: 15px; }
.bank-mark { flex: 0 0 50px; width: 50px; height: 50px; display: grid; place-items: center; border-radius: 50%; background: #e1261c; color: #fff; font-size: 27px; font-weight: 900; }
.account-identity span, .account-stat span { display: block; color: var(--muted); font-size: 12px; }
.account-identity strong { display: block; margin-top: 5px; font-size: 29px; font-variant-numeric: tabular-nums; }
.account-identity small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.account-stat { display: flex; flex-direction: column; justify-content: center; }
.account-stat strong { margin-top: 8px; font-size: 23px; font-variant-numeric: tabular-nums; }
.chart-band { margin-top: 34px; }
.bar-chart { height: 190px; padding: 18px 4px 0; display: flex; align-items: stretch; gap: 9px; border-bottom: 1px solid var(--line); overflow: hidden; }
.chart-day { flex: 1 1 0; min-width: 34px; display: grid; grid-template-rows: 1fr 24px; gap: 6px; }
.chart-bar-area { display: flex; align-items: flex-end; justify-content: center; }
.chart-bar { width: min(30px, 80%); min-height: 4px; height: var(--bar-height); border-radius: 4px 4px 0 0; background: var(--red); }
.chart-bar.positive { background: var(--green); }
.chart-day small { color: var(--muted); font-size: 10px; text-align: center; }
.large-list .record-row { min-height: 72px; }

.emphasis-band { padding: 18px; border: 1px solid #efc18a; border-radius: 8px; background: #fffaf2; }
.emphasis-band .section-heading { margin-bottom: 0; }
.compact-metrics .metric-card { min-height: 112px; }
.check-list { display: grid; gap: 8px; }
.check-row { min-height: 48px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 9px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.check-row:last-child { border-bottom: 0; }
.check-symbol { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: var(--amber-soft); color: var(--amber); font-size: 12px; font-weight: 900; }
.check-row span:last-child { font-size: 13px; line-height: 1.35; }
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.search-field { min-width: 240px; height: 42px; flex: 1; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); color: var(--muted); }
.search-field input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--text); }
.standalone-search { width: min(520px, 100%); margin-bottom: 20px; }
.segmented { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-muted); }
.segmented button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 5px; background: transparent; color: var(--muted); font-size: 12px; font-weight: 800; cursor: pointer; }
.segmented button.active { background: var(--surface); color: var(--text); box-shadow: 0 1px 4px rgba(29, 34, 38, .12); }
.summary-strip { display: flex; gap: 8px; margin: 0 0 22px; overflow-x: auto; scrollbar-width: thin; }
.summary-chip { min-width: 148px; min-height: 68px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.summary-chip span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; white-space: nowrap; }
.summary-chip strong { display: block; margin-top: 7px; font-size: 18px; white-space: nowrap; }
.summary-chip small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; white-space: nowrap; }
#energy-summary .summary-chip { min-width: 178px; }
#energy-summary .summary-chip span { white-space: normal; line-height: 1.25; }
#energy-summary .summary-chip small { white-space: normal; line-height: 1.35; }
#credit-summary .summary-chip { min-width: 176px; }
#credit-summary .summary-chip span, #credit-summary .summary-chip strong { white-space: normal; overflow-wrap: anywhere; line-height: 1.25; }
.flush-band { margin-top: 0; }
.compact-layout { margin-top: 16px; }
.inline-state { display: inline-flex; align-items: center; min-height: 18px; padding: 0 5px; border-radius: 4px; background: var(--surface-muted); color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.inline-state.state-booked { background: var(--green-soft); color: var(--green); }
.inline-state.state-open, .inline-state.state-reserved, .inline-state.state-to_transfer { background: var(--amber-soft); color: var(--amber); }
.inline-state.state-forecast { background: #eeecff; color: var(--violet); }
.inline-state.state-stopped { background: var(--surface-muted); color: var(--muted); }
.inline-type { display: inline-flex; align-items: center; min-height: 18px; margin-left: 3px; padding: 0 5px; border-radius: 4px; background: #e9f2f8; color: var(--blue); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.inline-type.type-one_off, .inline-type.type-card_settlement { background: var(--amber-soft); color: var(--amber); }
.inline-type.type-transfer, .inline-type.type-reimbursable { background: var(--green-soft); color: var(--green); }

.explain-band { margin-bottom: 18px; padding: 18px; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .8fr); gap: 18px; border: 1px solid #b7cddd; border-left: 4px solid var(--blue); border-radius: 8px; background: #f3f8fc; }
.explain-band strong { font-size: 15px; }
.explain-band p { margin: 7px 0 0; color: #44525e; font-size: 12px; line-height: 1.55; }
.plan-callout { padding-left: 18px; border-left: 1px solid #b7cddd; }
.plan-callout span { display: block; color: var(--blue); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.plan-callout strong { display: block; margin-top: 5px; font-size: 18px; }
.month-plan { border-top: 1px solid var(--line); }
.month-plan-row { width: 100%; min-height: 70px; display: grid; grid-template-columns: 1.05fr repeat(7, minmax(105px, .8fr)); align-items: center; gap: 14px; padding: 10px 12px; border: 0; border-bottom: 1px solid var(--line); border-left: 3px solid transparent; background: transparent; text-align: left; cursor: pointer; }
.month-plan-row:hover, .month-plan-row.selected { background: var(--surface); border-left-color: var(--violet); }
.month-plan-row span { min-width: 0; }
.month-plan-row small { display: block; color: var(--muted); font-size: 10px; }
.month-plan-row strong, .month-plan-row b { display: block; margin-top: 3px; font-size: 13px; font-variant-numeric: tabular-nums; }
.month-review-grid { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.month-review-grid > div { min-height: 82px; padding: 12px; border-right: 1px solid var(--line); }
.month-review-grid > div:last-child { border-right: 0; }
.month-review-grid span, .month-review-grid strong, .month-review-grid small { display: block; }
.month-review-grid span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.month-review-grid strong { margin-top: 7px; font-size: 18px; font-variant-numeric: tabular-nums; }
.month-review-grid small { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.month-review-detail { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(300px, 1.2fr); gap: 24px; padding-top: 14px; }
.month-review-detail > div > strong { display: block; margin-bottom: 8px; font-size: 12px; }
.month-review-detail span { min-height: 26px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); font-size: 11px; }
.month-review-detail span em { font-style: normal; font-weight: 800; font-variant-numeric: tabular-nums; }
.month-review-detail p, .month-review-detail small { color: var(--muted); font-size: 11px; line-height: 1.5; }
.month-review-detail p { margin: 0 0 6px; }
.wealth-summary { min-height: 64px; display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: center; gap: 6px 20px; padding: 10px 0 14px; }
.wealth-summary strong { font-size: 15px; }
.wealth-summary span { font-size: 12px; }
.wealth-summary small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; }
.wealth-steps { display: grid; grid-template-columns: repeat(4, minmax(170px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.wealth-step { min-height: 142px; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; padding: 15px 13px; border-right: 1px solid var(--line); }
.wealth-step:last-child { border-right: 0; }
.wealth-step > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-muted); color: var(--muted); font-size: 11px; font-weight: 900; }
.wealth-step.active > span { background: var(--violet); color: #fff; }
.wealth-step small, .wealth-step strong { display: block; }
.wealth-step small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.wealth-step strong { margin-top: 4px; font-size: 13px; }
.wealth-step p { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.cashflow-controls { display: flex; align-items: end; gap: 8px; }
.cashflow-controls label, .debt-controls label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.cashflow-controls select, .debt-controls select, .debt-controls input { min-width: 150px; height: 36px; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.cashflow-alert { min-height: 54px; margin-bottom: 12px; padding: 10px 13px; display: flex; align-items: center; gap: 10px; border-left: 4px solid var(--green); background: var(--green-soft); }
.cashflow-alert.critical { border-left-color: var(--red); background: var(--red-soft); }
.cashflow-alert .lucide { flex: 0 0 20px; width: 20px; height: 20px; }
.cashflow-alert strong, .cashflow-alert span { display: block; }
.cashflow-alert strong { font-size: 12px; }
.cashflow-alert span { margin-top: 3px; color: var(--muted); font-size: 10px; }
.cashflow-chart { margin-top: 20px; }
.cashflow-chart svg { width: 100%; min-height: 220px; height: auto; overflow: visible; }
.cashflow-grid line { stroke: var(--line); stroke-width: 1; }
.cashflow-grid text, .cashflow-floor-label { fill: var(--muted); font-size: 10px; }
.cashflow-line { fill: none; stroke: var(--violet); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.cashflow-floor { stroke: var(--red); stroke-width: 1.5; stroke-dasharray: 6 5; }
.cashflow-calendar { margin-top: 12px; border-top: 1px solid var(--line); }
.cashflow-day { min-height: 58px; display: grid; grid-template-columns: 70px minmax(220px, 1fr) minmax(100px, .45fr) minmax(110px, .5fr); align-items: center; gap: 14px; padding: 8px 6px; border-bottom: 1px solid var(--line); border-left: 3px solid transparent; }
.cashflow-day.has-events { border-left-color: var(--blue); background: #f7fbfe; }
.cashflow-day time strong, .cashflow-day time small, .cashflow-day-copy strong, .cashflow-day-copy small, .cashflow-day > span small, .cashflow-day > span b { display: block; }
.cashflow-day time strong { font-size: 12px; }
.cashflow-day time small, .cashflow-day-copy small, .cashflow-day > span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.cashflow-day-copy strong { font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.cashflow-day > span b { margin-top: 3px; font-size: 12px; font-variant-numeric: tabular-nums; }
.obligation-radar-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.obligation-radar-summary > div { min-height: 82px; padding: 12px 14px; border-right: 1px solid var(--line); }
.obligation-radar-summary > div:last-child { border-right: 0; }
.obligation-radar-summary span, .obligation-radar-summary strong, .obligation-radar-summary small { display: block; }
.obligation-radar-summary span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.obligation-radar-summary strong { margin-top: 6px; font-size: 17px; font-variant-numeric: tabular-nums; }
.obligation-radar-summary small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.obligation-radar { margin-top: 16px; display: grid; gap: 18px; }
.obligation-month { min-width: 0; border-left: 4px solid var(--blue); }
.obligation-month-heading { min-height: 48px; padding: 7px 10px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #edf5fa; }
.obligation-month-heading strong, .obligation-month-heading small { display: block; }
.obligation-month-heading strong { font-size: 13px; }
.obligation-month-heading small { margin-top: 2px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.obligation-month-heading > span:last-child { display: flex; gap: 12px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.obligation-row { width: 100%; min-height: 58px; padding: 8px 10px; display: grid; grid-template-columns: 58px 30px minmax(0, 1fr) auto; align-items: center; gap: 10px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.obligation-row:hover, .obligation-row:focus-visible { outline: 0; background: var(--surface); }
.obligation-row.obligation-reserved { background: #fffbf4; }
.obligation-row.obligation-payment { background: #fff8f7; }
.obligation-row.obligation-income { background: #f7fcf9; }
.obligation-row time { color: var(--muted); font-size: 10px; font-weight: 800; }
.obligation-icon { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 6px; background: var(--surface-muted); color: var(--muted); }
.obligation-income .obligation-icon { background: var(--green-soft); color: var(--green); }
.obligation-payment .obligation-icon { background: var(--red-soft); color: var(--red); }
.obligation-deadline .obligation-icon { background: var(--amber-soft); color: var(--amber); }
.obligation-icon .lucide, .obligation-row > .lucide { width: 15px; height: 15px; }
.obligation-row span strong, .obligation-row span small { display: block; }
.obligation-row span strong { font-size: 11px; line-height: 1.3; overflow-wrap: anywhere; }
.obligation-row span small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; overflow-wrap: anywhere; }
.obligation-row > b { font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }

.compact-select-label { min-width: 92px; display: grid; gap: 3px; color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.compact-select-label select { min-width: 92px; height: 36px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.bonus-overview-band { border-left: 4px solid var(--violet); }
.bonus-income-overview { min-height: 60px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.bonus-income-overview > .lucide { width: 20px; height: 20px; color: var(--violet); }
.bonus-income-overview strong, .bonus-income-overview small, .bonus-income-overview b { display: block; }
.bonus-income-overview strong { font-size: 12px; }
.bonus-income-overview small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.bonus-income-overview > b { color: var(--violet); font-size: 16px; font-variant-numeric: tabular-nums; white-space: nowrap; }

.lab-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.lab-scenario-bar { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.2fr) auto auto 38px; align-items: end; gap: 10px; margin-bottom: 14px; }
.lab-scenario-bar label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.lab-scenario-bar input, .lab-scenario-bar select { width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.lab-scenario-bar .source-note { align-self: center; white-space: nowrap; }
.lab-scenario-delete { color: var(--red); }
.lab-toolbar-fields { display: flex; align-items: end; gap: 10px; }
.lab-toolbar-fields label { display: grid; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.lab-toolbar-fields select, .lab-toolbar-fields input { min-width: 210px; height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.lab-toolbar-fields input { min-width: 120px; width: 120px; }
.lab-mode-info { min-height: 76px; margin-bottom: 18px; padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 22px; border-left: 4px solid var(--blue); background: #f3f8fc; }
.lab-mode-info strong { display: block; font-size: 14px; }
.lab-mode-info p { margin: 5px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.lab-bonus-band { border-top: 4px solid var(--violet); }
.lab-bonus-note { min-height: 58px; padding: 11px 13px; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 4px solid var(--amber); background: var(--amber-soft); }
.lab-bonus-note .lucide { width: 18px; height: 18px; color: var(--amber); }
.lab-bonus-note strong, .lab-bonus-note small { display: block; }
.lab-bonus-note strong { font-size: 12px; }
.lab-bonus-note small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.lab-bonus-formula { margin-top: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-bonus-formula summary { min-height: 58px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; background: #f3f8fc; }
.lab-bonus-formula summary::-webkit-details-marker { display: none; }
.lab-bonus-formula summary strong, .lab-bonus-formula summary small { display: block; }
.lab-bonus-formula summary strong { font-size: 12px; }
.lab-bonus-formula summary small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.lab-bonus-formula summary .lucide { width: 16px; height: 16px; color: var(--blue); transition: transform .16s ease; }
.lab-bonus-formula[open] summary .lucide { transform: rotate(180deg); }
.lab-bonus-settings { padding: 12px; display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; border-top: 1px solid var(--line); }
.lab-bonus-settings label, .lab-bonus-payment-row label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.lab-bonus-settings input, .lab-bonus-payment-row input { width: 100%; min-width: 0; height: 36px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.lab-bonus-formula-copy { margin: 0; padding: 0 12px 12px; color: var(--muted); font-size: 9px; line-height: 1.5; }
.lab-bonus-grid { margin-top: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.lab-bonus-quarter { min-width: 0; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--surface); }
.lab-bonus-quarter.current { border-color: var(--violet); box-shadow: inset 0 0 0 1px var(--violet); }
.lab-bonus-quarter-heading { min-height: 66px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: #f5f3fc; }
.lab-bonus-quarter-heading strong, .lab-bonus-quarter-heading small, .lab-bonus-quarter-heading b { display: block; }
.lab-bonus-quarter-heading strong { font-size: 13px; }
.lab-bonus-quarter-heading small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.lab-bonus-quarter-heading > span:last-child { text-align: right; }
.lab-bonus-quarter-heading b { color: var(--violet); font-size: 16px; font-variant-numeric: tabular-nums; }
.lab-bonus-month-row { min-height: 72px; padding: 9px 11px; display: grid; grid-template-columns: minmax(78px, .6fr) minmax(115px, 1fr) minmax(115px, 1fr); align-items: center; gap: 9px; border-bottom: 1px solid var(--line); }
.lab-bonus-month-row:last-child { border-bottom: 0; }
.lab-bonus-month-row > span strong, .lab-bonus-month-row > span small { display: block; }
.lab-bonus-month-row > span strong { font-size: 11px; }
.lab-bonus-month-row > span small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.3; }
.lab-bonus-month-row label { min-width: 0; display: grid; gap: 4px; color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.lab-bonus-month-row input { width: 100%; min-width: 0; height: 36px; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; text-transform: none; }
.lab-bonus-month-row > small { grid-column: 1 / -1; color: var(--muted); font-size: 9px; line-height: 1.4; }
.lab-bonus-calculation { padding: 10px 11px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--line); background: #f8faf9; }
.lab-bonus-calculation > span { min-width: 0; min-height: 51px; padding: 7px 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-bonus-calculation > span:nth-child(3n) { border-right: 0; }
.lab-bonus-calculation > span:nth-last-child(-n+3) { border-bottom: 0; }
.lab-bonus-calculation small, .lab-bonus-calculation b { display: block; }
.lab-bonus-calculation small { color: var(--muted); font-size: 8px; line-height: 1.3; text-transform: uppercase; }
.lab-bonus-calculation b { margin-top: 5px; font-size: 11px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.lab-bonus-calculation.empty { display: block; }
.lab-bonus-calculation.empty > span { min-height: 0; padding: 8px; border: 0; }
.lab-bonus-calculation.empty strong { display: block; font-size: 11px; }
.lab-bonus-calculation.empty small { margin-top: 3px; text-transform: none; }
.lab-bonus-payment-row { min-height: 60px; padding: 10px 11px; display: grid; grid-template-columns: minmax(150px, .8fr) minmax(0, 1fr); align-items: end; gap: 12px; border-top: 1px solid var(--line); background: #fffdf8; }
.lab-bonus-payment-row > small { align-self: center; color: var(--muted); font-size: 9px; line-height: 1.4; }
.lab-bonus-warning { padding: 10px 11px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 8px; border-top: 1px solid #ecd69d; background: var(--amber-soft); }
.lab-bonus-warning .lucide { width: 17px; height: 17px; color: var(--amber); }
.lab-bonus-warning strong, .lab-bonus-warning small { display: block; }
.lab-bonus-warning strong { font-size: 10px; }
.lab-bonus-warning small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.lab-mode-info > span { min-width: 130px; padding-left: 18px; border-left: 1px solid #b7cddd; }
.lab-mode-info > span small, .lab-mode-info > span b { display: block; }
.lab-mode-info > span small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.lab-mode-info > span b { margin-top: 4px; font-size: 17px; }
.lab-boundary-band { margin-bottom: 18px; padding: 16px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lab-boundary-note { margin: -5px 0 12px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.lab-boundary-list { border-top: 1px solid var(--line); }
.lab-boundary-row { min-height: 58px; display: grid; grid-template-columns: minmax(190px, 1.3fr) repeat(5, minmax(92px, .65fr)); align-items: center; gap: 12px; padding: 8px 4px; border-bottom: 1px solid var(--line); }
.lab-boundary-row > strong { font-size: 12px; }
.lab-boundary-row span small, .lab-boundary-row span b { display: block; }
.lab-boundary-row span small { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.lab-boundary-row span b { margin-top: 3px; font-size: 12px; font-variant-numeric: tabular-nums; }
.lab-boundary-row.over { border-left: 3px solid var(--red); padding-left: 10px; background: var(--red-soft); }
.lab-input-band { margin-top: 24px; }
.lab-items { border-top: 1px solid var(--line); }
.lab-item { min-height: 72px; display: grid; grid-template-columns: minmax(180px, 1fr) 180px 150px 150px 38px; align-items: end; gap: 12px; padding: 10px 4px; border-bottom: 1px solid var(--line); }
.lab-item label { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 10px; font-weight: 800; }
.lab-item input, .lab-item select { width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font: inherit; }
.lab-delete { align-self: end; color: var(--red); }
.lab-delete:hover { border-color: var(--red); background: var(--red-soft); }
.lab-chart { margin-top: 4px; }
.lab-chart svg { width: 100%; height: auto; min-height: 230px; overflow: visible; }
.lab-grid line { stroke: var(--line); stroke-width: 1; }
.lab-grid text { fill: var(--muted); font-size: 10px; }
.lab-grid .lab-zero-line { stroke: var(--text); stroke-width: 1.5; stroke-dasharray: 5 4; }
.lab-grid .lab-zero-label { fill: var(--text); font-weight: 900; }
.lab-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.lab-line-base { stroke: var(--blue); }
.lab-line-scenario { stroke: var(--violet); }
.lab-point { stroke: var(--surface); stroke-width: 2; }
.lab-point-base { fill: var(--blue); }
.lab-point-scenario { fill: var(--violet); }
.lab-legend { display: flex; justify-content: flex-end; gap: 18px; color: var(--muted); font-size: 11px; }
.lab-legend span { display: inline-flex; align-items: center; gap: 6px; }
.lab-swatch { width: 18px; height: 3px; display: inline-block; border-radius: 2px; }
.lab-swatch-base { background: var(--blue); }
.lab-swatch-scenario { background: var(--violet); }
.lab-months { margin-top: 12px; border-top: 1px solid var(--line); }
.lab-month-row { min-height: 62px; display: grid; grid-template-columns: 1fr repeat(3, minmax(120px, .75fr)); align-items: center; gap: 16px; padding: 9px 4px; border-bottom: 1px solid var(--line); }
.lab-month-row > strong { font-size: 14px; }
.lab-month-row span small, .lab-month-row span b { display: block; }
.lab-month-row span small { color: var(--muted); font-size: 10px; }
.lab-month-row span b { margin-top: 3px; font-size: 13px; font-variant-numeric: tabular-nums; }
.lab-comparison { border-top: 1px solid var(--line); }
.lab-comparison-row { min-height: 62px; display: grid; grid-template-columns: minmax(180px, 1.2fr) repeat(3, minmax(120px, .7fr)); align-items: center; gap: 16px; padding: 9px 8px; border-bottom: 1px solid var(--line); border-left: 3px solid transparent; }
.lab-comparison-row.active { border-left-color: var(--violet); background: #f8f7ff; }
.lab-comparison-row span strong, .lab-comparison-row span small, .lab-comparison-row span b { display: block; }
.lab-comparison-row span strong { font-size: 13px; }
.lab-comparison-row span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.lab-comparison-row span b { margin-top: 3px; font-size: 12px; font-variant-numeric: tabular-nums; }

.budget-list { border-top: 1px solid var(--line); }
.budget-row { min-height: 76px; display: grid; grid-template-columns: minmax(150px, .75fr) minmax(240px, 1.25fr); align-items: center; gap: 24px; padding: 12px 4px; border-bottom: 1px solid var(--line); }
.budget-copy strong { display: block; font-size: 14px; }
.budget-copy small, .budget-bars small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.budget-track { position: relative; height: 10px; display: block; border-radius: 4px; background: var(--surface-muted); overflow: hidden; }
.budget-track i, .budget-track b { position: absolute; inset: 0 auto 0 0; display: block; }
.budget-track i { background: #d8d4ff; }
.budget-track b { background: var(--violet); }
.budget-row { border-left: 3px solid transparent; padding-left: 12px; padding-right: 12px; }
.debt-controls { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.debt-controls select, .debt-controls input { width: 100%; min-width: 0; }
.debt-order { margin-top: 18px; border-top: 1px solid var(--line); }
.debt-quality { min-height: 60px; padding: 10px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; border-bottom: 1px solid var(--line); background: var(--surface-muted); }
.debt-quality.good { background: var(--green-soft); }
.debt-quality.warning { background: var(--amber-soft); }
.debt-quality .lucide { width: 19px; height: 19px; color: var(--muted); }
.debt-quality strong, .debt-quality small { display: block; }
.debt-quality strong { font-size: 12px; }
.debt-quality small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.debt-order-heading, .debt-order-row { display: grid; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); }
.debt-order-heading { min-height: 40px; grid-template-columns: 1fr auto; color: var(--muted); font-size: 10px; }
.debt-order-heading strong { color: var(--text); font-size: 12px; }
.debt-order-row { min-height: 58px; grid-template-columns: 28px minmax(0, 1fr) auto; padding: 7px 4px; }
.debt-order-row > span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-muted); color: var(--muted); font-size: 10px; font-weight: 900; }
.debt-order-row strong, .debt-order-row small { display: block; }
.debt-order-row strong { font-size: 12px; }
.debt-order-row small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.debt-order-row > b { font-size: 11px; font-variant-numeric: tabular-nums; }
.debt-rule { font-weight: 700; }
.finance-disclaimer { margin: 12px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.autopilot-stats { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.autopilot-stats > div { min-height: 72px; padding: 11px 13px; border-right: 1px solid var(--line); }
.autopilot-stats > div:last-child { border-right: 0; }
.autopilot-stats span, .autopilot-stats strong, .autopilot-stats small { display: block; }
.autopilot-stats span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.autopilot-stats strong { margin-top: 5px; font-size: 19px; }
.autopilot-stats small { margin-top: 3px; color: var(--muted); font-size: 9px; }
#autopilot-cases { margin-top: 10px; }
.autopilot-case { grid-template-columns: 42px minmax(0, 1fr) auto; }
.autopilot-case .secondary-button { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.autopilot-case .secondary-button .lucide { width: 14px; height: 14px; }
.budget-row.budget-good { border-left-color: var(--green); }
.budget-row.budget-warning { border-left-color: var(--amber); background: #fffaf2; }
.budget-row.budget-critical { border-left-color: var(--red); background: #fff7f6; }
.budget-row.budget-warning .budget-track b, .budget-row.budget-warning .budget-track i { background: var(--amber); }
.budget-row.budget-critical .budget-track b, .budget-row.budget-critical .budget-track i { background: var(--red); }
.budget-status { float: right; color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }

.fixed-groups { display: grid; gap: 10px; }
.fixed-group { border: 1px solid var(--line); border-radius: 8px; background: var(--surface); overflow: hidden; }
.fixed-group > summary { min-height: 58px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 16px; background: #f0f2ee; cursor: pointer; list-style: none; }
.fixed-group > summary::-webkit-details-marker { display: none; }
.fixed-group > summary span { min-width: 0; }
.fixed-group > summary strong, .fixed-group > summary small { display: block; }
.fixed-group > summary strong { font-size: 14px; }
.fixed-group > summary small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.fixed-group > summary b { font-size: 15px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fixed-group .record-list { padding: 0 8px; }

.card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.wide-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.data-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: var(--shadow); }
.card-topline { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.card-topline > strong, .card-tools > strong { font-size: 17px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.card-tools { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.tag { display: inline-flex; min-height: 22px; align-items: center; padding: 0 7px; border-radius: 4px; background: var(--surface-muted); color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.tag-planned { background: var(--blue-soft); color: var(--blue); }
.data-card h2 { margin: 15px 0 7px; font-size: 16px; line-height: 1.3; overflow-wrap: anywhere; }
.data-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.card-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.card-meta span { overflow-wrap: anywhere; }
.card-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.data-card a { display: inline-block; margin-top: 14px; color: var(--violet); font-size: 12px; font-weight: 800; }
.data-card details { margin-top: 13px; border-top: 1px solid var(--line); padding-top: 10px; }
.data-card details summary { cursor: pointer; color: var(--muted); font-size: 11px; font-weight: 800; }
.data-card details p { margin-top: 9px; }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin-top: 14px; background: var(--line); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.detail-grid span { padding: 9px; background: var(--surface); }
.detail-grid small { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.detail-grid b { display: block; margin-top: 4px; font-size: 13px; }
.card-warning { margin-top: 14px; padding: 9px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #7c4300; font-size: 11px; font-weight: 700; }
.credit-quality { min-height: 48px; margin-top: 12px; padding: 8px 9px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 8px; border-left: 3px solid var(--amber); background: var(--amber-soft); }
.credit-quality.high { border-left-color: var(--green); background: var(--green-soft); }
.credit-quality.low { border-left-color: var(--red); background: var(--red-soft); }
.credit-quality .lucide { width: 17px; height: 17px; }
.credit-quality strong, .credit-quality small { display: block; }
.credit-quality strong { font-size: 11px; }
.credit-quality small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.repayment-journal { margin-top: 12px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.repayment-heading { min-height: 42px; padding: 8px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: var(--green-soft); }
.repayment-heading span { min-width: 0; display: flex; align-items: center; gap: 6px; }
.repayment-heading .lucide { width: 15px; height: 15px; color: var(--green); }
.repayment-heading strong { font-size: 10px; }
.repayment-heading small { color: var(--muted); font-size: 9px; text-align: right; }
.repayment-row { min-height: 34px; padding: 5px 9px; display: grid; grid-template-columns: minmax(80px, 1fr) minmax(90px, 1fr) auto; align-items: center; gap: 8px; border-top: 1px solid var(--line); }
.repayment-row span, .repayment-row b { font-size: 10px; }
.repayment-row small { color: var(--muted); font-size: 9px; }
.repayment-row b { color: var(--green); font-variant-numeric: tabular-nums; }
.repayment-row.scheduled { background: var(--amber-soft); }
.repayment-row.scheduled b { color: var(--amber); }
.credit-phase-panel { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border: 1px solid #b7cddd; border-radius: 6px; background: #b7cddd; overflow: hidden; }
.credit-phase-panel > div { padding: 9px; background: #f3f8fc; }
.credit-phase-panel small, .credit-phase-panel strong { display: block; }
.credit-phase-panel small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.credit-phase-panel strong { margin-top: 4px; font-size: 13px; }
.credit-phase-panel p { grid-column: 1 / -1; padding: 9px; display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 7px; background: #f3f8fc; border-top: 1px solid #b7cddd; color: var(--text); font-size: 10px; }
.credit-phase-panel p .lucide { width: 16px; height: 16px; color: var(--blue); }
.credit-phase-panel.planned { grid-template-columns: 1fr; border-color: #c7c0ee; background: #f6f4ff; }
.credit-phase-panel.planned p { grid-column: auto; border-top: 0; background: #f6f4ff; }
.credit-phase-panel.planned p .lucide { color: var(--violet); }
.credit-rate-binding { min-height: 62px; margin-top: 12px; padding: 9px 10px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 9px; border-left: 3px solid var(--green); background: var(--green-soft); }
.credit-rate-binding.variable { border-left-color: var(--blue); background: var(--blue-soft); }
.credit-rate-binding.unknown { border-left-color: var(--amber); background: var(--amber-soft); }
.credit-rate-binding .lucide { width: 18px; height: 18px; }
.credit-rate-binding small, .credit-rate-binding strong, .credit-rate-binding em { display: block; }
.credit-rate-binding small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.credit-rate-binding strong { margin-top: 2px; font-size: 12px; }
.credit-rate-binding em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.4; }
.credit-documents { margin-top: 12px; display: grid; gap: 6px; }
.credit-documents > strong { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.data-card .credit-documents a { min-height: 36px; margin-top: 0; padding: 7px 9px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-muted); }
.credit-documents a .lucide { width: 15px; height: 15px; }
.credit-documents a span { overflow-wrap: anywhere; }
.wish-affordability { width: 100%; min-height: 68px; margin-top: 14px; padding: 10px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; border: 1px solid #b7cddd; border-radius: 7px; background: #f3f8fc; color: var(--text); text-align: left; cursor: pointer; }
.wish-affordability:hover, .wish-affordability:focus-visible { border-color: var(--blue); outline: 2px solid rgba(23, 105, 170, .14); }
.wish-affordability .lucide { width: 20px; height: 20px; color: var(--blue); }
.wish-affordability small, .wish-affordability strong, .wish-affordability em { display: block; }
.wish-affordability small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.wish-affordability strong { margin-top: 3px; font-size: 12px; }
.wish-affordability em { margin-top: 4px; color: var(--muted); font-size: 10px; font-style: normal; line-height: 1.35; }
.debt-progress { margin-top: 14px; }
.debt-progress > span { height: 8px; display: block; border-radius: 4px; background: var(--surface-muted); overflow: hidden; }
.debt-progress i { height: 100%; display: block; background: var(--green); }
.debt-progress small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; }

.todo-row { width: 100%; border-top: 0; border-left: 0; border-right: 0; background: transparent; text-align: left; }
.todo-actions { flex-wrap: wrap; }
.todo-action-button { min-height: 32px; padding: 0 9px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: 10px; font-weight: 900; white-space: nowrap; cursor: pointer; }
.todo-action-button .lucide { width: 14px; height: 14px; }
.todo-action-button:disabled { cursor: wait; opacity: .55; }
.todo-action-complete { border-color: #80caa0; background: #edf8f1; color: #08723b; }
.todo-action-dismiss { border-color: #c5cbd0; background: #f5f6f4; color: #59636c; }
.todo-action-reopen { border-color: #aaa2e8; background: #f3f1ff; color: var(--violet); }
.todo-archived-row { opacity: .78; }
.todo-archived-row .state-badge { justify-self: end; }
.record-arrow { color: var(--muted); font-size: 20px; }
.guide-grid { display: grid; gap: 10px; }
.guide-grid details { padding: 16px 18px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); }
.guide-grid summary { cursor: pointer; font-size: 14px; font-weight: 900; }
.guide-grid p { margin: 13px 0 0; color: var(--muted); font-size: 13px; line-height: 1.6; }
.settings-list { border-top: 1px solid var(--line); }
.setting-row { min-height: 82px; display: grid; grid-template-columns: minmax(180px, .7fr) minmax(260px, 1.3fr); align-items: center; gap: 28px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.setting-row span { display: block; color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.setting-row strong { display: block; margin-top: 5px; font-size: 15px; }
.setting-row p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.account-security { margin-bottom: 26px; padding: 20px 4px 24px; border-top: 3px solid var(--violet); border-bottom: 1px solid var(--line); }
.account-security .section-heading { margin-bottom: 14px; }
.account-security .section-heading h2 { margin-top: 4px; }
.security-state { align-self: center; padding: 5px 8px; border-radius: 5px; background: #e7f6ec; color: #0d743c; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.security-state.security-pending { background: #fff1d8; color: #8a4d00; }
.account-contact-form { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(170px, .8fr) minmax(190px, 1fr) auto; align-items: end; gap: 10px; }
.account-contact-form label { display: grid; gap: 6px; }
.account-contact-form label > span { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.account-contact-form input { width: 100%; min-width: 0; height: 42px; padding: 0 10px; border: 1px solid #aeb6bd; border-radius: 6px; background: #fff; color: var(--text); }
.account-contact-form input:focus { outline: 3px solid rgba(91, 79, 207, .16); border-color: var(--violet); }
.account-contact-form .primary-small { min-height: 42px; white-space: nowrap; }
.account-contact-note, .account-contact-form .form-error { grid-column: 1 / -1; margin: 0; font-size: 11px; }
.account-contact-note { color: var(--muted); }
.apple-calendar-security { border-top-color: var(--blue); }
.apple-calendar-form { display: grid; grid-template-columns: minmax(210px, 1fr) minmax(210px, 1fr) minmax(150px, .65fr); align-items: end; gap: 12px; }
.apple-calendar-form > label:not(.calendar-enabled) { display: grid; gap: 6px; }
.apple-calendar-form label > span { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.apple-calendar-form input[type="email"], .apple-calendar-form input[type="password"], .apple-calendar-form input[type="text"] { width: 100%; min-width: 0; height: 42px; padding: 0 10px; border: 1px solid #aeb6bd; border-radius: 6px; background: #fff; color: var(--text); }
.apple-calendar-form input:focus { outline: 3px solid rgba(23, 105, 170, .14); border-color: var(--blue); }
.calendar-enabled { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; }
.calendar-enabled input { width: 18px; height: 18px; margin: 0; accent-color: var(--blue); }
.calendar-form-actions { grid-column: 2 / -1; display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.calendar-form-actions > * { display: inline-flex; align-items: center; gap: 7px; text-decoration: none; }
.calendar-form-actions > a { color: var(--text); }
.calendar-form-actions .primary-small, .calendar-form-actions .secondary-button { min-height: 42px; }
.apple-calendar-note, .apple-calendar-form .form-error { grid-column: 1 / -1; margin: 0; font-size: 11px; line-height: 1.45; }
.apple-calendar-note { color: var(--muted); }
.security-state.security-error { background: #fee8e6; color: #a8241c; }
.portable-backup-security { border-top-color: var(--green); }
.portable-backup-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.portable-backup-grid article { min-height: 92px; padding: 14px; border-right: 1px solid var(--line); background: var(--surface-muted); }
.portable-backup-grid article:last-child { border-right: 0; }
.portable-backup-grid span, .portable-backup-grid strong, .portable-backup-grid small { display: block; }
.portable-backup-grid span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.portable-backup-grid strong { margin-top: 7px; font-size: 14px; overflow-wrap: anywhere; }
.portable-backup-grid small { margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.portable-backup-actions { margin-top: 12px; display: flex; align-items: center; gap: 14px; }
.portable-backup-actions a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; color: #fff; text-decoration: none; }
.portable-backup-actions p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.module-grid button { min-height: 100px; display: grid; place-items: center; align-content: center; gap: 9px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); cursor: pointer; }
.module-grid span { font-size: 24px; }
.module-grid b { font-size: 12px; }

.modal-backdrop { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(20, 24, 27, .55); }
.capture-sheet { width: min(520px, 100%); max-height: calc(100vh - 36px); padding: 22px; border-radius: 8px; background: var(--surface); box-shadow: 0 18px 60px rgba(0,0,0,.22); overflow-y: auto; }
.explain-sheet { width: min(680px, 100%); }
.explain-formula { margin-top: 16px; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.explain-formula-row { min-height: 46px; padding: 9px 12px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.explain-formula-row:last-child { border-bottom: 0; }
.explain-formula-row span { color: var(--muted); font-size: 11px; }
.explain-formula-row strong { text-align: right; font-size: 12px; font-variant-numeric: tabular-nums; }
.explain-items { margin-top: 20px; }
.explain-item { min-height: 50px; padding: 9px 2px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); }
.explain-item strong, .explain-item small { display: block; }
.explain-item strong { font-size: 12px; }
.explain-item small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.explain-item > b { font-size: 12px; font-variant-numeric: tabular-nums; }
.editor-sheet { width: min(680px, 100%); }
.sheet-heading { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.sheet-heading h2 { margin: 3px 0 0; font-size: 22px; }
.form-note { margin: 16px 0; padding: 10px; border-left: 3px solid var(--blue); background: var(--blue-soft); color: #124d7b; font-size: 12px; line-height: 1.45; }
.capture-direction-control > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }
.capture-direction { width: 100%; }
.capture-direction button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.capture-direction button svg { width: 16px; height: 16px; }
.capture-direction button[data-capture-direction="expense"].active { color: var(--red); }
.capture-direction button[data-capture-direction="income"].active { color: var(--green); }
.capture-sheet label { display: block; margin-top: 12px; }
.capture-sheet label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 800; }
.capture-sheet input, .capture-sheet select, .capture-sheet textarea { width: 100%; padding: 0 10px; border: 1px solid #aeb6bd; border-radius: 6px; background: #fff; color: var(--text); }
.capture-sheet input, .capture-sheet select { height: 42px; }
.capture-sheet textarea { min-height: 92px; padding-top: 9px; resize: vertical; }
.claim-receipt-summary { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.claim-receipt-summary > span { min-height: 62px; padding: 10px; border-right: 1px solid var(--line); }
.claim-receipt-summary > span:last-child { border-right: 0; }
.claim-receipt-summary small, .claim-receipt-summary strong { display: block; }
.claim-receipt-summary small { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.claim-receipt-summary strong { margin-top: 5px; font-size: 14px; }
.claim-mode-switch { width: 100%; margin-top: 14px; }
.claim-mode-switch button { min-height: 44px; flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 5px 8px; font-size: 10px; line-height: 1.2; white-space: normal; }
.claim-mode-switch button svg { width: 16px; height: 16px; }
.claim-mode-panel { margin-top: 4px; }
.claim-mode-panel .field-help { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.claim-mode-panel select:disabled { color: var(--muted); background: var(--surface-muted); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.primary-button { width: 100%; height: 44px; margin-top: 18px; border: 0; border-radius: 6px; background: var(--violet); color: #fff; font-weight: 900; cursor: pointer; }
.editor-fields-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.editor-field.wide { grid-column: 1 / -1; }
.editor-actions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 10px; margin-top: 8px; }
.editor-actions .secondary-button { min-width: 112px; height: 44px; color: var(--red); }
.editor-actions .primary-button { width: auto; min-width: 180px; }

.login-body { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #eef0ec; }
.login-shell { width: min(480px, 100%); }
.login-brand { margin-bottom: 22px; }
.login-brand .brand-mark { color: #fff; background: #202529; }
.login-panel { padding: 28px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); box-shadow: var(--shadow); }
.login-panel h1 { margin: 5px 0 24px; font-size: 27px; }
.login-panel label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; font-weight: 800; }
.code-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.code-row input { width: 100%; min-width: 0; height: 44px; padding: 0 11px; border: 1px solid #abb3ba; border-radius: 6px; background: #fff; }
.code-row input:focus { outline: 3px solid rgba(91, 79, 207, 0.18); border-color: var(--violet); }
.code-row button { height: 44px; padding: 0 18px; border: 0; border-radius: 6px; background: #202529; color: #fff; font-weight: 800; cursor: pointer; }
.form-error { margin: 12px 0 0; color: var(--red); font-size: 12px; font-weight: 700; }
.login-status { margin-top: 18px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--muted); font-size: 12px; }

@media (max-width: 980px) {
  .app-shell { grid-template-columns: 1fr; }
  .side-rail { display: none; }
  .mobile-brand { display: flex; margin-right: auto; }
  .mobile-brand .brand-mark { flex-basis: 30px; width: 30px; height: 30px; background: #202529; color: #fff; }
  .mobile-brand strong { font-size: 16px; }
  .topbar-status { display: none; }
  .mobile-icon-nav { position: sticky; z-index: 9; top: 72px; height: 64px; padding: 5px 8px; display: flex; align-items: stretch; gap: 2px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.98); overflow-x: auto; scrollbar-width: none; }
  .mobile-icon-nav::-webkit-scrollbar { display: none; }
  .mobile-icon-nav button { position: relative; flex: 0 0 64px; min-width: 64px; padding: 4px 2px; display: grid; place-items: center; align-content: center; gap: 3px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); cursor: pointer; }
  .mobile-icon-nav button.nav-has-urgent::after { content: attr(data-alert-count); position: absolute; top: 2px; right: 8px; min-width: 17px; height: 17px; padding: 0 4px; display: grid; place-items: center; border: 2px solid #fff; border-radius: 10px; background: #ef3b30; color: #fff; font-size: 9px; font-weight: 900; }
  .mobile-icon-nav button.active { border-bottom-color: var(--violet); color: var(--violet); }
  .mobile-icon-nav span { font-size: 19px; line-height: 1; }
  .mobile-icon-nav b { font-size: 9px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .account-card-grid { grid-template-columns: 1fr 1fr; }
  .gate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  main { padding-bottom: 70px; }
}

@media (max-width: 720px) {
  .topbar { height: 64px; padding: 0 14px; gap: 9px; }
  .mobile-icon-nav { top: 64px; }
  .mobile-brand { display: none; }
  .month-switcher { min-width: 140px; margin-right: auto; }
  .month-switcher strong { min-width: 88px; font-size: 12px; }
  .topbar-balance { min-width: 104px; }
  .topbar-balance strong { font-size: 15px; }
  .icon-button, .avatar-button { flex-basis: 34px; width: 34px; height: 34px; }
  main { padding: 22px 16px 70px; }
  .page-heading { align-items: flex-start; margin-bottom: 18px; }
  .page-heading h1 { font-size: 25px; }
  .source-note { max-width: 130px; text-align: right; }
  .metric-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .metric-card { min-height: 116px; padding: 14px; }
  .metric-card strong { font-size: 22px; }
  .two-column-layout { grid-template-columns: 1fr; gap: 32px; margin-top: 32px; }
  .section-heading h2 { font-size: 18px; }
  .account-overview { grid-template-columns: 1fr 1fr; }
  .account-identity { grid-column: 1 / -1; }
  .account-stat { min-height: 96px; padding: 15px; }
  .account-card-grid { grid-template-columns: 1fr; }
  .account-card { min-height: 92px; }
  .record-row { grid-template-columns: 38px minmax(0, 1fr) auto auto; gap: 9px; }
  .record-row .reimbursement-actions { grid-column: 2 / -1; justify-self: end; flex-wrap: wrap; }
  .record-icon { width: 34px; height: 34px; }
  .record-amount { font-size: 13px; }
  .due-alert { grid-template-columns: 34px minmax(0, 1fr); }
  .due-alert .secondary-button { grid-column: 2; justify-self: start; }
  .gate-grid { grid-template-columns: 1fr 1fr; }
  .watcher-heading { grid-template-columns: 38px minmax(0, 1fr); }
  .watcher-heading .secondary-button { grid-column: 2; justify-self: start; }
  .recovery-grid { grid-template-columns: 1fr 1fr; }
  .recovery-grid > div:nth-child(2) { border-right: 0; }
  .recovery-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .bar-chart { gap: 5px; }
  .toolbar { align-items: stretch; flex-direction: column; }
  .search-field { min-width: 0; width: 100%; flex: none; }
  .segmented { overflow-x: auto; }
  .segmented button { flex: 1; min-width: max-content; }
  .card-grid, .wide-cards { grid-template-columns: 1fr 1fr; }
  .month-plan { overflow-x: auto; }
  .month-plan-row { min-width: 1140px; }
  .month-review-grid { grid-template-columns: repeat(3, 1fr); }
  .month-review-grid > div:nth-child(3n) { border-right: 0; }
  .month-review-grid > div:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .month-review-detail { grid-template-columns: 1fr; }
  .wealth-steps { grid-template-columns: 1fr 1fr; }
  .wealth-step:nth-child(2) { border-right: 0; }
  .wealth-step:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .cashflow-section .section-heading { align-items: flex-start; flex-direction: column; }
  .cashflow-controls { width: 100%; }
  .cashflow-controls label { flex: 1; }
  .cashflow-controls select { width: 100%; min-width: 0; }
  .cashflow-day { grid-template-columns: 64px minmax(0, 1fr) minmax(100px, .45fr); }
  .cashflow-day > span:last-child { grid-column: 2 / -1; }
  .debt-controls { grid-template-columns: 1fr 1fr; }
  .autopilot-stats { grid-template-columns: 1fr 1fr; }
  .autopilot-stats > div:nth-child(2) { border-right: 0; }
  .autopilot-stats > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .lab-toolbar { align-items: stretch; flex-direction: column; }
  .lab-scenario-bar { grid-template-columns: 1fr 1fr auto auto; }
  .lab-scenario-bar .lab-name-field { grid-column: 2 / 5; }
  .lab-scenario-bar .source-note { grid-column: 1 / 3; }
  .lab-toolbar-fields select { width: 100%; }
  .lab-mode-info { grid-template-columns: 1fr; }
  .lab-mode-info > span { padding: 10px 0 0; border-top: 1px solid #b7cddd; border-left: 0; }
  .lab-boundary-row { grid-template-columns: minmax(150px, 1fr) repeat(5, minmax(88px, .7fr)); min-width: 720px; }
  .lab-boundary-list { overflow-x: auto; }
  .lab-item { grid-template-columns: minmax(160px, 1fr) 170px 140px 140px 38px; overflow-x: auto; }
  .lab-month-row { grid-template-columns: 1fr 1fr; }
  .lab-month-row > strong { grid-column: 1 / -1; }
  .lab-comparison-row { grid-template-columns: 1fr 1fr; }
  .lab-comparison-row > span:first-child { grid-column: 1 / -1; }
  .budget-row { grid-template-columns: 1fr; gap: 10px; }
  .explain-band { grid-template-columns: 1fr; }
  .plan-callout { padding: 14px 0 0; border-top: 1px solid #b7cddd; border-left: 0; }
  .setting-row { grid-template-columns: 1fr; gap: 8px; }
  .module-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 480px) {
  .topbar { padding-inline: 8px; gap: 5px; }
  .month-switcher { min-width: 122px; gap: 3px; }
  .month-switcher strong { min-width: 64px; font-size: 11px; }
  .month-switcher button { width: 26px; height: 30px; }
  .topbar-balance { min-width: 82px; }
  .topbar-balance strong { font-size: 13px; }
  .icon-button, .avatar-button { flex-basis: 30px; width: 30px; height: 30px; }
}

@media (max-width: 410px) {
  .metric-grid, .gate-grid { grid-template-columns: 1fr; }
  .recovery-grid { grid-template-columns: 1fr; }
  .recovery-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .metric-card { min-height: 102px; }
  .topbar-balance span { display: none; }
  .source-note { display: none; }
  .account-overview { grid-template-columns: 1fr; }
  .account-identity { grid-column: auto; }
  .account-actions { display: grid; grid-template-columns: 1fr; }
  .account-action-link { width: 100%; }
  .portfolio-strip { grid-template-columns: 1fr 1fr; }
  .portfolio-stat { min-height: 86px; padding: 12px; }
  .portfolio-stat strong { font-size: 17px; }
  .code-row { grid-template-columns: 1fr; }
  .card-grid, .wide-cards { grid-template-columns: 1fr; }
  .module-grid { grid-template-columns: 1fr 1fr; }
  .summary-chip { min-width: 132px; }
  .form-row { grid-template-columns: 1fr; }
  .editor-fields-grid { grid-template-columns: 1fr; }
  .editor-field.wide { grid-column: auto; }
  .heading-actions { width: 100%; justify-content: flex-start; }
  .page-heading { flex-wrap: wrap; }
  .record-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .record-row .row-edit { grid-column: 2 / -1; justify-self: end; margin-top: -5px; }
  .record-row .record-actions { grid-column: 2 / -1; justify-self: end; flex-wrap: wrap; }
  .todo-row .record-actions { justify-self: start; }
  .record-actions .row-edit { grid-column: auto; margin-top: 0; }
  .finance-watcher { padding: 14px; }
  .watcher-issue { grid-template-columns: 18px minmax(0, 1fr); }
  .watcher-issue > b { grid-column: 2; }
  .claim-receipt-summary { grid-template-columns: 1fr; }
  .claim-receipt-summary > span { min-height: 52px; border-right: 0; border-bottom: 1px solid var(--line); }
  .claim-receipt-summary > span:last-child { border-bottom: 0; }
  .claim-submit span, .reimbursement-badge span { white-space: normal; text-align: left; }
  .editor-actions { flex-direction: column-reverse; align-items: stretch; }
  .editor-actions .primary-button, .editor-actions .secondary-button { width: 100%; }
  .lab-item { grid-template-columns: 1fr 1fr 38px; align-items: end; }
  .lab-scenario-bar { grid-template-columns: 1fr auto auto; }
  .lab-scenario-bar > label:first-child, .lab-scenario-bar .lab-name-field, .lab-scenario-bar .source-note { grid-column: 1 / -1; }
  .lab-item label:first-child { grid-column: 1 / -1; }
  .lab-item label:nth-child(4) { grid-column: 1 / 3; }
  .lab-toolbar-fields { align-items: stretch; flex-direction: column; }
  .lab-toolbar-fields input { width: 100%; }
  .lab-boundary-row { min-width: 0; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 4px; }
  .lab-boundary-row > strong { grid-column: 1 / -1; }
  .lab-boundary-list { overflow-x: visible; }
  .lab-month-row { grid-template-columns: 1fr; }
  .lab-month-row > strong { grid-column: auto; }
  .month-review-grid, .month-review-detail, .wealth-steps { grid-template-columns: 1fr; }
  .month-review-grid > div, .month-review-grid > div:nth-child(3n), .wealth-step, .wealth-step:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .wealth-summary { grid-template-columns: 1fr; }
  .wealth-summary small { grid-column: auto; }
  .lab-comparison-row { grid-template-columns: 1fr; }
  .lab-comparison-row > span:first-child { grid-column: auto; }
  .cashflow-controls { align-items: stretch; flex-direction: column; }
  .cashflow-day { grid-template-columns: 54px minmax(0, 1fr); gap: 8px; }
  .cashflow-day > span:nth-child(3), .cashflow-day > span:last-child { grid-column: 2; }
  .debt-controls, .autopilot-stats { grid-template-columns: 1fr; }
  .autopilot-stats > div, .autopilot-stats > div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .debt-order-heading { grid-template-columns: 1fr; padding-block: 8px; }
  .debt-order-row { grid-template-columns: 26px minmax(0, 1fr); }
  .debt-order-row > b { grid-column: 2; }
  .autopilot-case { grid-template-columns: 34px minmax(0, 1fr); }
  .autopilot-case .secondary-button { grid-column: 2; justify-self: start; }
}

@media (max-width: 350px) {
  .topbar { padding-inline: 10px; gap: 7px; }
  .month-switcher { min-width: 124px; }
  .month-switcher strong { min-width: 74px; font-size: 11px; }
  .topbar-balance { min-width: 86px; }
  .add-button { display: none; }
  #refresh-button { display: none; }
}

/* Product polish: semantic icons, dates and personal login. */
.lucide { width: 1em; height: 1em; display: block; }
.brand-mark .lucide { width: 19px; height: 19px; }
.nav-item span { display: grid; place-items: center; }
.nav-item .lucide { width: 18px; height: 18px; }
.mobile-icon-nav span { display: grid; place-items: center; }
.mobile-icon-nav .lucide { width: 19px; height: 19px; }
.month-switcher button { display: grid; place-items: center; }
.month-switcher button .lucide { width: 17px; height: 17px; }
.icon-button .lucide { width: 19px; height: 19px; }
.add-button .lucide { width: 22px; height: 22px; }
.row-edit .lucide, .card-edit .lucide { width: 15px; height: 15px; }
.search-field .lucide { width: 17px; height: 17px; }
.primary-button, .primary-small, .secondary-button, .login-submit, .profile-popover > button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}
.primary-button .lucide, .primary-small .lucide, .secondary-button .lucide, .login-submit .lucide, .profile-popover > button .lucide { width: 16px; height: 16px; }
.live-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--green-soft); color: var(--green); font-size: 11px; font-weight: 900; }
.live-badge .status-dot { width: 7px; height: 7px; box-shadow: none; }
.preview-badge { background: var(--green-soft); color: var(--green); }

.record-row.row-booked { background: #f8fcf9; }
.record-row.row-open, .record-row.row-reserved { background: #fffbf4; }
.record-row.row-to_transfer { background: #fff8f7; }
.record-row.row-forecast { background: #f8f7ff; }
.record-icon .lucide { width: 19px; height: 19px; }
.record-icon.merchant-edeka { background: #ffed00; color: #0755a0; }
.record-icon.merchant-salary { background: #dff5e8; color: #087a42; }
.record-icon.merchant-family { background: #dbeeff; color: #1268a6; }
.record-icon.merchant-amazon { background: #fff0d5; color: #8b4c00; }
.record-icon.merchant-payment { background: #e7f0ff; color: #135dad; }
.record-icon.merchant-health { background: #ffe7ec; color: #b52248; }
.record-icon.merchant-groceries { background: #e8f5df; color: #3c791f; }
.record-icon.merchant-mobility { background: #e6eef3; color: #405d70; }
.record-icon.merchant-food { background: #ffeadf; color: #a84513; }
.record-icon.merchant-home { background: #f4e8da; color: #7f4c1f; }
.record-icon.merchant-digital { background: #e7e8ff; color: #4d46b7; }
.record-icon.merchant-subscription { background: #f0e7ff; color: #7641b3; }
.record-icon.merchant-energy { background: #fff2c8; color: #916500; }
.record-icon.merchant-water { background: #def5f6; color: #08747b; }
.record-icon.merchant-debt { background: #fee5e2; color: #b32b20; }
.record-icon.merchant-neutral { background: #edf0ed; color: #4c565d; }
.record-icon.payment { box-shadow: inset 0 0 0 1px #edb56f; }
.record-icon.claim { box-shadow: inset 0 0 0 1px #80caa0; }

.date-group { border-left-width: 4px; }
.date-group-heading { background: #eef1ed; }
.date-group.group-today { border-left-color: var(--green); }
.date-group.group-today .date-group-heading { background: #e4f6eb; color: #096d3b; }
.date-group.group-yesterday { border-left-color: var(--blue); }
.date-group.group-yesterday .date-group-heading { background: #e8f2fa; color: #145983; }
.date-group.group-date { border-left-color: #8d79d8; }
.date-group.group-date .date-group-heading { background: #f0edfb; color: #50448f; }
.date-group.group-undated { border-left-color: var(--amber); }
.fixed-group:nth-child(7n+1) { border-left: 4px solid #d55f52; }
.fixed-group:nth-child(7n+2) { border-left: 4px solid #2876ad; }
.fixed-group:nth-child(7n+3) { border-left: 4px solid #b23f6a; }
.fixed-group:nth-child(7n+4) { border-left: 4px solid #b88708; }
.fixed-group:nth-child(7n+5) { border-left: 4px solid #6159bd; }
.fixed-group:nth-child(7n+6) { border-left: 4px solid #26805b; }
.fixed-group:nth-child(7n) { border-left: 4px solid #69747b; }
.data-card:nth-child(4n+1) { border-top: 3px solid #5b4fcf; }
.data-card:nth-child(4n+2) { border-top: 3px solid #11884a; }
.data-card:nth-child(4n+3) { border-top: 3px solid #1769aa; }
.data-card:nth-child(4n) { border-top: 3px solid #b65f00; }

.profile-popover > button { color: #8d2118; }
.profile-popover > button span { line-height: 1; }
.record-arrow .lucide { width: 18px; height: 18px; }

.login-body { background: #eef2ef; }
.login-shell { width: min(500px, 100%); }
.login-brand { padding-inline: 4px; }
.login-panel { position: relative; overflow: hidden; border-top: 4px solid var(--violet); }
.login-family { display: flex; margin: -2px 0 20px; }
.login-family img { width: 52px; height: 52px; border: 3px solid #fff; border-radius: 50%; object-fit: cover; box-shadow: 0 3px 12px rgba(29, 34, 38, .16); }
.login-family img + img { margin-left: -12px; }
.login-intro { margin: -14px 0 22px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.login-panel form > label { margin-top: 14px; }
.input-with-icon { height: 46px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; border: 1px solid #abb3ba; border-radius: 7px; background: #fff; color: var(--muted); overflow: hidden; }
.input-with-icon:focus-within { outline: 3px solid rgba(91, 79, 207, .16); border-color: var(--violet); }
.input-with-icon > .lucide { width: 17px; height: 17px; justify-self: center; }
.input-with-icon input { width: 100%; min-width: 0; height: 44px; padding: 0 10px 0 0; border: 0; outline: 0; background: transparent; color: var(--text); }
.password-input { grid-template-columns: 38px minmax(0, 1fr) 40px; }
.field-icon-button { width: 40px; height: 44px; display: grid; place-items: center; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.field-icon-button .lucide { width: 17px; height: 17px; }
.login-submit { width: 100%; min-height: 46px; margin-top: 22px; border: 0; border-radius: 7px; background: #202529; color: #fff; font-weight: 900; cursor: pointer; }
.login-submit:hover { background: #30383d; }
.login-submit:disabled { opacity: .6; cursor: wait; }
.login-link-row { display: flex; justify-content: flex-end; margin-top: 9px; }
.login-link-row a { color: var(--violet); font-size: 12px; font-weight: 800; text-decoration: none; }
.login-link-row a:hover { text-decoration: underline; }
.login-link-center { justify-content: center; margin-top: 20px; }
.form-success { margin-top: 14px; padding: 11px 12px; border-left: 4px solid #11884a; background: #e7f6ec; color: #0d6335; font-size: 12px; font-weight: 700; line-height: 1.45; }

@media (max-width: 980px) {
  .mobile-icon-nav { flex-wrap: nowrap; }
  .account-contact-form { grid-template-columns: 1fr 1fr; }
  .account-contact-form .primary-small { width: 100%; }
  .apple-calendar-form { grid-template-columns: 1fr 1fr; }
  .calendar-form-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 410px) {
  .login-panel { padding: 23px 20px; }
  .login-panel h1 { font-size: 24px; }
}

@media (max-width: 620px) {
  .account-contact-form { grid-template-columns: 1fr; }
  .account-contact-note, .account-contact-form .form-error { grid-column: auto; }
  .apple-calendar-form { grid-template-columns: 1fr; }
  .calendar-form-actions, .apple-calendar-note, .apple-calendar-form .form-error { grid-column: auto; }
  .calendar-form-actions { display: grid; }
  .calendar-form-actions .primary-small, .calendar-form-actions .secondary-button { width: 100%; justify-content: center; }
}

/* Automation center, recovery pots and the binding next-month plan. */
.compact-select { display: grid; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.compact-select select { min-width: 118px; height: 36px; padding: 0 28px 0 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); font-size: 12px; font-weight: 800; text-transform: none; }
.budget-principle { min-height: 62px; margin-bottom: 18px; padding: 11px 14px; display: grid; grid-template-columns: 32px minmax(0, 1fr) 38px; align-items: center; gap: 10px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
.budget-principle > .lucide { width: 20px; height: 20px; color: var(--blue); }
.budget-principle strong, .budget-principle small { display: block; }
.budget-principle strong { font-size: 13px; }
.budget-principle small { margin-top: 4px; color: #3f596d; font-size: 11px; line-height: 1.4; }
.budget-transparency-band { margin-bottom: 22px; }
.budget-assignment-overview { border-top: 1px solid var(--line); }
.budget-transparency-intro { min-height: 78px; padding: 12px 14px; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 10px; background: #f4f7f8; }
.budget-transparency-intro > .lucide { width: 20px; height: 20px; color: var(--blue); }
.budget-transparency-intro strong, .budget-transparency-intro small { display: block; }
.budget-transparency-intro strong { font-size: 12px; }
.budget-transparency-intro small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.budget-assignment-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.budget-assignment-grid > div { min-height: 78px; padding: 11px 12px; border-right: 1px solid var(--line); border-top: 4px solid var(--green); }
.budget-assignment-grid > div:last-child { border-right: 0; }
.budget-assignment-grid > .assignment-learned { border-top-color: var(--violet); }
.budget-assignment-grid > .assignment-manual { border-top-color: var(--blue); }
.budget-assignment-grid > .assignment-review { border-top-color: var(--amber); background: #fffaf2; }
.budget-assignment-grid span, .budget-assignment-grid strong, .budget-assignment-grid small { display: block; }
.budget-assignment-grid span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.budget-assignment-grid strong { margin-top: 6px; font-size: 14px; }
.budget-assignment-grid small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.budget-excluded-overview { border-bottom: 1px solid var(--line); }
.budget-excluded-details > summary { min-height: 72px; padding: 10px 12px; display: grid; grid-template-columns: minmax(170px, .75fr) minmax(280px, 1.25fr) 60px; align-items: center; gap: 12px; cursor: pointer; list-style: none; background: #fbfbfa; }
.budget-excluded-details > summary::-webkit-details-marker { display: none; }
.budget-excluded-details > summary > span:first-child small, .budget-excluded-details > summary > span:first-child strong { display: block; }
.budget-excluded-details > summary > span:first-child small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.budget-excluded-details > summary > span:first-child strong { margin-top: 4px; font-size: 13px; }
.budget-excluded-details[open] .budget-expand .lucide { transform: rotate(180deg); }
.budget-excluded-types { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-left: 1px solid var(--line); }
.budget-excluded-types > span { min-width: 0; padding: 4px 10px; border-right: 1px solid var(--line); }
.budget-excluded-types small, .budget-excluded-types b { display: block; overflow-wrap: anywhere; }
.budget-excluded-types small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.budget-excluded-types b { margin-top: 4px; font-size: 10px; }
.budget-excluded-list { padding: 0 12px 10px; border-top: 1px solid var(--line); background: #fff; }
.budget-excluded-row { min-height: 62px; padding: 7px 2px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 92px; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.budget-excluded-row:last-child { border-bottom: 0; }
.budget-excluded-row .record-icon { width: 30px; height: 30px; }
.budget-excluded-row span strong, .budget-excluded-row span small { display: block; }
.budget-excluded-row span strong { font-size: 11px; }
.budget-excluded-row span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.budget-excluded-row > b { font-size: 11px; white-space: nowrap; }
.budget-excluded-empty { min-height: 62px; padding: 10px 14px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; }
.budget-excluded-empty .lucide { width: 19px; height: 19px; color: var(--green); }
.budget-excluded-empty strong, .budget-excluded-empty small { display: block; }
.budget-excluded-empty strong { font-size: 11px; }
.budget-excluded-empty small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.budget-profile-band { margin-bottom: 22px; }
.budget-profile-grid { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); border: 1px solid var(--line); }
.budget-profile-card { min-width: 0; min-height: 176px; padding: 13px; display: flex; flex-direction: column; align-items: flex-start; border-right: 1px solid var(--line); border-top: 4px solid var(--blue); background: var(--surface); }
.budget-profile-card:nth-child(1) { border-top-color: var(--green); }
.budget-profile-card:nth-child(3) { border-top-color: var(--amber); }
.budget-profile-card:nth-child(4) { border-top-color: var(--violet); }
.budget-profile-card:nth-child(5) { border-top-color: var(--red); border-right: 0; }
.budget-profile-card.active { background: var(--green-soft); }
.budget-profile-card > span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.budget-profile-card > strong { margin-top: 7px; font-size: 13px; }
.budget-profile-card > b { margin-top: 4px; font-size: 18px; font-variant-numeric: tabular-nums; }
.budget-profile-card > p { flex: 1; margin: 8px 0 12px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.budget-profile-card .secondary-button { width: 100%; min-height: 34px; justify-content: center; padding: 0 8px; font-size: 10px; }
.budget-profile-card .secondary-button .lucide { width: 14px; height: 14px; }
.budget-groups { display: grid; gap: 24px; }
.budget-group { min-width: 0; }
.budget-group-heading { min-height: 48px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-left: 4px solid var(--green); border-bottom: 1px solid var(--line); background: #eef7f1; }
.budget-group-steuerbar .budget-group-heading { border-left-color: var(--blue); background: #eef5fa; }
.budget-group-pause-zuerst .budget-group-heading { border-left-color: var(--amber); background: #fff6e8; }
.budget-group-heading strong, .budget-group-heading small { display: block; }
.budget-group-heading strong { font-size: 13px; }
.budget-group-heading small { margin-top: 2px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.budget-group-heading > b { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.budget-row { grid-template-columns: 42px minmax(220px, 1fr) minmax(240px, 1.1fr) 76px; }
.budget-row .record-icon { width: 36px; height: 36px; }
.budget-pot { min-width: 0; border-bottom: 1px solid var(--line); }
.budget-pot > summary { border-bottom: 0; cursor: pointer; list-style: none; }
.budget-pot > summary::-webkit-details-marker { display: none; }
.budget-pot[open] > summary { border-bottom: 1px solid var(--line); }
.budget-pot.budget-good { border-left: 3px solid var(--green); }
.budget-pot.budget-warning { border-left: 3px solid var(--amber); background: #fffaf2; }
.budget-pot.budget-critical { border-left: 3px solid var(--red); background: #fff7f6; }
.budget-pot.budget-stop { border-left: 5px solid var(--red); background: var(--red-soft); }
.budget-pot .budget-row { border-left: 0; border-bottom: 0; }
.budget-pot.budget-warning .budget-track b, .budget-pot.budget-warning .budget-track i { background: var(--amber); }
.budget-pot.budget-critical .budget-track b, .budget-pot.budget-critical .budget-track i,
.budget-pot.budget-stop .budget-track b, .budget-pot.budget-stop .budget-track i { background: var(--red); }
.budget-expand { display: grid; justify-items: center; gap: 2px; color: var(--muted); }
.budget-expand .lucide { width: 17px; height: 17px; transition: transform 160ms ease; }
.budget-expand small { font-size: 8px; font-weight: 900; text-transform: uppercase; }
.budget-pot[open] .budget-expand .lucide { transform: rotate(180deg); }
.budget-copy strong, .budget-copy small { display: block; }
.budget-inline-preview { max-width: 620px; margin-top: 5px; color: #4f5c63; font-size: 9px; line-height: 1.35; overflow-wrap: anywhere; }
.budget-breakdown { padding: 0 14px 14px 54px; background: #fff; }
.budget-breakdown-title { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.budget-breakdown-title small, .budget-breakdown-title strong { display: block; }
.budget-breakdown-title small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.budget-breakdown-title strong { margin-top: 4px; font-size: 14px; }
.budget-breakdown-title > b { font-size: 16px; white-space: nowrap; }
.budget-breakdown-formula { min-height: 74px; display: grid; grid-template-columns: minmax(110px, 1fr) 18px minmax(110px, 1fr) 18px minmax(110px, 1fr) 18px minmax(110px, 1fr); align-items: center; border-bottom: 1px solid var(--line); }
.budget-breakdown-formula > span { min-width: 0; }
.budget-breakdown-formula > span:last-child { color: var(--text); }
.budget-breakdown-formula > .lucide { width: 14px; height: 14px; color: var(--muted); }
.budget-breakdown-formula small, .budget-breakdown-formula b { display: block; }
.budget-breakdown-formula small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.budget-breakdown-formula b { margin-top: 4px; font-size: 14px; font-variant-numeric: tabular-nums; }
.budget-assignment-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.budget-assignment-strip > span { min-height: 58px; padding: 9px 10px; border-right: 1px solid var(--line); border-left: 3px solid var(--green); }
.budget-assignment-strip > span:last-child { border-right: 0; }
.budget-assignment-strip > .assignment-learned { border-left-color: var(--violet); }
.budget-assignment-strip > .assignment-manual { border-left-color: var(--blue); }
.budget-assignment-strip > .assignment-review { border-left-color: var(--amber); background: #fffaf2; }
.budget-assignment-strip small, .budget-assignment-strip b { display: block; }
.budget-assignment-strip small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.budget-assignment-strip b { margin-top: 4px; font-size: 10px; }
.budget-breakdown-heading { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.budget-breakdown-heading strong, .budget-breakdown-heading small { display: block; }
.budget-breakdown-heading strong { font-size: 12px; }
.budget-breakdown-heading small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.budget-breakdown-heading > b { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.budget-merchant-breakdown { border-bottom: 1px solid var(--line); }
.budget-merchant-grid { display: grid; grid-template-columns: repeat(4, minmax(140px, 1fr)); border: 1px solid var(--line); border-bottom: 0; }
.budget-merchant-grid > span { min-height: 54px; padding: 9px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.budget-merchant-grid > span:nth-child(4n) { border-right: 0; }
.budget-merchant-grid small, .budget-merchant-grid b { display: block; }
.budget-merchant-grid small { color: var(--muted); font-size: 9px; line-height: 1.3; overflow-wrap: anywhere; }
.budget-merchant-grid b { margin-top: 5px; font-size: 12px; font-variant-numeric: tabular-nums; }
.budget-contribution-list { padding-top: 2px; }
.budget-contribution-row { min-height: 72px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto 108px; align-items: center; gap: 10px; padding: 8px 4px; border-top: 1px solid var(--line); }
.budget-contribution-row > .record-icon { width: 32px; height: 32px; }
.budget-contribution-copy { min-width: 0; }
.budget-contribution-copy strong, .budget-contribution-copy small, .budget-contribution-copy em { display: block; overflow-wrap: anywhere; }
.budget-contribution-copy strong { font-size: 12px; }
.budget-contribution-copy small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.budget-contribution-copy em { margin-top: 4px; padding-left: 7px; border-left: 3px solid var(--green); color: #596470; font-size: 9px; font-style: normal; line-height: 1.4; }
.budget-contribution-copy em.assignment-learned { border-left-color: var(--violet); }
.budget-contribution-copy em.assignment-manual { border-left-color: var(--blue); }
.budget-contribution-copy em.assignment-review { border-left-color: var(--amber); color: #8b5100; }
.budget-contribution-copy em b { display: inline; color: var(--text); font-size: inherit; }
.budget-contribution-row > b { font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.budget-reassign-button { min-height: 34px; padding: 0 9px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--violet); font-size: 9px; font-weight: 900; white-space: nowrap; }
.budget-reassign-button:hover { border-color: var(--violet); background: #f4f1ff; }
.budget-reassign-button .lucide { width: 14px; height: 14px; }
.budget-reassign-button.compact { min-height: 30px; }
.budget-breakdown-empty { min-height: 72px; display: flex; align-items: center; gap: 10px; }
.budget-breakdown-empty .lucide { width: 20px; height: 20px; color: var(--green); }
.budget-breakdown-empty strong, .budget-breakdown-empty small { display: block; }
.budget-breakdown-empty small { margin-top: 3px; color: var(--muted); font-size: 10px; }

.budget-alert-band, .budget-review-band, .budget-comparison-band { margin-bottom: 22px; }
.budget-alert-list, .budget-comparison-list, .budget-history-list { border-top: 1px solid var(--line); }
.budget-alert-row { min-height: 72px; padding: 10px 5px; display: grid; grid-template-columns: 36px minmax(180px, 1fr) minmax(140px, .7fr) 92px; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); border-left: 4px solid var(--amber); }
.budget-alert-row.alert-critical, .budget-alert-row.alert-stop { border-left-color: var(--red); background: #fff8f7; }
.budget-alert-row.alert-stop { background: var(--red-soft); }
.budget-alert-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; background: var(--amber-soft); color: var(--amber); }
.alert-critical .budget-alert-icon, .alert-stop .budget-alert-icon { background: #fff; color: var(--red); }
.budget-alert-icon .lucide { width: 17px; height: 17px; }
.budget-alert-row > span:nth-child(2) small,
.budget-alert-row > span:nth-child(2) strong,
.budget-alert-row > span:nth-child(2) em { display: block; }
.budget-alert-row > span:nth-child(2) small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.budget-alert-row > span:nth-child(2) strong { margin-top: 3px; font-size: 12px; }
.budget-alert-row > span:nth-child(2) em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; }
.budget-alert-meter { height: 8px; display: block; border-radius: 3px; background: var(--surface-muted); overflow: hidden; }
.budget-alert-meter i { height: 100%; display: block; background: var(--amber); }
.alert-critical .budget-alert-meter i, .alert-stop .budget-alert-meter i { background: var(--red); }
.budget-alert-row .secondary-button { min-height: 34px; justify-content: center; padding-inline: 8px; }
.budget-alert-empty { min-height: 70px; padding: 10px 6px; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; color: var(--green); }
.budget-alert-empty .lucide { width: 21px; height: 21px; }
.budget-alert-empty strong, .budget-alert-empty small { display: block; }
.budget-alert-empty strong { font-size: 12px; }
.budget-alert-empty small { margin-top: 3px; color: var(--muted); font-size: 9px; }

.budget-review-summary { min-height: 68px; padding: 10px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-left: 4px solid var(--amber); background: #fffaf2; }
.budget-review-summary > .lucide { width: 19px; height: 19px; color: var(--amber); }
.budget-review-summary strong, .budget-review-summary small { display: block; }
.budget-review-summary strong { font-size: 12px; }
.budget-review-summary small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.budget-review-summary .primary-small { min-height: 36px; }
.budget-review-list { border-bottom: 1px solid var(--line); }
.budget-review-list:empty { border-bottom: 0; }
.budget-review-list .budget-contribution-row:first-child { border-top: 0; }

.budget-comparison-summary { display: flex; gap: 8px; margin-bottom: 14px; overflow-x: auto; scrollbar-width: thin; }
.budget-comparison-row { min-height: 68px; padding: 9px 5px; display: grid; grid-template-columns: 34px minmax(150px, 1fr) repeat(4, minmax(95px, .55fr)); align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.budget-comparison-row .record-icon { width: 30px; height: 30px; }
.budget-comparison-row > strong { font-size: 11px; overflow-wrap: anywhere; }
.budget-comparison-row > span:not(.record-icon) small,
.budget-comparison-row > span:not(.record-icon) b { display: block; }
.budget-comparison-row > span:not(.record-icon) small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.budget-comparison-row > span:not(.record-icon) b { margin-top: 4px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }

.budget-history-band { margin-top: 24px; }
.budget-history-row { border-bottom: 1px solid var(--line); }
.budget-history-row > summary { min-height: 62px; padding: 8px 5px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 18px; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.budget-history-row > summary::-webkit-details-marker { display: none; }
.budget-history-row > summary > span:nth-child(2) strong,
.budget-history-row > summary > span:nth-child(2) small { display: block; }
.budget-history-row > summary > span:nth-child(2) strong { font-size: 11px; }
.budget-history-row > summary > span:nth-child(2) small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.budget-history-row > summary > .lucide { width: 15px; color: var(--muted); transition: transform .15s ease; }
.budget-history-row[open] > summary > .lucide { transform: rotate(180deg); }
.budget-history-row > div { padding: 0 6px 12px 49px; }
.budget-history-row > div > .secondary-button { margin-top: 10px; }

.editor-budget-split-field { margin: 14px 0 2px; padding: 12px; border: 1px solid var(--line); border-left: 4px solid var(--blue); }
.editor-budget-split-field legend { padding: 0 6px; color: var(--text); font-size: 11px; font-weight: 900; }
.editor-budget-split-field > p { margin: 0 0 9px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.editor-budget-splits { display: grid; gap: 7px; }
.editor-budget-split-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(120px, .6fr) 38px; align-items: end; gap: 8px; }
.capture-sheet .editor-budget-split-row label { margin-top: 0; }
.editor-budget-split-row .icon-button { margin-bottom: 2px; }
.editor-budget-split-footer { min-height: 42px; margin-top: 9px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.editor-budget-split-footer > span { color: var(--muted); font-size: 10px; font-weight: 800; text-align: right; }
.editor-budget-split-footer > span.status-good { color: var(--green); }
.editor-budget-split-footer > span.money-negative { color: var(--red); }

.automation-services { border-top: 1px solid var(--line); }
.automation-service { min-height: 74px; padding: 10px 6px; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--green); }
.automation-service.service-bad { border-left-color: var(--red); background: #fff9f8; }
.automation-service-copy strong, .automation-service-copy small { display: block; }
.automation-service-copy strong { font-size: 13px; }
.automation-service-copy small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.automation-service-state { font-size: 11px; font-weight: 900; white-space: nowrap; }
.review-item { min-height: 76px; }
.review-item.review-payment, .review-item.review-automation { border-left-color: var(--red); background: #fff8f7; }
.review-item.review-merchant { border-left-color: var(--amber); background: #fffbf4; }
.review-item .secondary-button { white-space: nowrap; }
.compact-segmented button { min-height: 30px; padding: 0 9px; font-size: 10px; }
.success-empty { min-height: 70px; display: flex; align-items: center; gap: 9px; color: var(--green); }
.success-empty .lucide { width: 19px; height: 19px; }
.automation-lower-grid { align-items: start; }
.report-recipient-row { min-height: 54px; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 10px; }
.report-recipient-row > .lucide { width: 20px; height: 20px; color: var(--violet); }
.report-recipient-row strong, .report-recipient-row small { display: block; }
.report-recipient-row strong { font-size: 13px; }
.report-recipient-row small { margin-top: 3px; color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.report-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.report-facts > span { min-height: 70px; padding: 10px; border-right: 1px solid var(--line); }
.report-facts > span:last-child { border-right: 0; }
.report-facts small, .report-facts strong { display: block; }
.report-facts small { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.report-facts strong { margin-top: 6px; font-size: 14px; overflow-wrap: anywhere; }
.report-topics { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.report-topics span { padding: 4px 7px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.automation-run-list { border-top: 1px solid var(--line); }
.automation-run { min-height: 52px; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); }
.run-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); }
.run-dot.run-good { background: var(--green); }
.automation-run strong, .automation-run small { display: block; }
.automation-run strong { font-size: 11px; }
.automation-run small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.3; }
.automation-run time { color: var(--muted); font-size: 9px; white-space: nowrap; }
.activity-list { border-top: 1px solid var(--line); }
.activity-row { min-height: 66px; padding: 9px 5px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); }
.activity-row:last-child { border-bottom: 0; }
.activity-avatar { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #eeecff; color: var(--violet); }
.activity-automatic .activity-avatar { background: var(--blue-soft); color: var(--blue); }
.activity-avatar .lucide { width: 16px; height: 16px; }
.activity-row span strong, .activity-row span b, .activity-row span small { display: block; }
.activity-row span strong { font-size: 10px; }
.activity-row span b { margin-top: 3px; font-size: 12px; overflow-wrap: anywhere; }
.activity-row span small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.activity-row time { color: var(--muted); font-size: 9px; white-space: nowrap; }
.learned-rule-row { grid-template-columns: 42px minmax(0, 1fr) auto; }

.action-plan-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.action-plan-summary > div { min-height: 86px; padding: 12px 14px; border-right: 1px solid var(--line); }
.action-plan-summary > div:last-child { border-right: 0; }
.action-plan-summary span, .action-plan-summary strong, .action-plan-summary small { display: block; }
.action-plan-summary span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.action-plan-summary strong { margin-top: 7px; font-size: 18px; font-variant-numeric: tabular-nums; }
.action-plan-summary small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.action-plan-obligations { margin-top: 14px; display: grid; grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr); gap: 22px; }
.action-plan-message { min-height: 92px; padding: 14px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start; gap: 10px; border-left: 4px solid var(--green); background: var(--green-soft); }
.action-plan-message.plan-gap { border-left-color: var(--red); background: var(--red-soft); }
.action-plan-message > .lucide { width: 20px; height: 20px; color: var(--green); }
.action-plan-message.plan-gap > .lucide { color: var(--red); }
.action-plan-message strong, .action-plan-message small { display: block; }
.action-plan-message strong { font-size: 13px; }
.action-plan-message small { margin-top: 6px; color: #5e4a48; font-size: 10px; line-height: 1.45; }
.action-obligation-list { border-top: 1px solid var(--line); }
.action-obligation { min-height: 58px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 7px 3px; border-bottom: 1px solid var(--line); }
.action-obligation .record-icon { width: 32px; height: 32px; }
.action-obligation span strong, .action-obligation span small { display: block; }
.action-obligation span strong { font-size: 11px; line-height: 1.25; overflow-wrap: anywhere; }
.action-obligation span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.action-obligation > b { font-size: 11px; white-space: nowrap; }

@media (max-width: 720px) {
  .daily-decision-list { grid-template-columns: 1fr 1fr; }
  .daily-decision-row { min-height: 104px; border-bottom: 1px solid var(--line); }
  .daily-decision-row:nth-child(even) { border-right: 0; }
  .daily-decision-row:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .obligation-radar-summary { grid-template-columns: 1fr 1fr; }
  .obligation-radar-summary > div:nth-child(2) { border-right: 0; }
  .obligation-radar-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .review-queue-band .section-heading { align-items: flex-start; flex-direction: column; }
  .review-queue-actions { width: 100%; justify-content: space-between; }
  .budget-heading-actions { align-items: flex-end; }
  .budget-transparency-band .section-heading { align-items: flex-start; flex-direction: column; }
  .budget-transparency-band .heading-actions { width: 100%; }
  .budget-transparency-band .secondary-button { flex: 1; justify-content: center; }
  .budget-assignment-grid { grid-template-columns: 1fr 1fr; }
  .budget-assignment-grid > div:nth-child(even) { border-right: 0; }
  .budget-assignment-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .budget-excluded-details > summary { grid-template-columns: minmax(0, 1fr) 30px; }
  .budget-excluded-types { grid-column: 1 / -1; grid-row: 2; border-top: 1px solid var(--line); border-left: 0; }
  .budget-excluded-details > summary > .budget-expand { grid-column: 2; grid-row: 1; }
  .budget-profile-grid { grid-template-columns: 1fr 1fr; }
  .budget-profile-card { min-height: 160px; border-bottom: 1px solid var(--line); }
  .budget-profile-card:nth-child(even) { border-right: 0; }
  .budget-profile-card:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .budget-row { grid-template-columns: 36px minmax(0, 1fr); gap: 9px; }
  .budget-row .budget-bars { grid-column: 1 / -1; }
  .budget-pot .budget-row { grid-template-columns: 36px minmax(0, 1fr) 30px; }
  .budget-pot .budget-bars { grid-column: 1 / -1; }
  .budget-expand { grid-column: 3; grid-row: 1; }
  .budget-expand small { display: none; }
  .budget-breakdown { padding: 0 10px 12px; }
  .budget-breakdown-formula { grid-template-columns: 1fr 1fr; gap: 0; }
  .budget-breakdown-formula > .lucide { display: none; }
  .budget-breakdown-formula > span { min-height: 58px; padding: 9px 6px; border-bottom: 1px solid var(--line); }
  .budget-assignment-strip { grid-template-columns: 1fr 1fr; }
  .budget-assignment-strip > span:nth-child(even) { border-right: 0; }
  .budget-assignment-strip > span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .budget-merchant-grid { grid-template-columns: 1fr 1fr; }
  .budget-merchant-grid > span:nth-child(4n) { border-right: 1px solid var(--line); }
  .budget-merchant-grid > span:nth-child(even) { border-right: 0; }
  .budget-contribution-row { grid-template-columns: 32px minmax(0, 1fr) auto; }
  .budget-contribution-row .budget-reassign-button { grid-column: 2 / -1; justify-self: end; }
  .budget-excluded-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .budget-excluded-row .budget-reassign-button { grid-column: 2 / -1; justify-self: end; }
  .budget-alert-row { grid-template-columns: 32px minmax(0, 1fr) auto; }
  .budget-alert-meter { grid-column: 2 / -1; }
  .budget-alert-row .secondary-button { grid-column: 2 / -1; justify-self: end; }
  .budget-review-summary { grid-template-columns: 24px minmax(0, 1fr); }
  .budget-review-summary .primary-small { grid-column: 2; justify-self: start; }
  .budget-comparison-row { grid-template-columns: 30px minmax(0, 1fr); align-items: start; }
  .budget-comparison-row > strong { align-self: center; }
  .budget-comparison-row > span:not(.record-icon) { grid-column: 2; min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); }
  .budget-comparison-row > span:not(.record-icon) b { margin-top: 0; }
  .automation-service { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .automation-service .secondary-button { grid-column: 2 / -1; justify-self: start; }
  .review-item { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .review-item .secondary-button { grid-column: 2 / -1; justify-self: start; }
  .action-plan-summary { grid-template-columns: 1fr 1fr; }
  .action-plan-summary > div:nth-child(2) { border-right: 0; }
  .action-plan-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .action-plan-obligations { grid-template-columns: 1fr; }
}

@media (max-width: 410px) {
  .daily-decision-list, .obligation-radar-summary { grid-template-columns: 1fr; }
  .daily-decision-row, .daily-decision-row:nth-child(even), .daily-decision-row:last-child { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .daily-decision-row:last-child { border-bottom: 0; }
  .obligation-radar-summary > div, .obligation-radar-summary > div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .obligation-radar-summary > div:last-child { border-bottom: 0; }
  .obligation-row { grid-template-columns: 44px 28px minmax(0, 1fr); }
  .obligation-row > b, .obligation-row > .lucide { grid-column: 3; justify-self: start; }
  .review-queue-actions { align-items: stretch; flex-direction: column; }
  .review-queue-actions .compact-segmented { width: 100%; overflow-x: auto; }
  .activity-row { grid-template-columns: 32px minmax(0, 1fr); }
  .activity-row time { grid-column: 2; }
  .budget-heading-actions .compact-select { width: 100%; }
  .budget-heading-actions .compact-select select { width: 100%; }
  .budget-profile-grid { grid-template-columns: 1fr; }
  .budget-profile-card, .budget-profile-card:nth-child(even), .budget-profile-card:last-child { grid-column: auto; border-right: 0; }
  .budget-assignment-grid, .budget-assignment-strip { grid-template-columns: 1fr; }
  .budget-assignment-grid > div, .budget-assignment-grid > div:nth-child(even), .budget-assignment-strip > span, .budget-assignment-strip > span:nth-child(even) { border-right: 0; border-bottom: 1px solid var(--line); }
  .budget-assignment-grid > div:last-child, .budget-assignment-strip > span:last-child { border-bottom: 0; }
  .budget-excluded-types { grid-template-columns: 1fr; }
  .budget-excluded-types > span { border-right: 0; border-bottom: 1px solid var(--line); }
  .budget-excluded-types > span:last-child { border-bottom: 0; }
  .budget-alert-row { grid-template-columns: 28px minmax(0, 1fr); padding-inline: 8px; }
  .budget-alert-row .secondary-button, .budget-alert-meter { grid-column: 2; justify-self: stretch; }
  .budget-alert-row .secondary-button { width: 100%; }
  .budget-review-summary .primary-small { width: 100%; justify-content: center; }
  .budget-history-row > div { padding-left: 39px; }
  .editor-budget-split-row { grid-template-columns: minmax(0, 1fr) 38px; }
  .editor-budget-split-row label:first-child { grid-column: 1 / -1; }
  .editor-budget-split-row .icon-button { grid-column: 2; }
  .editor-budget-split-footer { align-items: stretch; flex-direction: column; }
  .editor-budget-split-footer .secondary-button { width: 100%; justify-content: center; }
  .editor-budget-split-footer > span { text-align: left; }
  .automation-service, .review-item { grid-template-columns: 34px minmax(0, 1fr); }
  .automation-service-state, .automation-service .secondary-button, .review-item .record-amount, .review-item .secondary-button { grid-column: 2; justify-self: start; }
  .report-facts, .action-plan-summary { grid-template-columns: 1fr; }
  .report-facts > span, .action-plan-summary > div, .action-plan-summary > div:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .report-facts > span:last-child, .action-plan-summary > div:last-child { border-bottom: 0; }
}

/* Contract center: renewal deadlines, source evidence and meter gaps. */
.contract-center-groups { display: grid; gap: 28px; }
.contract-group { min-width: 0; }
.contract-group-heading { min-height: 48px; margin-bottom: 12px; padding: 0 13px; display: flex; align-items: center; border-left: 4px solid var(--blue); border-bottom: 1px solid var(--line); background: #edf5fa; }
.contract-group-jetzt-handeln .contract-group-heading { border-left-color: var(--red); background: #fff0ef; }
.contract-group-versicherungen .contract-group-heading { border-left-color: #7657ba; background: #f3effb; }
.contract-group-energie-kommunikation .contract-group-heading { border-left-color: #b88100; background: #fff6dc; }
.contract-group-organisation-dokumente .contract-group-heading { border-left-color: #68757c; background: #f0f2f2; }
.contract-group-archiv .contract-group-heading { border-left-color: #8a9296; background: #f4f5f5; }
.contract-group-heading strong, .contract-group-heading small { display: block; }
.contract-group-heading strong { font-size: 14px; }
.contract-group-heading small { margin-top: 2px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.contract-card { display: flex; flex-direction: column; }
.contract-card.contract-critical { border-top-color: var(--red); }
.contract-card.contract-warning { border-top-color: var(--amber); }
.contract-card.contract-upcoming { border-top-color: var(--blue); }
.contract-card.contract-good { border-top-color: var(--green); }
.contract-card.contract-neutral { border-top-color: #7a858b; }
.contract-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.contract-status { padding: 4px 7px; border-radius: 4px; background: #eef1f2; color: #536168; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.contract-status.status-active { background: var(--green-soft); color: var(--green); }
.contract-status.status-planned { background: var(--blue-soft); color: var(--blue); }
.contract-status.status-needs_review { background: #fff0d7; color: #9a5a00; }
.contract-status.status-ended, .contract-status.status-organization { background: #eceeee; color: #69747a; }
.contract-deadline { min-height: 78px; margin-top: 15px; padding: 11px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 4px solid #7a858b; background: #f2f4f4; }
.contract-deadline.deadline-critical { border-left-color: var(--red); background: #fff0ef; color: #991f18; }
.contract-deadline.deadline-warning { border-left-color: var(--amber); background: #fff5df; color: #8b5100; }
.contract-deadline.deadline-upcoming { border-left-color: var(--blue); background: var(--blue-soft); color: #145983; }
.contract-deadline.deadline-good { border-left-color: var(--green); background: var(--green-soft); color: #087341; }
.contract-deadline > .lucide { width: 20px; height: 20px; }
.contract-deadline small, .contract-deadline strong, .contract-deadline em { display: block; }
.contract-deadline small { font-size: 9px; font-weight: 900; text-transform: uppercase; }
.contract-deadline strong { margin-top: 4px; font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.contract-deadline em { margin-top: 3px; color: currentColor; font-size: 10px; font-style: normal; opacity: .82; }
.contract-facts { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.contract-facts span { min-height: 51px; padding: 8px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.contract-facts span:nth-child(2n) { border-right: 0; }
.contract-facts span:nth-last-child(-n+2) { border-bottom: 0; }
.contract-facts small, .contract-facts b { display: block; }
.contract-facts small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.contract-facts b { margin-top: 4px; font-size: 11px; }
.contract-number { margin-top: 10px !important; font-variant-numeric: tabular-nums; }
.contract-source { margin-top: 10px; display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; font-weight: 800; }
.contract-source .lucide { width: 13px; height: 13px; }
.meter-card.meter-reading-missing { border-top-color: var(--amber); }
.meter-reading-callout { min-height: 62px; margin-top: 12px; padding: 10px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; border-left: 4px solid var(--amber); background: #fff5df; color: #855000; }
.meter-reading-callout > .lucide { width: 19px; height: 19px; }
.meter-reading-callout strong, .meter-reading-callout small { display: block; }
.meter-reading-callout strong { font-size: 12px; }
.meter-reading-callout small { margin-top: 3px; font-size: 9px; }
.meter-section-heading { margin: 28px 0 12px; padding: 0 2px 10px; border-bottom: 1px solid var(--line); }
.energy-deadline-band { margin-top: 18px; border-left: 4px solid var(--violet); }
.energy-deadline-list { display: grid; border-top: 1px solid var(--line); }
.energy-deadline-row { min-height: 70px; display: grid; grid-template-columns: 80px 36px minmax(0, 1fr) auto auto; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.energy-deadline-row:last-child { border-bottom: 0; }
.energy-deadline-row time { color: var(--ink); font-size: 11px; font-weight: 900; font-variant-numeric: tabular-nums; white-space: nowrap; }
.energy-deadline-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; background: var(--blue-soft); color: var(--blue); }
.energy-deadline-icon .lucide { width: 18px; height: 18px; }
.energy-deadline-row .record-title { min-width: 0; }
.energy-deadline-row .record-title strong { font-size: 12px; }
.energy-deadline-row .record-title small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.energy-deadline-state { min-width: 90px; padding: 5px 7px; border-radius: 4px; background: #eef1f2; color: #59666d; font-size: 9px; font-weight: 900; text-align: center; white-space: nowrap; }
.deadline-overdue .energy-deadline-icon, .deadline-urgent .energy-deadline-icon { background: #ffebe9; color: var(--red); }
.deadline-overdue .energy-deadline-state, .deadline-urgent .energy-deadline-state { background: #ffebe9; color: #a31d18; }
.deadline-soon .energy-deadline-icon, .deadline-soon .energy-deadline-state { background: #fff0d7; color: #8d5300; }
.deadline-secured .energy-deadline-icon, .deadline-secured .energy-deadline-state { background: var(--green-soft); color: var(--green); }
.energy-deadline-row .secondary-button { min-height: 34px; white-space: nowrap; }
.energy-meter-card { display: flex; flex-direction: column; min-width: 0; border-top-color: var(--blue); }
.energy-meter-card.meter-ready { border-top-color: var(--green); }
.energy-confidence { padding: 4px 7px; border-radius: 4px; background: #eef1f2; color: #59666d; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.energy-confidence.confidence-high { background: var(--green-soft); color: var(--green); }
.energy-confidence.confidence-medium { background: #fff0d7; color: #8d5300; }
.energy-result { min-height: 88px; margin-top: 14px; padding: 12px 14px; display: grid; align-content: center; border-left: 4px solid #758187; background: #f1f3f3; }
.energy-result small, .energy-result strong, .energy-result span { display: block; }
.energy-result small { font-size: 9px; font-weight: 900; text-transform: uppercase; }
.energy-result strong { margin-top: 3px; font-size: 25px; font-variant-numeric: tabular-nums; }
.energy-result span { margin-top: 2px; color: var(--muted); font-size: 10px; }
.energy-result.result-payment { border-left-color: var(--red); background: #fff0ef; color: #a31d18; }
.energy-result.result-credit { border-left-color: var(--green); background: var(--green-soft); color: #08723b; }
.energy-result.result-even { border-left-color: var(--blue); background: var(--blue-soft); color: #145983; }
.energy-result.result-cost { border-left-color: var(--blue); background: #edf7fb; color: #145983; }
.energy-period-grid { margin-top: 10px; }
.energy-readings { margin-top: 14px; border-top: 1px solid var(--line); }
.energy-subheading { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.energy-subheading strong { font-size: 11px; }
.energy-subheading span { color: var(--muted); font-size: 9px; }
.energy-reading-row { min-height: 40px; display: grid; grid-template-columns: 70px minmax(0, 1fr) auto; align-items: center; gap: 8px; border-top: 1px solid #edf0f0; font-size: 10px; }
.energy-reading-row time { color: var(--muted); }
.energy-reading-row strong { font-size: 11px; font-variant-numeric: tabular-nums; }
.energy-reading-row small { color: var(--muted); font-size: 8px; text-align: right; }
.energy-reading-source { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-width: 0; }
.energy-documents { margin-top: 12px; border-top: 1px solid var(--line); }
.energy-document-row { min-height: 44px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; border-top: 1px solid #edf0f0; }
.energy-document-row > span { min-width: 0; }
.energy-document-row strong, .energy-document-row small { display: block; }
.energy-document-row strong { font-size: 10px; }
.energy-document-row small { margin-top: 2px; color: var(--muted); font-size: 8px; overflow-wrap: anywhere; }
.energy-document-link { display: inline-flex; align-items: center; gap: 4px; color: var(--violet); font-size: 9px; font-weight: 850; white-space: nowrap; }
.energy-document-link .lucide { width: 14px; height: 14px; }
.compact-empty { min-height: 42px; padding: 10px 0; text-align: left; }
.energy-formula { margin-top: 12px; border-top: 1px solid var(--line); }
.energy-formula summary { padding: 10px 0; font-size: 10px; font-weight: 800; cursor: pointer; }
.energy-formula > p { margin-top: 8px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.energy-facts { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.energy-facts span { min-height: 50px; padding: 8px 9px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.energy-facts span:nth-child(2n) { border-right: 0; }
.energy-facts span:nth-last-child(-n+2) { border-bottom: 0; }
.energy-facts small, .energy-facts b { display: block; }
.energy-facts small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.energy-facts b { margin-top: 4px; font-size: 11px; }
.meter-actions { margin-top: auto; padding-top: 14px; display: flex; gap: 8px; flex-wrap: wrap; }
.meter-actions .secondary-button { min-height: 36px; }
.energy-settlement-band { border-left: 4px solid var(--red); }
.energy-history-band { margin-top: 26px; border-top: 1px solid var(--line); }
.energy-settlement-list { display: grid; border-top: 1px solid var(--line); }
.energy-settlement-row { min-height: 78px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.energy-settlement-row:last-child { border-bottom: 0; }
.energy-settlement-row .record-title { min-width: 0; }
.energy-settlement-row .record-amount { font-size: 15px; font-weight: 900; white-space: nowrap; }
.energy-settlement-row.settlement-history { opacity: .78; }
.energy-settlement-row .secondary-button { min-height: 34px; white-space: nowrap; }

@media (max-width: 410px) {
  .contract-center-groups { gap: 22px; }
  .contract-group-heading { margin-inline: -2px; }
  .contract-facts { grid-template-columns: 1fr; }
  .contract-facts span, .contract-facts span:nth-child(2n), .contract-facts span:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .contract-facts span:last-child { border-bottom: 0; }
  .energy-reading-row { grid-template-columns: 62px minmax(0, 1fr); }
  .energy-deadline-row { grid-template-columns: 70px 32px minmax(0, 1fr); gap: 8px; }
  .energy-deadline-state { grid-column: 3; justify-self: start; min-width: 0; }
  .energy-deadline-row .secondary-button { grid-column: 3; justify-self: start; }
  .energy-reading-source { grid-column: 2; justify-content: flex-start; }
  .energy-reading-row small { text-align: left; }
  .energy-facts { grid-template-columns: 1fr; }
  .energy-facts span, .energy-facts span:nth-child(2n), .energy-facts span:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .energy-facts span:last-child { border-bottom: 0; }
  .meter-actions { flex-direction: column; }
  .meter-actions .secondary-button { width: 100%; justify-content: center; }
  .energy-settlement-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .energy-settlement-row .secondary-button { grid-column: 2 / -1; justify-self: start; }
}

/* Paperless scan inbox: OCR stays a proposal until a family member confirms it. */
.scan-inbox-band { padding-top: 4px; }
.scan-inbox { display: grid; gap: 10px; }
.scan-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--line); border-left: 4px solid #1769aa; border-radius: 8px; background: #f8fbfe; }
.scan-card.scan-invoice { border-left-color: #b65f00; background: #fffbf5; }
.scan-card.scan-energy { border-left-color: #087b70; background: #f4fbfa; }
.scan-card.scan-ready { border-left-color: #e3a14d; background: #fffaf1; }
.scan-card.scan-completed { border-left-color: #11884a; background: #f7fcf9; }
.scan-card.scan-dismissed { border-left-color: #9ca5ad; background: #f7f8f8; opacity: .75; }
.scan-card-heading { grid-column: 1 / -1; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.scan-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 7px; background: #e4f0fb; color: #1769aa; }
.scan-invoice .scan-icon { background: #fff0dc; color: #9a4c00; }
.scan-energy .scan-icon { background: #dff3ef; color: #087b70; }
.scan-ready .scan-icon { background: #fff0d7; color: #9a5c00; }
.scan-completed .scan-icon { background: #e2f5e9; color: #08723b; }
.scan-icon svg { width: 20px; height: 20px; }
.scan-copy { min-width: 0; display: grid; gap: 3px; }
.scan-copy strong { font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.scan-copy small { color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.scan-state { color: #1769aa; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.scan-invoice .scan-state { color: #9a4c00; }
.scan-energy .scan-state { color: #087b70; }
.scan-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.scan-document-link { display: inline-flex; align-items: center; gap: 5px; color: var(--violet); font-size: 11px; font-weight: 800; white-space: nowrap; }
.scan-document-link svg { width: 16px; height: 16px; }
.scan-form { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.scan-form label { min-width: 0; }
.scan-form label.wide, .scan-form-actions.wide { grid-column: 1 / -1; }
.scan-form label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; font-weight: 800; }
.scan-form input, .scan-form select { width: 100%; height: 39px; padding: 0 9px; border: 1px solid #aeb6bd; border-radius: 6px; background: #fff; color: var(--text); }
.scan-candidates { border: 1px solid #c9d7e2; border-radius: 7px; background: #f6fafc; }
.scan-candidates summary { display: flex; align-items: center; gap: 7px; padding: 10px 12px; color: #28546f; font-size: 11px; font-weight: 900; cursor: pointer; }
.scan-candidates summary::marker { content: ""; }
.scan-candidates summary .lucide { width: 16px; height: 16px; }
.candidate-groups { display: grid; gap: 11px; padding: 0 12px 12px; }
.candidate-groups section { display: grid; gap: 6px; }
.candidate-groups section > b { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.candidate-groups section > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.candidate-option { min-width: 0; padding: 8px 9px; border: 1px solid #c6d0d7; border-radius: 6px; background: #fff; color: var(--text); text-align: left; cursor: pointer; }
.candidate-option:hover { border-color: #4182a7; background: #eef7fb; }
.candidate-option.selected { border-color: #1769aa; box-shadow: inset 0 0 0 1px #1769aa; background: #eaf5fb; }
.candidate-option strong, .candidate-option small { display: block; overflow-wrap: anywhere; }
.candidate-option strong { font-size: 11px; line-height: 1.3; }
.candidate-option small { margin-top: 2px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.scan-duplicate { display: grid; grid-template-columns: 34px minmax(0, 1fr) minmax(190px, .7fr); gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid #e0b266; border-left: 4px solid #ca7800; border-radius: 7px; background: #fff8e9; }
.scan-duplicate.duplicate-exact { border-color: #d79a42; border-left-color: #a95b00; background: #fff4df; }
.duplicate-icon { width: 30px; height: 30px; display: grid; place-items: center; color: #925000; }
.duplicate-icon .lucide { width: 19px; height: 19px; }
.scan-duplicate > div strong, .scan-duplicate > div small { display: block; }
.scan-duplicate > div strong { font-size: 11px; }
.scan-duplicate > div small { margin-top: 3px; color: #72552f; font-size: 9px; line-height: 1.45; overflow-wrap: anywhere; }
.scan-duplicate label > span { color: #72552f; }
.scan-learning { display: flex; align-items: center; gap: 9px; padding: 9px 11px; border-left: 4px solid #5f7b8d; background: #f1f5f7; }
.scan-learning.learning-trusted { border-left-color: #14864a; background: #edf8f1; }
.scan-learning > .lucide { width: 18px; height: 18px; color: #3e657a; flex: 0 0 auto; }
.scan-learning.learning-trusted > .lucide { color: #14864a; }
.scan-learning strong, .scan-learning small { display: block; }
.scan-learning strong { font-size: 10px; }
.scan-learning small { margin-top: 2px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.scan-conflicts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 12px; padding: 10px 12px; border-left: 4px solid var(--amber); background: #fff7e6; }
.scan-conflicts > strong, .scan-conflicts > p { grid-column: 1 / -1; }
.scan-conflicts > strong { display: flex; align-items: center; gap: 7px; color: #744600; font-size: 11px; }
.scan-conflicts > strong .lucide { width: 16px; height: 16px; }
.scan-conflicts span b, .scan-conflicts span small { display: block; }
.scan-conflicts span b { font-size: 9px; }
.scan-conflicts span small, .scan-conflicts p { margin: 2px 0 0; color: #735d3f; font-size: 9px; line-height: 1.4; overflow-wrap: anywhere; }
.scan-form-actions { display: flex; justify-content: space-between; gap: 10px; padding-top: 2px; }
.scan-form-actions .primary-button { width: auto; min-width: 180px; margin-top: 0; }
.paperless-history-toggle.active { border-color: var(--violet); color: var(--violet); }
.energy-document-inbox { border-left: 4px solid #087b70; }

@media (max-width: 720px) {
  .scan-form { grid-template-columns: 1fr 1fr; }
  .candidate-groups section > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .scan-duplicate { grid-template-columns: 30px minmax(0, 1fr); }
  .scan-duplicate label { grid-column: 2; }
}

@media (max-width: 410px) {
  .scan-card, .scan-card-heading { grid-template-columns: 36px minmax(0, 1fr); }
  .scan-card > .scan-actions, .scan-card-heading > .scan-document-link { grid-column: 2; justify-self: start; }
  .scan-form { grid-template-columns: 1fr; }
  .scan-form label.wide, .scan-form-actions.wide { grid-column: 1; }
  .scan-conflicts { grid-template-columns: 1fr; }
  .scan-conflicts > strong, .scan-conflicts > p { grid-column: 1; }
  .scan-form-actions { flex-direction: column-reverse; }
  .scan-form-actions button, .scan-form-actions .primary-button { width: 100%; justify-content: center; }
  .candidate-groups section > div { grid-template-columns: 1fr; }
  .scan-duplicate { grid-template-columns: 1fr; }
  .scan-duplicate .duplicate-icon, .scan-duplicate label { grid-column: 1; }
}

/* Decision layer: three missions, data truth and joined financial workflows. */
.weekly-missions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.weekly-mission { min-width: 0; min-height: 92px; padding: 13px 12px; display: grid; grid-template-columns: 24px 34px minmax(0, 1fr) 16px; align-items: center; gap: 9px; border: 0; border-right: 1px solid var(--line); border-bottom: 3px solid transparent; background: transparent; text-align: left; cursor: pointer; }
.weekly-mission:last-child { border-right: 0; }
.weekly-mission:hover, .weekly-mission:focus-visible { outline: 0; background: var(--surface); }
.weekly-mission.mission-urgent { border-bottom-color: var(--red); background: #fff8f7; }
.weekly-mission.mission-calm { border-bottom-color: var(--blue); background: #f8fbfe; }
.weekly-mission.mission-good { border-bottom-color: var(--green); background: #f7fcf9; }
.weekly-mission.mission-done { opacity: .78; }
.mission-number { color: var(--muted); font-size: 11px; font-weight: 900; }
.mission-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 7px; background: var(--surface); color: var(--violet); }
.weekly-mission strong, .weekly-mission small { display: block; overflow-wrap: anywhere; }
.weekly-mission strong { font-size: 12px; line-height: 1.3; }
.weekly-mission small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.weekly-mission > .lucide { width: 15px; color: var(--muted); }

.family-mode-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.family-mode-item { min-height: 86px; padding: 13px 14px; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 10px; border-right: 1px solid var(--line); }
.family-mode-item:last-child { border-right: 0; }
.family-mode-item > .lucide { width: 20px; height: 20px; color: var(--violet); }
.family-mode-item small, .family-mode-item strong, .family-mode-item em { display: block; }
.family-mode-item small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.family-mode-item strong { margin-top: 4px; font-size: 14px; }
.family-mode-item em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; }

.salary-cycle-detail { min-height: 72px; padding: 11px 4px; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 12px; border-bottom: 1px solid var(--line); }
.salary-cycle-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; }
.salary-cycle-icon.good { background: var(--green-soft); color: var(--green); }
.salary-cycle-icon.waiting { background: var(--amber-soft); color: var(--amber); }
.salary-cycle-detail strong, .salary-cycle-detail small { display: block; }
.salary-cycle-detail strong { font-size: 14px; }
.salary-cycle-detail small { margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.5; }

.data-truth-sources { border-top: 1px solid var(--line); }
.data-truth-source { min-height: 76px; padding: 10px 6px; display: grid; grid-template-columns: 40px minmax(0, 1fr) minmax(155px, auto); align-items: center; gap: 12px; border-bottom: 1px solid var(--line); border-left: 4px solid var(--amber); }
.data-truth-source.truth-green { border-left-color: var(--green); background: #f8fcf9; }
.data-truth-source.truth-red { border-left-color: var(--red); background: #fff8f7; }
.truth-source-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; background: var(--surface-muted); color: var(--muted); }
.truth-green .truth-source-icon { background: var(--green-soft); color: var(--green); }
.truth-red .truth-source-icon { background: var(--red-soft); color: var(--red); }
.data-truth-source strong, .data-truth-source small, .data-truth-source em { display: block; }
.data-truth-source strong { font-size: 12px; }
.data-truth-source small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.data-truth-source em { margin-top: 4px; color: var(--muted); font-size: 8px; font-style: normal; font-weight: 800; text-transform: uppercase; }
.truth-source-time { text-align: right; }
.truth-source-time b { font-size: 10px; }
.truth-green .truth-source-time b, .truth-green.lock-badge { color: var(--green); }
.truth-yellow .truth-source-time b, .truth-yellow.lock-badge { color: var(--amber); }
.truth-red .truth-source-time b, .truth-red.lock-badge { color: var(--red); }

.payment-cases { display: grid; gap: 10px; }
.payment-case { padding: 13px 14px; border: 1px solid var(--line); border-left: 4px solid var(--blue); border-radius: 7px; background: var(--surface); }
.payment-case.payment-overdue, .payment-case.payment-today { border-left-color: var(--red); background: #fff8f7; }
.payment-case.payment-unknown, .payment-case.payment-soon { border-left-color: var(--amber); background: #fffbf4; }
.payment-case-heading { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.payment-case-heading small, .payment-case-heading strong, .payment-case-heading em { display: block; }
.payment-case-heading small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.payment-case-heading strong { margin-top: 3px; font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.payment-case-heading em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; }
.payment-case-heading > b { flex: 0 0 auto; font-size: 16px; white-space: nowrap; }
.payment-flow { margin-top: 12px; display: grid; grid-template-columns: repeat(5, auto); align-items: center; justify-content: start; gap: 8px; }
.payment-flow > .lucide { width: 14px; color: #aab1b7; }
.payment-flow-stage { min-width: 150px; padding: 8px 9px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-muted); }
.payment-flow-stage > .lucide { width: 17px; height: 17px; }
.payment-flow-stage small, .payment-flow-stage strong { display: block; }
.payment-flow-stage small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.payment-flow-stage strong { margin-top: 2px; font-size: 9px; line-height: 1.3; overflow-wrap: anywhere; }
.payment-flow-stage.stage-done { border-color: #a9d7bc; background: var(--green-soft); color: #08723b; }
.payment-flow-stage.stage-wait { border-color: #e4bd7d; background: var(--amber-soft); color: #865000; }
.payment-flow-stage.stage-na { color: var(--muted); }
.payment-case-actions { margin-top: 11px; padding-top: 10px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; border-top: 1px solid var(--line); }
.claim-management-band .section-intro { margin: -4px 0 12px; color: var(--muted); font-size: 11px; line-height: 1.45; }
.claim-management-list { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.claim-management-row { min-height: 76px; display: grid; grid-template-columns: 38px minmax(0, 1fr) minmax(150px, auto) auto; align-items: center; gap: 12px; padding: 11px 12px; border-bottom: 1px solid var(--line); border-left: 4px solid var(--amber); background: var(--surface); }
.claim-management-row:last-child { border-bottom: 0; }
.claim-management-row.claim-status-received { border-left-color: var(--green); background: #f8fcf9; }
.claim-management-row.claim-status-closed_partial { border-left-color: #d78317; background: #fffbf4; }
.claim-management-row.claim-status-rejected { border-left-color: var(--red); background: #fff8f7; }
.claim-management-row.claim-status-dismissed { border-left-color: var(--muted); background: var(--surface-muted); }
.claim-management-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; background: var(--surface-muted); color: var(--muted); }
.claim-management-icon .lucide { width: 18px; height: 18px; }
.claim-status-received .claim-management-icon { background: var(--green-soft); color: var(--green); }
.claim-status-closed_partial .claim-management-icon, .claim-status-partial .claim-management-icon { background: var(--amber-soft); color: #9a5700; }
.claim-status-rejected .claim-management-icon { background: var(--red-soft); color: var(--red); }
.claim-status-dismissed .claim-management-icon { background: #e9eaee; color: var(--muted); }
.claim-management-copy strong, .claim-management-copy small, .claim-management-copy em, .claim-management-amounts strong, .claim-management-amounts small, .claim-management-amounts em { display: block; }
.claim-management-copy strong { font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
.claim-management-copy small { margin-top: 3px; color: var(--muted); font-size: 10px; line-height: 1.35; }
.claim-management-copy em { margin-top: 4px; color: var(--violet); font-size: 9px; font-style: normal; font-weight: 900; text-transform: uppercase; }
.claim-management-amounts { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.claim-management-amounts small, .claim-management-amounts em { color: var(--muted); font-size: 9px; font-style: normal; }
.claim-management-amounts strong { margin: 3px 0; font-size: 13px; }
.claim-management-row .record-actions .secondary-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.claim-management-row .record-actions .claim-dismiss-button { color: var(--red); border-color: #d5a3a0; }

.debt-controls { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
.debt-scenario-comparison { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.debt-scenario { min-height: 140px; padding: 12px; border-right: 1px solid var(--line); border-top: 3px solid transparent; }
.debt-scenario:last-child { border-right: 0; }
.debt-scenario.scenario-best { border-top-color: var(--green); background: #f7fcf9; }
.debt-scenario.scenario-warning { border-top-color: var(--amber); background: #fffbf4; }
.debt-scenario > div { min-height: 24px; display: flex; justify-content: space-between; gap: 6px; }
.debt-scenario > div > span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.debt-scenario > strong, .debt-scenario > small { display: block; }
.debt-scenario > strong { margin-top: 10px; font-size: 16px; }
.debt-scenario > small { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.debt-scenario > p { margin: 9px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }

.capture-impact { min-height: 70px; margin-top: 14px; padding: 11px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
.capture-impact.impact-good { border-left-color: var(--green); background: var(--green-soft); color: #08723b; }
.capture-impact.impact-critical { border-left-color: var(--red); background: var(--red-soft); color: #9b211a; }
.capture-impact > .lucide { width: 20px; height: 20px; }
.capture-impact strong, .capture-impact small, .capture-impact em { display: block; }
.capture-impact strong { font-size: 12px; }
.capture-impact small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.capture-impact em { margin-top: 4px; color: currentColor; font-size: 8px; font-style: normal; font-weight: 800; }

.asset-grid { display: grid; gap: 8px; }
.asset-item { min-height: 72px; padding: 10px 4px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto 38px; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); }
.asset-item:last-child { border-bottom: 0; }
.asset-item.asset-excluded { opacity: .68; }
.asset-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; background: var(--green-soft); color: var(--green); }
.asset-icon .lucide { width: 19px; height: 19px; }
.asset-item small, .asset-item strong, .asset-item em { display: block; }
.asset-item small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.asset-item strong { margin-top: 3px; font-size: 13px; }
.asset-item em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; }
.asset-item > b { font-size: 15px; white-space: nowrap; }
.asset-empty { display: grid; grid-template-columns: 36px minmax(0, 1fr); text-align: left; }
.asset-empty .lucide { color: var(--violet); }
.asset-empty strong, .asset-empty small { display: block; }
.asset-empty small { margin-top: 4px; color: var(--muted); }

.verification-list { border-top: 1px solid var(--line); }
.verification-row { min-height: 64px; padding: 9px 4px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--amber); }
.verification-row:last-child { border-bottom: 0; }
.verification-row.verification-verified { border-left-color: var(--green); background: #f8fcf9; }
.verification-row.verification-model { border-left-color: var(--red); background: #fff9f8; }
.verification-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--amber); }
.verification-verified .verification-icon { color: var(--green); }
.verification-model .verification-icon { color: var(--red); }
.verification-row small, .verification-row strong, .verification-row em { display: block; }
.verification-row small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.verification-row strong { margin-top: 2px; font-size: 11px; }
.verification-row em { margin-top: 3px; color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.35; }

.payment-flow { grid-template-columns: repeat(7, auto); }
.payment-case.payment-completed { border-left-color: var(--green); background: #f8fcf9; }
.payment-history-band { padding-top: 0; }
.payment-history-band > summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; list-style: none; }
.payment-history-band > summary::-webkit-details-marker { display: none; }
.payment-history-band > summary small, .payment-history-band > summary strong { display: block; }
.payment-history-band > summary small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.payment-history-band > summary strong { margin-top: 3px; font-size: 13px; }
.compact-payment-cases { padding-bottom: 12px; }
.compact-payment-cases .payment-case { padding: 10px 12px; }
.compact-payment-cases .payment-flow-stage { min-width: 120px; }
.salary-audit { margin-top: 6px !important; color: var(--violet) !important; font-weight: 800; }

@media (max-width: 980px) {
  .weekly-missions, .family-mode-summary { grid-template-columns: 1fr; }
  .weekly-mission, .family-mode-item { border-right: 0; border-bottom: 1px solid var(--line); }
  .debt-scenario-comparison { grid-template-columns: 1fr 1fr; }
  .debt-scenario:nth-child(2) { border-right: 0; }
  .debt-scenario:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .payment-flow { grid-template-columns: minmax(0, 1fr); }
  .payment-flow > .lucide { transform: rotate(90deg); justify-self: center; }
  .payment-flow-stage { width: 100%; min-width: 0; }
}

@media (max-width: 720px) {
  .data-truth-source { grid-template-columns: 36px minmax(0, 1fr); }
  .truth-source-time { grid-column: 2; text-align: left; }
  .debt-controls { grid-template-columns: 1fr 1fr; }
  .payment-case-heading { align-items: center; }
  .claim-management-row { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .claim-management-amounts { grid-column: 2; text-align: left; white-space: normal; }
  .claim-management-row .record-actions { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
}

@media (max-width: 410px) {
  .weekly-mission { grid-template-columns: 20px 30px minmax(0, 1fr); }
  .weekly-mission > .lucide { display: none; }
  .family-mode-item { grid-template-columns: 28px minmax(0, 1fr); }
  .debt-controls, .debt-scenario-comparison { grid-template-columns: 1fr; }
  .debt-scenario, .debt-scenario:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .payment-case { padding: 11px 10px; }
  .payment-case-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .payment-case-actions { align-items: stretch; flex-direction: column; }
  .payment-case-actions button { width: 100%; justify-content: center; }
  .claim-management-row { grid-template-columns: 30px minmax(0, 1fr); gap: 9px; padding: 10px 8px; }
  .claim-management-amounts, .claim-management-row .record-actions { grid-column: 2; grid-row: auto; justify-self: stretch; }
  .claim-management-row .record-actions { justify-content: flex-start; }
  .claim-management-row .record-actions .secondary-button { flex: 1; }
  .asset-item { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .asset-item > .icon-button { grid-column: 2; justify-self: start; }
  .verification-row { grid-template-columns: 30px minmax(0, 1fr) auto; }
  .verification-row > .icon-button:last-child { grid-column: 2; justify-self: start; }
}

/* Explainable finance center: inbox, ownership, close, rules and net worth. */
button:disabled { cursor: not-allowed; opacity: .55; }
.owner-filter-bar { min-height: 44px; margin: -4px 0 14px; display: flex; align-items: center; gap: 10px; }
.owner-filter-bar > span { color: var(--muted); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.ownership-badge { min-height: 18px; margin-left: 4px; padding: 1px 5px; display: inline-flex; align-items: center; gap: 3px; border-radius: 4px; background: var(--blue-soft); color: #135d8d; font-size: 8px; font-weight: 900; vertical-align: 1px; white-space: nowrap; }
.ownership-badge .lucide { width: 10px; height: 10px; }
.ownership-household { background: var(--green-soft); color: #08723b; }
.ownership-private { background: #eeecff; color: var(--violet); }

.inbox-list { display: grid; gap: 9px; }
.inbox-item { min-height: 82px; padding: 11px 12px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 11px; border: 1px solid var(--line); border-left: 4px solid var(--amber); border-radius: 7px; background: var(--surface); }
.inbox-item.inbox-action { border-left-color: var(--red); background: #fff9f8; }
.inbox-item.inbox-system { border-left-color: var(--blue); background: #f7fbfe; }
.inbox-item.inbox-archived { border-left-color: var(--green); background: #f8fcf9; opacity: .78; }
.inbox-item-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; background: var(--amber-soft); color: var(--amber); }
.inbox-action .inbox-item-icon { background: var(--red-soft); color: var(--red); }
.inbox-system .inbox-item-icon { background: var(--blue-soft); color: var(--blue); }
.inbox-archived .inbox-item-icon { background: var(--green-soft); color: var(--green); }
.inbox-item-copy { min-width: 0; }
.inbox-item-copy small, .inbox-item-copy strong, .inbox-item-copy em { display: block; overflow-wrap: anywhere; }
.inbox-item-copy small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.inbox-item-copy strong { margin-top: 3px; font-size: 13px; line-height: 1.3; }
.inbox-item-copy em { margin-top: 4px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.4; }
.inbox-item > b { font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.inbox-item-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.inbox-item-actions .icon-button { flex-basis: 34px; width: 34px; height: 34px; }
#inbox-show-completed.active { border-color: var(--violet); color: var(--violet); }

.net-worth-composition { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.net-worth-stat { min-height: 104px; padding: 13px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: start; gap: 8px; border-right: 1px solid var(--line); }
.net-worth-stat:last-child { border-right: 0; background: #f5f4ff; }
.net-worth-stat > .lucide { width: 19px; height: 19px; color: var(--violet); }
.net-worth-stat small, .net-worth-stat strong, .net-worth-stat em { display: block; overflow-wrap: anywhere; }
.net-worth-stat small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.net-worth-stat strong { margin-top: 7px; font-size: 16px; line-height: 1.15; font-variant-numeric: tabular-nums; }
.net-worth-stat em { margin-top: 5px; color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.35; }
.net-worth-chart { margin-top: 18px; overflow-x: auto; }
.net-worth-chart-grid { min-width: 420px; height: 190px; padding: 18px 14px 6px; display: grid; grid-template-columns: repeat(auto-fit, minmax(70px, 1fr)); gap: 4px; align-items: stretch; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); background: linear-gradient(to bottom, transparent 49%, var(--line) 50%, transparent 51%); }
.net-worth-point { position: relative; min-width: 0; height: 160px; display: flex; align-items: center; justify-content: flex-end; flex-direction: column; }
.net-worth-point > span { position: absolute; left: 50%; bottom: clamp(5px, var(--point), 95%); width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 2px var(--blue); transform: translate(-50%, 50%); }
.net-worth-point.current > span { width: 13px; height: 13px; background: var(--green); box-shadow: 0 0 0 2px var(--green); }
.net-worth-point b { max-width: 100%; margin-bottom: 6px; font-size: 9px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-align: center; }
.net-worth-point small { color: var(--muted); font-size: 8px; }
.net-worth-components { margin-top: 14px; }
.net-worth-components summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); cursor: pointer; list-style: none; }
.net-worth-components summary::-webkit-details-marker { display: none; }
.net-worth-components summary strong, .net-worth-components summary small { display: block; }
.net-worth-components summary strong { font-size: 12px; }
.net-worth-components summary small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.net-worth-component-list > div { min-height: 56px; padding: 8px 4px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.net-worth-component-list span small, .net-worth-component-list span strong, .net-worth-component-list span em { display: block; }
.net-worth-component-list span small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.net-worth-component-list span strong { margin-top: 2px; font-size: 11px; }
.net-worth-component-list span em { margin-top: 2px; color: var(--muted); font-size: 8px; font-style: normal; }
.net-worth-component-list > div > b { flex: 0 0 auto; font-size: 11px; white-space: nowrap; }

.month-close-checklist { margin-top: 16px; border-top: 1px solid var(--line); }
.month-close-heading { min-height: 50px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.month-close-heading strong { font-size: 12px; }
.month-close-heading small { color: var(--muted); font-size: 9px; }
.month-close-item { width: 100%; min-height: 62px; padding: 8px 4px; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto 24px; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid var(--line); border-left: 3px solid var(--red); background: #fff9f8; color: var(--text); text-align: left; cursor: pointer; }
.month-close-item.close-carry { border-left-color: var(--blue); background: #f7fbfe; }
.month-close-item > .lucide { width: 17px; height: 17px; color: var(--red); }
.month-close-item.close-carry > .lucide { color: var(--blue); }
.month-close-item span strong, .month-close-item span small { display: block; overflow-wrap: anywhere; }
.month-close-item span strong { font-size: 11px; }
.month-close-item span small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.month-close-item > b { font-size: 11px; white-space: nowrap; }
.month-close-ready { min-height: 66px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 10px; color: var(--green); }
.month-close-ready > .lucide { width: 21px; height: 21px; }
.month-close-ready strong, .month-close-ready small { display: block; }
.month-close-ready strong { font-size: 12px; }
.month-close-ready small { margin-top: 3px; color: var(--muted); font-size: 9px; }

.activity-row { display: block; padding: 0; }
.activity-row > summary { min-height: 66px; padding: 9px 5px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 18px; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.activity-row > summary::-webkit-details-marker { display: none; }
.activity-row > summary > .lucide { width: 15px; color: var(--muted); transition: transform .15s ease; }
.activity-row[open] > summary > .lucide { transform: rotate(180deg); }
.activity-main strong, .activity-main b, .activity-main small { display: block; }
.activity-detail { padding: 0 6px 12px 48px; }
.activity-change { min-height: 36px; display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1fr) 18px minmax(0, 1fr); align-items: center; gap: 7px; border-top: 1px solid var(--line); font-size: 9px; }
.activity-change > span { color: var(--muted); font-weight: 800; }
.activity-change del { color: var(--red); text-decoration: none; overflow-wrap: anywhere; }
.activity-change ins { color: var(--green); text-decoration: none; overflow-wrap: anywhere; }
.activity-change .lucide { width: 12px; color: var(--muted); }
.activity-detail .secondary-button { margin-top: 10px; }

.rule-summary { display: flex; gap: 6px; margin: 10px 0; overflow-x: auto; }
.rule-summary > span { min-width: 112px; min-height: 46px; padding: 7px 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-left: 3px solid var(--blue); background: var(--blue-soft); }
.rule-summary b { font-size: 9px; }
.rule-summary em { font-size: 12px; font-style: normal; font-weight: 900; }
.rule-list { border-top: 1px solid var(--line); }
.rule-row { min-height: 68px; padding: 9px 4px; display: grid; grid-template-columns: 36px minmax(0, 1fr) 34px; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); border-left: 3px solid var(--green); }
.rule-row.rule-paused { border-left-color: #9da5aa; opacity: .7; }
.rule-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 7px; background: var(--green-soft); color: var(--green); }
.rule-paused .rule-icon { background: var(--surface-muted); color: var(--muted); }
.rule-row small, .rule-row strong, .rule-row em, .rule-aliases { display: block; overflow-wrap: anywhere; }
.rule-row small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.rule-row strong { margin-top: 2px; font-size: 12px; }
.rule-row em, .rule-aliases { margin-top: 3px; color: var(--muted); font-size: 8px; font-style: normal; line-height: 1.35; }

@media (max-width: 980px) {
  .net-worth-composition { grid-template-columns: 1fr 1fr; }
  .net-worth-stat { border-bottom: 1px solid var(--line); }
  .net-worth-stat:nth-child(even) { border-right: 0; }
  .net-worth-stat:last-child { grid-column: 1 / -1; border-bottom: 0; }
}

@media (max-width: 720px) {
  .owner-filter-bar { align-items: flex-start; flex-direction: column; }
  .owner-filter-bar .segmented { width: 100%; }
  .inbox-band .section-heading { align-items: flex-start; flex-direction: column; }
  #inbox-filters { width: 100%; }
  .inbox-item { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .inbox-item-actions { grid-column: 2 / -1; justify-content: flex-start; flex-wrap: wrap; }
  .net-worth-stat strong { font-size: 14px; }
  .month-close-item { grid-template-columns: 24px minmax(0, 1fr) auto; }
  .month-close-item > .lucide:last-child { display: none; }
}

@media (max-width: 410px) {
  .ownership-badge { margin: 3px 0 0; }
  .inbox-item { grid-template-columns: 30px minmax(0, 1fr); padding: 10px 9px; }
  .inbox-item > b, .inbox-item-actions { grid-column: 2; justify-self: start; }
  .inbox-item-actions .secondary-button, .inbox-item-actions .primary-small { min-height: 34px; padding-inline: 9px; }
  .net-worth-composition { grid-template-columns: 1fr; }
  .net-worth-stat, .net-worth-stat:nth-child(even), .net-worth-stat:last-child { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .net-worth-stat:last-child { border-bottom: 0; }
  .net-worth-component-list > div { align-items: flex-start; flex-direction: column; }
  .activity-row > summary { grid-template-columns: 30px minmax(0, 1fr) 16px; }
  .activity-row > summary time { grid-column: 2; }
  .activity-row > summary > .lucide { grid-column: 3; grid-row: 1; }
  .activity-detail { padding-left: 39px; }
  .activity-change { grid-template-columns: 1fr; padding: 7px 0; }
  .activity-change .lucide { transform: rotate(90deg); }
  .month-close-item { grid-template-columns: 22px minmax(0, 1fr); }
  .month-close-item > b { grid-column: 2; }
}

/* Shared family agenda and filtered Apple calendar routing. */
.family-agenda-band { margin-top: 0; padding-top: 18px; border-top: 4px solid var(--violet); }
.agenda-heading { align-items: center; }
.agenda-toolbar { min-height: 54px; margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
#agenda-modes b { min-width: 20px; height: 20px; margin-left: 5px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 7px; background: #e8e4fb; color: var(--violet); font-size: 9px; }
.agenda-period-controls { min-width: 230px; display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px; align-items: center; gap: 8px; }
.agenda-period-controls strong { min-width: 0; font-size: 11px; text-align: center; overflow-wrap: anywhere; }
.agenda-legend { min-height: 40px; display: flex; align-items: center; gap: 16px; overflow-x: auto; color: var(--muted); font-size: 9px; font-weight: 800; white-space: nowrap; }
.agenda-legend span { display: inline-flex; align-items: center; gap: 5px; }
.agenda-legend .lucide { width: 13px; height: 13px; }
.agenda-appointment { color: #1769aa; }
.agenda-task { color: #11884a; }
.agenda-deadline { color: #a45b00; }
.agenda-finance { color: #c32f24; }
.family-agenda { min-height: 180px; overflow-x: auto; }
.agenda-day { margin-top: 12px; border-left: 4px solid #1769aa; background: #fff; }
.agenda-day-heading { min-height: 40px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #e8f2fa; color: #145983; }
.agenda-day-heading strong { font-size: 11px; text-transform: capitalize; }
.agenda-day-heading span { font-size: 8px; font-weight: 900; text-transform: uppercase; }
.agenda-event { min-height: 76px; padding: 9px 8px 9px 12px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line); border-left: 3px solid #1769aa; background: #fff; }
.agenda-event.agenda-task { border-left-color: #11884a; }
.agenda-event.agenda-deadline { border-left-color: #bd6b00; background: #fffaf0; }
.agenda-event.agenda-finance { border-left-color: #d2372b; background: #fff8f7; }
.agenda-event-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 7px; background: #e8f2fa; color: #1769aa; }
.agenda-task .agenda-event-icon { background: #e5f5eb; color: #11884a; }
.agenda-deadline .agenda-event-icon { background: #fff0d7; color: #9a5600; }
.agenda-finance .agenda-event-icon { background: #ffe7e3; color: #bd2c22; }
.agenda-event-icon .lucide { width: 18px; height: 18px; }
.agenda-event-main { min-width: 0; }
.agenda-event-main small, .agenda-event-main strong, .agenda-event-main em, .agenda-event-source { display: block; overflow-wrap: anywhere; }
.agenda-event-main small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.agenda-event-main strong { margin-top: 2px; font-size: 12px; }
.agenda-event-main em { margin-top: 3px; color: var(--muted); font-size: 9px; font-style: normal; line-height: 1.35; }
.agenda-event-source { margin-top: 4px; color: #78838a; font-size: 8px; }
.agenda-source-link { display: inline-flex; align-items: center; gap: 4px; color: var(--violet); font-weight: 800; text-decoration: none; }
.agenda-source-link .lucide { width: 10px; height: 10px; }
.agenda-event > b { font-size: 11px; white-space: nowrap; }
.agenda-event-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.agenda-event-actions .primary-small { min-height: 34px; padding-inline: 10px; }
.agenda-completed { opacity: .55; }
.agenda-completed .agenda-event-main strong { text-decoration: line-through; }
.agenda-empty { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 6px; color: var(--muted); text-align: center; }
.agenda-empty .lucide { width: 26px; height: 26px; color: var(--green); }
.agenda-empty strong { color: var(--text); font-size: 13px; }
.agenda-empty span { font-size: 10px; }
.agenda-inbox-intro { min-height: 58px; padding: 9px 12px; display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 4px solid var(--violet); background: #f2effc; }
.agenda-inbox-intro > .lucide { width: 20px; color: var(--violet); }
.agenda-inbox-intro strong, .agenda-inbox-intro small { display: block; }
.agenda-inbox-intro strong { font-size: 11px; }
.agenda-inbox-intro small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.agenda-month-weekdays, .agenda-month-grid { min-width: 760px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.agenda-month-weekdays { border: 1px solid var(--line); border-bottom: 0; background: var(--surface-muted); }
.agenda-month-weekdays span { height: 30px; display: grid; place-items: center; color: var(--muted); font-size: 9px; font-weight: 900; }
.agenda-month-grid { grid-template-rows: repeat(6, minmax(94px, auto)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.agenda-month-day { min-width: 0; padding: 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; }
.agenda-month-day.outside { background: #f5f6f4; color: #a3a9ad; }
.agenda-month-day.today { box-shadow: inset 0 0 0 2px var(--green); }
.agenda-month-day > span { display: block; margin-bottom: 5px; font-size: 9px; font-weight: 900; }
.agenda-month-event { width: 100%; min-height: 22px; margin: 2px 0; padding: 2px 4px; display: grid; grid-template-columns: 12px minmax(0, 1fr); align-items: center; gap: 3px; border: 0; border-left: 3px solid #1769aa; background: #e8f2fa; color: #174e73; text-align: left; cursor: pointer; }
.agenda-month-event.agenda-task { border-left-color: #11884a; background: #e5f5eb; color: #0b6738; }
.agenda-month-event.agenda-deadline { border-left-color: #bd6b00; background: #fff0d7; color: #774400; }
.agenda-month-event.agenda-finance { border-left-color: #d2372b; background: #ffe7e3; color: #92261e; }
.agenda-month-event .lucide { width: 10px; height: 10px; }
.agenda-month-event b { min-width: 0; font-size: 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.agenda-month-day > small { color: var(--muted); font-size: 7px; font-weight: 800; }
.agenda-option-row { margin-top: 12px; display: flex; gap: 18px; }
.agenda-option-row label { min-height: 34px; margin: 0; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.agenda-option-row label > span { margin: 0; color: var(--text); font-size: 11px; text-transform: none; }
.agenda-option-row input { width: 18px; height: 18px; padding: 0; accent-color: var(--violet); }
.agenda-times-disabled { display: none; }
.agenda-calendar-impact { min-height: 58px; margin-top: 16px; padding: 9px 12px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; border-left: 4px solid var(--violet); background: #f2effc; }
.agenda-calendar-impact > .lucide { width: 19px; color: var(--violet); }
.agenda-calendar-impact strong, .agenda-calendar-impact small { display: block; }
.agenda-calendar-impact strong { font-size: 11px; }
.agenda-calendar-impact small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.4; }

@media (max-width: 720px) {
  .agenda-heading { align-items: flex-start; }
  .agenda-toolbar { align-items: stretch; flex-direction: column; padding: 10px 0; }
  .agenda-period-controls { width: 100%; min-width: 0; }
  .agenda-event { grid-template-columns: 32px minmax(0, 1fr) auto; }
  .agenda-event > b { grid-column: 2; justify-self: start; }
  .agenda-event-actions { grid-column: 2 / -1; justify-content: flex-start; }
}

@media (max-width: 410px) {
  .agenda-heading { gap: 9px; }
  .agenda-heading .heading-actions { align-items: flex-end; flex-direction: column; }
  .agenda-legend { gap: 11px; }
  .agenda-event { grid-template-columns: 28px minmax(0, 1fr); padding-left: 7px; }
  .agenda-event-icon { width: 28px; height: 28px; }
  .agenda-event > b, .agenda-event-actions { grid-column: 2; }
  .agenda-option-row { align-items: flex-start; flex-direction: column; gap: 2px; }
}

.month-switcher strong.projected-period { color: var(--blue); }
.preview-badge.projection-badge { background: var(--blue-soft); color: var(--blue); }
.year-view-button { color: var(--blue); }
.record-row.row-projected { border-left: 3px solid var(--blue); background: #f6fafe; }
.projection-inline { display: inline-flex; min-height: 18px; margin-left: 5px; padding: 0 5px; align-items: center; border-radius: 4px; background: var(--blue-soft); color: var(--blue); font-size: 8px; font-weight: 900; text-transform: uppercase; vertical-align: middle; }

.annual-plan-band { scroll-margin-top: 90px; }
.annual-plan-heading { align-items: center; }
.annual-toolbar { margin: 14px 0 12px; display: flex; align-items: end; gap: 10px; }
.annual-scope { min-width: 0; }
.annual-toolbar .compact-select { min-width: 120px; display: grid; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.annual-toolbar .compact-select select { min-width: 120px; height: 40px; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); text-transform: none; }
.annual-year-stepper { margin-left: auto; display: flex; align-items: center; gap: 7px; }
.annual-year-stepper strong { min-width: 56px; text-align: center; font-size: 16px; font-variant-numeric: tabular-nums; }
.annual-year-stepper .icon-button:disabled { opacity: .35; cursor: default; }
.annual-year-tabs { display: flex; gap: 6px; padding: 7px 0 12px; overflow-x: auto; scrollbar-width: thin; }
.annual-year-tabs button { flex: 0 0 112px; min-height: 48px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-muted); text-align: left; cursor: pointer; }
.annual-year-tabs button.active { border-color: var(--violet); background: #f1efff; color: var(--violet); }
.annual-year-tabs strong, .annual-year-tabs small { display: block; }
.annual-year-tabs strong { font-size: 13px; }
.annual-year-tabs small { margin-top: 3px; color: var(--muted); font-size: 9px; }
.annual-summary { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.annual-summary > span { min-height: 70px; padding: 11px 12px; border-right: 1px solid var(--line); }
.annual-summary > span:last-child { border-right: 0; }
.annual-summary small, .annual-summary strong { display: block; }
.annual-summary small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.annual-summary strong { margin-top: 6px; font-size: 16px; font-variant-numeric: tabular-nums; }
.annual-explanation { min-height: 60px; padding: 10px 12px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 9px; border-left: 4px solid var(--green); background: #f4fbf7; }
.annual-explanation .lucide { width: 19px; color: var(--green); }
.annual-explanation strong, .annual-explanation small { display: block; }
.annual-explanation strong { font-size: 11px; }
.annual-explanation small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.month-plan-row.projected { border-left-color: var(--blue); background: #f6fafe; }
.month-plan-row.projected:hover, .month-plan-row.projected.selected { background: var(--blue-soft); }

.lab-toolbar-fields { flex-wrap: wrap; }
.lab-chart-heading-actions { max-width: min(100%, 760px); flex-wrap: nowrap; }
.lab-chart-range { flex: 0 0 auto; }
.lab-chart-range button { flex: 0 0 auto; }
.lab-chart-custom-range { display: grid; grid-template-columns: repeat(2, minmax(92px, 1fr)); gap: 6px; padding: 3px; border: 1px solid transparent; border-radius: 7px; }
.lab-chart-custom-range.active { border-color: #cfc9ff; background: #f5f3ff; }
.lab-chart-custom-range .compact-select { min-width: 92px; }
.lab-chart-custom-range .compact-select select { min-width: 0; width: 100%; }
.lab-year-summary { margin: 10px 0 4px; display: flex; gap: 7px; overflow-x: auto; }
.lab-year-chip { flex: 0 0 178px; min-height: 60px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface-muted); color: var(--text); text-align: left; cursor: pointer; }
.lab-year-chip.active { border-color: var(--violet); background: #f1efff; box-shadow: inset 0 0 0 1px var(--violet); }
.lab-year-chip strong, .lab-year-chip small, .lab-year-chip b { display: block; }
.lab-year-chip strong { font-size: 13px; }
.lab-year-chip small { margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.lab-year-chip b { margin-top: 5px; font-size: 12px; font-variant-numeric: tabular-nums; }
.lab-year-divider { min-height: 38px; padding: 0 5px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); background: var(--surface-muted); }
.lab-year-divider strong { font-size: 13px; }
.lab-year-divider span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.lab-month-row > strong small { display: block; margin-top: 3px; color: var(--blue); font-size: 8px; text-transform: uppercase; }
.lab-month-row.lab-month-projected { border-left: 3px solid var(--blue); background: #f6fafe; padding-left: 9px; }
.lab-month-row.lab-month-history { background: #fafbf9; color: #59636b; }

.faktura-truth-note { min-height: 66px; padding: 12px 14px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 10px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
.faktura-truth-note > .lucide { width: 21px; color: var(--blue); }
.faktura-truth-note strong, .faktura-truth-note small { display: block; }
.faktura-truth-note strong { font-size: 13px; }
.faktura-truth-note small { margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.faktura-metrics { margin-top: 14px; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.faktura-net-metric { border-top: 3px solid var(--green); }
.faktura-customers, .faktura-hours { border-top: 1px solid var(--line); }
.faktura-customer-row { min-height: 74px; display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(160px, .8fr) 88px 38px; align-items: end; gap: 12px; padding: 10px 8px; border-bottom: 1px solid var(--line); background: var(--surface); }
.faktura-customer-row.inactive { background: var(--surface-muted); opacity: .68; }
.faktura-customer-row label, .faktura-hours-row label, .faktura-net-field { min-width: 0; display: grid; gap: 5px; }
.faktura-customer-row label > span, .faktura-hours-row label > span, .faktura-net-field > span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.faktura-customer-row input, .faktura-hours-row input, .faktura-hours-row select, .faktura-net-field input { width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); }
.faktura-active-toggle { height: 38px; display: flex !important; grid-template-columns: none; align-items: center; gap: 8px !important; padding: 0 9px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); cursor: pointer; }
.faktura-active-toggle input { width: 17px; height: 17px; padding: 0; accent-color: var(--green); }
.faktura-active-toggle span { color: var(--text) !important; font-size: 10px !important; text-transform: none !important; }
.faktura-hours-row { min-height: 82px; display: grid; grid-template-columns: minmax(180px, 1.25fr) minmax(105px, .55fr) minmax(135px, .7fr) minmax(120px, .65fr) minmax(120px, .65fr); align-items: end; gap: 12px; padding: 11px 8px; border-bottom: 1px solid var(--line); background: var(--surface); }
.faktura-hours-customer { align-self: center; min-width: 0; }
.faktura-hours-customer strong, .faktura-hours-customer small, .faktura-row-revenue small, .faktura-row-revenue b { display: block; overflow-wrap: anywhere; }
.faktura-hours-customer strong { font-size: 14px; }
.faktura-hours-customer small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.faktura-row-revenue { align-self: center; text-align: right; }
.faktura-row-revenue small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.faktura-row-revenue b { margin-top: 5px; font-size: 16px; font-variant-numeric: tabular-nums; }
.faktura-transfer-band { border-top: 4px solid var(--green); padding-top: 18px; }
.faktura-calculation-flow { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.faktura-calculation-flow > span { min-height: 82px; padding: 12px; border-right: 1px solid var(--line); }
.faktura-calculation-flow > span:last-child { border-right: 0; }
.faktura-calculation-flow small, .faktura-calculation-flow b, .faktura-calculation-flow em { display: block; }
.faktura-calculation-flow small { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.faktura-calculation-flow b { margin-top: 7px; font-size: 16px; font-variant-numeric: tabular-nums; }
.faktura-calculation-flow em { margin-top: 5px; color: var(--muted); font-size: 9px; font-style: normal; }
.faktura-calculation-result { background: var(--green-soft); }
.faktura-bonus-result { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); margin-top: 10px; background: var(--surface-muted); }
.faktura-bonus-result > span { min-height: 64px; padding: 11px 12px; border-right: 1px solid var(--line); }
.faktura-bonus-result > span:last-child { border-right: 0; }
.faktura-bonus-result small, .faktura-bonus-result b { display: block; }
.faktura-bonus-result small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-bonus-result b { margin-top: 6px; font-size: 13px; font-variant-numeric: tabular-nums; }
.faktura-transfer { min-height: 92px; margin-top: 14px; display: grid; grid-template-columns: minmax(190px, .8fr) minmax(240px, 1.2fr) auto; align-items: end; gap: 14px; padding: 13px; border: 1px solid var(--line); border-left: 4px solid var(--green); background: var(--surface); }
.faktura-transfer-copy { align-self: center; }
.faktura-transfer-copy strong, .faktura-transfer-copy small { display: block; }
.faktura-transfer-copy strong { font-size: 13px; }
.faktura-transfer-copy small { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.faktura-transfer-actions { display: flex; justify-content: flex-end; gap: 8px; }
.faktura-net-band { border-top: 4px solid var(--blue); padding-top: 18px; }
.faktura-net-settings { padding: 12px 0 16px; border-top: 1px solid var(--line); }
.faktura-quarter-source { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); margin-bottom: 14px; border: 1px solid var(--line); border-left: 4px solid var(--green); background: var(--surface-muted); }
.faktura-quarter-source.simulation { border-left-color: var(--blue); }
.faktura-quarter-source.simulation.incomplete { border-left-color: var(--amber); background: #fffaf2; }
.faktura-quarter-source > span { min-height: 68px; padding: 11px 12px; border-right: 1px solid var(--line); }
.faktura-quarter-source > span:last-child { border-right: 0; }
.faktura-quarter-source small, .faktura-quarter-source strong { display: block; }
.faktura-quarter-source small { color: var(--muted); font-size: 8px; font-weight: 900; line-height: 1.35; text-transform: uppercase; }
.faktura-quarter-source strong { margin-top: 7px; font-size: 15px; font-variant-numeric: tabular-nums; }
.faktura-net-fields { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px 12px; }
.faktura-net-settings label { min-width: 0; display: grid; gap: 5px; }
.faktura-net-settings label > span { color: var(--muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.faktura-net-settings input, .faktura-net-settings select { width: 100%; min-width: 0; height: 38px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); color: var(--text); }
.faktura-reference-calibration { margin-top: 12px; border: 1px solid var(--line); border-left: 4px solid var(--blue); background: var(--blue-soft); }
.faktura-reference-calibration > summary { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 12px; cursor: pointer; list-style: none; }
.faktura-reference-calibration > summary::-webkit-details-marker { display: none; }
.faktura-reference-calibration > summary small, .faktura-reference-calibration > summary strong { display: block; }
.faktura-reference-calibration > summary small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-reference-calibration > summary strong { margin-top: 4px; font-size: 11px; }
.faktura-reference-calibration > summary .lucide { width: 18px; flex: 0 0 auto; transition: transform .18s ease; }
.faktura-reference-calibration[open] > summary .lucide { transform: rotate(180deg); }
.faktura-reference-fields { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; padding: 11px 12px; border-top: 1px solid var(--line); background: var(--surface); }
.faktura-reference-calibration > p { margin: 0; padding: 0 12px 11px; color: var(--muted); background: var(--surface); font-size: 9px; line-height: 1.5; }
.faktura-simulation-section { margin-top: 16px; padding-top: 14px; border-top: 3px solid var(--blue); }
.faktura-simulation-section > .content-band-header { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.faktura-simulation-section > .content-band-header small, .faktura-simulation-section > .content-band-header strong { display: block; }
.faktura-simulation-section > .content-band-header small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-simulation-section > .content-band-header strong { margin-top: 4px; font-size: 14px; }
.faktura-simulation-actions { display: flex; align-items: center; gap: 8px; }
.faktura-simulation-note { min-height: 58px; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 10px; margin: 6px 0 12px; padding: 10px 12px; border-left: 4px solid var(--amber); background: var(--amber-soft); }
.faktura-simulation-note.complete { border-left-color: var(--green); background: var(--green-soft); }
.faktura-simulation-note .lucide { width: 18px; color: var(--amber); }
.faktura-simulation-note.complete .lucide { color: var(--green); }
.faktura-simulation-note strong, .faktura-simulation-note small { display: block; }
.faktura-simulation-note strong { font-size: 11px; }
.faktura-simulation-note small { margin-top: 3px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.faktura-simulation-months { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.faktura-simulation-month { min-width: 0; border: 1px solid var(--line); border-top: 3px solid var(--line); border-radius: 6px; overflow: hidden; background: var(--surface); }
.faktura-simulation-month.populated { border-top-color: var(--blue); }
.faktura-simulation-month > header { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 10px; border-bottom: 1px solid var(--line); background: var(--surface-muted); }
.faktura-simulation-month > header strong, .faktura-simulation-month > header small { display: block; }
.faktura-simulation-month > header strong { font-size: 13px; }
.faktura-simulation-month > header small { margin-top: 3px; color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-simulation-month > header > b { font-size: 13px; font-variant-numeric: tabular-nums; }
.faktura-simulation-customer { min-width: 0; display: grid; grid-template-columns: minmax(90px, 1fr) minmax(74px, .7fr) minmax(82px, .8fr); gap: 8px; align-items: end; padding: 9px 10px; border-bottom: 1px solid var(--line); }
.faktura-simulation-customer:last-child { border-bottom: 0; }
.faktura-simulation-customer > span { min-width: 0; align-self: center; }
.faktura-simulation-customer > span strong, .faktura-simulation-customer > span small { display: block; overflow-wrap: anywhere; }
.faktura-simulation-customer > span strong { font-size: 11px; }
.faktura-simulation-customer > span small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.faktura-simulation-customer label { gap: 3px; }
.faktura-simulation-customer label > span { font-size: 8px; }
.faktura-simulation-customer input { height: 34px; padding-inline: 7px; }
.faktura-simulation-customer > b { grid-column: 1 / -1; color: var(--muted); font-size: 10px; text-align: right; font-variant-numeric: tabular-nums; }
.faktura-tax-toggle { min-height: 38px; align-self: end; display: flex !important; grid-template-columns: none !important; align-items: center; gap: 8px !important; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); cursor: pointer; }
.faktura-tax-toggle input { width: 17px; height: 17px; padding: 0; accent-color: var(--green); }
.faktura-tax-toggle span { color: var(--text) !important; font-size: 10px !important; text-transform: none !important; }
.faktura-payroll-section { margin-top: 16px; border-top: 1px solid var(--line); }
.faktura-payroll-section .content-band-header { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; }
.faktura-payroll-section .content-band-header small, .faktura-payroll-section .content-band-header strong { display: block; }
.faktura-payroll-section .content-band-header small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-payroll-section .content-band-header strong { margin-top: 4px; font-size: 14px; }
.faktura-payroll-bridge { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); border: 1px solid var(--line); background: var(--surface-muted); }
.faktura-payroll-bridge > span { min-height: 66px; padding: 10px; border-right: 1px solid var(--line); }
.faktura-payroll-bridge > span:last-child { border-right: 0; }
.faktura-payroll-bridge small, .faktura-payroll-bridge b { display: block; }
.faktura-payroll-bridge small { color: var(--muted); font-size: 8px; font-weight: 900; line-height: 1.35; text-transform: uppercase; }
.faktura-payroll-bridge b { margin-top: 7px; font-size: 14px; font-variant-numeric: tabular-nums; }
.faktura-payroll-result { background: var(--green-soft); }
.faktura-payroll-result b { color: var(--green); }
.faktura-payroll-list { margin-top: 10px; border-top: 1px solid var(--line); }
.faktura-payroll-row { min-height: 74px; display: grid; grid-template-columns: 74px minmax(160px, 1.25fr) minmax(130px, .8fr) repeat(3, minmax(145px, 1fr)) 38px; align-items: end; gap: 10px; padding: 10px 7px; border-bottom: 1px solid var(--line); background: var(--surface); }
.faktura-payroll-row.inactive { background: var(--surface-muted); opacity: .68; }
.faktura-payroll-active { height: 38px; display: flex !important; align-items: center; gap: 7px !important; padding: 0 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); cursor: pointer; }
.faktura-payroll-active input { width: 17px; height: 17px; padding: 0; accent-color: var(--green); }
.faktura-payroll-active span { color: var(--text) !important; font-size: 10px !important; text-transform: none !important; }
.faktura-payroll-note { margin: 9px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.faktura-net-summary { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); background: var(--surface-muted); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.faktura-net-summary > span { min-height: 66px; padding: 11px 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.faktura-net-summary > span:nth-child(4n) { border-right: 0; }
.faktura-net-summary > span:nth-last-child(-n+4) { border-bottom: 0; }
.faktura-net-summary small, .faktura-net-summary b { display: block; }
.faktura-net-summary small { color: var(--muted); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.faktura-net-summary b { margin-top: 7px; font-size: 15px; font-variant-numeric: tabular-nums; }
.faktura-net-result { background: var(--green-soft); }
.faktura-net-result b { color: var(--green); font-size: 18px; }
.faktura-net-explainer { min-height: 62px; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 10px; margin-top: 10px; padding: 10px 12px; border-left: 4px solid var(--blue); background: var(--blue-soft); }
.faktura-net-explainer > .lucide { width: 19px; color: var(--blue); }
.faktura-net-explainer strong, .faktura-net-explainer small { display: block; }
.faktura-net-explainer strong { font-size: 12px; }
.faktura-net-explainer small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.45; }

@media (max-width: 900px) {
  .lab-bonus-grid { grid-template-columns: 1fr; }
  .lab-bonus-settings { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .faktura-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faktura-customer-row { grid-template-columns: minmax(160px, 1.2fr) minmax(140px, .8fr) 82px 38px; }
  .faktura-hours-row { grid-template-columns: minmax(160px, 1fr) repeat(2, minmax(110px, .7fr)); }
  .faktura-hours-row label:nth-of-type(3), .faktura-row-revenue { grid-row: 2; }
  .faktura-hours-row label:nth-of-type(3) { grid-column: 2; }
  .faktura-row-revenue { grid-column: 3; }
  .faktura-transfer { grid-template-columns: minmax(180px, .8fr) minmax(220px, 1.2fr); }
  .faktura-transfer-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .faktura-net-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faktura-reference-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-simulation-months { grid-template-columns: 1fr; }
  .faktura-simulation-customer { grid-template-columns: minmax(140px, 1fr) minmax(90px, .55fr) minmax(110px, .65fr) 100px; }
  .faktura-simulation-customer > b { grid-column: auto; align-self: center; }
  .faktura-payroll-bridge { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .faktura-payroll-bridge > span:nth-child(3n) { border-right: 0; }
  .faktura-payroll-bridge > span:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
  .faktura-payroll-row { grid-template-columns: repeat(3, minmax(0, 1fr)) 38px; }
  .annual-toolbar { align-items: stretch; flex-wrap: wrap; }
  .annual-scope { width: 100%; }
  .annual-toolbar .compact-select { flex: 1; }
  .annual-year-stepper { margin-left: 0; }
  .annual-summary { grid-template-columns: repeat(3, 1fr); }
  .annual-summary > span:nth-child(3) { border-right: 0; }
  .annual-summary > span:nth-child(-n+3) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 720px) {
  .bonus-income-overview { grid-template-columns: 24px minmax(0, 1fr); }
  .bonus-income-overview > b { grid-column: 2; }
  .lab-bonus-band .section-heading { align-items: flex-start; }
  .lab-bonus-band .heading-actions { width: 100%; justify-content: space-between; }
  .lab-bonus-settings { grid-template-columns: 1fr; }
  .lab-bonus-month-row { grid-template-columns: minmax(72px, .55fr) minmax(0, 1fr); }
  .lab-bonus-month-row > label:last-of-type { grid-column: 2; }
  .lab-bonus-month-row > small { grid-column: 1 / -1; }
  .lab-bonus-calculation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-bonus-calculation > span, .lab-bonus-calculation > span:nth-child(3n), .lab-bonus-calculation > span:nth-last-child(-n+3) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .lab-bonus-calculation > span:nth-child(2n) { border-right: 0; }
  .lab-bonus-calculation > span:nth-last-child(-n+2) { border-bottom: 0; }
  .lab-bonus-payment-row { grid-template-columns: 1fr; align-items: stretch; }
  .portable-backup-grid { grid-template-columns: 1fr; }
  .portable-backup-grid article { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .portable-backup-grid article:last-child { border-bottom: 0; }
  .portable-backup-actions { align-items: stretch; flex-direction: column; }
  .portable-backup-actions a { justify-content: center; }
  .annual-plan-heading { align-items: flex-start; }
  .annual-scope { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
  .annual-scope button { min-width: 0; min-height: 42px; padding-inline: 8px; white-space: normal; line-height: 1.2; }
  .annual-scope button:last-child { grid-column: 1 / -1; }
  .annual-summary { min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .annual-summary > span, .annual-summary > span:nth-child(3) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .annual-summary > span:nth-child(even) { border-right: 0; }
  .annual-summary > span:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; }
  .annual-plan-band .month-plan { display: grid; gap: 8px; margin-top: 10px; border-top: 0; overflow: visible; }
  .annual-plan-band .month-plan-row { min-width: 0; min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; padding: 12px; border: 1px solid var(--line); border-left: 4px solid transparent; border-radius: 7px; }
  .annual-plan-band .month-plan-row.projected { border-left-color: var(--blue); }
  .annual-plan-band .month-plan-row.selected { border-left-color: var(--violet); }
  .annual-plan-band .month-plan-row > span:first-child { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
  .annual-plan-band .month-plan-row > span:first-child strong { font-size: 15px; }
  .lab-toolbar-fields { display: grid; grid-template-columns: 1fr 1fr; }
  .lab-toolbar-fields label, .lab-toolbar-fields select, .lab-toolbar-fields input { width: 100%; min-width: 0; }
  .lab-chart-heading { align-items: flex-start; flex-direction: column; }
  .lab-chart-heading-actions { width: 100%; max-width: none; align-items: flex-start; flex-direction: column; }
  .lab-chart-range, .lab-chart-custom-range { width: 100%; max-width: none; }
  .lab-chart-range button { flex: 1; }
  .faktura-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-customer-row { grid-template-columns: minmax(0, 1fr) 38px; align-items: end; }
  .faktura-customer-row label:nth-of-type(2), .faktura-active-toggle { grid-column: 1; }
  .faktura-customer-row > .icon-button { grid-column: 2; grid-row: 1; }
  .faktura-hours-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-hours-customer { grid-column: 1 / -1; }
  .faktura-hours-row label:nth-of-type(3) { grid-column: 1; grid-row: auto; }
  .faktura-row-revenue { grid-column: 2; grid-row: auto; align-self: end; padding-bottom: 5px; }
  .faktura-calculation-flow, .faktura-bonus-result { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-calculation-flow > span:nth-child(2n), .faktura-bonus-result > span:nth-child(2n) { border-right: 0; }
  .faktura-calculation-flow > span:nth-child(-n+2), .faktura-bonus-result > span:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .faktura-transfer { grid-template-columns: 1fr; align-items: stretch; }
  .faktura-transfer-actions { grid-column: auto; flex-direction: column; }
  .faktura-net-band .section-heading { align-items: flex-start; flex-direction: column; gap: 8px; }
  #faktura-net-status { max-width: 100%; min-height: 0; padding-block: 6px; border-radius: 6px; white-space: normal; line-height: 1.35; }
  .faktura-quarter-source, .faktura-net-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-simulation-section > .content-band-header { align-items: flex-start; flex-direction: column; }
  .faktura-simulation-actions { width: 100%; }
  .faktura-simulation-actions .secondary-button { flex: 1; }
  .faktura-simulation-customer { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(76px, .7fr)); }
  .faktura-simulation-customer > b { grid-column: 1 / -1; }
  .faktura-quarter-source > span { border-bottom: 1px solid var(--line); }
  .faktura-quarter-source > span:nth-child(2n) { border-right: 0; }
  .faktura-quarter-source > span:nth-last-child(-n+2) { border-bottom: 0; }
  .faktura-payroll-row { grid-template-columns: repeat(2, minmax(0, 1fr)) 38px; }
  .faktura-payroll-row > .icon-button { grid-column: 3; grid-row: 1; }
  .faktura-net-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-net-summary > span, .faktura-net-summary > span:nth-child(4n), .faktura-net-summary > span:nth-last-child(-n+4) { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .faktura-net-summary > span:nth-child(2n) { border-right: 0; }
  .faktura-net-summary > span:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 410px) {
  .annual-toolbar { flex-direction: column; }
  .annual-scope { width: 100%; }
  .annual-toolbar .compact-select, .annual-toolbar .compact-select select, .annual-year-stepper { width: 100%; }
  .annual-year-stepper { justify-content: space-between; }
  .annual-year-tabs button { flex-basis: 98px; }
  .annual-summary { min-width: 0; grid-template-columns: 1fr; }
  .annual-summary > span, .annual-summary > span:nth-child(3), .annual-summary > span:last-child { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .annual-summary > span:last-child { border-bottom: 0; }
  .lab-toolbar-fields { grid-template-columns: 1fr; }
  .lab-year-chip { flex-basis: 160px; }
  .faktura-metrics { grid-template-columns: 1fr; }
  .faktura-hours-row { grid-template-columns: 1fr; }
  .faktura-hours-row label:nth-of-type(3), .faktura-row-revenue { grid-column: auto; }
  .faktura-row-revenue { text-align: left; }
  .faktura-calculation-flow, .faktura-bonus-result { grid-template-columns: 1fr; }
  .faktura-calculation-flow > span, .faktura-calculation-flow > span:nth-child(2n), .faktura-bonus-result > span, .faktura-bonus-result > span:nth-child(2n) { border-right: 0; border-bottom: 1px solid var(--line); }
  .faktura-calculation-flow > span:last-child, .faktura-bonus-result > span:last-child { border-bottom: 0; }
  .faktura-quarter-source, .faktura-net-fields, .faktura-net-summary, .faktura-payroll-bridge { grid-template-columns: 1fr; }
  .faktura-reference-fields { grid-template-columns: 1fr; }
  .faktura-simulation-customer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .faktura-simulation-customer > span, .faktura-simulation-customer > b { grid-column: 1 / -1; }
  .faktura-quarter-source > span, .faktura-quarter-source > span:nth-child(2n), .faktura-quarter-source > span:nth-last-child(-n+2), .faktura-payroll-bridge > span, .faktura-payroll-bridge > span:nth-child(3n), .faktura-payroll-bridge > span:nth-child(-n+3) { border-right: 0; border-bottom: 1px solid var(--line); }
  .faktura-quarter-source > span:last-child, .faktura-payroll-bridge > span:last-child { border-bottom: 0; }
  .faktura-payroll-row { grid-template-columns: minmax(0, 1fr) 38px; }
  .faktura-payroll-row > label { grid-column: 1 / -1; }
  .faktura-payroll-row > .icon-button { grid-column: 2; grid-row: 1; }
  .faktura-net-summary > span, .faktura-net-summary > span:nth-child(2n), .faktura-net-summary > span:nth-last-child(-n+2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .faktura-net-summary > span:last-child { border-bottom: 0; }
}

@media (max-width: 360px) {
  .year-view-button { display: none; }
}
