*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f6f8;color:#17202a}.app{display:flex;min-height:100vh}aside{width:235px;background:#17202a;color:white;padding:18px;position:sticky;top:0;height:100vh}h1{font-size:20px;margin:0 0 20px}h2{margin-top:0}.nav,.export{display:block;width:100%;padding:12px;margin:7px 0;border:0;border-radius:8px;background:#263544;color:white;text-align:left;text-decoration:none;cursor:pointer}.nav.active{background:#3d6fb6}.export{background:#506070}main{flex:1;padding:22px;max-width:none}.page{display:none}.page.active{display:block}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.card{background:white;border-radius:12px;padding:18px;box-shadow:0 2px 8px #0001}.card .label{color:#667;font-size:13px}.card .value{font-size:28px;font-weight:bold;margin-top:8px}.warn{background:#fff2cc;border-left:6px solid #cc9900;padding:12px;margin:12px 0;border-radius:8px}.bad{color:#b00020}.good{color:#087a24}table{width:100%;border-collapse:collapse;background:white;border-radius:10px;overflow:hidden;margin-top:14px}th,td{padding:10px;border-bottom:1px solid #e5e8eb;text-align:left;font-size:14px}th{background:#e9eef5}.form{display:flex;gap:8px;flex-wrap:wrap;background:white;padding:12px;border-radius:10px}.form input,.form select,input,select{padding:10px;border:1px solid #ccd3da;border-radius:8px}button{padding:10px 12px;border:0;border-radius:8px;background:#3167ad;color:white;cursor:pointer}.danger{background:#a33}.small{padding:6px 8px;font-size:12px}.pill{padding:4px 7px;border-radius:99px;background:#eef}.duplicate{background:#fee}.possible_duplicate{background:#fff7df}.new{background:#eef9ee}.goal{background:white;border-radius:12px;padding:16px;max-width:680px}.bar{height:18px;background:#dde3ea;border-radius:12px;overflow:hidden}.bar span{display:block;height:100%;background:#3d6fb6}
.help{color:#cbd5e1;margin-top:-6px;margin-bottom:14px}.panel{background:#101827;border:1px solid #263246;border-radius:14px;padding:14px;margin-top:16px}.panel h3{margin-top:0}.panel p{line-height:1.45;color:#dbeafe}

textarea{width:100%;box-sizing:border-box;background:#101820;color:#f1f5f9;border:1px solid #334155;border-radius:8px;padding:10px;margin:8px 0;font-family:inherit}
.form.wide{grid-template-columns:2fr 1fr auto}
#analysisResult{white-space:pre-wrap;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:8px;padding:12px;min-height:220px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:16px;margin-top:16px;align-items:start}.chat-panel{background:#101827;color:#f8fafc;border-radius:14px;padding:14px;position:sticky;top:16px}.chat-panel h3{margin:0 0 8px}.chat-log{height:430px;overflow:auto;background:#0b1220;border:1px solid #334155;border-radius:10px;padding:10px;margin:10px 0}.chat-msg{padding:10px;border-radius:10px;margin:8px 0;white-space:pre-wrap;line-height:1.35}.chat-msg.user{background:#1d4ed8;margin-left:32px}.chat-msg.assistant{background:#1f2937;margin-right:32px}.dark-help{color:#cbd5e1}.light-panel{background:white;color:#17202a;border:1px solid #dbe3ed}.light-panel p{color:#334155}@media(max-width:1050px){.dashboard-grid{grid-template-columns:1fr}.chat-panel{position:static}.chat-log{height:300px}}


/* Floating budget helper appears on every screen. */
.floating-chat{position:fixed;right:18px;bottom:18px;width:390px;max-width:calc(100vw - 36px);background:#101827;color:#f8fafc;border-radius:14px;padding:12px;box-shadow:0 10px 30px #0005;z-index:50;border:1px solid #263246}
.floating-chat-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.floating-chat-head span{display:block;font-size:12px;color:#cbd5e1;font-weight:normal}.floating-chat textarea{min-height:78px}.floating-chat .chat-log{height:360px;margin:8px 0}.show-chat{display:none;position:fixed;right:18px;bottom:18px;z-index:49;box-shadow:0 8px 24px #0004}.floating-chat.closed{display:none}.show-chat.visible{display:block}

@keyframes trusteePulse{0%{transform:scale(.98);box-shadow:0 0 0 0 rgba(245,158,11,.35)}70%{transform:scale(1);box-shadow:0 0 0 8px rgba(245,158,11,0)}100%{box-shadow:0 2px 8px rgba(146,64,14,.10)}}
@media(max-width:1180px){main{padding-right:22px}.floating-chat{width:360px}.floating-chat .chat-log{height:300px}}
@media(max-width:760px){aside{width:190px}.floating-chat{left:12px;right:12px;width:auto}.floating-chat .chat-log{height:260px}}
.dashboard-stats{display:grid;grid-template-columns:1.1fr 1fr .8fr;gap:14px;margin-top:16px}.flow-bars{display:grid;gap:12px}.flow-bars div span{display:block;color:#64748b;font-size:13px}.flow-bars div b{display:block;margin:3px 0 6px}.meter{height:12px;background:#e5e7eb;border-radius:99px;overflow:hidden}.meter i{display:block;height:100%;background:#3167ad;border-radius:99px;min-width:2px}.flow-bars div:nth-child(2) .meter i{background:#dc2626}.flow-bars div:nth-child(3) .meter i{background:#f59e0b}.chart-card{display:grid;grid-template-columns:130px 1fr;gap:14px;align-items:center}.chart-card h3{grid-column:1/-1}.donut{width:128px;height:128px;border-radius:50%;display:grid;place-items:center;position:relative;text-align:center;color:#17202a}.donut:after{content:"";position:absolute;width:74px;height:74px;border-radius:50%;background:white}.donut strong,.donut span,.donut em{position:relative;z-index:1}.donut strong{display:block;font-size:16px}.donut span{display:block;font-size:11px;color:#64748b}.donut em{font-size:12px;color:#64748b;padding:12px}.legend{display:grid;gap:6px}.legend div{display:grid;grid-template-columns:12px 1fr auto;gap:8px;align-items:center;font-size:13px}.legend i{width:12px;height:12px;border-radius:3px}.mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mini-stats div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:9px}.mini-stats span{display:block;font-size:12px;color:#64748b}.mini-stats b{font-size:17px}tr.locked{background:#f8fafc;color:#64748b}td input,td select{width:100%;min-width:90px;padding:7px}#debitRows td,#creditRows td{vertical-align:middle}@media(max-width:1180px){.dashboard-stats{grid-template-columns:1fr}.chart-card{grid-template-columns:130px 1fr}}@media(max-width:760px){.chart-card{grid-template-columns:1fr}.donut{margin:auto}.mini-stats{grid-template-columns:1fr}}

/* Wife-friendly action feedback */
.toast-box{position:fixed;right:18px;top:18px;z-index:200;display:grid;gap:8px;max-width:380px}.toast{background:#17202a;color:white;border-left:6px solid #16a34a;border-radius:10px;padding:12px 14px;box-shadow:0 8px 24px #0003;opacity:0;transform:translateY(-8px);transition:.25s}.toast.show{opacity:1;transform:translateY(0)}.toast.bad{border-left-color:#dc2626;background:#2a1111}.toast.warn{border-left-color:#f59e0b}.compare-panel{margin-top:18px}.help-dark{color:#334155;margin-top:-4px}.status-badge{display:inline-block;padding:5px 8px;border-radius:99px;font-size:12px;font-weight:bold;background:#e5e7eb;color:#334155}.status-badge.planned,.status-badge.posted,.status-badge.paid_plan{background:#dcfce7;color:#166534}.status-badge.missing_due_soon{background:#fef3c7;color:#92400e}.status-badge.missing_overdue{background:#fee2e2;color:#991b1b}.status-badge.future{background:#e0f2fe;color:#075985}tr.bill-missing_overdue{background:#fff1f2}tr.bill-missing_due_soon{background:#fffbeb}tr.bill-planned,tr.bill-posted,tr.bill-paid_plan{background:#f0fdf4}


/* Polished Goals / Payoff Ledger screen */
#goals .help{color:#64748b;margin:0 0 16px}
.add-goal-card{align-items:end;margin-bottom:18px;padding:18px;border:1px solid #dbe3ed;box-shadow:0 4px 18px #0000000d}
.add-goal-card input,.add-goal-card select{min-width:150px;background:#fff}
.add-goal-card button{margin-left:auto;min-width:120px;font-weight:bold}
#goalBox{display:grid;gap:18px;max-width:1500px}.goal-card{background:white;border:1px solid #dbe3ed;border-radius:16px;padding:18px;box-shadow:0 6px 24px #0000000f}.goal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.goal-card-head h3{font-size:24px;margin:0;color:#0f172a}.goal-card-head p{margin:4px 0 0;color:#64748b}.goal-badge{background:#e8f1ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:8px 12px;font-weight:bold;white-space:nowrap}.goal-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:12px 0}.goal-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:11px}.goal-stat span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.goal-stat b{font-size:15px;color:#0f172a}.goal-progress-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px;margin:12px 0}.goal-progress-row>span{color:#64748b;font-size:13px}.goal-progress-row>b{color:#1d4ed8}.goal-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}.goal-insights div{background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;padding:12px}.goal-insights span{display:block;color:#64748b;font-size:12px}.goal-insights b{display:block;font-size:22px;margin-top:4px;color:#0f172a}.goal-work-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.goal-panel{border:1px solid #e2e8f0;border-radius:14px;padding:14px;background:#fff}.goal-panel h4,.goal-history h4{margin:0 0 3px;color:#0f172a}.goal-panel p,.goal-history p{margin:0 0 12px;color:#64748b}.goal-form{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px;background:transparent;padding:0}.goal-form label{display:grid;gap:5px;color:#334155;font-size:12px;font-weight:bold}.goal-form input,.goal-form select{width:100%;background:#fff}.goal-form button{align-self:end;min-height:39px;font-weight:bold}.goal-pay-form{grid-template-columns:repeat(3,minmax(130px,1fr))}.wide-field{grid-column:1/-1}.goal-history{border:1px solid #e2e8f0;border-radius:14px;margin-top:14px;padding:14px;background:#fff}.goal-history table{margin-top:8px}.empty-row{text-align:center;color:#64748b}.empty-state{padding:22px}.empty-state span{font-size:12px;color:#94a3b8}.goal-empty{background:white;border:1px solid #dbe3ed;border-radius:16px;padding:26px;box-shadow:0 6px 24px #0000000f;color:#334155}.goal-empty h3{margin-top:0;color:#0f172a}
@media(max-width:1050px){.goal-work-grid{grid-template-columns:1fr}.goal-form,.goal-pay-form{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.goal-card-head{display:block}.goal-badge{display:inline-block;margin-top:8px}.goal-progress-row{grid-template-columns:1fr}.goal-form,.goal-pay-form{grid-template-columns:1fr}.add-goal-card button{margin-left:0}}
.muted{color:#64748b;font-size:12px}.payday-summary{display:grid;gap:8px}

.group-head td{background:#dbe7f7;font-weight:700;border-top:2px solid #b7c9e6}
.group-title{font-size:18px;color:#123;}
.group-sub{font-size:13px;color:#516173;margin-top:2px}
.subgroup-head td{font-weight:700;font-size:13px;padding:8px 10px}
.subgroup-head.payday-before td,.pill.payday-before{background:#fff5cc;color:#7a5600}
.subgroup-head.payday-after td,.pill.payday-after{background:#e7f6ea;color:#166534}
.subgroup-head.payday-none td,.pill.payday-none{background:#fde8e8;color:#991b1b}
tr.payday-before td{background:rgba(255,245,204,.35)}
tr.payday-after td{background:rgba(231,246,234,.35)}
tr.payday-none td{background:rgba(253,232,232,.35)}
.pill.payday-before,.pill.payday-after,.pill.payday-none{border:none;margin-right:6px}

.pay-badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700;margin-right:6px;white-space:nowrap}
.pay-badge.can-yes{background:#dcfce7;color:#166534;border:1px solid #86efac}
.pay-badge.can-wait{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}
.pay-badge.can-no{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.pay-badge.can-paid{background:#e0e7ff;color:#3730a3;border:1px solid #a5b4fc}

.month-status{font-size:12px;font-weight:800;border-radius:999px;padding:4px 8px;margin-left:8px;background:#e5e7eb;color:#334155;vertical-align:middle}
.month-status.good{background:#dcfce7;color:#166534}
.month-status.bad{background:#fee2e2;color:#991b1b}
.group-head .group-sub{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

.pay-badge.can-wait{white-space:nowrap}

.pay-all-summary{display:grid;gap:10px;margin:10px 0 14px 0}
.pay-all-verdict{border-radius:12px;padding:12px 14px;border:1px solid #d5dbe5;background:#f8fafc;display:flex;flex-direction:column;gap:4px}
.pay-all-verdict b{font-size:18px}
.pay-all-verdict.good{background:#e8f7ee;border-color:#bfe8cc;color:#14532d}
.pay-all-verdict.bad{background:#fdecec;border-color:#f4c7c7;color:#991b1b}
.pay-all-verdict.warnish{background:#fff8db;border-color:#f2dfa4;color:#7a5600}
.pay-all-verdict.neutral{background:#edf2f7;border-color:#d5dbe5;color:#334155}
.pay-all-stats{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px}
.pay-all-stats div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}
.pay-all-stats span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}
.pay-all-stats b{font-size:16px}
@media(max-width:1100px){.pay-all-stats{grid-template-columns:repeat(2,minmax(120px,1fr))}}

/* LLM/chat removed. Keep any stale chat markup hidden if browser cache has it. */
.floating-chat,.show-chat{display:none!important}
.info-panel{margin:14px 0}.info-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.info-card{border-radius:12px;padding:12px;border:1px solid #dbe3ed;background:#f8fafc}.info-card b{display:block;margin-bottom:5px}.info-card span{display:block;color:#334155;line-height:1.35}.good-info{border-left:5px solid #16a34a}.warn-info{border-left:5px solid #f59e0b}.bad-info{border-left:5px solid #dc2626}.neutral-info{border-left:5px solid #3167ad}


/* Full-width rule-based spending plan */
.spending-plan-panel{margin-top:14px}
.spending-plan-summary{display:grid;gap:10px;margin:10px 0 14px}
.spending-verdict{border-radius:12px;padding:12px 14px;border:1px solid #d5dbe5;background:#f8fafc;display:flex;flex-direction:column;gap:4px}
.spending-verdict b{font-size:18px}.spending-verdict.good{background:#e8f7ee;border-color:#bfe8cc;color:#14532d}.spending-verdict.bad{background:#fdecec;border-color:#f4c7c7;color:#991b1b}.spending-verdict.warnish{background:#fff8db;border-color:#f2dfa4;color:#7a5600}
.spending-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.spending-stats div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.spending-stats span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.spending-stats b{font-size:16px}
.spending-plan-notes{display:grid;gap:8px;margin-top:10px}.info-note{background:#f8fafc;border-left:5px solid #3167ad;border-radius:10px;padding:10px;color:#334155}
.optional-ai-box{margin-top:12px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:12px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.optional-ai-box.hidden{display:none}.optional-ai-box b{display:block;color:#1e3a8a}.optional-ai-box span{display:block;color:#334155;font-size:13px;margin-top:3px}.optional-ai-box pre{grid-column:1/-1;white-space:pre-wrap;background:#0f172a;color:#e2e8f0;border-radius:8px;padding:10px;max-height:240px;overflow:auto;margin:0}
@media(max-width:760px){.optional-ai-box{grid-template-columns:1fr}.optional-ai-box pre{grid-column:auto}}

/* Dashboard goals dock and income forecast */
.dashboard-top-row{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}
.goals-dock{background:white;border:1px solid #dbe3ed;border-radius:14px;padding:14px;box-shadow:0 2px 8px #0001;max-height:245px;overflow:auto;position:sticky;top:12px}
.goals-dock h3{margin:0 0 4px;color:#0f172a}.goals-dock p{margin:0 0 10px;color:#64748b;font-size:12px}.goal-mini{border:1px solid #e2e8f0;border-radius:12px;padding:10px;margin:8px 0;background:#f8fafc}.goal-mini>div:first-child{display:flex;flex-direction:column;gap:2px}.goal-mini b{color:#0f172a}.goal-mini span{font-size:12px;color:#64748b}.goal-mini strong{display:block;margin:7px 0 6px;color:#1d4ed8}.mini-bar{height:8px}.mini-empty{color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:12px}
#incomeTemplateRows td{vertical-align:middle}#incomeTemplateRows input,#incomeTemplateRows select{min-width:95px}.page#incomeforecast .form{align-items:end}.page#incomeforecast .panel{margin-top:16px}
@media(max-width:1100px){.dashboard-top-row{grid-template-columns:1fr}.goals-dock{position:static;max-height:none}}


/* Dashboard title goal strip: horizontal, top-right, not a main dashboard number. */
.dashboard-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.dashboard-title-left{display:flex;align-items:center;gap:10px;min-width:180px}.dashboard-title-left h2{margin:0}
.dashboard-goal-strip{margin-left:auto;max-width:58%;min-width:360px;background:white;border:1px solid #dbe3ed;border-radius:14px;padding:9px 10px;box-shadow:0 2px 8px #0001;display:flex;align-items:center;gap:10px}
.goal-strip-title{font-size:12px;font-weight:800;color:#334155;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-right:1px solid #e2e8f0;padding-right:10px}
.goal-strip-items{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;max-width:100%;padding-bottom:2px}.goal-strip-items::-webkit-scrollbar{height:6px}.goal-strip-items::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}
.goal-strip-card{flex:0 0 190px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:8px 9px}.goal-strip-name{font-size:13px;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.goal-strip-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0 4px}.goal-strip-row span{font-size:12px;color:#64748b;white-space:nowrap}.goal-strip-row b{font-size:12px;color:#1d4ed8}.goal-strip-empty{font-size:12px;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;padding:9px 12px;white-space:nowrap}.dashboard-top-row{display:block}.goals-dock{display:none!important}
@media(max-width:1050px){.dashboard-title-row{display:block}.dashboard-title-left{margin-bottom:10px}.dashboard-goal-strip{max-width:100%;min-width:0;width:100%;margin-left:0}.goal-strip-card{flex-basis:180px}}

.field-label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;font-weight:700}
.field-label input{font-size:14px;font-weight:400;color:#111827}

.autopay-pill{background:#dbeafe;color:#1d4ed8}
.manual-pill{background:#e5e7eb;color:#374151}
.pay-badge.can-yes{background:#dcfce7;color:#166534}
.pay-badge.can-no{background:#fee2e2;color:#991b1b}
.pay-badge.can-wait{background:#fef3c7;color:#92400e}

tr.income-estimated td{background:rgba(255,245,204,.35)}
tr.income-real td{background:rgba(231,246,234,.28)}

.bucket-summary,.review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:10px 0}
.bucket-stat,.review-card{background:#f7fafc;border:1px solid #dbe5ef;border-radius:12px;padding:10px}
.bucket-stat span,.review-card span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}
.bucket-stat b,.review-card b{font-size:18px}
.bucket-ok td{background:#f8fffb}.bucket-tight td{background:#fff8df}.bucket-over td{background:#fff0f0}
.mobile-only{display:none}
@media (max-width: 850px){
  body{overflow:auto;background:#eef2f7}
  .app{display:block;min-height:100vh}
  aside{position:sticky;top:0;z-index:20;width:auto;height:auto;display:flex;gap:6px;overflow-x:auto;align-items:center;padding:8px;background:#111827;border-bottom:1px solid #1f2937}
  aside h1{font-size:15px;white-space:nowrap;margin:0 8px 0 0;min-width:max-content}
  aside .nav,aside .export{white-space:nowrap;margin:0;padding:8px 10px;font-size:13px;min-width:max-content}
  main{margin:0;padding:10px;width:auto}
  .dashboard-title-row{display:block}
  .dashboard-title-left{display:flex;align-items:center;gap:8px;justify-content:space-between}
  .dashboard-goal-strip{margin-top:8px;width:100%;max-width:none}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .card{padding:10px}.card .value{font-size:20px}
  .dashboard-stats{grid-template-columns:1fr}
  .panel{padding:10px;margin:10px 0;border-radius:12px}
  .form{display:grid;grid-template-columns:1fr;gap:8px}
  table{display:block;overflow-x:auto;white-space:nowrap;font-size:13px}
  th,td{padding:7px}
  input,select,button{font-size:16px;min-height:38px}
  .goal-strip-items{max-width:100%;overflow-x:auto}
  .goal-strip-card{min-width:190px}
  .spending-stats,.pay-all-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .donut{margin:auto}
}
@media (max-width: 520px){
  .cards{grid-template-columns:1fr}
  .spending-stats,.pay-all-stats,.bucket-summary,.review-summary{grid-template-columns:1fr}
  h2{font-size:21px}
  h3{font-size:17px}
}

.simple-spending-panel{margin:14px 0}
.safe-spending-explain{display:block}
.spending-answer{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:12px;margin-bottom:10px}
.spending-answer.good{background:#e7f6ea;color:#14532d}
.spending-answer.bad{background:#fde8e8;color:#991b1b}
.spending-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}
.spending-grid div{background:#f8fafc;border:1px solid #dbe4ef;border-radius:12px;padding:10px}
.spending-grid span{display:block;color:#64748b;font-size:12px}
.spending-grid b{font-size:18px;color:#0f172a}
@media(max-width:800px){.spending-grid{grid-template-columns:1fr 1fr}.spending-answer{display:block}}

.category-note{padding:10px 12px;border-left:4px solid #3167ad;background:#eef5ff;border-radius:10px;margin:10px 0;color:#17324d}
.good-note{border-left-color:#16a34a;background:#ecfdf5;color:#14532d}

.example-list{display:block;color:#64748b;font-size:12px;line-height:1.35;max-width:280px}
#budgetBucketRows input[data-field="examples"]{min-width:260px}

.today-safety-panel{margin:12px 0}
.today-safety-card{display:grid;grid-template-columns:1.2fr 1.5fr 1.1fr;gap:14px;align-items:stretch;border-radius:16px;padding:16px;border:1px solid #dbe4ef;background:#f8fafc;box-shadow:0 3px 12px rgba(15,23,42,.06)}
.today-safety-card.safe{border-left:6px solid #16a34a}
.today-safety-card.tight,.today-safety-card.caution{border-left:6px solid #f59e0b;background:#fffbeb}
.today-safety-card.danger{border-left:6px solid #dc2626;background:#fef2f2}
.today-safety-main h3{margin:4px 0 6px 0;font-size:22px}
.today-safety-main p{margin:0;color:#334155;line-height:1.35}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:700}
.today-safety-numbers{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.today-safety-numbers div{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.today-safety-numbers span{display:block;color:#64748b;font-size:12px}
.today-safety-numbers b{display:block;font-size:20px;color:#0f172a}
.today-safety-numbers small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.today-safety-bills{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:10px;max-height:160px;overflow:auto}
.today-safety-bills b{font-size:13px}
.today-safety-bills ul{list-style:none;margin:8px 0 0 0;padding:0}
.today-safety-bills li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #eef2f7;padding:6px 0;font-size:12px}
.today-safety-bills li:first-child{border-top:0}
@media(max-width:950px){.today-safety-card{grid-template-columns:1fr}.today-safety-numbers{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.today-safety-numbers{grid-template-columns:1fr}.today-safety-card{padding:12px}}

.overdue-detail-panel{margin:12px 0}
.overdue-card{border-left:6px solid #dc2626;background:#fffafa}
.overdue-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.overdue-head h3{margin:0 0 8px 0}
.overdue-head span{color:#991b1b;font-weight:700}
.overdue-card table{margin-top:8px}

.maintenance-result{border-left:6px solid #3167ad;margin:12px 0}
.repair-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.repair-grid div{background:#f8fafc;border:1px solid #dbe4ef;border-radius:12px;padding:10px}
.repair-grid span{display:block;color:#64748b;font-size:12px}
.repair-grid b{font-size:20px;color:#0f172a}
@media(max-width:900px){.repair-grid{grid-template-columns:1fr 1fr}}

.payday-debt-short_until_payday td{background:rgba(255,245,204,.45)}
.payday-debt-not_covered td{background:rgba(253,232,232,.55)}
.payday-debt-covered td{background:rgba(236,253,245,.35)}

.day-plan-panel{border-left:6px solid #3167ad}
.day-plan-summary{margin:8px 0 12px 0}
.day-plan-status{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#eef5ff}
.day-plan-status.covered{background:#ecfdf5;color:#14532d}
.day-plan-status.tight{background:#fffbeb;color:#92400e}
.day-plan-status.short{background:#fef2f2;color:#991b1b}
.day-plan-status b{font-size:18px}
.day-plan-status span{font-size:13px}
.event-start td{background:#f8fafc}
.event-income td{background:rgba(236,253,245,.55)}
.event-expense td{background:rgba(255,247,237,.55)}
.event-autopay td{background:rgba(239,246,255,.65)}
@media(max-width:760px){.day-plan-status{display:block}.day-plan-panel table{font-size:12px}}

.info-line{padding:10px 12px;background:#eef5ff;border-left:4px solid #3167ad;border-radius:10px;color:#17324d;margin:8px 0 12px 0}


/* Dashboard layout polish: goals dock left, 8 stats grid right, graphics below, do-not-spend at bottom of goals dock. */
.dashboard-title-row{margin-bottom:12px}
.dashboard-hero-shell{display:grid;grid-template-columns:300px minmax(0,1fr);gap:16px;align-items:start;margin-bottom:14px}
.dashboard-hero-main{display:grid;gap:14px;min-width:0}
.dashboard-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dashboard-card-grid .card{min-height:112px;display:flex;flex-direction:column;justify-content:center}
.dashboard-goals-dock{background:white;border:1px solid #dbe3ed;border-radius:16px;padding:12px;box-shadow:0 2px 8px #0001;display:flex;flex-direction:column;gap:10px;min-height:100%}
.dashboard-goal-head{display:grid;gap:3px}
.dashboard-goal-head .goal-strip-title.no-border{border-right:0;padding-right:0}
.goal-dock-subtitle{font-size:12px;color:#64748b;line-height:1.35}
.goal-dock-items{display:flex;flex-direction:column;gap:8px;overflow:auto;max-height:320px;padding-right:2px}
.goal-dock-items .goal-strip-card{flex:0 0 auto;width:100%}
.dashboard-do-not-spend{margin-top:auto}
.do-not-spend-card{border-radius:14px;padding:12px;border:1px solid #dbe4ef;background:#f8fafc}
.do-not-spend-card.good{border-left:6px solid #16a34a;background:#ecfdf5}
.do-not-spend-card.neutral{border-left:6px solid #3167ad;background:#eef5ff}
.do-not-spend-card.bad{border-left:6px solid #dc2626;background:#fef2f2}
.do-not-spend-card b{display:block;font-size:28px;color:#0f172a;margin:4px 0 6px}
.do-not-spend-card p{margin:0;color:#334155;line-height:1.35;font-size:13px}
.dashboard-top-graphics{margin-top:0}
.dashboard-top-graphics > .panel{height:100%}

@media (max-width: 1180px){
  .dashboard-hero-shell{grid-template-columns:260px minmax(0,1fr)}
  .dashboard-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 850px){
  .dashboard-hero-shell{grid-template-columns:1fr}
  .dashboard-goals-dock{order:2}
  .dashboard-hero-main{order:1}
  .dashboard-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .goal-dock-items{max-height:none}
}
@media (max-width: 520px){
  .dashboard-card-grid{grid-template-columns:1fr}
  .dashboard-goals-dock{padding:10px}
  .do-not-spend-card b{font-size:24px}
}

.neutral-money{color:#0f172a}
.do-not-spend-card.bad b{color:#b00020}
.do-not-spend-card.neutral b{color:#0f172a}


.bankruptcy-directive-panel{margin:12px 0}
.bankruptcy-card{border-left:6px solid #3167ad}
.bankruptcy-card.short{border-left-color:#dc2626;background:#fffafa}
.bankruptcy-card.covered{border-left-color:#16a34a;background:#f8fffb}
.bankruptcy-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.bankruptcy-head h3{margin:3px 0 0 0}
.bankruptcy-status{font-weight:800;border-radius:999px;padding:7px 10px;background:#f8fafc;border:1px solid #dbe4ef;white-space:nowrap}
.bankruptcy-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:10px}
.bankruptcy-grid div{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.bankruptcy-grid span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}
.bankruptcy-grid b{display:block;color:#0f172a;font-size:17px;line-height:1.25}
.bankruptcy-detail-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.bankruptcy-detail-grid>div{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.bankruptcy-detail-grid ul{list-style:none;margin:8px 0 0 0;padding:0}
.bankruptcy-detail-grid li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #eef2f7;padding:7px 0;font-size:13px}
.bankruptcy-detail-grid li:first-child{border-top:0}
.bankruptcy-detail-grid p{margin:7px 0;color:#334155;line-height:1.35}
@media(max-width:1000px){.bankruptcy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bankruptcy-detail-grid{grid-template-columns:1fr}.bankruptcy-head{display:block}.bankruptcy-status{display:inline-block;margin-top:8px}}
@media(max-width:600px){.bankruptcy-grid{grid-template-columns:1fr}}

/* What Can We Spend formatting fix */
.spending-answer{display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px;align-items:stretch;padding:0;border-radius:16px;margin-bottom:12px;overflow:hidden;border:1px solid #dbe4ef;background:#f8fafc}
.spending-answer.good{background:#f8fffb;color:#14532d;border-color:#bbf7d0}
.spending-answer.bad{background:#fff7f7;color:#991b1b;border-color:#fecaca}
.spending-answer-main{display:flex;flex-direction:column;justify-content:center;padding:16px;background:rgba(255,255,255,.72);border-right:1px solid rgba(148,163,184,.28)}
.spending-answer-money{display:block;font-size:36px;line-height:1.05;color:#0f172a;margin:4px 0}
.spending-answer-main small{font-weight:800;color:inherit}
.spending-answer-copy{padding:14px 16px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.spending-answer-copy b{font-size:18px;color:#0f172a}
.spending-answer-copy p{margin:0;line-height:1.35;color:#334155}
.trustee-later-note{padding:8px 10px;border-radius:10px;background:white;border:1px solid #e2e8f0}
.spend-category-grid{grid-template-columns:repeat(5,minmax(130px,1fr));margin-bottom:10px}
.spend-category-grid div{min-height:74px;display:flex;flex-direction:column;justify-content:center}
.spend-category-grid b{font-size:22px}
.spending-detail-strip{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin-top:10px}
.spending-detail-strip div{background:white;border:1px solid #e2e8f0;border-radius:12px;padding:9px 10px}
.spending-detail-strip span{display:block;color:#64748b;font-size:12px;margin-bottom:3px}
.spending-detail-strip b{font-size:16px;color:#0f172a}
@media(max-width:900px){.spending-answer{grid-template-columns:1fr}.spending-answer-main{border-right:0;border-bottom:1px solid rgba(148,163,184,.28)}.spend-category-grid,.spending-detail-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.spend-category-grid,.spending-detail-strip{grid-template-columns:1fr}.spending-answer-money{font-size:30px}}

/* Per-launch PIN lock */
.pin-gate{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:100vh;
  padding:20px;
  background:linear-gradient(135deg,rgba(15,23,42,.94),rgba(30,64,120,.88));
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.pin-gate.hidden{display:none}
.pin-card{
  width:min(440px,100%);
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:24px;
  border-radius:22px;
  background:#ffffff;
  border:1px solid rgba(219,228,239,.95);
  box-shadow:0 30px 80px rgba(2,6,23,.45);
  color:#0f172a;
}
.pin-lock-mark{
  align-self:flex-start;
  border-radius:999px;
  padding:7px 11px;
  background:#eff6ff;
  color:#1d4f8f;
  border:1px solid #bfdbfe;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
}
.pin-card-copy{display:grid;gap:5px}
.pin-kicker{
  color:#64748b;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.pin-card h1{
  margin:0;
  color:#0f172a;
  font-size:27px;
  line-height:1.1;
}
.pin-card p{
  margin:0;
  color:#334155;
  font-size:15px;
  line-height:1.45;
}
.pin-label{
  margin-top:4px;
  color:#475569;
  font-size:13px;
  font-weight:900;
}
.pin-input{
  width:100%;
  box-sizing:border-box;
  min-height:58px;
  border-radius:16px;
  border:2px solid #cbd5e1;
  background:#f8fafc;
  color:#0f172a;
  font-size:30px;
  font-weight:900;
  letter-spacing:.22em;
  text-align:center;
  font-variant-numeric:tabular-nums;
  padding:10px 12px;
}
.pin-input::placeholder{color:#94a3b8;opacity:.65}
.pin-input:focus{
  outline:4px solid rgba(49,103,173,.18);
  border-color:#3167ad;
  background:#ffffff;
}
.pin-submit{
  width:100%;
  min-height:50px;
  border:0;
  border-radius:16px;
  padding:13px 16px;
  font-size:16px;
  font-weight:900;
  background:#3167ad;
  color:white;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(49,103,173,.24);
}
.pin-submit:hover{filter:brightness(.96)}
.pin-submit:active{transform:translateY(1px)}
.pin-message{
  min-height:22px;
  color:#b00020;
  font-size:14px;
  font-weight:900;
  line-height:1.35;
}
.pin-help{
  display:grid;
  gap:3px;
  padding:11px 12px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
.pin-help b{color:#0f172a;font-size:13px}
.pin-help span{color:#64748b;font-size:12px;line-height:1.35}
@media(max-width:520px){
  .pin-gate{align-items:flex-start;padding:14px;padding-top:34px}
  .pin-card{padding:18px;border-radius:18px;gap:11px}
  .pin-card h1{font-size:24px}
  .pin-input{min-height:54px;font-size:25px;letter-spacing:.16em}
}

/* Household Overview page */
.household-status-panel{margin:12px 0}
.household-status{display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:16px;padding:16px;border:1px solid #dbe4ef;background:#f8fafc;box-shadow:0 3px 12px rgba(15,23,42,.06)}
.household-status.good{border-left:6px solid #16a34a;background:#ecfdf5}
.household-status.warn{border-left:6px solid #f59e0b;background:#fffbeb}
.household-status.bad{border-left:6px solid #dc2626;background:#fef2f2}
.household-status h3{margin:3px 0 4px 0;font-size:22px;color:#0f172a}
.household-status p{margin:0;color:#475569}
.household-status-money{background:white;border:1px solid #e2e8f0;border-radius:14px;padding:12px;min-width:230px;text-align:right}
.household-status-money span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}
.household-status-money b{font-size:24px;color:#0f172a}
.household-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.household-card{background:white;border:1px solid #dbe4ef;border-radius:14px;padding:12px;box-shadow:0 2px 8px rgba(15,23,42,.04)}
.household-card span{display:block;color:#64748b;font-size:12px;margin-bottom:5px}
.household-card b{font-size:21px;color:#0f172a}
.household-person-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-top:10px}
.person-card{background:#f8fafc;border:1px solid #dbe4ef;border-radius:14px;padding:12px}
.person-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.person-head h4{margin:0;color:#0f172a;font-size:18px}
.person-head b{font-size:20px;color:#1d4ed8}
.person-meter{height:9px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin:10px 0}
.person-meter span{display:block;height:100%;background:#3167ad;border-radius:99px}
.person-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.person-grid div{background:white;border:1px solid #e2e8f0;border-radius:10px;padding:8px}
.person-grid span{display:block;color:#64748b;font-size:11px;margin-bottom:3px}
.person-grid b{font-size:15px;color:#0f172a}
.person-card small{display:block;color:#64748b;margin-top:8px}
.household-bars{display:grid;gap:10px;margin-top:8px}
.household-bar-row{display:grid;grid-template-columns:130px minmax(120px,1fr) 110px;gap:10px;align-items:center}
.household-bar-row label{font-weight:700;color:#334155;font-size:13px}
.household-bar-track{height:16px;background:#e5e7eb;border-radius:99px;overflow:hidden}
.household-bar-track span{display:block;height:100%;border-radius:99px;background:#64748b}
.household-bar-track span.income{background:#16a34a}
.household-bar-track span.required{background:#f59e0b}
.household-bar-track span.bills{background:#dc2626}
.household-bar-track span.trustee{background:#3167ad}
.household-bar-row b{text-align:right;color:#0f172a}
.household-notes{display:grid;gap:8px;margin:12px 0}
@media(max-width:900px){.household-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.household-status{display:block}.household-status-money{text-align:left;margin-top:12px;min-width:0}.household-bar-row{grid-template-columns:1fr;gap:5px}.household-bar-row b{text-align:left}}
@media(max-width:560px){.household-card-grid,.person-grid{grid-template-columns:1fr}.household-status h3{font-size:19px}.household-card b{font-size:19px}}

/* Clean Home command center rebuild: single-page summary without overwriting data. */
.home-page.active{display:block}
.clean-home{min-height:calc(100vh - 44px);display:flex;flex-direction:column;gap:12px}
.clean-home-header{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#ffffff;border:1px solid #dbe3ed;border-radius:18px;padding:14px 16px;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.clean-home-header h2{margin:3px 0 2px;font-size:26px;color:#0f172a}
.clean-home-header p{margin:0;color:#64748b;font-size:13px;line-height:1.35}
.clean-home-actions{display:flex;gap:8px;align-items:center;white-space:nowrap}
.clean-home-warnings{max-height:62px;overflow:hidden}
.clean-home-warnings .warn{margin:0 0 6px 0;padding:9px 12px;font-size:13px}
.clean-home-layout{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:14px;align-items:stretch;min-height:0;flex:1 1 auto}
.clean-home-left,.clean-home-right{display:flex;flex-direction:column;gap:12px;min-width:0}
.home-hero-card{background:#ffffff;border:1px solid #dbe3ed;border-radius:20px;overflow:hidden;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.home-hero-main{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-left:8px solid #16a34a;background:linear-gradient(90deg,#f8fffb,#ffffff)}
.home-hero-main.bad{border-left-color:#dc2626;background:linear-gradient(90deg,#fff5f5,#ffffff)}
.home-hero-main h3{margin:4px 0 6px;font-size:24px;color:#0f172a}
.home-hero-main p{margin:0;max-width:740px;color:#334155;line-height:1.38;font-size:14px}
.home-hero-money{font-size:46px;line-height:1;color:#087a24;white-space:nowrap}
.home-hero-money.bad{color:#b00020}
.home-hero-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #e2e8f0;background:#f8fafc}
.home-hero-mini-grid div{padding:12px 14px;border-right:1px solid #e2e8f0}
.home-hero-mini-grid div:last-child{border-right:0}
.home-hero-mini-grid span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800;margin-bottom:4px}
.home-hero-mini-grid b{display:block;color:#0f172a;font-size:16px;line-height:1.2}
.home-hero-mini-grid small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.clean-home-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.home-stat-card{padding:12px 14px;min-height:96px;border:1px solid #dbe3ed;box-shadow:0 2px 8px rgba(15,23,42,.05)}
.home-stat-card .label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.home-stat-card .value{font-size:24px;margin:6px 0 3px;color:#0f172a}
.home-stat-card .value.good{color:#087a24}.home-stat-card .value.bad{color:#b00020}
.home-stat-card small{display:block;color:#64748b;font-size:11px;line-height:1.25}
.clean-spend-card{margin:0;flex:1 1 auto;padding:14px;border-radius:18px;border:1px solid #dbe3ed;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.clean-section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.clean-section-title h3{margin:0 0 3px;color:#0f172a}
.clean-section-title p{margin:0;color:#64748b;font-size:12px;line-height:1.35}
.clean-section-title.compact{align-items:center;margin-bottom:8px}
.clean-section-title.compact h3{margin:0}
.clean-spend-card .spending-answer{margin-bottom:10px;border-radius:16px;grid-template-columns:220px minmax(0,1fr)}
.clean-spend-card .spending-answer-main{padding:14px 16px}
.clean-spend-card .spending-answer-money{font-size:34px}
.clean-spend-card .spending-answer-copy{padding:14px 16px}
.clean-spend-card .spending-answer-copy p{font-size:13px;line-height:1.34}
.clean-spend-card .spend-category-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.clean-spend-card .spend-category-grid div{min-height:66px;padding:9px;border-radius:12px}
.clean-spend-card .spend-category-grid b{font-size:18px}
.clean-spend-card .spending-detail-strip{display:none}
.clean-spend-card .category-note{margin:8px 0 0;padding:8px 10px;font-size:12px}
.clean-home-right .today-safety-panel{margin:0}
.clean-home-right .today-safety-card{display:block;padding:12px;border-radius:18px;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.clean-home-right .today-safety-main h3{font-size:19px;margin:3px 0 5px}
.clean-home-right .today-safety-main p{font-size:12px;line-height:1.34}
.clean-home-right .today-safety-numbers{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.clean-home-right .today-safety-numbers div{padding:8px;border-radius:11px}
.clean-home-right .today-safety-numbers span{font-size:10px;text-transform:uppercase;letter-spacing:.035em;font-weight:800}
.clean-home-right .today-safety-numbers b{font-size:15px}
.clean-home-right .today-safety-numbers small{font-size:10px}
.clean-home-right .today-safety-bills{margin-top:8px;max-height:92px;padding:8px;border-radius:11px}
.clean-home-right .today-safety-bills li{font-size:11px;padding:4px 0}
.clean-goals-card{margin:0;flex:1 1 auto;padding:12px;border-radius:18px;border:1px solid #dbe3ed;box-shadow:0 2px 10px rgba(15,23,42,.06);overflow:hidden}
.clean-goal-list{display:flex;flex-direction:column;gap:7px;max-height:150px;overflow:auto;padding-right:2px}
.clean-goal-list .goal-strip-card{width:100%;padding:8px;flex:0 0 auto}
.clean-goal-list .goal-strip-row{margin:4px 0 3px}
.clean-goal-list .mini-bar{height:7px}
.clean-goals-card .dashboard-do-not-spend{margin-top:10px}
.clean-goals-card .do-not-spend-card{padding:10px;border-radius:13px}
.clean-goals-card .do-not-spend-card b{font-size:23px;margin:3px 0 4px}
.clean-goals-card .do-not-spend-card p{font-size:12px;line-height:1.32}
.clean-home-links{display:flex;justify-content:center;align-items:center;gap:8px;background:#ffffff;border:1px solid #dbe3ed;border-radius:16px;padding:8px;box-shadow:0 2px 10px rgba(15,23,42,.06)}
.clean-home-links .small{min-width:94px}
@media(max-width:1200px){.clean-home-layout{grid-template-columns:1fr}.clean-home-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clean-home-right{display:grid;grid-template-columns:1fr 1fr;align-items:start}.clean-goal-list{max-height:210px}}
@media(max-width:850px){.clean-home{min-height:auto}.clean-home-header{display:block}.clean-home-actions{margin-top:10px}.home-hero-main{display:block}.home-hero-money{display:block;margin-top:12px;font-size:40px}.home-hero-mini-grid{grid-template-columns:1fr}.home-hero-mini-grid div{border-right:0;border-bottom:1px solid #e2e8f0}.home-hero-mini-grid div:last-child{border-bottom:0}.clean-home-right{display:flex}.clean-spend-card .spending-answer{grid-template-columns:1fr}.clean-spend-card .spend-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clean-home-links{justify-content:flex-start;overflow-x:auto}}
@media(max-width:520px){main{padding:14px}.clean-home-stat-grid,.clean-spend-card .spend-category-grid,.clean-home-right .today-safety-numbers{grid-template-columns:1fr}.home-hero-main{padding:15px}.home-hero-main h3{font-size:21px}.home-hero-money{font-size:34px}.clean-home-links .small{min-width:max-content}}


/* True one-screen Home: compact, no report-style scrolling on desktop. */
.home-page.active{display:block;height:calc(100vh - 44px);overflow:hidden}
.home-screen{height:100%;display:grid;grid-template-rows:auto minmax(160px,1.05fr) auto minmax(150px,.9fr) auto;gap:9px;min-height:0}
.home-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #dbe3ed;border-radius:16px;padding:10px 12px;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.home-toolbar h2{margin:1px 0 0;font-size:24px;color:#0f172a}.home-toolbar-right{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.home-toolbar-actions{display:flex;gap:8px;white-space:nowrap}
.home-top-row{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:10px;min-height:0}
.home-bottom-row{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.7fr);gap:10px;min-height:0}
.home-hero-card,.today-safety-panel,.home-spend-panel,.home-right-stack{min-height:0;overflow:hidden}.home-hero-card{border-radius:18px}
.onepage-hero{height:calc(100% - 58px);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:linear-gradient(135deg,#f0fdf4,#fff);border-left:8px solid #16a34a}
.onepage-hero.bad{background:linear-gradient(135deg,#fff1f2,#fff);border-left-color:#dc2626}.onepage-hero h3{margin:4px 0 4px;font-size:26px;color:#0f172a}.onepage-hero p{margin:0;color:#475569;font-size:13px;line-height:1.35}.onepage-hero-money{font-size:52px;font-weight:900;letter-spacing:-.04em;white-space:nowrap}.onepage-hero-money.good{color:#087a24}.onepage-hero-money.bad{color:#b00020}
.onepage-hero-strip{height:58px;display:grid;grid-template-columns:repeat(3,1fr);background:#f8fafc;border-top:1px solid #e2e8f0}.onepage-hero-strip div{padding:9px 11px;border-right:1px solid #e2e8f0;overflow:hidden}.onepage-hero-strip div:last-child{border-right:0}.onepage-hero-strip span,.onepage-safety-numbers span,.onepage-spend-grid span,.home-metric-card span,.onepage-trustee-card span{display:block;text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:800;color:#64748b}.onepage-hero-strip b{display:block;font-size:15px;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.onepage-hero-strip small{display:block;font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.onepage-safety{height:100%;background:#fff;border:1px solid #dbe3ed;border-radius:18px;padding:12px;box-shadow:0 2px 10px rgba(15,23,42,.05);display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px}.onepage-safety.good{border-left:8px solid #16a34a}.onepage-safety.bad{border-left:8px solid #dc2626}.onepage-safety h3{margin:2px 0 0;font-size:18px;color:#0f172a}.onepage-safety-numbers{display:grid;grid-template-columns:1fr 1fr;gap:7px}.onepage-safety-numbers div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:8px}.onepage-safety-numbers b{font-size:17px;color:#0f172a}.onepage-next-bills{min-height:0;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0;border-radius:11px;padding:8px}.onepage-next-bills>b{font-size:12px}.onepage-next-bills ul{list-style:none;margin:4px 0 0;padding:0}.onepage-next-bills li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;border-top:1px solid #e2e8f0;font-size:11px}.onepage-next-bills li:first-child{border-top:0}.onepage-next-bills span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onepage-next-bills b{white-space:nowrap}
.home-metric-grid{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:8px!important}.home-metric-card{background:#fff;border:1px solid #dbe3ed;border-radius:14px;padding:10px 11px;box-shadow:0 2px 8px rgba(15,23,42,.04);min-width:0}.home-metric-card b{display:block;font-size:20px;margin:4px 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-metric-card small{display:block;color:#64748b;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.home-spend-panel{margin:0!important;border-radius:18px;padding:12px!important;display:grid;grid-template-rows:auto auto auto;gap:8px}.home-panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-panel-title h3{margin:0;color:#0f172a}.onepage-spend-answer{display:grid;grid-template-columns:205px minmax(0,1fr);gap:10px;align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:10px}.onepage-spend-answer b{display:block;font-size:32px;letter-spacing:-.03em;color:#087a24}.onepage-spend-answer.bad b{color:#b00020}.onepage-spend-answer p{margin:0!important;color:#475569!important;font-size:13px!important;line-height:1.3!important}.onepage-spend-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.onepage-spend-grid div{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:8px;min-width:0}.onepage-spend-grid b{display:block;font-size:18px;color:#0f172a;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.onepage-small-note{font-size:11px;color:#64748b;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:7px 9px}.home-spend-panel .category-note{margin:0;padding:7px 9px;font-size:11px;line-height:1.25}
.home-right-stack{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px}.home-warnings{max-height:42px;overflow:hidden}.home-warnings .warn{margin:0;padding:8px 10px;font-size:12px}.top-trustee-alert{min-width:245px;max-width:310px}.onepage-trustee-card{background:#fff7ed;border:1px solid #fed7aa;border-left:7px solid #f59e0b;border-radius:14px;padding:9px 11px;box-shadow:0 2px 8px rgba(146,64,14,.10)}.onepage-trustee-card b{display:block;font-size:22px;color:#92400e;margin:1px 0}.onepage-trustee-card small{display:block;color:#7c2d12;font-size:10.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-trustee-alert .onepage-trustee-card{animation:trusteePulse 1.4s ease-out 1}.home-quick-links{display:flex;justify-content:center;align-items:center;gap:8px;background:#fff;border:1px solid #dbe3ed;border-radius:15px;padding:8px 10px;box-shadow:0 2px 8px rgba(15,23,42,.04)}.home-quick-links-center{width:min(560px,100%);justify-self:center}.home-quick-links button{min-width:112px}
@media(max-width:1180px){.home-page.active{height:auto;overflow:visible}.home-screen{height:auto;display:flex;flex-direction:column}.home-top-row,.home-bottom-row{grid-template-columns:1fr}.home-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.onepage-hero{height:auto}.onepage-safety{height:auto}.home-hero-card,.today-safety-panel,.home-spend-panel,.home-right-stack{overflow:visible}}
@media(max-width:700px){main{padding:12px}.home-toolbar{display:block}.home-toolbar-right{display:block;margin-top:8px}.top-trustee-alert{min-width:0;max-width:none}.home-toolbar-actions{margin-top:8px}.onepage-hero{display:block}.onepage-hero-money{font-size:40px;margin-top:8px}.onepage-hero-strip{height:auto;grid-template-columns:1fr}.onepage-hero-strip div{border-right:0;border-bottom:1px solid #e2e8f0}.home-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.onepage-spend-answer,.onepage-spend-grid,.onepage-safety-numbers{grid-template-columns:1fr}.home-quick-links{flex-wrap:wrap;justify-content:center}.home-quick-links button{min-width:120px}}

/* Compact Home overdue list. Shows the actual overdue bills without turning Home into a report page. */
.home-right-stack .overdue-detail-panel{margin:0}
.overdue-compact-card{background:#fff1f2;border:1px solid #fecdd3;border-left:5px solid #dc2626;border-radius:14px;padding:10px;box-shadow:0 2px 8px rgba(127,29,29,.08)}
.overdue-compact-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.overdue-compact-head b{display:block;color:#7f1d1d;font-size:17px;line-height:1.05}
.overdue-compact-head strong{color:#991b1b;font-size:18px;white-space:nowrap}
.overdue-compact-list{display:grid;gap:6px}
.overdue-compact-row{width:100%;border:1px solid #fecdd3;background:#fffafa;border-radius:10px;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;cursor:pointer}
.overdue-compact-row:hover{background:#ffe4e6}
.overdue-compact-row span{min-width:0}
.overdue-compact-row b{display:block;color:#111827;font-size:13px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.overdue-compact-row small{display:block;color:#991b1b;font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.overdue-compact-row strong{color:#991b1b;font-size:13px;white-space:nowrap}
.overdue-more{width:100%;margin-top:8px;background:#fff;border-color:#fecdd3;color:#991b1b}
@media(max-width:760px){.overdue-compact-row b,.overdue-compact-row small{max-width:220px}}

/* Home button strip moved out of the overdue column so past-due items have their own space. */
.home-right-stack .overdue-compact-card{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.home-right-stack .overdue-compact-list{min-height:0;overflow:auto}

/* Plain household money view: Available Spending vs Bills */
.household-money-page .help{max-width:980px}
.household-simple-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:14px;align-items:start;margin:12px 0}
.household-main-panel{height:100%}
.household-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.household-card small{display:block;color:#64748b;font-size:11px;margin-top:5px;line-height:1.25}
.household-card.focus{border:2px solid #1d4ed8;background:#eff6ff}
.household-card.warn{border-left:5px solid #f59e0b;background:#fffbeb}
.household-card.bad{border-left:5px solid #dc2626;background:#fef2f2}
.household-status-money .bad,.household-card .bad,.person-grid .bad,.household-bar-row strong.bad{color:#dc2626}
.household-status-money .good,.household-card .good,.person-grid .good,.household-bar-row strong.good{color:#166534}
.household-bars{gap:12px}
.household-bar-row{grid-template-columns:165px minmax(150px,1fr) 112px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:10px}
.household-bar-row label{display:block}
.household-bar-row label b{display:block;color:#0f172a;font-size:13px;margin-bottom:2px}
.household-bar-row label small{display:block;color:#64748b;font-weight:500;font-size:11px;line-height:1.2}
.household-bar-row strong{text-align:right;color:#0f172a;font-size:16px}
.household-bar-track{height:18px}
.household-bar-track span.optional{background:#94a3b8}
.household-bar-track span.left{background:#2563eb}
.household-bar-row.negative .household-bar-track span.left{background:#dc2626}
.household-detail-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;align-items:start}
.household-detail-grid h4{margin:4px 0 8px;color:#334155;font-size:15px}
.household-detail-panel table small{color:#64748b}
.muted-detail{opacity:.92}
@media(max-width:1050px){.household-simple-grid,.household-detail-grid{grid-template-columns:1fr}.household-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.household-card-grid{grid-template-columns:1fr}.household-bar-row{grid-template-columns:1fr;gap:7px}.household-bar-row strong{text-align:left}.household-simple-grid{gap:10px}.household-status-money b{font-size:22px}}
