:root{--bg:#f5efe4;--surface:#fffbf5e0;--surface-strong:#fffdf8;--line:#5a3f2b24;--ink:#2c1e17;--muted:#775f53;--accent:#d3633b;--accent-dark:#9f4a2b;--accent-soft:#d3633b1f;--success:#1e7d5e;--danger:#b24d45;--income:#1d7f58;--expense:#b44f3c;--shadow:0 18px 40px #6f47241f}*{box-sizing:border-box}#root,body,html{min-height:100%}body{background:radial-gradient(circle at top left,#d67d4033,#0000 28%),radial-gradient(circle at top right,#7a9a812e,#0000 32%),linear-gradient(180deg,#f8f3ea,#f2eadf 52%,#efe5d9);color:#172026;color:var(--ink);font-family:Trebuchet MS,Segoe UI,sans-serif;margin:0}a{color:inherit}button,input,select,textarea{font:inherit}.top-nav{align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#faf4ecd1;border-bottom:1px solid #d8e1e5;border-bottom:1px solid var(--line);display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.4rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand-kicker{color:#60717b;color:var(--muted);font-size:.72rem;letter-spacing:.2em;margin:0;text-transform:uppercase}.brand-title{display:block;font-size:1.15rem;font-weight:700;margin-top:.2rem}.nav-links{display:flex;flex-wrap:wrap;gap:.6rem}.nav-link{border-radius:999px;color:#60717b;color:var(--muted);padding:.7rem 1rem;text-decoration:none;transition:background-color .2s ease,color .2s ease,transform .2s ease}.nav-link.active,.nav-link:hover{background:#f8fbfc;background:var(--surface-strong);color:#172026;color:var(--ink);transform:translateY(-1px)}.nav-year-field{align-items:center;display:inline-flex;gap:0;margin-bottom:0}.nav-year-field select{background:#fff;background:var(--surface);border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;color:#172026;color:var(--ink);cursor:pointer;font-size:.9rem;font-weight:600;min-width:80px;padding:.5rem .6rem}.nav-year-field select:hover{border-color:#0f766e;border-color:var(--accent)}.nav-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.nav-action-button{white-space:nowrap}.planner-page{margin:0 auto;padding:1.5rem 0 3rem;width:min(1320px,calc(100% - 2rem))}.hero-card,.message-banner,.panel,.stat-card{background:#fff;background:var(--surface);border:1px solid #d8e1e5;border:1px solid var(--line);box-shadow:0 10px 28px #1c2c3414;box-shadow:var(--shadow)}.hero-card{grid-gap:1.5rem;border-radius:28px;display:grid;gap:1.5rem;grid-template-columns:1.4fr 1fr;padding:1.7rem}.eyebrow,.panel-kicker{color:#60717b;color:var(--muted);font-size:.74rem;letter-spacing:.18em;margin:0 0 .5rem;text-transform:uppercase}.hero-card h1,.panel h2{font-size:clamp(1.6rem,2.2vw,2.5rem);line-height:1.05;margin:0}.hero-copy{color:#60717b;color:var(--muted);line-height:1.55;margin:.9rem 0 0;max-width:48rem}.hero-actions{grid-gap:.85rem;align-content:start;display:grid;gap:.85rem}.editor-grid,.stats-grid{grid-gap:1rem;display:grid;gap:1rem;margin-top:1rem}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-grid{grid-template-columns:1.5fr 1fr}.stat-card{border-radius:24px;padding:1rem 1.15rem}.stat-card p{color:#60717b;color:var(--muted);margin:0}.stat-card strong{display:block;font-size:1.45rem;margin-top:.55rem}.stat-card.income strong{color:#047857;color:var(--income)}.stat-card.expense strong{color:#b45309;color:var(--expense)}.panel{border-radius:28px;margin-top:1rem;padding:1.25rem}.panel-accent{background:linear-gradient(135deg,#d3633b1c,#0000 70%),#fffbf5e6}.panel-header,.section-header{align-items:start;display:flex;gap:1rem;justify-content:space-between}.section-actions{display:flex;flex-wrap:wrap;gap:.6rem}.panel-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:end}.ghost-button,.link-button,.primary-button{border:1px solid #0000;border-radius:14px;cursor:pointer;text-decoration:none;transition:transform .2s ease,background-color .2s ease,border-color .2s ease}.ghost-button,.primary-button{padding:.8rem 1rem}.primary-button{background:linear-gradient(135deg,#0f766e,#115e59);background:linear-gradient(135deg,var(--accent) 0,var(--accent-dark) 100%);color:#fff}.ghost-button{background:#f8fbfc;background:var(--surface-strong);border-color:#d8e1e5;border-color:var(--line);color:#172026;color:var(--ink)}.link-button{background:#0000;color:#b42318;color:var(--danger);padding:.2rem 0}.ghost-button:hover,.link-button:hover,.primary-button:hover{transform:translateY(-1px)}.ghost-button:disabled,.link-button:disabled,.primary-button:disabled{cursor:default;opacity:.55;transform:none}.message-banner{border-radius:18px;margin-top:1rem;padding:.95rem 1.1rem}.message-banner.success{background:#1e7d5e14;color:#15803d;color:var(--success)}.message-banner.error{background:#b24d4514;color:#b42318;color:var(--danger)}.admin-page .editor-grid{grid-template-columns:.95fr 1.35fr}.admin-hero{background:radial-gradient(circle at 10% 20%,#1e7d5e26,#0000 26%),linear-gradient(135deg,#fffbf5f0,#faecdedb)}.admin-link-button{margin-top:1rem;width:-webkit-fit-content;width:fit-content}.meta-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.field{grid-gap:.45rem;display:grid;gap:.45rem}.field span{color:#60717b;color:var(--muted);font-size:.84rem}.field input,.field select,.field textarea,.planner-table input,.planner-table select{background:#ffffffdb;border:1px solid #76533d2e;border-radius:14px;color:#172026;color:var(--ink);padding:.82rem .92rem;width:100%}.multi-select{min-height:7.5rem}.field textarea{resize:vertical}.compact-field input,.compact-field select{min-width:0}.field-wide{grid-column:span 2}.insight-list{color:#60717b;color:var(--muted);line-height:1.6;margin:1rem 0 0;padding-left:1.1rem}.admin-grid{grid-gap:.9rem}.account-sync-grid,.admin-grid{display:grid;gap:.9rem;margin-top:1rem}.account-sync-grid{grid-gap:.9rem;align-items:end;grid-template-columns:minmax(16rem,1fr) minmax(16rem,1fr) auto}.batch-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.account-tags-panel{margin-top:1rem}.account-summary{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(4,minmax(0,1fr))}.account-tags-table .selected-row td{background:#eaf6f4}.tag-select-button{background:#0000;border:0;color:#115e59;color:var(--accent-dark);cursor:pointer;font-weight:700;padding:0;text-align:left}.danger-button{color:#b42318;color:var(--danger)}.checkbox-line{align-items:center;grid-template-columns:auto 1fr}.checkbox-line input{width:auto}.section-block+.section-block{margin-top:1.5rem;padding-top:1.5rem}.section-header h3{font-size:1.15rem;margin:0}.section-header p{color:#60717b;color:var(--muted);line-height:1.5;margin:.45rem 0 0}.table-scroll{margin-top:1rem;overflow-x:auto}.planner-table{border-collapse:collapse;width:100%}.planner-table-wide{min-width:1200px}.planner-table td,.planner-table th{border-bottom:1px solid #76533d1f;padding:.8rem .7rem;text-align:left;vertical-align:top}.planner-table th{color:#60717b;color:var(--muted);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.checkbox-cell{width:5rem}.checkbox-cell input{width:auto}.empty-cell,.empty-state{color:#60717b;color:var(--muted)}.empty-cell{padding:1.2rem;text-align:center}.empty-state{margin:.5rem 0 0}.muted-cell{font-size:.82rem}.inline-meta,.muted-cell{color:#60717b;color:var(--muted)}.inline-meta{grid-gap:.15rem;display:grid;font-size:.78rem;gap:.15rem;margin-top:.55rem}.inline-meta strong{color:#172026;color:var(--ink)}.resource-meta{grid-gap:.15rem;color:#60717b;color:var(--muted);display:grid;font-size:.75rem;gap:.15rem;margin-top:.3rem}.tag-list{display:flex;flex-wrap:wrap;gap:.35rem}.tag-chip{align-items:center;background:#0f766e1a;background:var(--accent-soft);border-radius:999px;color:#115e59;color:var(--accent-dark);display:inline-flex;font-size:.78rem;padding:.22rem .55rem}.sync-runs{grid-gap:1rem;display:grid;gap:1rem;margin-top:1rem}.sync-run-card{background:#ffffffb8;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:18px;padding:1rem}.sync-run-head{align-items:start;display:flex;gap:1rem;justify-content:space-between}.sync-run-head p{margin:.3rem 0 0}.sync-run-head p,.sync-run-meta{color:#60717b;color:var(--muted)}.sync-run-meta{grid-gap:.2rem;display:grid;font-size:.84rem;gap:.2rem;justify-items:end}.sync-log-list{color:#60717b;color:var(--muted);margin:.9rem 0 1rem;padding-left:1.1rem}.sync-log-list li+li{margin-top:.45rem}.sync-log-list small,.sync-log-list span,.sync-log-list strong{display:block}@media (max-width:1040px){.editor-grid,.hero-card,.meta-grid,.stats-grid{grid-template-columns:1fr}.field-wide{grid-column:span 1}}@media (max-width:720px){.planner-page{padding-top:1rem;width:min(100% - 1rem,1320px)}.top-nav{align-items:start;flex-direction:column;padding:.85rem 1rem}.hero-card,.panel,.stat-card{border-radius:22px}.panel-header,.section-header{flex-direction:column}.panel-actions{justify-content:start}}:root{--bg:#eef3f5;--surface:#fff;--surface-strong:#f8fbfc;--line:#d8e1e5;--ink:#172026;--muted:#60717b;--accent:#0f766e;--accent-dark:#115e59;--accent-soft:#0f766e1a;--success:#15803d;--danger:#b42318;--income:#047857;--expense:#b45309;--shadow:0 10px 28px #1c2c3414}body{background:linear-gradient(180deg,#d8e8eba6,#eef3f533 260px),#eef3f5;background:linear-gradient(180deg,#d8e8eba6,#eef3f533 260px),var(--bg);font-family:Segoe UI,Trebuchet MS,sans-serif}.top-nav{background:#ffffffe6;box-shadow:0 1px 0 #d8e1e5;box-shadow:0 1px 0 var(--line)}.brand-kicker,.eyebrow,.panel-kicker{letter-spacing:.12em}.field input,.field select,.field textarea,.ghost-button,.hero-card,.link-button,.message-banner,.nav-link,.panel,.planner-table input,.planner-table select,.primary-button,.stat-card,.sync-run-card{border-radius:8px}.planner-page{padding-top:1rem;width:min(1500px,calc(100% - 2rem))}.hero-card{align-items:end;background:#fff;background:var(--surface);grid-template-columns:minmax(0,1fr) auto;padding:1rem}.hero-card h1{font-size:1.55rem;line-height:1.18}.hero-copy{display:none}.hero-actions{align-items:end;grid-template-columns:minmax(12rem,16rem) minmax(8rem,10rem) minmax(12rem,16rem) auto}.stats-grid{grid-template-columns:repeat(4,minmax(11rem,1fr))}.dashboard-workspace{margin-top:1rem}.dashboard-toolbar{grid-gap:1rem;align-items:end;background:#fff;background:var(--surface);border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #1c2c3414;box-shadow:var(--shadow);display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;padding:1rem}.dashboard-toolbar h2{margin:0}.dashboard-editor{margin-top:1rem}.dashboard-editor-head,.widget-config-row{align-items:start;display:flex;gap:1rem;justify-content:space-between}.dashboard-editor-head h3{margin:0 0 .35rem}.dashboard-editor-head p,.widget-config-row span{color:#60717b;color:var(--muted);margin:0}.widget-config-list{grid-gap:.7rem;display:grid;gap:.7rem;margin-top:1rem}.widget-config-row{background:#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;padding:.85rem}.widget-config-row span,.widget-config-row strong{display:block}.widget-config-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.widget-config-actions .ghost-button,.widget-config-actions .link-button{min-height:2rem;padding:.35rem .6rem}.add-widget-field{margin-top:1rem;max-width:24rem}.dashboard-widget-grid{grid-gap:1rem;align-items:stretch;display:grid;gap:1rem;grid-template-columns:minmax(0,1.65fr) minmax(18rem,.75fr)}.dashboard-widget-wide{grid-column:span 2}.dashboard-widget-grid>.stats-grid{margin-top:1rem}.budget-pulse,.chart-panel{min-height:18rem}.cashflow-chart{display:grid;grid-template-rows:1fr auto;margin-top:1rem;min-height:14rem}.cashflow-month{grid-gap:.45rem;align-items:end;display:grid;gap:.45rem;grid-template-rows:10rem auto}.cashflow-chart{gap:.55rem;grid-template-columns:repeat(12,minmax(2.7rem,1fr))}.cashflow-bars{grid-gap:.18rem;align-items:end;background:linear-gradient(180deg,#d8e1e580 1px,#0000 0) 0 0 /100% 25%,#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;display:grid;gap:.18rem;grid-template-columns:repeat(4,1fr);height:10rem;padding:.55rem .35rem 0}.bar,.variance-bar{border-radius:999px 999px 3px 3px;display:block;min-height:.35rem}.chart-tooltip{cursor:help;position:relative}.chart-tooltip:after{border:1px solid #1720261f;border-radius:8px;bottom:calc(100% + .55rem);box-shadow:0 10px 24px #1720262e;color:#fff;content:attr(data-tooltip);font-size:.78rem;line-height:1.25;max-width:16rem;min-width:-webkit-max-content;min-width:max-content;padding:.45rem .6rem;transform:translate(-50%,.25rem);white-space:nowrap;z-index:5}.chart-tooltip:after,.chart-tooltip:before{background:#172026f0;left:50%;opacity:0;pointer-events:none;position:absolute;transition:opacity .14s ease,transform .14s ease}.chart-tooltip:before{bottom:calc(100% + .25rem);content:"";height:.55rem;transform:translate(-50%,.25rem) rotate(45deg);width:.55rem;z-index:6}.chart-tooltip:focus-visible:after,.chart-tooltip:focus-visible:before,.chart-tooltip:hover:after,.chart-tooltip:hover:before{opacity:1;transform:translate(-50%) rotate(0deg)}.chart-tooltip:focus-visible:before,.chart-tooltip:hover:before{transform:translate(-50%) rotate(45deg)}.income-plan,.legend-dot.income-plan{background:#04785761}.income-actual,.legend-dot.income-actual{background:#047857}.expense-plan,.legend-dot.expense-plan{background:#b4530959}.expense-actual,.legend-dot.expense-actual{background:#b45309}.chart-label{font-size:.78rem;text-align:center}.chart-label,.chart-legend{color:#60717b;color:var(--muted)}.chart-legend{display:flex;flex-wrap:wrap;font-size:.84rem;gap:.75rem 1rem;grid-column:1/-1;margin-top:.8rem}.chart-legend span{align-items:center;display:inline-flex;gap:.35rem}.legend-dot{border-radius:999px;height:.72rem;width:.72rem}.budget-pulse{grid-gap:1rem;align-content:start;display:grid;gap:1rem}.pulse-meter{background:#dbe7e8;border-radius:999px;height:.85rem;overflow:hidden}.pulse-meter span{background:#15803d;background:var(--success);border-radius:inherit;display:block;height:100%}.pulse-meter span.risk{background:#b42318;background:var(--danger)}.pulse-grid{grid-gap:.55rem 1rem;color:#60717b;color:var(--muted);display:grid;gap:.55rem 1rem;grid-template-columns:1fr auto}.pulse-grid strong{color:#172026;color:var(--ink)}.checklist{grid-gap:.65rem;display:grid;gap:.65rem;margin-top:1rem}.check-item{grid-gap:.18rem;background:#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-left:4px solid #94a3b8;border-radius:8px;display:grid;gap:.18rem;padding:.75rem}.check-item.ok{border-left-color:#15803d;border-left-color:var(--success)}.check-item.risk{border-left-color:#b42318;border-left-color:var(--danger)}.check-item span{color:#60717b;color:var(--muted);font-size:.86rem}.analytics-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.mini-chart-card{background:#f8fbfc;background:var(--surface-strong);border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;padding:1rem}.mini-chart-card h3{font-size:1rem;margin:0 0 .8rem}.variance-strip{grid-gap:.45rem;align-items:end;display:grid;gap:.45rem;grid-template-columns:repeat(12,minmax(1.8rem,1fr));height:9rem}.variance-column{grid-gap:.35rem;align-items:end;color:#60717b;color:var(--muted);display:grid;font-size:.72rem;gap:.35rem;grid-template-rows:1fr auto;height:100%;text-align:center}.variance-bar.ok{background:#15803d;background:var(--success)}.variance-bar.risk{background:#b42318;background:var(--danger)}.row-balance-risk td,.row-expense-overrun td,.row-income-lag td{background:#fff7ed}.income-summary-panel{margin-top:20px}.income-info-banner{background:#fff8e6;border-left:4px solid #b7791f;color:#5f430f;font-size:14px;line-height:1.45;margin-bottom:16px;padding:12px 14px}.income-summary-table td,.income-summary-table th{white-space:nowrap}.income-subtotal-row td{background:#f0f4ff;border-top:2px solid #cbd5e1;font-weight:600}.risk-pill{background:#b423181a;border-radius:999px;color:#b42318;color:var(--danger);display:inline-flex;font-size:.72rem;font-weight:700;margin-left:.45rem;padding:.15rem .45rem}.risk-value{color:#b42318!important;color:var(--danger)!important;font-weight:700}.planfact-table .section-col{width:12rem}.planfact-table .section-cell{background:#f8fbfc;background:var(--surface-strong);border-right:3px solid #0f766e;border-right:3px solid var(--accent);color:#172026;color:var(--ink);font-weight:700}.planfact-table .section-cell-empty{color:#60717b;color:var(--muted);font-style:italic}.planfact-table tfoot td{border-bottom:none;border-top:2px solid #172026;border-top:2px solid var(--ink);font-weight:700}.planfact-table .planfact-total-row td,.planfact-total-row td{background:#f8fbfc;background:var(--surface-strong)}.good-value{color:#15803d;color:var(--success);font-weight:700}.stat-card{background:#fff;background:var(--surface);padding:.85rem 1rem}.stat-card strong{font-size:1.2rem}.editor-grid{align-items:start;grid-template-columns:minmax(0,1fr) 24rem}.panel{background:#fff;background:var(--surface);padding:1rem}.panel-accent{background:#f8fbfc;background:var(--surface-strong)}.ghost-button,.link-button,.primary-button{align-items:center;display:inline-flex;gap:.45rem;justify-content:center;min-height:2.55rem;white-space:nowrap}.primary-button{background:#0f766e;background:var(--accent)}.primary-button:hover{background:#115e59;background:var(--accent-dark)}.ghost-button{background:#fff}.field input,.field select,.field textarea,.planner-table input,.planner-table select{background:#fff;border-radius:6px}.switch-line{grid-gap:.6rem;align-items:start;background:#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;color:#172026;color:var(--ink);display:grid;font-size:.9rem;gap:.6rem;grid-template-columns:auto 1fr;line-height:1.35;padding:.75rem}.switch-line input{margin-top:.15rem}.section-block{background:#f8fbfc;background:var(--surface-strong);border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;padding:1rem}.section-block+.section-block{border-top:1px solid #d8e1e5;border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.section-header h3{font-size:1rem}.planner-table{border-spacing:0}.planner-table th{background:#eef5f6;color:#41525b;letter-spacing:.06em;position:-webkit-sticky;position:sticky;top:0;z-index:1}.planner-table td{background:#fff}.planner-table tbody tr:hover td{background:#f7fbfb}.tag-chip{border-radius:6px}.sync-run-card{box-shadow:none}@media (max-width:1180px){.account-summary,.account-sync-grid,.analytics-grid,.dashboard-toolbar,.dashboard-widget-grid,.editor-grid,.hero-actions,.hero-card,.stats-grid{grid-template-columns:1fr}.dashboard-widget-wide{grid-column:span 1}.cashflow-chart{grid-template-columns:repeat(12,minmax(3rem,1fr));overflow-x:auto}}.version-info{color:#60717b;color:var(--muted);font-size:.78rem;margin:.55rem 0 0}.version-info code{background:#0000000f;border-radius:4px;font-size:.75rem;padding:.12rem .35rem}.expense-type-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}.expense-type-card{grid-gap:.75rem;background:#f8fbfc;background:var(--surface-strong);border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;display:grid;gap:.75rem;padding:1rem}.expense-type-card-head{grid-gap:.35rem;display:grid;gap:.35rem}.expense-type-card-head h4{color:#172026;color:var(--ink);font-size:1rem;margin:0}.expense-type-amounts{grid-gap:.15rem;display:grid;font-size:.84rem;gap:.15rem}.expense-type-plan{color:#60717b;color:var(--muted)}.expense-type-bars{grid-gap:.45rem;display:grid;gap:.45rem}.expense-bar-track{background:#e8eef0;border-radius:999px;height:.7rem;overflow:hidden}.expense-bar{border-radius:999px;display:block;height:100%;min-width:.25rem}.expense-bar-plan{background:#b4530959}.expense-bar-actual{background:#b45309}.expense-bar-risk{background:#b42318;background:var(--danger)}.expense-type-variance{color:#60717b;color:var(--muted);font-size:.84rem}.expense-monthly-chart{grid-gap:.55rem;display:grid;gap:.55rem;grid-template-columns:repeat(12,minmax(3.2rem,1fr));margin-top:1rem}.expense-monthly-column{grid-gap:.45rem;align-items:end;display:grid;gap:.45rem;grid-template-rows:11rem auto}.expense-monthly-bars{grid-gap:.2rem;align-items:end;background:linear-gradient(180deg,#d8e1e580 1px,#0000 0) 0 0 /100% 25%,#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:8px;display:grid;gap:.2rem;grid-template-columns:repeat(3,1fr);height:100%;padding:.4rem .25rem 0}.expense-monthly-group{grid-gap:.15rem;align-items:end;display:grid;gap:.15rem;grid-template-columns:1fr;height:100%}.expense-monthly-bar{border-radius:999px 999px 2px 2px;min-height:3px;width:100%}.legend-recurring{background:#b4530959;border:2px solid #b4530999}.legend-onetime{background:#0891b2}.legend-limit{background:#7c3aed}.pulse-breakdown{border-top:1px solid #d8e1e5;border-top:1px solid var(--line);margin-top:.5rem;padding-top:.75rem}.pulse-breakdown h4{color:#60717b;color:var(--muted);font-size:.88rem;margin:0 0 .65rem}.pulse-breakdown-grid{grid-gap:.55rem;display:grid;gap:.55rem}.pulse-breakdown-item{grid-gap:.55rem;align-items:center;display:grid;gap:.55rem;grid-template-columns:7rem 1fr auto}.pulse-breakdown-label{color:#60717b;color:var(--muted);font-size:.82rem}.pulse-breakdown-bar{background:#e8eef0;border-radius:999px;height:.55rem;overflow:hidden}.pulse-breakdown-fill{background:#15803d;background:var(--success);border-radius:999px;display:block;height:100%}.pulse-breakdown-fill.risk{background:#b42318;background:var(--danger)}.pulse-breakdown-value{font-size:.8rem;white-space:nowrap}@media (max-width:1040px){.expense-monthly-chart,.expense-type-summary{grid-template-columns:1fr}.expense-monthly-chart{grid-template-columns:repeat(12,minmax(4rem,1fr));overflow-x:auto;padding-bottom:.5rem}}.dialog-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17202673;display:flex;inset:0;justify-content:center;position:fixed;z-index:100}.dialog-panel{background:#fff;background:var(--surface);border-radius:12px;box-shadow:0 20px 48px #17202633;padding:1.5rem;width:min(32rem,calc(100% - 2rem))}.dialog-panel h2{margin:0 0 1rem}.dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.amount-cell{min-width:9rem}.amount-input{font-feature-settings:"tnum";font-size:.95rem;font-variant-numeric:tabular-nums}.month-range-picker{grid-gap:.5rem;display:grid;gap:.5rem}.month-range-label{color:#60717b;color:var(--muted);font-size:.78rem}.month-range-grid{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(4,1fr)}.month-range-cell{background:#fff;border:1px solid #d8e1e5;border:1px solid var(--line);border-radius:4px;color:#172026;color:var(--ink);cursor:pointer;font-size:.75rem;padding:.25rem .35rem;text-align:center;transition:background-color .15s ease,border-color .15s ease}.month-range-cell.selected,.month-range-cell:hover{border-color:#0f766e;border-color:var(--accent)}.month-range-cell.selected{background:#0f766e1a;background:var(--accent-soft);color:#115e59;color:var(--accent-dark)}.month-range-cell.range-end,.month-range-cell.range-start{background:#0f766e;background:var(--accent);color:#fff}.pie-chart-wrapper{align-items:center;display:flex;gap:2rem;margin-top:1rem}.donut-chart{border-radius:50%;flex-shrink:0;height:12rem;position:relative;width:12rem}.donut-center{align-items:center;background:#fff;background:var(--surface);border-radius:50%;display:flex;flex-direction:column;inset:25%;justify-content:center;position:absolute;text-align:center}.donut-center strong{font-size:1.1rem;line-height:1.1}.donut-center span{color:#60717b;color:var(--muted);font-size:.75rem;margin-top:.2rem}.pie-legend{grid-gap:.5rem;align-content:start;display:grid;flex:1 1;gap:.5rem;max-height:18rem;overflow-y:auto}.pie-legend-item{grid-gap:.5rem;align-items:center;display:grid;font-size:.88rem;gap:.5rem;grid-template-columns:auto 1fr auto auto}.pie-legend-dot{border-radius:4px;height:.8rem;width:.8rem}.pie-legend-label{color:#172026;color:var(--ink)}.pie-legend-amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.pie-legend-pct{color:#60717b;color:var(--muted);font-size:.8rem}.planfact-bars{grid-gap:.75rem;display:grid;gap:.75rem;margin-top:1rem}.planfact-bar-row{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:minmax(8rem,1fr) 2fr auto}.planfact-bar-label{color:#172026;color:var(--ink);font-size:.88rem;font-weight:500}.planfact-bar-tracks{grid-gap:.25rem;display:grid;gap:.25rem}.planfact-bar-track{background:#e8eef0;border-radius:999px;height:.65rem;overflow:hidden}.planfact-bar-plan{background:#b4530959}.planfact-bar-actual,.planfact-bar-plan{border-radius:999px;display:block;height:100%;min-width:.25rem}.planfact-bar-actual{background:#b45309}.planfact-bar-risk{background:#b42318;background:var(--danger)}.planfact-bar-values{grid-gap:.35rem;font-feature-settings:"tnum";display:grid;font-size:.82rem;font-variant-numeric:tabular-nums;gap:.35rem;grid-template-columns:1fr 1fr 1fr;white-space:nowrap}.planfact-bar-plan-val{color:#60717b;color:var(--muted)}.heatmap-container{margin-top:1rem;overflow-x:auto}.heatmap-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:minmax(8rem,1fr) repeat(12,minmax(5rem,1fr));min-width:0}.heatmap-header{background:#eef5f6;border-radius:4px;color:#60717b;color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.06em;padding:.45rem .5rem;text-align:center;text-transform:uppercase}.heatmap-corner{text-align:left}.heatmap-label{background:#f8fbfc;background:var(--surface-strong);border-radius:4px;color:#172026;color:var(--ink);font-size:.84rem;overflow:hidden;padding:.45rem .5rem;text-overflow:ellipsis;white-space:nowrap}.heatmap-cell{font-feature-settings:"tnum";border-radius:4px;font-size:.75rem;font-variant-numeric:tabular-nums;padding:.35rem .4rem;text-align:center}.heatmap-cell-active{color:#7c2d12;font-weight:600}.heatmap-legend{align-items:center;color:#60717b;color:var(--muted);display:flex;font-size:.78rem;gap:.5rem;margin-top:.75rem}.heatmap-legend-bar{background:linear-gradient(90deg,#fef3c7,#dc2626);border-radius:999px;display:block;height:.65rem;width:6rem}@media (max-width:1040px){.pie-chart-wrapper{align-items:center;flex-direction:column}.planfact-bar-row{gap:.35rem;grid-template-columns:1fr}}
/*# sourceMappingURL=main.949a5756.css.map*/