*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit}.shell{min-height:100vh;display:grid;place-items:center;padding:32px}.panel{width:min(920px,100%);padding:32px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.eyebrow{margin-bottom:10px;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1{margin:0;font-size:2.2rem;line-height:1.1}h2{margin:0 0 16px;line-height:1.3}.lead,h2{font-size:1rem}.lead{max-width:680px;margin:16px 0 0;color:var(--muted);line-height:1.6}.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px;margin:28px 0}.status-grid div{min-width:0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}dt{color:var(--muted);font-size:.78rem;text-transform:uppercase}dd,dt{font-weight:700}dd{overflow-wrap:anywhere;margin:8px 0 0}.operation-list{display:flex;flex-wrap:wrap;gap:8px}.actions{margin-top:24px}.app-auth-loading,.auth-page-wrap,.landing-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-page-card,.landing-card{width:min(560px,100%);display:grid;grid-gap:14px;gap:14px;padding:28px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 20px 60px rgba(18,34,66,.08)}.landing-card-wide{width:min(980px,100%);gap:16px;background:radial-gradient(circle at top right,rgba(20,143,119,.14),transparent 48%),radial-gradient(circle at top left,rgba(21,100,180,.12),transparent 45%),#ffffff}.landing-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.landing-auth-actions{display:flex;gap:10px;flex-wrap:wrap}.landing-theme-toggle{min-width:110px}.landing-logo{width:180px;max-width:100%;height:auto}.landing-kicker{margin:0;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.auth-page-card h1,.landing-card h1{margin:0;font-size:1.9rem}.auth-page-card p,.landing-card p{margin:0;color:var(--muted);line-height:1.5}.landing-lead{max-width:70ch}.landing-download-panel{display:grid;grid-gap:8px;gap:8px;padding:16px;border:1px solid rgba(24,124,108,.25);border-radius:10px;background:rgba(242,250,248,.9)}.landing-download-panel h2{margin:0;font-size:1.2rem}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.landing-feature-card{display:grid;grid-gap:6px;gap:6px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#ffffff}.landing-feature-card h3{margin:0;font-size:1rem}.landing-feature-card p{margin:0}.demo-bars-like-finance{display:grid;grid-gap:.75rem;gap:.75rem}.demo-bars-like-finance-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(180px,2fr) auto;grid-gap:.75rem;gap:.75rem;align-items:center}.demo-bars-like-finance-row div{height:10px;border-radius:999px;background:color-mix(in srgb,var(--line) 75%,transparent);overflow:hidden}.demo-bars-like-finance-row i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#12957f,#2f8ef9)}html[data-theme=dark] .demo-bars-like-finance-row div{background:rgba(86,110,136,.35)}.landing-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.landing-bottom-actions{padding-top:4px}.demo-centered-shell{width:min(1320px,100%);padding:24px}.demo-finance-stack{width:min(1200px,100%);margin:0 auto}@media (max-width:860px){.demo-centered-shell{padding:18px}.landing-feature-grid{grid-template-columns:1fr}.landing-topbar{align-items:flex-start;flex-direction:column}}html[data-theme=dark] .landing-card-wide{background:radial-gradient(circle at top right,rgba(29,207,173,.16),transparent 48%),radial-gradient(circle at top left,rgba(67,144,255,.16),transparent 45%),rgba(15,23,42,.9)}html[data-theme=dark] .landing-download-panel{background:rgba(17,35,52,.8);border-color:rgba(80,180,160,.35)}html[data-theme=dark] .landing-feature-card{background:rgba(18,29,45,.88)}.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-form label{font-size:.86rem;color:var(--muted);font-weight:700}.auth-form input{min-height:42px;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--text);font:inherit;padding:0 12px}.auth-form input:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,white);outline-offset:0;border-color:var(--accent)}:is(html[data-theme=dark],html.dark) .auth-form input{background:rgba(10,18,30,.9);border-color:rgba(120,145,175,.45);color:#e5edf7}:is(html[data-theme=dark],html.dark) .auth-form input::placeholder{color:rgba(173,188,208,.85)}.auth-error{margin:0;color:var(--danger);font-weight:700}.auth-legal-links{padding-top:14px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;font-size:.78rem}.auth-legal-links a{color:var(--muted);text-underline-offset:3px}.auth-legal-links a:focus-visible,.auth-legal-links a:hover{color:var(--accent-strong)}.app-auth-loading{gap:12px;text-align:center}.button{border:0;border-radius:6px;background:var(--accent);color:#ffffff}.button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 14px;cursor:pointer;font:inherit;font-weight:700;text-decoration:none;white-space:nowrap}.secondary-button{border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}.button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.56}code{padding:6px 8px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:.85rem}.notice,.status-card{margin-top:28px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--muted)}.notice.error{border-color:#e0a7a3;background:#fff5f4;color:#8b2c25}:is(html[data-theme=dark],html.dark) .notice,:is(html[data-theme=dark],html.dark) .status-card{border-color:rgba(103,124,150,.35);background:rgba(16,26,40,.88);color:#b9c8da}:is(html[data-theme=dark],html.dark) .notice.error{border-color:rgba(210,120,120,.5);background:rgba(80,29,32,.72);color:#ffd3d0}.status-card{display:grid;grid-gap:12px;gap:12px}.status-card.success{border-color:#a8d3c8;background:#f5fbf9}.status-card>span{color:var(--muted)}.status-row{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.status-row:last-child{padding-bottom:0;border-bottom:0}.status-row span{color:var(--muted)}.status-row strong{text-align:right}.app-shell{display:grid;grid-template-rows:auto auto 1fr}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;min-height:64px;gap:16px;padding:12px 24px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand-link{display:inline-flex;align-items:center;min-height:28px;font-size:1rem;font-weight:800;text-decoration:none}.app-header p{margin:2px 0 0}.user-indicator{display:inline-flex;align-items:flex-end;flex-direction:column;gap:2px;color:var(--text);font-size:.88rem;text-align:right}.user-indicator strong{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-indicator small{font-size:.72rem}.user-indicator small,.user-indicator-muted{color:var(--muted);font-weight:800}.auth-banner{padding:10px 24px;border-bottom:1px solid var(--line);background:#fff8ea}.auth-banner strong,.auth-state strong{color:var(--text)}.auth-banner p,.auth-state p{margin:2px 0 0;line-height:1.45}.auth-banner-warning{background:#fff8ea;color:#7a5200}.auth-banner-error{border-color:#e0a7a3}.auth-state{display:grid;grid-gap:10px;gap:10px;align-content:center;width:min(720px,100%);min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.auth-state-warning{background:#fffdf8}.auth-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.secondary-link,.text-link{color:var(--accent);font-weight:700;text-decoration:none}.secondary-link{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.app-frame{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:0}.app-shell.sidebar-collapsed .app-frame{grid-template-columns:88px minmax(0,1fr)}.app-sidebar{display:flex;flex-direction:column;top:64px;height:calc(100vh - 64px);overflow-y:auto;padding:20px 16px;background:#fbfcfd}.app-sidebar-item-group,.app-sidebar-nav{display:grid;grid-gap:4px;gap:4px}.app-sidebar-subnav{display:grid;grid-gap:3px;gap:3px;margin-left:14px;padding-left:8px;border-left:1px solid var(--line)}.nav-sub-item{min-height:34px;padding:0 10px;font-weight:600}.nav-sub-item .nav-item-icon{width:18px;height:18px;font-size:.8rem}.app-sidebar-toggle{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;cursor:pointer}.app-sidebar-toggle:hover{border-color:var(--line-strong);background:#ffffff}.nav-item{display:flex;align-items:center;justify-content:flex-start;min-height:40px;gap:10px;border-radius:6px;color:var(--text);font-weight:700;text-decoration:none}.nav-item:focus-visible,.nav-item:hover{background:var(--accent-soft);outline:none}.nav-item.is-placeholder{color:var(--muted);font-weight:600}.nav-item small{color:var(--muted);font-size:.72rem;font-weight:700}.nav-item-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;color:var(--muted);font-size:.9rem;line-height:1}.nav-item-icon svg{width:18px;height:18px}.nav-item.is-active .nav-item-icon{color:var(--accent-strong)}.nav-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{min-width:0;padding:28px}.content-stack{display:grid;grid-gap:20px;gap:20px;width:min(1120px,100%)}.admin-mirror-frame{width:100%;min-height:72vh;border:1px solid var(--line);border-radius:10px;background:#fff}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse}.admin-table td,.admin-table th{border-bottom:1px solid rgba(148,163,184,.25);padding:.6rem;text-align:left;vertical-align:middle}.admin-inline-actions{gap:.5rem}.admin-inline-actions,.admin-inline-form{display:flex;align-items:center;flex-wrap:wrap}.admin-inline-form{gap:.6rem}.admin-grid-form input,.admin-grid-form select,.admin-inline-form input,.admin-inline-form select{border:1px solid rgba(148,163,184,.45);border-radius:.6rem;padding:.5rem .65rem;background:#fff}.admin-grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:.6rem;gap:.6rem}.admin-grid-form label{display:flex;align-items:center;gap:.4rem}.admin-table-footer{display:flex;gap:.8rem;align-items:center;justify-content:flex-end;margin-top:.75rem}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-heading h1{font-size:1.8rem}.page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.placeholder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.placeholder-card{min-height:112px;display:grid;align-content:space-between;grid-gap:14px;gap:14px;padding:16px;border:1px dashed var(--line);border-radius:8px;background:#ffffff}.placeholder-card span{color:var(--muted);font-size:.82rem;font-weight:700}.placeholder-card strong{font-size:1rem}.family-card{display:grid;grid-gap:12px;gap:12px;width:min(560px,100%);padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.family-card-compact{width:100%;padding:14px}.family-card-ready{border-color:#a8d3c8;background:#f5fbf9}.family-card-error{border-color:#e0a7a3;color:var(--danger)}.card-label{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.family-card strong{overflow-wrap:anywhere}.family-meta{display:grid;grid-gap:10px;gap:10px;margin:0}.family-meta div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px solid rgba(19,113,95,.18)}.family-meta dd{margin:0;text-align:right}.dashboard-stack{display:grid;grid-gap:20px;gap:20px;width:min(1180px,100%)}.dashboard-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.dashboard-heading h1{font-size:1.8rem}.dashboard-heading p,.panel-copy{margin:8px 0 0;color:var(--muted);line-height:1.55}.dashboard-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px}.dashboard-card{min-height:148px;display:grid;align-content:space-between;grid-gap:12px;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.dashboard-card span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.dashboard-card strong{overflow-wrap:anywhere;font-size:1.45rem;line-height:1.2}.dashboard-card p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.4}.dashboard-card-positive{border-color:#b8d8cc;background:#f5fbf9}.dashboard-card-negative{border-color:#e7c2be;background:var(--danger-soft)}.dashboard-card-warning{border-color:#ead49a;background:var(--warning-soft)}.dashboard-panels{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);grid-gap:12px;gap:12px}.dashboard-panel{min-height:240px}.dashboard-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.dashboard-finance-graph-stack{display:grid;grid-gap:14px;gap:14px}.dashboard-panel-card{display:grid;align-content:start;grid-gap:16px;gap:16px;min-height:260px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.dashboard-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dashboard-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.1rem}.dashboard-mini-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin:18px 0 0}.dashboard-mini-grid div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.dashboard-mini-grid dd{overflow-wrap:anywhere}.dashboard-list{display:grid;grid-gap:8px;gap:8px}.dashboard-scroll-area{max-height:min(52vh,460px);min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}.dashboard-budget-scroll{max-height:min(54vh,500px)}.dashboard-recurring-scroll{max-height:min(52vh,420px)}.dashboard-category-trends{display:grid;grid-gap:16px;gap:16px}.dashboard-category-trends-header{align-items:start}.dashboard-category-trend-controls{display:grid;grid-template-columns:minmax(180px,.45fr) minmax(0,1fr);grid-gap:14px;gap:14px}.dashboard-category-trend-grouping,.dashboard-category-trend-selector{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.dashboard-category-trend-grouping{display:flex;align-content:start;align-items:center;flex-wrap:wrap;gap:8px}.dashboard-category-trend-grouping legend,.dashboard-category-trend-selector legend{padding:0 4px;color:var(--muted);font-size:.78rem;font-weight:900;text-transform:uppercase}.dashboard-category-trend-selector-legend{display:flex;align-items:center;gap:10px;max-width:100%}.dashboard-category-trend-clear-button{min-height:0;padding:0;color:var(--accent);font-size:.78rem;text-transform:none;white-space:nowrap}.dashboard-category-trend-grouping .secondary-button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.dashboard-category-trend-selector{display:grid;grid-gap:8px;gap:8px}.dashboard-category-trend-selector-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.84rem;font-weight:800}.dashboard-category-trend-selector-meta span:last-child{color:var(--danger)}.dashboard-category-trend-options{display:grid;grid-gap:4px;gap:4px;max-height:190px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-gutter:stable}.dashboard-category-trend-option{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;grid-gap:8px;gap:8px;padding:7px 8px;border-radius:8px;color:var(--text);font-size:.9rem;line-height:1.3}.dashboard-category-trend-option:hover{background:var(--panel)}.dashboard-category-trend-option.is-sub{padding-left:22px;color:var(--muted)}.dashboard-category-trend-option input{margin-top:2px}.dashboard-category-trend-option span{min-width:0;overflow-wrap:anywhere}.dashboard-category-trend-chart-frame{display:grid;grid-gap:10px;gap:10px}.dashboard-category-trend-legend{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--muted);font-size:.84rem;font-weight:850}.dashboard-category-trend-legend span{display:inline-flex;align-items:center;min-width:0;gap:6px;overflow-wrap:anywhere}.dashboard-category-trend-legend i{width:18px;height:4px;border-radius:999px;flex:0 0 auto}.dashboard-category-trend-chart-scroll,.dashboard-category-trend-table-wrap{overflow-x:auto;overscroll-behavior-x:contain}.dashboard-category-trend-chart-scroll{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.dashboard-category-trend-chart{display:block;color:var(--muted)}.dashboard-category-trend-gridline{stroke:var(--line);stroke-width:1}.dashboard-category-trend-axis{stroke:var(--line-strong);stroke-width:1.4}.dashboard-category-trend-axis-label{fill:currentColor;font-size:12px;font-weight:800}.dashboard-category-trend-value-label-bg{fill:rgba(255,255,255,.92);stroke:rgba(84,99,118,.22);stroke-width:1}.dashboard-category-trend-value-label{fill:var(--text);font-size:11px;font-weight:900;pointer-events:none}.dashboard-category-trend-line{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.dashboard-category-trend-point{stroke:var(--panel);stroke-width:2}.dashboard-category-trend-table{width:100%;min-width:920px;border-collapse:collapse;font-size:.9rem}.dashboard-category-trend-table td,.dashboard-category-trend-table th{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.dashboard-category-trend-table th{color:var(--muted);font-size:.75rem;font-weight:900;text-transform:uppercase}.dashboard-category-trend-summary-row td:not(:first-child){white-space:nowrap}.dashboard-category-trend-row-button{display:inline-flex;align-items:flex-start;max-width:100%;gap:8px;border:0;background:transparent;color:var(--text);cursor:pointer;font-weight:900;line-height:1.35;text-align:left}.dashboard-category-trend-row-button span{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 auto;border:1px solid var(--line-strong);border-radius:999px;color:var(--muted);font-size:.82rem;line-height:1}.dashboard-category-trend-expanded-row td{padding:0 10px 12px;background:var(--panel-soft)}.dashboard-category-trend-transactions{display:grid;grid-gap:8px;gap:8px;padding:12px 0 0}.dashboard-category-trend-transaction-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;grid-gap:12px;gap:12px;align-items:start;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);text-decoration:none}.dashboard-category-trend-transaction-row:hover{border-color:var(--line-strong)}.dashboard-category-trend-transaction-text{display:grid;min-width:0;grid-gap:2px;gap:2px;overflow-wrap:anywhere;line-height:1.35}.dashboard-category-trend-transaction-text small{color:var(--muted)}.dashboard-category-trend-transaction-amount{white-space:nowrap}.dashboard-category-trend-empty-transactions{display:block;padding:12px 0 0;color:var(--muted)}.dashboard-recurring-period-note{margin:6px 0 0;color:var(--muted);font-size:.84rem;font-weight:800}.dashboard-list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--line)}.dashboard-list-row div{display:grid;grid-gap:4px;gap:4px;min-width:0}.dashboard-list-row span,.dashboard-list-row strong{overflow-wrap:anywhere}.dashboard-list-row div span{color:var(--muted);font-size:.84rem}.dashboard-recurring-list{gap:10px}.dashboard-recurring-payment-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;grid-gap:14px;gap:14px}.dashboard-list-row .dashboard-recurring-main{display:grid;grid-gap:7px;gap:7px;min-width:0}.dashboard-list-row .dashboard-recurring-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.dashboard-recurring-title-row strong{min-width:min(100%,180px)}.dashboard-list-row .dashboard-recurring-meta{display:flex;flex-wrap:wrap;gap:6px 10px;color:var(--muted);font-size:.82rem;line-height:1.35}.dashboard-recurring-status-pill{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--muted);font-size:.72rem;font-weight:900;line-height:1.2}.dashboard-recurring-status-pill.is-success{border-color:#b9d6ca;background:var(--success-soft);color:var(--success)}.dashboard-recurring-status-pill.is-warning{border-color:#ead49a;background:var(--warning-soft);color:var(--warning)}.dashboard-recurring-status-pill.is-danger{border-color:#dfaaa5;background:var(--danger-soft);color:var(--danger)}.dashboard-recurring-warning{color:var(--muted);font-size:.86rem;line-height:1.45}.dashboard-recurring-warning.is-danger{color:var(--danger);font-weight:800}.dashboard-recurring-warning.is-warning{color:var(--warning);font-weight:800}.dashboard-list-row .dashboard-recurring-amount-panel{display:grid;justify-items:end;grid-gap:3px;gap:3px;min-width:max-content}.dashboard-recurring-paid-line{color:var(--text);font-weight:950;white-space:nowrap}.dashboard-recurring-difference-line,.dashboard-recurring-planned-line{color:var(--muted);font-size:.78rem;font-weight:850;white-space:nowrap}.dashboard-recurring-difference-line.is-negative{color:var(--danger)}.dashboard-recurring-difference-line.is-positive{color:var(--warning)}.dashboard-list-row .dashboard-recurring-transaction-list{grid-column:1/-1;width:100%;justify-self:stretch}.finance-mini-row.dashboard-recurring-transaction-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;width:100%;box-sizing:border-box;grid-gap:12px;gap:12px;justify-self:stretch}.finance-mini-row.dashboard-recurring-transaction-row .dashboard-recurring-transaction-text{min-width:0;overflow-wrap:anywhere;line-height:1.35}.finance-mini-row.dashboard-recurring-transaction-row .dashboard-recurring-transaction-amount{justify-self:end;white-space:nowrap}@media (max-width:640px){.dashboard-category-trend-controls,.dashboard-category-trend-selector-meta,.dashboard-category-trend-transaction-row{grid-template-columns:1fr}.dashboard-category-trend-selector-meta{display:grid}.dashboard-category-trend-transaction-amount{justify-self:start}.dashboard-recurring-payment-row{grid-template-columns:1fr}.dashboard-list-row .dashboard-recurring-amount-panel{justify-items:start;min-width:0}}.dashboard-recurring-row{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.dashboard-recurring-row.is-paid{border-color:#b9d6ca;background:var(--success-soft)}.dashboard-recurring-row.is-open{border-color:#ead49a;background:var(--warning-soft)}.dashboard-recurring-row.is-changed{border-color:#dfaaa5;background:var(--danger-soft)}.dashboard-recurring-amount{color:var(--text);font-weight:900;white-space:nowrap}.dashboard-recurring-note{margin:0;color:var(--muted);font-size:.86rem;line-height:1.45}.dashboard-budget-section{display:grid;grid-gap:10px;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.dashboard-budget-section h3{margin:0;color:var(--text);font-size:.95rem}.dashboard-budget-section p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.dashboard-budget-group{display:grid;grid-gap:8px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.dashboard-budget-group.is-over{border-color:#ead49a;background:var(--warning-soft)}.dashboard-list-row.dashboard-budget-main-row{padding:0;border-top:0}.dashboard-budget-child-list{display:grid;grid-gap:6px;gap:6px}.dashboard-budget-child-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 10px 8px 12px;border-left:3px solid transparent;border-radius:6px;background:rgba(255,255,255,.58)}.dashboard-budget-child-row.is-over{border-left-color:var(--danger);background:rgba(185,60,50,.08)}.dashboard-budget-child-row div{display:grid;grid-gap:3px;gap:3px;min-width:0}.dashboard-budget-child-row span,.dashboard-budget-child-row strong{overflow-wrap:anywhere}.dashboard-budget-child-row div span{color:var(--muted);font-size:.82rem}.dashboard-row-positive{color:var(--accent);font-weight:900;white-space:nowrap}.dashboard-row-negative{color:var(--danger);font-weight:900;white-space:nowrap}.chart-placeholder,.dashboard-notice,.panel-placeholder{display:grid;grid-gap:8px;gap:8px;align-content:center;min-height:160px;padding:18px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfd;color:var(--muted)}.chart-placeholder strong,.dashboard-notice strong,.panel-placeholder strong{color:var(--text)}.dashboard-notice{width:min(680px,100%);min-height:180px;border-style:solid}.dashboard-notice p{margin:0;line-height:1.5}.dashboard-notice-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.spending-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.spending-filter-bar{display:grid;grid-template-columns:repeat(2,minmax(180px,240px)) auto;grid-gap:12px;gap:12px;align-items:end;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.spending-filter-actions{display:flex;flex-wrap:wrap;gap:10px}.spending-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px}.spending-metric-card,.spending-panel,.spending-state{display:grid;grid-gap:12px;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.spending-metric-card{min-height:148px;align-content:space-between}.spending-metric-card strong{overflow-wrap:anywhere;font-size:1.32rem;line-height:1.2}.spending-metric-card small{color:var(--muted);line-height:1.4}.spending-metric-card.is-positive{border-color:#b8d8cc;background:#f5fbf9}.spending-metric-card.is-negative{border-color:#e7c2be;background:var(--danger-soft)}.spending-metric-card.is-neutral{background:#fbfcfd}.spending-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.spending-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.1rem}.spending-breakdown-grid,.spending-detail-grid{display:grid;grid-gap:12px;gap:12px}.spending-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.spending-detail-grid div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.spending-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere;text-align:left}.spending-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spending-bar-list{display:grid;grid-gap:16px;gap:16px}.spending-bar-row{display:grid;grid-gap:8px;gap:8px;min-width:0}.spending-bar-row-header,.spending-row-meta{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.spending-bar-row-header strong,.spending-row-meta span{overflow-wrap:anywhere}.spending-row-meta{color:var(--muted);font-size:.84rem}.spending-bar-track{overflow:hidden;height:10px;border-radius:999px;background:#eef2f7}.spending-bar-fill{display:block;height:100%;border-radius:inherit}.spending-bar-fill.is-positive{background:var(--accent)}.spending-bar-fill.is-negative{background:var(--danger)}.spending-positive{color:var(--accent);font-weight:900;white-space:nowrap}.spending-negative{color:var(--danger);font-weight:900;white-space:nowrap}.spending-inline-empty,.spending-state{color:var(--muted)}.spending-inline-empty{padding:14px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfd}.spending-state{align-content:center;width:min(680px,100%);min-height:180px}.spending-state strong{color:var(--text);font-size:1.05rem}.spending-state p{margin:0;line-height:1.5}.spending-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.budget-stack,.planning-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.budget-card-grid,.planning-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:12px;gap:12px}.budget-metric-card,.budget-panel,.budget-state,.planning-metric-card,.planning-state,.planning-table-panel{display:grid;grid-gap:12px;gap:12px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.budget-metric-card,.planning-metric-card{min-height:148px;align-content:space-between}.budget-metric-card strong,.planning-metric-card strong{overflow-wrap:anywhere;font-size:1.32rem;line-height:1.2}.budget-metric-card small,.planning-metric-card small{color:var(--muted);line-height:1.4}.budget-metric-card.is-on-track{border-color:#b8d8cc;background:#f5fbf9}.budget-metric-card.is-over{border-color:#e0a7a3;background:var(--danger-soft)}.budget-metric-card.is-empty{border-color:#ead49a;background:var(--warning-soft)}.budget-category-header,.budget-panel-header,.planning-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.budget-category-header h3,.budget-panel-header h2,.planning-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere}.planning-panel-helper-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.planning-panel-helper-actions small{color:var(--muted);line-height:1.45}.budget-category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.budget-category-card{display:grid;grid-gap:16px;gap:16px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.budget-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.budget-detail-grid div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.budget-detail-grid dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.budget-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere;text-align:left}.budget-progress{display:grid;grid-gap:8px;gap:8px}.budget-progress-label{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.budget-progress-track{overflow:hidden;height:10px;border-radius:999px;background:#eef2f7}.budget-progress-fill{height:100%;border-radius:inherit;background:var(--accent)}.budget-progress-fill.is-success{background:#13715f}.budget-progress-fill.is-neutral{background:#aa7b15}.budget-progress-fill.is-danger{background:var(--danger)}.budget-state,.planning-state{align-content:center;width:min(680px,100%);min-height:180px;color:var(--muted)}.budget-state strong,.planning-state strong{color:var(--text);font-size:1.05rem}.budget-state p,.planning-state p{margin:0;line-height:1.5}.budget-state-error,.planning-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.planning-period-form{display:grid;grid-template-columns:minmax(180px,260px) minmax(140px,180px);grid-gap:12px;gap:12px;align-items:end;width:min(520px,100%);padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.planning-period-form.shared-filter-panel{gap:12px}.planning-table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:#ffffff}.planning-table{width:100%;min-width:780px;border-collapse:collapse}.planning-table td,.planning-table th{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.planning-table th{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-table tr:last-child td{border-bottom:0}.planning-table td small,.planning-table td strong{display:block}.planning-table td small{margin-top:4px;color:var(--muted);font-size:.82rem}.planning-action-cell{width:120px}.planning-edit-row td{background:var(--panel-soft)}.planning-row-editor{display:grid;grid-template-columns:1fr;grid-gap:10px;gap:10px}.planning-editor-block{display:grid;grid-gap:6px;gap:6px}.planning-editor-controls{display:grid;grid-template-columns:minmax(140px,260px) auto;grid-gap:8px;gap:8px;align-items:center}.planning-editor-block span{font-size:.78rem;color:var(--muted);font-weight:700}.planning-editor-block input{width:100%;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.planning-editor-block button{justify-self:start}.planning-planned-month.is-specific,.planning-status{background:var(--accent-soft)}.planning-status{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;color:var(--accent);font-size:.76rem;font-weight:800;white-space:nowrap}.planning-status.is-danger{background:var(--danger-soft);color:var(--danger)}.planning-status.is-neutral{background:#eef2f7;color:#405166}.accounts-stack,.transactions-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.account-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.account-card,.account-detail,.account-form{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.account-card{align-content:space-between;min-height:220px}.account-detail,.account-form{width:min(860px,100%)}.account-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.account-card-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.2rem}.account-detail-grid,.account-meta{display:grid;grid-gap:10px;gap:10px;margin:0}.account-detail-grid div,.account-meta div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.account-detail-grid dt,.account-meta dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.account-detail-grid dd,.account-meta dd{margin:4px 0 0;overflow-wrap:anywhere;text-align:left}.account-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.account-state{display:grid;grid-gap:8px;gap:8px;align-content:center;width:min(680px,100%);min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.account-state strong{color:var(--text);font-size:1.05rem}.account-state p{margin:0;line-height:1.5}.account-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.account-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.transaction-filters{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.shared-filter-grid,.shared-filter-panel{display:grid;grid-gap:12px;gap:12px}.shared-filter-grid-transactions{grid-template-columns:minmax(180px,1.4fr) repeat(5,minmax(130px,1fr))}.shared-filter-field{display:grid;grid-gap:6px;gap:6px;min-width:0}.shared-filter-field>span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.shared-filter-field-wide{min-width:min(360px,100%)}.shared-filter-input{min-height:40px;width:100%;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font:inherit}.shared-filter-actions{display:flex;flex-wrap:wrap;gap:10px}.filter-grid{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(5,minmax(130px,1fr));grid-gap:12px;gap:12px}.filter-grid label{display:grid;grid-gap:6px;gap:6px;min-width:0}.filter-grid span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.filter-grid input,.filter-grid select{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--text);font:inherit}.filter-actions{display:flex;flex-wrap:wrap;gap:10px}.filter-warning{padding:12px 14px;border:1px solid #ead49a;border-radius:8px;background:var(--warning-soft);color:#6d5411;font-weight:700}.transaction-result-header{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}.transaction-result-header strong{color:var(--text)}.transaction-table-shell{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.transaction-table{width:100%;min-width:940px;border-collapse:collapse}.transaction-table td,.transaction-table th{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.transaction-table th{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.transaction-table tr:last-child td{border-bottom:0}.transaction-description,.transaction-subtext{display:block}.transaction-description{max-width:360px;overflow-wrap:anywhere;font-weight:800}.transaction-subtext{margin-top:4px;color:var(--muted);font-size:.84rem}.transaction-categorization-panel{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.transaction-categorization-panel h2{margin:4px 0;font-size:1.08rem}.transaction-categorization-panel p{max-width:860px;margin:0;color:var(--muted);line-height:1.55}.transaction-bulk-actions,.transaction-page-controls,.transaction-suggestion-chip{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.transaction-categorization-forms{display:grid;grid-gap:12px;gap:12px}.transaction-bulk-form,.transaction-categorization-filter,.transaction-category-picker,.transaction-suggestion-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.transaction-bulk-form{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.transaction-categorization-filter{padding-top:4px}.transaction-suggestion-trigger{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.transaction-suggestion-trigger>span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.transaction-categorization-filter label{display:grid;grid-gap:5px;gap:5px;min-width:min(360px,100%)}.transaction-categorization-filter label span,.transaction-categorization-filter>span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.transaction-categorization-filter input{min-height:38px;padding:0 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--text);font:inherit}.transaction-category-picker{max-width:100%}.transaction-bulk-actions>span,.transaction-page-controls label span,.transaction-page-controls span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.transaction-bulk-select,.transaction-inline-category-select,.transaction-page-size-select{min-height:38px;border:1px solid var(--line-strong);border-radius:6px;background-color:var(--panel);color:var(--text);font:inherit}.transaction-bulk-select{width:min(320px,100%);padding-left:10px}.transaction-bulk-checkbox{display:inline-flex;align-items:center;gap:6px;min-height:38px;color:var(--muted);font-size:.82rem;font-weight:800}.transaction-page-size-select{width:90px;margin-left:8px;padding-left:10px}.transaction-action-message{width:-moz-fit-content;width:fit-content;max-width:100%;padding:8px 10px;border-radius:6px;font-size:.86rem;font-weight:800}.transaction-action-message.is-success{background:var(--success-soft);color:var(--accent)}.transaction-action-message.is-error{background:var(--danger-soft);color:var(--danger)}.transaction-suggestion-strip{display:flex;flex-wrap:wrap;gap:10px}.transaction-suggestion-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.46)}.transaction-suggestion-panel{display:grid;grid-gap:10px;gap:10px;width:min(1180px,100%);max-height:min(860px,calc(100vh - 36px));overflow:auto;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-lg)}.transaction-suggestion-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.transaction-suggestion-toolbar>div{display:grid;grid-gap:4px;gap:4px}.transaction-suggestion-toolbar p{margin:0;color:var(--muted)}.transaction-export-note,.transaction-suggestion-toolbar small{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.transaction-suggestion-chip{align-items:flex-start;max-width:min(520px,100%);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.transaction-suggestion-chip>span{overflow-wrap:anywhere;font-weight:800}.transaction-suggestion-chip small{flex-basis:100%;color:var(--muted);line-height:1.4}.transaction-suggestion-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.transaction-suggestion-table{width:100%;min-width:1060px;border-collapse:collapse}.transaction-suggestion-table td,.transaction-suggestion-table th{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.transaction-suggestion-table th{color:var(--muted);font-size:.74rem;font-weight:800;text-transform:uppercase}.transaction-suggestion-table tr:last-child td{border-bottom:0}.transaction-table-area{position:relative;display:grid;grid-gap:10px;gap:10px}.transaction-table-area.is-loading .transaction-table-shell{opacity:.45;pointer-events:none}.transaction-table-loading{position:absolute;z-index:2;top:12px;right:12px;max-width:min(360px,calc(100% - 24px));box-shadow:var(--shadow-sm)}.inline-text-button{border:0;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-weight:800;text-decoration:underline}.transaction-inline-category{display:grid;grid-gap:6px;gap:6px;min-width:190px}.transaction-inline-category-select{width:min(260px,100%);padding-left:10px}.transaction-inline-category small{color:var(--muted);font-size:.75rem;line-height:1.35}.transaction-inline-status.is-success{color:var(--accent)}.transaction-inline-status.is-error{color:var(--danger)}.transaction-inline-status.is-saving{color:var(--muted)}.amount-cell{font-weight:900;text-align:right;white-space:nowrap}.amount-value{display:inline-flex;justify-content:flex-end;min-width:max-content}.amount-negative{color:var(--danger)}.amount-positive{color:var(--accent)}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.status-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.76rem;font-weight:800;white-space:nowrap}.status-badge-info{background:#eef2f7;color:#405166}.status-badge-muted{background:#f2f0ec;color:var(--muted)}.status-badge-success{background:var(--accent-soft);color:var(--accent)}.account-badge{background:#eef2f7;color:#405166;white-space:nowrap}.account-badge,.category-badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:.78rem;font-weight:800}.category-badge{max-width:260px;background:var(--accent-soft);color:var(--accent);overflow-wrap:anywhere}.category-badge-split{background:#eef2f7;color:#405166}.category-badge-muted{background:#f2f0ec;color:var(--muted)}.table-action-link{color:var(--accent);font-weight:800;text-decoration:none}.transaction-row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:210px}.transaction-state{display:grid;grid-gap:8px;gap:8px;align-content:center;min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.transaction-state strong{color:var(--text);font-size:1.05rem}.transaction-detail-layout{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;grid-gap:16px;gap:16px}.transaction-detail-layout-single{grid-template-columns:minmax(0,1fr)}.transaction-detail-card,.transaction-split-panel{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.transaction-detail-card-header,.transaction-split-header,.transaction-split-item,.transaction-split-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.transaction-detail-card-header h2,.transaction-split-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.22rem}.transaction-detail-amount{padding-block:12px;border-block:1px solid var(--line);font-size:1.45rem;font-weight:900}.transaction-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.transaction-detail-grid div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.transaction-detail-grid dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.transaction-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere}.transaction-detail-actions,.transaction-split-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.transaction-split-form,.transaction-split-form-grid,.transaction-split-list{display:grid;grid-gap:12px;gap:12px}.transaction-split-empty,.transaction-split-item,.transaction-split-summary{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.transaction-split-empty{display:grid;grid-gap:4px;gap:4px;color:var(--muted)}.transaction-split-empty strong{color:var(--text)}.transaction-split-empty p{margin:0}.transaction-split-form-grid{grid-template-columns:1fr}.transaction-split-row{display:grid;grid-template-columns:minmax(160px,1.3fr) minmax(120px,.8fr) auto auto;align-items:end;grid-gap:10px;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff}.transaction-split-row-number{align-self:center;color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.transaction-state p{margin:0;line-height:1.5}.net-groups-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.net-group-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.net-group-card,.net-group-panel{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.net-group-card{align-content:space-between;min-height:260px}.net-group-card-header,.net-group-panel-header,.net-group-transaction-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.net-group-card-header h2,.net-group-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.2rem}.net-group-card-amount{padding-block:10px;border-block:1px solid var(--line);font-size:1.3rem;font-weight:900}.net-group-balance-grid,.net-group-meta{display:grid;grid-gap:10px;gap:10px;margin:0}.net-group-balance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.net-group-balance-grid div,.net-group-meta div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.net-group-balance-grid dt,.net-group-meta dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.net-group-balance-grid dd,.net-group-meta dd{margin:4px 0 0;overflow-wrap:anywhere}.net-group-card-actions,.net-group-pill-list{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.net-group-detail-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.net-group-placeholder{display:grid;grid-gap:4px;gap:4px;padding:14px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfd;color:var(--muted)}.net-group-placeholder strong{color:var(--text)}.net-group-transaction-list{display:grid;grid-gap:10px;gap:10px}.net-group-transaction-row{align-items:center;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff}.net-group-transaction-row span,.net-group-transaction-row strong{overflow-wrap:anywhere}.net-group-transaction-row>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.net-group-transaction-row>div span{color:var(--muted);font-size:.84rem}.net-group-state{display:grid;grid-gap:8px;gap:8px;align-content:center;min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.net-group-state strong{color:var(--text);font-size:1.05rem}.net-group-state p{margin:0;line-height:1.5}.net-group-state-error,.transaction-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.pagination-bar{display:flex;justify-content:flex-end;gap:10px}.transaction-form{display:grid;grid-gap:16px;gap:16px;width:min(860px,100%);padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.transaction-amount-input.is-positive{color:var(--success)}.transaction-amount-input.is-negative{color:var(--danger)}.transaction-amount-input.is-neutral{color:var(--text)}.transaction-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.form-field{display:grid;grid-gap:6px;gap:6px;min-width:0}.form-field-wide{grid-column:1/-1}.form-field span{color:var(--muted);font-size:.78rem;font-weight:800;text-transform:uppercase}.form-field input,.form-field select,.form-field textarea{width:100%;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:#ffffff;color:var(--text);font:inherit}.form-field input,.form-field select{min-height:42px}.form-field textarea{min-height:112px;padding-top:10px;resize:vertical}.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{background:#f5f7f9;color:#596579;opacity:1}.toggle-field{align-content:end;grid-template-columns:auto 1fr;column-gap:10px}.toggle-field input{width:18px;min-height:18px;margin:12px 0}.toggle-field span{align-self:center}.form-field small{font-weight:700}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.transaction-delete-action{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px dashed var(--line);border-radius:8px;background:#fbfcfd;color:var(--muted)}.transaction-delete-action strong{display:block;margin-bottom:4px;color:var(--text)}.transaction-delete-action p{margin:0;line-height:1.45}.form-error{display:grid;grid-gap:8px;gap:8px;padding:14px;border:1px solid #e0a7a3;border-radius:8px;background:var(--danger-soft);color:var(--danger)}.form-error ul{margin:0;padding-left:18px}.categories-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.category-list,.category-rule-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.category-card,.category-detail,.category-form,.category-rule-card,.rule-preview{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.category-card,.category-rule-card{align-content:space-between;min-height:238px}.category-detail,.category-form{width:min(860px,100%)}.category-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.category-card-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.2rem}.category-detail-grid,.category-meta{display:grid;grid-gap:10px;gap:10px;margin:0}.category-detail-grid div,.category-meta div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.category-detail-grid dt,.category-meta dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.category-detail-grid dd,.category-meta dd{margin:4px 0 0;overflow-wrap:anywhere;text-align:left}.category-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.category-state{display:grid;grid-gap:8px;gap:8px;align-content:center;width:min(680px,100%);min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.category-state strong{color:var(--text);font-size:1.05rem}.category-state p{margin:0;line-height:1.5}.category-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.category-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.category-rule-form-shell{display:grid;grid-template-columns:minmax(0,860px) minmax(260px,.52fr);grid-gap:12px;gap:12px;align-items:start}.category-rule-form-shell .category-form{width:100%}.rule-preview{position:-webkit-sticky;position:sticky;top:84px;color:var(--muted)}.rule-preview strong{color:var(--text);overflow-wrap:anywhere}.rule-preview p{margin:0;line-height:1.45}.category-suggestions-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.category-suggestion-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:12px;gap:12px}.category-learning-prompt,.category-suggestion-card,.category-suggestion-summary>div{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.category-suggestion-summary strong{color:var(--text);font-size:1.1rem}.category-learning-prompt p,.category-suggestion-summary p{margin:0;color:var(--muted);line-height:1.45}.category-suggestions-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);grid-gap:14px;gap:14px;align-items:start}.category-suggestion-list,.category-suggestions-main{display:grid;grid-gap:12px;gap:12px}.category-suggestion-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.category-suggestion-card-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.15rem}.category-learning-preview,.category-suggestion-meta{display:grid;grid-gap:10px;gap:10px;margin:0}.category-suggestion-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.category-learning-preview div,.category-suggestion-meta div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.category-learning-preview dt,.category-suggestion-meta dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.category-learning-preview dd,.category-suggestion-meta dd{margin:4px 0 0;overflow-wrap:anywhere}.category-learning-options,.category-suggestion-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.category-learning-prompt{position:-webkit-sticky;position:sticky;top:84px}.category-learning-prompt h2{margin:4px 0 8px;font-size:1.15rem}.category-learning-grid{display:grid;grid-gap:12px;gap:12px}.category-learning-options label{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-weight:800}.category-learning-result{display:grid;grid-gap:8px;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.category-learning-result strong{color:var(--text)}.category-learning-prompt .muted-copy{color:var(--muted);font-size:.9rem}.suggestion-confidence{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;font-size:.76rem;font-weight:900;white-space:nowrap}.suggestion-confidence-high{background:var(--accent-soft);color:var(--accent)}.suggestion-confidence-medium{background:#fff5da;color:#8a5a00}.suggestion-confidence-low{background:#eef2f7;color:#405166}.category-suggestion-state{display:grid;grid-gap:8px;gap:8px;align-content:center;width:min(720px,100%);min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.category-suggestion-state strong{color:var(--text);font-size:1.05rem}.category-suggestion-state p{margin:0;line-height:1.5}.category-suggestion-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.family-management-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.family-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-items:start}.family-invite-card,.family-management-panel,.family-member-card{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.family-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.family-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.2rem}.family-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.family-detail-grid div{min-width:0;padding-top:10px;border-top:1px solid var(--line)}.family-detail-grid dt{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.family-detail-grid dd{margin:4px 0 0;overflow-wrap:anywhere;text-align:left}.family-inline-form,.family-selector-form,.member-role-form{display:grid;grid-gap:14px;gap:14px}.family-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.family-success{padding:12px 14px;border:1px solid #a8d3c8;border-radius:8px;background:#f5fbf9;color:var(--accent);font-weight:800}.family-management-state{display:grid;grid-gap:8px;gap:8px;align-content:center;width:min(680px,100%);min-height:180px;padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted)}.family-management-state strong{color:var(--text);font-size:1.05rem}.family-management-state p{margin:0;line-height:1.5}.family-management-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.family-management-permission-state{border-color:#ead49a;background:var(--warning-soft)}.family-management-list-shell{display:grid;grid-gap:12px;gap:12px}.family-invite-list,.family-member-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.family-invite-card,.family-member-card{align-content:start}.imports-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.import-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.7fr);grid-gap:14px;gap:14px}.import-action-grid,.import-left-column,.import-right-column{display:grid;align-content:start;grid-gap:14px;gap:14px}.import-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-actions-panel,.import-panel,.import-preview-shell,.import-state,.import-upload-form{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.import-panel .import-upload-form{padding:0;border:0}.import-panel-header,.import-preview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.import-actions-panel h2,.import-panel-header h2,.import-preview-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.1rem}.import-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.import-status-grid div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.import-status-grid dd{overflow-wrap:anywhere}.import-batch-list{display:grid;grid-gap:8px;gap:8px}.import-panel-batches{min-height:320px}.import-panel-batches .import-batch-list{max-height:244px;overflow-y:auto;padding-right:4px;align-content:start}.import-batch-button{display:grid;grid-gap:4px;gap:4px;width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;color:var(--text);cursor:pointer;font:inherit;text-align:left}.import-batch-button.is-active,.import-batch-button:focus-visible,.import-batch-button:hover{border-color:#a8d3c8;background:#f5fbf9;outline:none}.import-batch-button span{overflow-wrap:anywhere;font-weight:800}.import-actions-panel p,.import-batch-button small,.import-state p{margin:0;color:var(--muted);line-height:1.45}.mapping-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.import-table-scroll{overflow-x:auto}.import-preview-table{width:100%;min-width:880px;border-collapse:collapse}.import-preview-table td,.import-preview-table th{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.import-preview-table th{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.import-preview-table td{overflow-wrap:anywhere}.import-file-preview{display:grid;grid-gap:10px;gap:10px}.import-file-preview summary{cursor:pointer;font-weight:800}.import-file-preview pre{max-height:260px;overflow:auto;margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd;white-space:pre-wrap}.import-success{padding:12px 14px;border:1px solid #a8d3c8;border-radius:8px;background:#f5fbf9;color:var(--accent);font-weight:800}.import-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.rollback-warning{display:grid;grid-gap:12px;gap:12px;padding:12px;border:1px solid #ead49a;border-radius:8px;background:var(--warning-soft)}.page-copy{max-width:740px;margin:10px 0 0;color:var(--muted);line-height:1.5}.subscriptions-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.subscription-list,.subscription-main-column{display:grid;align-content:start;grid-gap:14px;gap:14px}.subscription-card,.subscription-panel,.subscription-state{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.subscription-card-header,.subscription-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.subscription-card-header h2,.subscription-panel-header h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.12rem}.subscription-card-grid,.subscription-detail-grid,.subscription-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin:0}.subscription-card-grid div,.subscription-detail-grid div,.subscription-summary-grid div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft);color:var(--text)}.subscription-card-grid dt,.subscription-detail-grid dt,.subscription-summary-grid dt{color:var(--muted)}.subscription-card-grid dd,.subscription-detail-grid dd,.subscription-summary-grid dd{color:var(--text);overflow-wrap:anywhere;text-align:left}.subscription-card{padding:0;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease}.subscription-card.is-expanded{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.subscription-card.is-expanded .subscription-card-main{background:color-mix(in srgb,var(--accent-soft) 45%,var(--panel))}.subscription-card-main{display:grid;grid-gap:16px;gap:16px;width:100%;padding:18px;border:0;background:transparent;color:var(--text);cursor:pointer;font:inherit;text-align:left}.subscription-card-main:focus-visible,.subscription-card-main:hover{background:var(--panel-soft);outline:none}.subscription-card-disclosure{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--accent);font-size:.82rem;font-weight:800}.subscription-card-chevron{display:inline-grid;width:28px;height:28px;place-items:center;border-radius:999px;background:var(--accent-soft);font-size:1rem;line-height:1;transition:transform .15s ease}.subscription-card.is-expanded .subscription-card-chevron{transform:rotate(180deg)}.subscription-card-detail{display:grid;grid-gap:16px;gap:16px;padding:18px;border-top:1px solid var(--line);background:var(--panel-soft)}.subscription-card-detail .subscription-detail-grid div{background:var(--panel)}.subscription-detail-transactions{display:grid;min-width:0;grid-gap:10px;gap:10px}.subscription-detail-transactions-header{display:flex;align-items:end;justify-content:space-between;gap:12px}.subscription-detail-transactions-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.subscription-detail-transactions-header h3{margin:4px 0 0;color:var(--text);font-size:1rem}.subscription-detail-transactions-header p,.subscription-transaction-empty{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}.subscription-transaction-list{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.subscription-transaction-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;grid-gap:8px;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);overflow:hidden;transition:border-color .15s ease,background .15s ease}.subscription-transaction-row:focus-within,.subscription-transaction-row:hover{border-color:var(--accent);background:var(--accent-soft);outline:none}.subscription-transaction-link{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:center;min-width:0;grid-gap:12px;gap:12px;padding:12px;color:var(--text);text-decoration:none}.subscription-transaction-link:focus-visible{border-radius:7px;outline:2px solid var(--accent);outline-offset:-2px}.subscription-transaction-row>.ui-button{margin-right:8px}.subscription-transaction-copy{display:grid;min-width:0;grid-gap:3px;gap:3px}.subscription-transaction-copy strong{overflow-wrap:anywhere;color:var(--text)}.subscription-transaction-copy>span{overflow-wrap:anywhere;color:var(--muted);font-size:.8rem;line-height:1.4}.subscription-transaction-amount{justify-self:end;color:var(--text);white-space:nowrap}.subscription-transaction-empty{padding:12px;border:1px dashed var(--line);border-radius:8px;background:var(--panel)}.subscription-detail-title>div:first-child{min-width:0;flex:1 1}.subscription-name-display{display:flex;align-items:flex-start;justify-content:space-between;min-width:0;gap:12px;margin-top:4px}.subscription-name-display>div:first-child{min-width:0}.subscription-name-display h2{margin:0}.subscription-name-display p{margin:5px 0 0;color:var(--muted);font-size:.82rem;line-height:1.45}.subscription-name-display p strong{color:var(--text)}.subscription-dialog-actions,.subscription-name-actions,.subscription-picker-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.subscription-name-form{display:grid;max-width:620px;grid-gap:8px;gap:8px;margin-top:6px}.subscription-alias-form label,.subscription-merge-dialog>label,.subscription-name-form label,.subscription-picker-search label{display:grid;min-width:0;grid-gap:6px;gap:6px;color:var(--text);font-size:.84rem;font-weight:800}.subscription-alias-form input,.subscription-merge-dialog select,.subscription-name-form input,.subscription-picker-search input{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--text);font:inherit}.subscription-alias-form input:focus-visible,.subscription-merge-dialog select:focus-visible,.subscription-name-form input:focus-visible,.subscription-picker-search input:focus-visible{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:1px}.subscription-inline-error,.subscription-name-form small{color:var(--danger);line-height:1.4}.subscription-management-section,.subscription-merge-section{display:grid;grid-gap:12px;gap:12px;padding-top:16px;border-top:1px solid var(--line)}.subscription-management-heading,.subscription-merge-section{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.subscription-management-heading h3,.subscription-merge-section h3{margin:4px 0 0;color:var(--text);font-size:1rem}.subscription-management-heading p,.subscription-merge-section p{max-width:560px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.subscription-alias-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.subscription-alias-item{display:flex;align-items:center;gap:8px;min-width:min(260px,100%);padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.subscription-alias-item.is-primary{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--accent-soft)}.subscription-alias-item>span{display:grid;min-width:0;flex:1 1;grid-gap:2px;gap:2px}.subscription-alias-item strong{overflow-wrap:anywhere;color:var(--text)}.subscription-alias-item small{color:var(--muted)}.subscription-alias-form{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:end;grid-gap:8px;gap:8px;max-width:720px}.subscription-alias-form>small{grid-column:1/-1;color:var(--danger)}.ui-modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ui-modal-panel{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(920px,100%);max-height:min(880px,calc(100dvh - 36px));overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);box-shadow:var(--shadow-lg)}.ui-modal-panel:focus{outline:none}.ui-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px;border-bottom:1px solid var(--line);background:var(--panel)}.ui-modal-header h2{margin:0;color:var(--text);font-size:1.18rem}.ui-modal-header p{max-width:720px;margin:6px 0 0;color:var(--muted);line-height:1.45}.ui-modal-close{display:inline-grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border:1px solid var(--line);border-radius:999px;background:var(--panel-soft);color:var(--text);cursor:pointer;font-size:1.35rem;line-height:1}.ui-modal-close:focus-visible,.ui-modal-close:hover{border-color:var(--accent);background:var(--accent-soft);outline:none}.ui-modal-close:disabled{cursor:wait;opacity:.55}.ui-modal-body{min-height:0;overflow:auto;padding:18px}.subscription-picker{display:grid;min-height:0;grid-gap:14px;gap:14px}.subscription-picker-search{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:end;grid-gap:8px;gap:8px}.subscription-picker-result-summary{color:var(--muted);font-size:.84rem;font-weight:700}.subscription-dialog-error{padding:10px 12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line));border-radius:8px;background:var(--danger-soft);color:var(--danger);font-size:.86rem;line-height:1.45}.subscription-picker-list{display:grid;grid-gap:7px;gap:7px;margin:0;padding:0;list-style:none}.subscription-picker-list>li{border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.subscription-picker-list>li.is-linked{opacity:.72}.subscription-picker-list label{display:grid;grid-template-columns:max-content minmax(0,1fr) max-content;align-items:center;grid-gap:12px;gap:12px;padding:12px;cursor:pointer}.subscription-picker-alias-option input,.subscription-picker-list input{width:19px;height:19px;accent-color:var(--accent)}.subscription-picker-alias-option>span,.subscription-picker-transaction-copy{display:grid;min-width:0;grid-gap:3px;gap:3px}.subscription-picker-transaction-copy strong{overflow-wrap:anywhere;color:var(--text)}.subscription-picker-alias-option small,.subscription-picker-transaction-copy small,.subscription-picker-transaction-copy span{color:var(--muted);font-size:.8rem;line-height:1.4}.subscription-picker-transaction-amount{color:var(--text);white-space:nowrap}.subscription-picker-footer{position:-webkit-sticky;position:sticky;bottom:-18px;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 -18px -18px;padding:14px 18px;border-top:1px solid var(--line);background:var(--panel)}.subscription-picker-alias-option{display:flex;align-items:flex-start;gap:9px;cursor:pointer}.subscription-confirmation,.subscription-merge-dialog{display:grid;grid-gap:16px;gap:16px}.subscription-confirmation>span{color:var(--muted)}.subscription-merge-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.subscription-merge-preview>div{display:grid;grid-gap:5px;gap:5px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel-soft)}.subscription-merge-preview small,.subscription-merge-preview span{color:var(--muted);font-size:.8rem}.subscription-merge-preview strong{overflow-wrap:anywhere;color:var(--text)}.subscription-merge-preview>p{grid-column:1/-1;margin:2px 0 0;padding:11px 12px;border-radius:8px;background:var(--warning-soft);color:var(--text);line-height:1.5}.subscription-copy,.subscription-refresh-result span,.subscription-state p{margin:0;color:var(--muted);line-height:1.45}.subscription-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 18px}.subscription-status-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid #c5d7d2;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.74rem;font-weight:800;text-transform:uppercase;white-space:nowrap}.subscription-status-badge.status-rejected{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.subscription-permission-state,.subscription-status-badge.status-possibly-cancelled,.subscription-status-badge.status-price-changed{border-color:#ead49a;background:var(--warning-soft)}.subscription-refresh-result,.subscription-success{display:grid;grid-gap:4px;gap:4px;padding:12px 14px;border:1px solid #a8d3c8;border-radius:8px;background:#f5fbf9}.subscription-refresh-result strong,.subscription-success{color:var(--accent);font-weight:800}.subscription-status-strip{display:flex;flex-wrap:wrap;gap:8px}.subscription-status-strip span{padding:6px 8px;border-radius:6px;background:#eef1f5;color:var(--muted);font-size:.78rem;font-weight:800}.subscription-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.privacy-stack{display:grid;grid-gap:18px;gap:18px;width:min(1180px,100%)}.privacy-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);grid-gap:14px;gap:14px}.privacy-main-column,.privacy-notification-list,.privacy-request-list,.privacy-side-column{display:grid;align-content:start;grid-gap:14px;gap:14px}.privacy-panel,.privacy-request-card,.privacy-state,.privacy-warning{display:grid;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.privacy-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.privacy-notification-item h3,.privacy-panel-header h2,.privacy-request-card h2{margin:4px 0 0;overflow-wrap:anywhere;font-size:1.1rem}.privacy-warning{border-color:#ead49a;background:var(--warning-soft)}.privacy-copy,.privacy-notification-item p,.privacy-state p,.privacy-warning p{margin:0;color:var(--muted);line-height:1.5}.privacy-mode-options{display:grid;grid-gap:10px;gap:10px}.privacy-mode-option{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:12px;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.privacy-mode-option span{display:grid;grid-gap:4px;gap:4px}.privacy-mode-option small{color:var(--muted);line-height:1.4}.privacy-status-grid,.privacy-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.privacy-status-grid{margin:0}.privacy-status-grid div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.privacy-status-grid dd{overflow-wrap:anywhere;text-align:left}.privacy-success{padding:12px 14px;border:1px solid #a8d3c8;border-radius:8px;background:#f5fbf9;color:var(--accent);font-weight:800}.privacy-state-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.privacy-inline-note,.privacy-permission-state{border-color:#ead49a;background:var(--warning-soft)}.privacy-inline-note{padding:12px 14px;border:1px solid #ead49a;border-radius:8px;color:var(--muted);line-height:1.45}.privacy-filter-bar,.privacy-request-action-buttons{display:flex;flex-wrap:wrap;gap:8px}.privacy-filter-bar .is-active{border-color:#a8d3c8;background:#f5fbf9;color:var(--accent)}.privacy-request-actions{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:end;grid-gap:12px;gap:12px}.privacy-notification-item{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfd}.privacy-notification-item.is-read{opacity:.68}.privacy-notification-item small{color:var(--muted)}@media (max-width:720px){.shell{padding:16px}.panel{padding:22px}.status-grid{grid-template-columns:1fr}.status-row{display:grid}.status-row strong{text-align:left}.app-header{position:static;padding:12px 16px}.app-header nav{min-width:0}.user-indicator strong{max-width:150px}.auth-banner{display:grid;padding:12px 16px}.app-frame{grid-template-columns:1fr}.app-sidebar{border-right:0;border-bottom:1px solid var(--line)}.app-sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-item{min-width:0}.nav-item span{overflow-wrap:anywhere}.app-main{padding:20px 16px}.page-heading{display:grid}.page-actions{justify-content:stretch}.page-actions .button,.page-actions .secondary-link{flex:1 1}.placeholder-grid{grid-template-columns:1fr}.family-meta div{display:grid}.family-meta dd{text-align:left}.dashboard-heading{display:grid}.account-detail-grid,.account-form-grid,.account-list,.budget-card-grid,.budget-category-list,.budget-detail-grid,.category-detail-grid,.category-form-grid,.category-list,.category-rule-form-shell,.category-rule-list,.category-suggestion-meta,.category-suggestion-summary,.category-suggestions-layout,.dashboard-card-grid,.dashboard-mini-grid,.dashboard-panel-grid,.dashboard-panels,.family-detail-grid,.family-form-grid,.family-invite-list,.family-management-grid,.family-member-list,.import-action-grid,.import-layout,.import-status-grid,.mapping-grid,.net-group-balance-grid,.net-group-detail-layout,.net-group-list,.planning-card-grid,.planning-period-form,.privacy-layout,.privacy-request-actions,.privacy-status-grid,.privacy-toggle-grid,.shared-filter-grid-transactions,.spending-breakdown-grid,.spending-card-grid,.spending-detail-grid,.spending-filter-bar,.subscription-card-grid,.subscription-detail-grid,.subscription-summary-grid,.transaction-detail-grid,.transaction-detail-layout,.transaction-split-row{grid-template-columns:1fr}.account-card-header,.budget-category-header,.budget-panel-header,.category-card-header,.category-suggestion-card-header,.dashboard-panel-header,.family-panel-header,.import-panel-header,.import-preview-header,.planning-panel-header,.privacy-notification-item,.privacy-panel-header,.spending-bar-row-header,.spending-panel-header,.spending-row-meta,.subscription-card-header,.subscription-panel-header{display:grid}.planning-panel-helper-actions{justify-content:flex-start}.subscription-actions .button,.subscription-actions .secondary-button{flex:1 1 100%}.subscription-detail-transactions-header,.subscription-transaction-row{display:grid;grid-template-columns:1fr}.subscription-detail-transactions-actions,.subscription-management-heading,.subscription-merge-section,.subscription-name-display,.subscription-picker-footer{display:grid;justify-content:stretch}.subscription-detail-transactions-actions{justify-items:start}.subscription-dialog-actions,.subscription-name-actions,.subscription-picker-actions{justify-content:stretch}.subscription-dialog-actions>*,.subscription-name-actions>*,.subscription-picker-actions>*{flex:1 1 100%}.subscription-alias-form,.subscription-merge-preview,.subscription-picker-search{grid-template-columns:1fr}.subscription-alias-form>small,.subscription-merge-preview>p{grid-column:1}.subscription-transaction-link{grid-template-columns:1fr}.subscription-transaction-row>.ui-button{width:calc(100% - 16px);margin:0 8px 8px}.subscription-transaction-amount{justify-self:start}.ui-modal-backdrop{place-items:end center;padding:0}.ui-modal-panel{width:100%;max-height:100dvh;min-height:min(100dvh,680px);border-right:0;border-bottom:0;border-left:0;border-radius:0}.ui-modal-body,.ui-modal-header{padding:14px}.subscription-picker-list label{grid-template-columns:max-content minmax(0,1fr);align-items:start}.subscription-picker-transaction-amount{grid-column:2;justify-self:start}.subscription-picker-footer{bottom:-14px;margin:0 -14px -14px;padding:12px 14px}.import-panel-batches{min-height:0}.import-panel-batches .import-batch-list{max-height:none;overflow-y:visible;padding-right:0}.category-learning-prompt,.rule-preview{position:static}.filter-grid,.transaction-form-grid{grid-template-columns:1fr}.transaction-result-header{align-items:flex-start;display:grid}.net-group-card-header,.net-group-panel-header,.net-group-transaction-row{display:grid}.pagination-bar{justify-content:stretch}.pagination-bar .secondary-button{flex:1 1}}:root{--background:#f3f6f5;--panel-soft:#f8faf9;--panel-muted:#eef3f1;--text:#17212b;--line:#dce5e1;--line-strong:#c7d2cc;--accent:#0f766e;--accent-strong:#0b5c55;--accent-soft:#e7f3f1;--brand:#21314d;--brand-soft:#e8edf5;--warning:#906413;--success:#177354;--success-soft:#e8f5ef;--info:#315d86;--info-soft:#eaf1f8;--shadow-sm:0 1px 2px rgba(23,33,43,0.06);--shadow-md:0 12px 32px rgba(23,33,43,0.08)}html{min-width:320px;background:var(--background)}body{color:var(--text);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}a{text-underline-offset:3px}:focus-visible{outline:3px solid rgba(15,118,110,.24);outline-offset:2px}.button,.secondary-button,.secondary-link,.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;gap:8px;border-radius:var(--radius);cursor:pointer;font-weight:800;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .15s ease}.button,.secondary-button,.secondary-link,.ui-button-md{padding:0 15px}.ui-button-sm{min-height:34px;padding:0 11px;font-size:.86rem}.button,.ui-button-primary{border:1px solid var(--accent);color:#ffffff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.14)}.button:hover,.ui-button-primary:hover{box-shadow:inset 0 -1px 0 rgba(0,0,0,.16)}.button:active,.ui-button-primary:active{background:#0a5a4c;box-shadow:inset 0 1px 0 rgba(0,0,0,.12)}.secondary-button,.secondary-link,.ui-button-secondary{border:1px solid var(--line-strong);background:#ffffff;color:var(--text);box-shadow:var(--shadow-sm)}.secondary-button:hover,.secondary-link:hover,.ui-button-secondary:hover{border-color:#aebdb6;background:var(--panel-soft)}.ui-button-ghost{border:1px solid transparent;background:transparent;color:var(--accent)}.ui-button-danger{border:1px solid #d8aaa6;background:var(--danger-soft);color:var(--danger)}.ui-button-danger:hover{border-color:#c68f8a;background:#ffe6e3}.button:disabled,.secondary-button:disabled,.secondary-link[aria-disabled=true],.ui-button:disabled{cursor:not-allowed;opacity:.52;transform:none}.table-action-link,.text-link{color:var(--accent);font-weight:800;text-decoration:none}.table-action-link:hover,.text-link:hover{color:var(--accent-strong);text-decoration:underline}.ui-card,:where(.panel,.dashboard-card,.dashboard-panel-card,.spending-metric-card,.spending-panel,.budget-metric-card,.planning-metric-card,.budget-panel,.planning-table-panel,.account-card,.account-detail,.account-form,.transaction-form,.transaction-detail-card,.transaction-split-panel,.net-group-card,.net-group-panel,.category-card,.category-rule-card,.category-detail,.category-form,.rule-preview,.category-suggestion-card,.category-learning-prompt,.family-management-panel,.family-member-card,.family-invite-card,.import-panel,.import-upload-form,.import-actions-panel,.import-preview-shell,.subscription-panel,.subscription-card,.privacy-panel,.privacy-request-card){border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.ui-card{display:grid;grid-gap:16px;gap:16px;padding:18px}.ui-card-muted,:where(.placeholder-card,.panel-placeholder,.chart-placeholder,.transaction-split-empty,.net-group-placeholder){border-color:var(--line);background:var(--panel-soft)}.ui-card-success{border-color:#b9d6ca;background:var(--success-soft)}.ui-card-warning{border-color:#ead49a;background:var(--warning-soft)}.ui-card-danger{border-color:#dfaaa5;background:var(--danger-soft)}.account-badge,.category-badge,.planning-status,.status-badge,.subscription-status-badge,.suggestion-confidence,.ui-badge{display:inline-flex;align-items:center;min-height:26px;max-width:100%;padding:0 9px;border:1px solid transparent;border-radius:999px;font-size:.75rem;font-weight:900;line-height:1;overflow-wrap:anywhere;text-transform:none;white-space:nowrap}.account-badge,.category-badge-muted,.planning-status.is-neutral,.status-badge-info,.status-badge-muted,.ui-badge-neutral{border-color:#d8e0dc}.category-badge,.planning-status,.status-badge,.status-badge-success,.subscription-status-badge,.suggestion-confidence-high,.ui-badge-success{border-color:#b9d6ca}.suggestion-confidence-medium,.ui-badge-warning{border-color:#ead49a;background:var(--warning-soft);color:var(--warning)}.planning-status.is-danger,.status-rejected,.subscription-status-badge.status-rejected,.ui-badge-danger{border-color:#dfaaa5;background:var(--danger-soft);color:var(--danger)}.suggestion-confidence-low,.ui-badge-info{border-color:#c7d7e5;color:var(--info)}.app-shell{min-height:100vh;background:var(--background)}.app-header{min-height:72px;padding:14px 28px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 1px 0 rgba(23,33,43,.03)}.brand-link{gap:10px;color:var(--brand);font-size:1.05rem;letter-spacing:0}.brand-link:before{width:28px;height:28px;border-radius:7px;background:var(--accent);box-shadow:inset 0 0 0 6px rgba(255,255,255,.22);content:""}.app-header p{color:var(--muted);font-size:.78rem;font-weight:700}.app-header nav{display:flex;align-items:center;gap:14px}.app-frame{grid-template-columns:280px minmax(0,1fr)}.app-sidebar{position:-webkit-sticky;position:sticky;top:72px;align-self:start;min-height:calc(100vh - 72px);padding:22px 16px;border-right:1px solid var(--line);background:#f8fbfa}.app-sidebar-nav{gap:5px}.nav-item{padding:0 12px;border:1px solid transparent;border-radius:var(--radius);font-size:.94rem}.nav-item:focus-visible,.nav-item:hover{border-color:var(--line);box-shadow:var(--shadow-sm)}.nav-item.is-active{border-color:#b9d6ca}.app-main{padding:34px 38px 52px}:where(.content-stack,.dashboard-stack,.transactions-stack,.accounts-stack,.categories-stack,.category-suggestions-stack,.family-management-stack,.imports-stack,.subscriptions-stack,.privacy-stack,.spending-stack,.budget-stack,.planning-stack,.net-groups-stack){width:min(1240px,100%);margin-inline:auto;gap:20px}.dashboard-heading,.page-heading,.ui-page-header{align-items:flex-end;padding-bottom:4px}.dashboard-heading h1,.page-heading h1,.ui-page-header h1{color:var(--text);font-size:clamp(1.65rem,2.2vw,2.2rem);line-height:1.08}.card-label,.eyebrow{color:var(--accent);font-size:.72rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.dashboard-heading p,.page-copy,.panel-copy{max-width:760px;color:var(--muted)}.page-actions{align-items:center}.budget-card-grid,.dashboard-card-grid,.planning-card-grid,.spending-card-grid{gap:14px}.budget-metric-card,.dashboard-card,.planning-metric-card,.spending-metric-card{min-height:152px;padding:18px}.budget-metric-card strong,.dashboard-card strong,.planning-metric-card strong,.spending-metric-card strong{color:var(--text);font-size:clamp(1.18rem,1.5vw,1.55rem)}.budget-metric-card.is-on-track,.dashboard-card-positive,.spending-metric-card.is-positive{border-color:#b9d6ca;background:var(--success-soft)}.budget-metric-card.is-empty,.dashboard-card-warning{border-color:#ead49a;background:var(--warning-soft)}.import-table-scroll,.planning-table-scroll,.transaction-table-shell{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.import-preview-table,.planning-table,.transaction-table{border-collapse:separate;border-spacing:0}.import-preview-table td,.import-preview-table th,.planning-table td,.planning-table th,.transaction-table td,.transaction-table th{border-bottom:1px solid var(--line)}.import-preview-table th,.planning-table th,.transaction-table th{background:var(--panel-soft);color:#526170;font-size:.72rem;letter-spacing:0}.import-preview-table tbody tr,.planning-table tbody tr,.transaction-table tbody tr{transition:background-color .12s ease}.import-preview-table tbody tr:hover,.planning-table tbody tr:hover,.transaction-table tbody tr:hover{background:var(--accent-soft)}.transaction-description{color:var(--text)}.dashboard-list-row div span,.net-group-transaction-row>div span,.transaction-subtext{color:var(--muted)}.filter-grid label,.form-field,.shared-filter-field,.ui-field{gap:7px}.filter-grid span,.form-field span,.shared-filter-field>span{color:#526170;font-size:.73rem;font-weight:900;letter-spacing:0}.filter-grid input,.filter-grid select,.form-field input,.form-field select,.form-field textarea,.shared-filter-input{min-height:42px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#ffffff;color:var(--text);box-shadow:inset 0 1px 0 rgba(23,33,43,.02);transition:border-color .15s ease,box-shadow .15s ease}.filter-grid input:focus,.filter-grid select:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.shared-filter-input:focus{border-color:rgba(15,118,110,.72);box-shadow:0 0 0 3px rgba(15,118,110,.12);outline:none}.form-field textarea{line-height:1.45}.ui-field-hint{color:var(--muted);font-style:normal;line-height:1.4}.form-field small{color:var(--danger)}.auth-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm);margin:14px 28px 0}.auth-banner-warning{border-color:#ead49a;background:var(--warning-soft)}.auth-banner-error{border-color:#dfaaa5;background:var(--danger-soft);color:var(--danger)}.ui-state,:where(.dashboard-notice,.transaction-state,.account-state,.category-state,.category-suggestion-state,.family-management-state,.import-state,.subscription-state,.privacy-state,.spending-state,.budget-state,.planning-state,.net-group-state,.auth-state){display:grid;grid-gap:10px;gap:10px;align-content:center;width:min(720px,100%);min-height:180px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--muted);box-shadow:var(--shadow-sm)}.ui-state strong,:where(.dashboard-notice,.transaction-state,.account-state,.category-state,.category-suggestion-state,.family-management-state,.import-state,.subscription-state,.privacy-state,.spending-state,.budget-state,.planning-state,.net-group-state,.auth-state) strong{color:var(--text);font-size:1.06rem}.ui-state p{margin:0;line-height:1.5}.ui-state-error,:where(.dashboard-notice-error,.transaction-state-error,.account-state-error,.category-state-error,.category-suggestion-state-error,.family-management-state-error,.import-state-error,.subscription-state-error,.privacy-state-error,.spending-state-error,.budget-state-error,.planning-state-error,.net-group-state-error,.auth-state-error,.form-error){border-color:#dfaaa5;background:var(--danger-soft);color:var(--danger)}.ui-state-loading{position:relative}.ui-loading-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:18px 0 0 rgba(15,118,110,.42),36px 0 0 rgba(15,118,110,.18)}.family-card{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.family-card-compact{background:#ffffff}.family-card-ready{border-color:#b9d6ca;background:var(--success-soft)}.family-card-error{border-color:#dfaaa5;background:var(--danger-soft)}.account-detail-grid div,.account-meta div,.budget-detail-grid div,.category-detail-grid div,.category-meta div,.family-detail-grid div,.family-meta div,.net-group-balance-grid div,.net-group-meta div,.spending-detail-grid div,.transaction-detail-grid div{border-top-color:var(--line)}.chart-placeholder,.net-group-placeholder,.panel-placeholder,.placeholder-card,.spending-inline-empty,.transaction-delete-action,.transaction-split-empty{border-color:var(--line);background:var(--panel-soft)}.account-list,.category-list,.category-rule-list,.net-group-list{gap:14px}.family-management-permission-state,.filter-warning,.privacy-inline-note,.privacy-warning,.rollback-warning,.subscription-permission-state{border-color:#ead49a;background:var(--warning-soft);color:var(--warning)}.family-success,.import-success,.privacy-success,.subscription-refresh-result,.subscription-success{border-color:#b9d6ca}.budget-progress-track,.spending-bar-track{background:#e7eeeb}.budget-progress-fill,.budget-progress-fill.is-success,.spending-bar-fill.is-positive{background:var(--success)}@media (max-width:980px){.app-frame{grid-template-columns:1fr}.app-sidebar{position:static;min-height:0;border-right:0;border-bottom:1px solid var(--line)}.app-sidebar-nav{display:grid;grid-template-columns:1fr;grid-gap:8px;gap:8px}.app-sidebar-nav .nav-item{width:100%;min-width:0}.app-main{padding:28px 22px 44px}.account-list,.budget-card-grid,.category-list,.category-rule-list,.dashboard-card-grid,.net-group-list,.planning-card-grid,.spending-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){body{font-size:14px}.app-header{display:grid;min-height:auto;padding:14px 16px}.auth-banner{display:grid;margin:10px 16px 0}.app-sidebar{padding:14px 12px}.app-sidebar-nav{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.nav-item{flex:0 0 auto;min-width:132px}.app-main{padding:22px 14px 36px}.dashboard-heading,.page-heading,.ui-page-header{display:grid;align-items:start}.page-actions,.ui-section-actions{justify-content:stretch;width:100%}.page-actions>*,.ui-section-actions>*{flex:1 1 auto}.account-list,.budget-card-grid,.category-list,.category-rule-list,.dashboard-card-grid,.net-group-list,.planning-card-grid,.spending-card-grid{grid-template-columns:1fr}.import-table-scroll,.planning-table-scroll,.transaction-table-shell{margin-inline:-2px}}:root{--brand-ink:#202030;--brand-navy:#1d2740;--brand-blue-deep:#0040a0;--brand-blue:#0080d0;--brand-sky:#25a0e2;--brand-green-deep:#207010;--brand-green:#50a030;--brand-lime:#a0d040;--background:#f3f6f9;--panel:#ffffff;--panel-soft:#f7f9fc;--panel-muted:#edf2f7;--text:#1b2430;--muted:#667085;--line:#dfe5ec;--line-strong:#c7d2dc;--accent:var(--brand-blue);--accent-strong:var(--brand-blue-deep);--accent-soft:#e9f5fc;--brand:var(--brand-ink);--brand-soft:#e8eef7;--danger:#9f2f2f;--danger-soft:#fff1f0;--warning:#8a5a00;--warning-soft:#fff7df;--success:var(--brand-green-deep);--success-soft:#edf8e7;--info:#225f8f;--info-soft:#eaf5fc;--shadow-sm:0 1px 2px rgba(29,39,64,0.07);--shadow-md:0 16px 40px rgba(29,39,64,0.1);--radius:8px}body{background:var(--background)}:focus-visible{outline-color:rgba(0,128,208,.28)}.app-sidebar-logo,.app-sidebar-mark,.brand-logo{display:block;object-fit:contain}.brand-logo{width:min(182px,46vw);height:auto}.brand-logo-compact{display:none;width:42px;height:auto}.brand-link:before{display:none}.app-header{min-height:74px;border-bottom-color:rgba(0,64,160,.12);background:rgba(255,255,255,.97)}.app-header-brand{display:grid;min-width:0;grid-gap:3px;gap:3px}.app-header-brand p{color:#526170;font-size:.76rem;font-weight:800;text-transform:uppercase}.app-header nav{min-width:0}.app-sidebar{top:74px;height:calc(100vh - 74px);gap:16px;background:#f8fafc}.app-sidebar-brand{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;grid-gap:10px;gap:10px;padding:4px 8px 18px;border-bottom:1px solid var(--line);color:var(--brand-ink);text-decoration:none}.app-sidebar-mark{width:42px;height:34px}.app-sidebar-brand span{display:grid;min-width:0;grid-gap:2px;gap:2px}.app-sidebar-brand strong{overflow:hidden;color:var(--brand-ink);font-size:.94rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.app-sidebar-brand small{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase}.app-shell.sidebar-collapsed .app-sidebar{padding-inline:10px}.app-shell.sidebar-collapsed .app-sidebar-brand{grid-template-columns:1fr;justify-items:center;padding-inline:0}.app-shell.sidebar-collapsed .app-sidebar-brand span{display:none}.app-shell.sidebar-collapsed .app-sidebar-toggle{padding-inline:0;font-size:0}.app-shell.sidebar-collapsed .app-sidebar-toggle:before{content:">";font-size:.9rem;font-weight:900}.app-shell.sidebar-collapsed .nav-item{justify-content:center;padding-inline:0}.app-shell.sidebar-collapsed .nav-item-label{display:none}.nav-item-group{display:grid;grid-gap:5px;gap:5px}.nav-section-label{margin:16px 8px 2px;color:#6b7788;font-size:.68rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.nav-item-group:first-child .nav-section-label{margin-top:2px}.nav-item{position:relative;min-height:42px;color:#344054;font-weight:800}.nav-item:before{position:absolute;inset-block:8px;left:5px;width:3px;border-radius:999px;background:transparent;content:""}.nav-item:focus-visible,.nav-item:hover{border-color:rgba(0,128,208,.2);background:#ffffff}.nav-item.is-active{border-color:rgba(0,128,208,.24);background:var(--accent-soft);color:var(--accent-strong)}.nav-item.is-active:before{background:var(--brand-green)}.button,.ui-button-primary{border-color:var(--accent);background:var(--accent)}.button:hover,.ui-button-primary:hover{border-color:var(--accent-strong);background:var(--accent-strong)}.ui-button-ghost{color:var(--accent-strong)}.ui-button-ghost:hover{background:var(--accent-soft)}.secondary-button,.secondary-link,.ui-button-secondary{border-color:var(--line-strong)}.secondary-link,.table-action-link,.text-link{color:var(--accent-strong)}.ui-card,:where(.panel,.dashboard-card,.dashboard-panel-card,.spending-metric-card,.spending-panel,.budget-metric-card,.planning-metric-card,.budget-panel,.planning-table-panel,.account-card,.account-detail,.account-form,.transaction-form,.transaction-detail-card,.transaction-split-panel,.net-group-card,.net-group-panel,.category-card,.category-rule-card,.category-detail,.category-form,.rule-preview,.category-suggestion-card,.category-learning-prompt,.family-management-panel,.family-member-card,.family-invite-card,.import-panel,.import-upload-form,.import-actions-panel,.import-preview-shell,.subscription-panel,.subscription-card,.privacy-panel,.privacy-request-card){border-color:var(--line);box-shadow:var(--shadow-sm)}.ui-card:hover,:where(.account-card,.category-card,.category-rule-card,.net-group-card,.subscription-card,.category-suggestion-card,.family-member-card,.family-invite-card):hover{box-shadow:var(--shadow-md)}.card-label,.eyebrow,.filter-grid span,.form-field span,.shared-filter-field>span{color:var(--accent-strong)}.dashboard-heading h1,.page-heading h1,.ui-page-header h1{color:var(--brand-ink)}.dashboard-heading p,.page-copy,.panel-copy{color:#5f6b7a}.budget-metric-card.is-on-track,.dashboard-card-positive,.family-card-ready,.spending-metric-card.is-positive{border-color:rgba(80,160,48,.28);background:var(--success-soft)}.budget-metric-card.is-empty,.dashboard-card-warning,.family-management-permission-state,.filter-warning,.privacy-inline-note,.privacy-warning,.rollback-warning,.subscription-permission-state{border-color:#ead49a;background:var(--warning-soft)}.budget-metric-card.is-over,.dashboard-card-negative,.spending-metric-card.is-negative{border-color:#dfaaa5;background:var(--danger-soft)}.category-badge,.planning-status,.status-badge,.status-badge-success,.subscription-status-badge,.suggestion-confidence-high,.ui-badge-success{border-color:rgba(80,160,48,.28);background:var(--success-soft);color:var(--success)}.account-badge,.category-badge-muted,.planning-status.is-neutral,.status-badge-info,.status-badge-muted,.ui-badge-neutral{border-color:var(--line);background:var(--panel-muted);color:#405166}.suggestion-confidence-low,.ui-badge-info{border-color:rgba(0,128,208,.22);background:var(--info-soft);color:var(--accent-strong)}.planning-adjustment-preview-row td,.planning-budget-hint-row td,.planning-budget-warning-row td{padding:0;border-bottom-color:transparent}.planning-adjustment-preview-row:hover,.planning-budget-hint-row:hover,.planning-budget-warning-row:hover{background:transparent}.planning-adjustment-preview,.planning-budget-balance{display:grid;grid-gap:12px;gap:12px;margin:0 12px 12px;padding:14px;border:1px solid rgba(0,128,208,.18);border-radius:8px;background:var(--info-soft);color:var(--text)}.planning-budget-warning-row .planning-budget-balance{border-color:#ead49a;background:var(--warning-soft)}.planning-adjustment-preview p,.planning-budget-balance p{margin:0;line-height:1.45}.planning-budget-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.planning-budget-action-group,.planning-budget-scope-actions{display:grid;grid-gap:10px;gap:10px}.planning-budget-action-group{padding-top:10px;border-top:1px solid rgba(170,123,21,.18)}.planning-adjustment-scope,.planning-budget-action-group>strong{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-adjustment-scope{display:inline-flex;margin-bottom:4px}.planning-budget-select{display:grid;grid-gap:5px;gap:5px;min-width:min(220px,100%)}.planning-budget-select span{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-budget-select select{min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.planning-budget-multi-select{padding:0;border:0}.planning-budget-multi-select legend{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-budget-multi-select label{display:flex;gap:7px;align-items:center;min-height:28px}.planning-adjustment-preview{border-color:rgba(80,160,48,.28);background:var(--success-soft)}.planning-adjustment-preview-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.planning-adjustment-summary-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,1fr));grid-gap:10px;gap:10px}.planning-adjustment-main-input,.planning-adjustment-total{display:grid;grid-gap:5px;gap:5px;padding:10px;border:1px solid rgba(80,160,48,.2);border-radius:8px;background:rgba(255,255,255,.68)}.planning-adjustment-item small,.planning-adjustment-main-input span,.planning-adjustment-total span{color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-adjustment-item input,.planning-adjustment-main-input input{width:100%;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit}.planning-adjustment-total.is-valid{border-color:rgba(80,160,48,.32)}.planning-adjustment-total.is-invalid{border-color:rgba(199,56,79,.34);background:var(--danger-soft)}.planning-adjustment-list{display:grid;grid-gap:6px;gap:6px}.planning-adjustment-item{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,220px);align-items:center;grid-gap:12px;gap:12px;padding:9px 10px;border:1px solid rgba(80,160,48,.18);border-radius:8px;background:rgba(255,255,255,.7)}.planning-adjustment-item-controls{display:grid;grid-gap:4px;gap:4px}.planning-adjustment-item span,.planning-adjustment-item strong{overflow-wrap:anywhere}.planning-adjustment-warning{color:var(--danger);font-weight:800}.amount-positive,.dashboard-row-positive,.spending-positive{color:var(--success)}.amount-kind-neutral{color:#111111}.amount-negative,.dashboard-row-negative,.spending-negative{color:var(--danger)}.budget-progress-fill,.budget-progress-fill.is-success,.spending-bar-fill.is-positive{background:var(--brand-green)}.budget-progress-fill.is-danger,.spending-bar-fill.is-negative{background:var(--danger)}.budget-progress-fill.is-neutral{background:var(--warning)}.filter-grid input,.filter-grid select,.form-field input,.form-field select,.form-field textarea,.shared-filter-input{border-color:var(--line-strong)}.filter-grid input:focus,.filter-grid select:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.shared-filter-input:focus{border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(0,128,208,.14)}.import-table-scroll,.planning-table-scroll,.transaction-table-shell,.ui-table-shell{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.import-preview-table,.planning-table,.transaction-table,.ui-table{width:100%;border-collapse:separate;border-spacing:0}.import-preview-table td,.import-preview-table th,.planning-table td,.planning-table th,.transaction-table td,.transaction-table th,.ui-table td,.ui-table th{border-bottom:1px solid var(--line)}.import-preview-table th,.planning-table th,.transaction-table th,.ui-table th{background:#f5f8fb;color:#526170;font-size:.72rem;letter-spacing:0}.import-preview-table tbody tr:hover,.planning-table tbody tr:hover,.transaction-table tbody tr:hover,.ui-table tbody tr:hover{background:var(--accent-soft)}.family-success,.import-success,.privacy-success,.subscription-refresh-result,.subscription-success{border-color:rgba(80,160,48,.28);background:var(--success-soft);color:var(--success)}.ui-loading-dot,.ui-state-loading .ui-loading-dot{background:var(--brand-blue);box-shadow:18px 0 0 rgba(37,160,226,.42),36px 0 0 rgba(80,160,48,.3)}@media (max-width:980px){.app-sidebar{min-height:calc(100vh - 74px)}.app-sidebar-brand{grid-template-columns:36px minmax(0,max-content);padding-bottom:12px}.app-sidebar-mark{width:36px;height:30px}.app-sidebar-nav{display:grid;grid-gap:4px;gap:4px;overflow:visible;padding-bottom:0}.nav-item-group{min-width:0}.nav-section-label{margin:0 8px 4px}}@media (max-width:720px){.app-header-brand p,.brand-logo-full{display:none}.brand-logo-compact{display:block}.brand-logo{width:min(164px,58vw)}.app-header nav{justify-content:space-between;width:100%}.app-sidebar-brand{grid-template-columns:34px minmax(0,1fr)}.nav-item{min-width:136px}}.app-header{display:grid;grid-template-columns:minmax(180px,260px) minmax(180px,1fr) auto;grid-gap:18px;gap:18px}.topbar-page-context{display:grid;min-width:0;grid-gap:2px;gap:2px}.topbar-page-context span{color:var(--accent-strong);font-size:.72rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.topbar-page-context strong{overflow:hidden;color:var(--brand-ink);font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;min-width:0;gap:10px}.topbar-menu{position:relative}.topbar-menu>summary{list-style:none}.topbar-menu>summary::-webkit-details-marker{display:none}.topbar-family,.topbar-user-pill{display:inline-grid;align-items:center;min-height:42px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#ffffff;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm)}.topbar-family{grid-template-columns:auto minmax(0,1fr) auto;min-width:min(210px,32vw);gap:8px;padding:0 12px;text-decoration:none}.topbar-family:after{color:var(--accent-strong);content:"▼";font-size:.64rem}.topbar-menu-header span{color:var(--muted);font-size:.68rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.topbar-family strong{overflow:hidden;color:var(--brand-ink);font-size:.86rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.topbar-family-icon,.topbar-user-icon{display:inline-grid;place-items:center;color:var(--brand-ink)}.topbar-family-icon svg,.topbar-user-icon svg{width:18px;height:18px}.topbar-family-error:after,.topbar-family-link:after,.topbar-family-loading:after{content:""}.topbar-family-error{border-color:#dfaaa5;background:var(--danger-soft)}.topbar-user-pill{grid-template-columns:auto minmax(0,max-content);gap:8px;padding:0 12px;font-size:.88rem;text-decoration:none}.topbar-user-pill strong{max-width:180px;font-size:.86rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user-muted{color:var(--muted)}.topbar-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;display:grid;width:min(340px,calc(100vw - 24px));max-height:min(72vh,calc(100dvh - 24px));overflow-y:auto;overscroll-behavior:contain;grid-gap:10px;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#ffffff;box-shadow:var(--shadow-md)}.topbar-menu-header{display:grid;grid-gap:3px;gap:3px}.topbar-menu-header small,.topbar-menu-header strong{overflow-wrap:anywhere}.topbar-menu-copy,.topbar-menu-header small,.topbar-menu-message{color:var(--muted);font-size:.84rem;line-height:1.4}.family-dropdown-list{display:grid;grid-gap:6px;gap:6px}.family-dropdown-item,.topbar-menu-link{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:8px 10px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer;font:inherit;font-weight:800;text-align:left;text-decoration:none}.family-dropdown-item:focus-visible,.family-dropdown-item:hover,.topbar-menu-link:focus-visible,.topbar-menu-link:hover{border-color:rgba(0,128,208,.2);background:var(--accent-soft);outline:none}.family-dropdown-item.is-active{border-color:rgba(80,160,48,.28);background:var(--success-soft);color:var(--success)}.family-dropdown-item:disabled{cursor:default}.family-dropdown-item small{color:var(--muted);font-size:.74rem;font-weight:900;white-space:nowrap}.topbar-menu-message{margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft)}.topbar-menu-divider{height:1px;background:var(--line)}.app-sidebar{gap:18px}.app-sidebar-nav{gap:8px}.app-sidebar-nav .nav-item{min-height:46px;padding-inline:16px 12px}.section-hub-stack{display:grid;width:min(1180px,100%);margin-inline:auto;grid-gap:20px;gap:20px}.section-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.family-create-form,.section-hub-card,.section-hub-panel{display:grid;grid-gap:14px;gap:14px;padding:18px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.section-hub-card{min-height:170px;align-content:start;color:var(--text);text-decoration:none}.section-hub-card:focus-visible,.section-hub-card:hover{border-color:rgba(0,128,208,.24);box-shadow:var(--shadow-md);outline:none}.section-hub-card span{color:var(--accent-strong);font-size:.72rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.section-hub-card strong{color:var(--brand-ink);font-size:1.08rem}.section-hub-card p,.section-hub-panel p{margin:0;color:var(--muted);line-height:1.5}.section-hub-actions{display:flex;flex-wrap:wrap;gap:10px}.family-create-form{width:min(760px,100%)}@media (max-width:980px){.app-header{grid-template-columns:1fr;align-items:stretch}.topbar-actions{justify-content:stretch}.topbar-family,.topbar-menu,.topbar-menu>summary{width:100%}.topbar-menu-panel{left:0;right:auto}.section-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.section-hub-grid{grid-template-columns:1fr}}:is(html[data-theme=dark],html.dark){color-scheme:dark;--background:#111827;--panel:#172033;--panel-soft:#1e293b;--text:#eef2f7;--muted:#a9b4c4;--line:#334155;--line-strong:#475569;--accent:#5db7f0;--accent-soft:#132f46;--accent-strong:#8cccf5;--brand-ink:#f8fafc;--danger-soft:#3a1f22;--success-soft:#123425;--warning-soft:#342d18;--shadow-sm:0 1px 2px rgba(0,0,0,0.24);--shadow-md:0 16px 42px rgba(0,0,0,0.34)}html[data-theme=dark],html[data-theme=dark] .app-frame,html[data-theme=dark] .app-main,html[data-theme=dark] .app-shell,html[data-theme=dark] body{background:var(--background);color:var(--text)}html[data-theme=dark] .app-main :where([class*=-card],[class*=-panel],[class*=-state],[class*=-table-wrap]){background:var(--panel);border-color:var(--line)}html[data-theme=dark] .app-header,html[data-theme=dark] .app-sidebar,html[data-theme=dark] .category-hierarchy-group,html[data-theme=dark] .category-node,html[data-theme=dark] .finance-filter-panel,html[data-theme=dark] .finance-panel,html[data-theme=dark] .nav-item,html[data-theme=dark] .planning-workflow-note,html[data-theme=dark] .topbar-family,html[data-theme=dark] .topbar-icon-button,html[data-theme=dark] .topbar-menu-panel,html[data-theme=dark] .topbar-user-pill{background:var(--panel)}html[data-theme=dark] .secondary-button,html[data-theme=dark] .secondary-link,html[data-theme=dark] .ui-button-secondary{border-color:#4f627b;background:#223045;color:#e8eef7;box-shadow:none}html[data-theme=dark] .secondary-button:hover,html[data-theme=dark] .secondary-link:hover,html[data-theme=dark] .ui-button-secondary:hover{border-color:#6c84a5;background:#2a3b56;color:#ffffff}html[data-theme=dark] .transactions-stack .transaction-table th{border-bottom-color:#334155;background:#1f2c40;color:#d7e2ef}html[data-theme=dark] .transactions-stack .account-badge{border-color:#43566f;background:#243348;color:#d7e2ef}html[data-theme=dark] .planning-stack .planning-table th{border-bottom-color:#334155;background:#1f2c40;color:#d7e2ef}html.dark .planning-adjustment-preview,html.dark .planning-budget-balance,html[data-theme=dark] .planning-adjustment-preview,html[data-theme=dark] .planning-budget-balance{border-color:rgba(93,183,240,.32);background:#132f46;color:#e8eef7}html.dark .planning-budget-warning-row .planning-budget-balance,html[data-theme=dark] .planning-budget-warning-row .planning-budget-balance{border-color:rgba(234,212,154,.46);background:#342d18;color:#f4ead0}html.dark .planning-adjustment-preview p,html.dark .planning-budget-balance p,html[data-theme=dark] .planning-adjustment-preview p,html[data-theme=dark] .planning-budget-balance p{color:inherit}html.dark .planning-adjustment-item,html.dark .planning-adjustment-main-input,html.dark .planning-adjustment-total,html[data-theme=dark] .planning-adjustment-item,html[data-theme=dark] .planning-adjustment-main-input,html[data-theme=dark] .planning-adjustment-total{border-color:rgba(93,183,240,.24);background:#1f2c40;color:#e8eef7}html.dark .planning-adjustment-total.is-invalid,html[data-theme=dark] .planning-adjustment-total.is-invalid{border-color:rgba(248,113,113,.46);background:#3a1f22}html.dark .planning-adjustment-item input,html.dark .planning-adjustment-main-input input,html[data-theme=dark] .planning-adjustment-item input,html[data-theme=dark] .planning-adjustment-main-input input{border-color:#4f627b;background:#223045;color:#e8eef7}html[data-theme=dark] .planning-period-form .shared-filter-input{border-color:#4f627b;background:#223045;color:#e8eef7;box-shadow:none}html[data-theme=dark] .planning-period-form .shared-filter-input:focus{border-color:#6c84a5;box-shadow:0 0 0 3px rgba(93,183,240,.2)}html[data-theme=dark] .privacy-mode-option,html[data-theme=dark] .privacy-status-grid div{border-color:#334155;background:#1f2c40}html[data-theme=dark] .privacy-mode-option strong,html[data-theme=dark] .privacy-status-grid dd,html[data-theme=dark] .privacy-status-grid dt{color:#d7e2ef}html[data-theme=dark] .finance-filter-grid input,html[data-theme=dark] .finance-filter-grid select,html[data-theme=dark] .finance-select,html[data-theme=dark] .form-field input:not([type=checkbox]):not([type=radio]),html[data-theme=dark] .form-field select,html[data-theme=dark] .form-field textarea,html[data-theme=dark] .shared-filter-input,html[data-theme=dark] .transaction-bulk-select,html[data-theme=dark] .transaction-inline-category-select,html[data-theme=dark] .transaction-page-size-select{border-color:#4f627b;background:#223045;color:#e8eef7;box-shadow:none}html[data-theme=dark] .finance-filter-grid input:focus,html[data-theme=dark] .finance-filter-grid select:focus,html[data-theme=dark] .finance-select:focus,html[data-theme=dark] .form-field input:not([type=checkbox]):not([type=radio]):focus,html[data-theme=dark] .form-field select:focus,html[data-theme=dark] .form-field textarea:focus,html[data-theme=dark] .shared-filter-input:focus,html[data-theme=dark] .transaction-bulk-select:focus,html[data-theme=dark] .transaction-inline-category-select:focus,html[data-theme=dark] .transaction-page-size-select:focus{border-color:#6c84a5;box-shadow:0 0 0 3px rgba(93,183,240,.2);outline:none}html[data-theme=dark] .finance-filter-grid input:disabled,html[data-theme=dark] .finance-filter-grid select:disabled,html[data-theme=dark] .finance-select:disabled,html[data-theme=dark] .form-field input:not([type=checkbox]):not([type=radio]):disabled,html[data-theme=dark] .form-field select:disabled,html[data-theme=dark] .form-field textarea:disabled,html[data-theme=dark] .shared-filter-input:disabled,html[data-theme=dark] .transaction-bulk-select:disabled,html[data-theme=dark] .transaction-inline-category-select:disabled,html[data-theme=dark] .transaction-page-size-select:disabled{border-color:#3a4b63;background:#1a2537;color:#96a8c1}html[data-theme=dark] .finance-chart-frame,html[data-theme=dark] .finance-sankey-frame{border-color:var(--line);background:var(--panel)}html[data-theme=dark] .finance-chart-gridline{stroke:#334155}html.dark .finance-chart-axis,html.dark .finance-chart-axis-label,html.dark .finance-chart-label,html.dark .finance-chart-legend text,html[data-theme=dark] .finance-chart-axis,html[data-theme=dark] .finance-chart-axis-label,html[data-theme=dark] .finance-chart-label,html[data-theme=dark] .finance-chart-legend text{stroke:none;fill:#c7d2e0}html.dark .dashboard-category-trend-value-label,html.dark .finance-chart-value-label,html[data-theme=dark] .dashboard-category-trend-value-label,html[data-theme=dark] .finance-chart-value-label{fill:#f8fafc}html.dark .dashboard-category-trend-value-label-bg,html.dark .finance-chart-value-label-bg,html[data-theme=dark] .dashboard-category-trend-value-label-bg,html[data-theme=dark] .finance-chart-value-label-bg{fill:rgba(15,23,42,.92);stroke:rgba(148,163,184,.38)}html.dark .dashboard-category-trend-chart-scroll,html[data-theme=dark] .dashboard-category-trend-chart-scroll{background:var(--panel);border-color:var(--line)}html.dark .dashboard-category-trend-axis-label,html[data-theme=dark] .dashboard-category-trend-axis-label{fill:#c7d2e0}.topbar-icon-button{position:relative;display:inline-grid;place-items:center;min-width:42px;min-height:42px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#ffffff;color:var(--brand-ink);cursor:pointer;font:inherit;font-weight:900;text-decoration:none;box-shadow:var(--shadow-sm)}.topbar-icon-button:focus-visible,.topbar-icon-button:hover{border-color:rgba(0,128,208,.28);background:var(--accent-soft);outline:none}.topbar-icon-button span{font-size:.86rem}.topbar-icon-button .fs-22,.topbar-icon-button i,.topbar-icon-button svg{width:18px;height:18px;font-size:18px!important;line-height:18px}.topbar-flag{display:inline-block;width:18px;height:18px;border-radius:50%;object-fit:cover;box-shadow:inset 0 0 0 1px rgba(16,24,32,.1)}.topbar-compact-panel{width:min(220px,calc(100vw - 24px));gap:6px;padding:10px}.topbar-compact-panel .topbar-menu-header{gap:1px}.topbar-compact-panel .topbar-menu-header span{font-size:.76rem}.topbar-compact-panel .topbar-menu-header strong{font-size:.9rem}.topbar-compact-panel .topbar-menu-link{min-height:32px;padding:6px 8px;border-radius:8px}.topbar-compact-panel .topbar-flag{width:16px;height:16px}.topbar-menu-link.is-active{border-color:rgba(80,160,48,.28);background:var(--success-soft);color:var(--success)}.topbar-menu-danger{width:100%;color:var(--danger)}#page-topbar.topbar-shadow{box-shadow:0 1px 2px rgba(56,65,74,.15)}.app-shell{--vz-vertical-menu-width:280px;--vz-vertical-menu-width-sm:88px;--vz-topbar-height:70px}.app-frame{display:block;overflow:visible}.app-sidebar-brand-box{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0 14px}.app-sidebar-logo-link{display:inline-flex;align-items:center;min-height:28px}.app-sidebar-logo{display:block;object-fit:contain}.app-sidebar-logo-large{width:154px;height:auto}.app-sidebar-logo-small{display:none;width:42px;height:auto}.app-sidebar-logo-sm-theme-dark,.app-sidebar-logo-sm-theme-light{display:none}.app-sidebar-logo-theme-light{display:block}.app-sidebar-logo-theme-dark,html[data-theme=dark] .app-sidebar-logo-theme-light{display:none}html[data-theme=dark] .app-sidebar-logo-theme-dark{display:block}.btn-vertical-sm-hover{border:0;display:inline-grid;place-items:center;width:20px;height:20px;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.btn-vertical-sm-hover:hover{background:var(--panel-soft)}.sidebar-pin-dot{display:inline-block;width:8px;height:8px;border:.8px solid;border-radius:50%;background:transparent}.btn-vertical-sm-hover.is-pinned .sidebar-pin-dot{display:none}.sidebar-toggle-arrow{display:none;align-items:center;justify-content:center;line-height:1}.sidebar-toggle-arrow svg{width:12px;height:12px}.btn-vertical-sm-hover.is-pinned .sidebar-toggle-arrow{display:inline-flex}#page-topbar{position:fixed;top:0;right:0;left:var(--vz-vertical-menu-width);z-index:1002;min-height:var(--vz-topbar-height)}.app-shell.vz-sidebar-sm #page-topbar{left:var(--vz-vertical-menu-width-sm)}.app-header{grid-template-columns:1fr auto 1fr;align-items:center}.topbar-left-spacer{min-height:1px}.topbar-mobile-menu-button{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);cursor:pointer}.topbar-mobile-menu-line{display:block;width:16px;height:2px;border-radius:2px;background:currentColor}.topbar-page-context{justify-self:center;text-align:center}.topbar-actions{justify-self:end}.app-sidebar{position:fixed;top:0;left:0;z-index:1003;width:var(--vz-vertical-menu-width);height:100vh}.app-shell.vz-sidebar-sm .app-sidebar{width:var(--vz-vertical-menu-width-sm)}.app-shell.vz-sidebar-sm .app-sidebar-brand-box{justify-content:center}.app-shell.vz-sidebar-sm .app-sidebar-logo-large,.app-shell.vz-sidebar-sm .app-sidebar-logo-small{display:none}.app-shell.vz-sidebar-sm .app-sidebar-logo-sm-theme-light{display:block}:is(html[data-theme=dark],html.dark) .app-shell.vz-sidebar-sm .app-sidebar-logo-sm-theme-light{display:none}:is(html[data-theme=dark],html.dark) .app-shell.vz-sidebar-sm .app-sidebar-logo-sm-theme-dark{display:block}.app-shell.vz-sidebar-sm .btn-vertical-sm-hover{display:none}.app-main{margin-left:var(--vz-vertical-menu-width);padding-top:calc(var(--vz-topbar-height) + 26px)}.app-shell.vz-sidebar-sm .app-main{margin-left:var(--vz-vertical-menu-width-sm)}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .app-sidebar-brand span,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .menu-title span,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .nav-item-label,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .nav-item:before,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .nav-link:after,.vertical-overlay{display:none}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .nav-item{justify-content:center;padding-inline:0}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar .nav-item-icon{margin-right:0}@media (min-width:766px){.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover{width:var(--vz-vertical-menu-width);z-index:1105}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-brand-box{justify-content:space-between}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-logo-theme-light{display:block}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-logo-theme-dark,html[data-theme=dark] .app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-logo-theme-light{display:none}html[data-theme=dark] .app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-logo-theme-dark{display:block}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-logo-small{display:none}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .btn-vertical-sm-hover{display:inline-grid}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .app-sidebar-brand span,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .menu-title span,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .nav-item-label,.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .nav-link:after{display:inline}.app-shell.vz-sidebar-sm:not(.vz-mobile-sidebar) .app-sidebar:hover .nav-item{justify-content:flex-start;padding-inline:12px}}@media (max-width:765.98px){#page-topbar{left:0!important}.app-header{grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:10px 12px}.topbar-left-spacer{display:inline-grid;align-items:center}.topbar-center-spacer{display:none}.topbar-actions{display:inline-flex;flex-wrap:nowrap;justify-content:flex-end;justify-self:end;gap:3px;margin-left:auto;width:max-content;min-width:0;overflow:visible}.topbar-actions>*{flex:0 0 auto;width:34px;min-width:34px}.topbar-menu,.topbar-menu>summary{width:auto}.topbar-menu-panel{position:fixed;top:calc(var(--vz-topbar-height) + 8px);left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto;max-width:none;max-height:calc(100dvh - var(--vz-topbar-height) - 16px);z-index:1110}.topbar-family{grid-template-columns:auto;color:var(--brand-ink);width:34px;min-width:34px;min-height:34px;padding:0;justify-items:center}.topbar-family:after{content:""}.topbar-family strong{display:none}.topbar-user-pill{grid-template-columns:auto;color:var(--brand-ink);width:34px;min-width:34px;min-height:34px;padding:0;justify-items:center}.topbar-user-pill strong{display:none}.topbar-icon-button{color:var(--brand-ink);width:34px;min-width:34px;min-height:34px}.topbar-family-icon,.topbar-user-icon{color:currentColor}.topbar-family-icon svg,.topbar-icon-button .fs-22,.topbar-icon-button i,.topbar-icon-button svg,.topbar-user-icon svg{width:17px;height:17px;font-size:17px!important;line-height:17px}.topbar-flag{width:17px;height:17px}.topbar-mobile-menu-button{display:inline-flex;width:34px;height:34px;border-radius:var(--radius)}.btn-vertical-sm-hover .sidebar-pin-dot{display:none}.btn-vertical-sm-hover .sidebar-toggle-arrow{display:inline-flex}.app-frame{grid-template-columns:1fr!important}.app-sidebar{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1003;width:100vw;max-width:100vw;height:100vh;min-height:0;border-right:1px solid var(--line);border-bottom:0;transform:translateX(-100%);transition:transform .2s ease-out}.app-sidebar-nav{display:flex;flex-direction:column;gap:8px;overflow:visible}.app-sidebar-nav .nav-item{width:100%;min-width:0;flex:0 0 auto}.app-shell.vz-mobile-sidebar .app-sidebar{transform:translateX(0);z-index:1105}.vertical-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1002;background:rgba(15,23,42,.3)}.app-main{margin-left:0!important}.app-shell.vz-mobile-sidebar .vertical-overlay{display:block}}.demo-data-disclosure{display:flex;align-items:center;justify-content:space-between;gap:12px;width:min(1180px,100%);margin-bottom:18px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:var(--radius);background:color-mix(in srgb,var(--accent-soft) 78%,var(--panel));color:var(--text);font-size:.86rem}.demo-data-disclosure a{color:var(--accent-strong);font-weight:800;white-space:nowrap}.demo-data-disclosure-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.demo-data-disclosure-actions .inline-text-button{color:var(--accent-strong);font-weight:800;white-space:nowrap}.demo-tour-start-button{min-height:36px;padding-inline:12px;white-space:nowrap}.demo-navigation-message{position:fixed;z-index:1600;right:20px;bottom:20px;width:min(420px,calc(100vw - 40px));padding:13px 15px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:var(--radius);background:var(--panel);box-shadow:0 18px 52px rgba(15,23,42,.24);color:var(--text);font-weight:700;line-height:1.45}.demo-tour-layer,.demo-tour-prompt-backdrop{position:fixed;z-index:2100;inset:0}.demo-tour-prompt-backdrop{display:grid;place-items:center;padding:20px;background:rgba(6,14,28,.7);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.demo-tour-coach,.demo-tour-prompt{display:grid;grid-gap:14px;gap:14px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:18px;background:var(--panel);box-shadow:0 26px 80px rgba(6,14,28,.34);color:var(--text)}.demo-tour-prompt{width:min(570px,100%);padding:clamp(24px,4vw,38px)}.demo-tour-coach h2,.demo-tour-coach p,.demo-tour-prompt h2,.demo-tour-prompt p{margin:0}.demo-tour-coach h2,.demo-tour-prompt h2{font-size:clamp(1.35rem,3vw,1.8rem);line-height:1.2}.demo-tour-coach p,.demo-tour-prompt p{color:var(--muted);line-height:1.6}.demo-tour-kicker,.demo-tour-progress span{color:var(--accent-strong);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.demo-tour-actions,.demo-tour-actions>div{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.demo-tour-layer{pointer-events:none}.demo-tour-dim{position:absolute;inset:0;background:rgba(6,14,28,.68)}.demo-tour-spotlight{position:fixed;border:3px solid #59d8bd;border-radius:14px;box-shadow:0 0 0 9999px rgba(6,14,28,.7),0 0 0 6px rgba(89,216,189,.22);transition:inset .22s ease,width .22s ease,height .22s ease}.demo-tour-coach{position:fixed;z-index:1;left:50%;bottom:max(20px,env(safe-area-inset-bottom));width:min(620px,calc(100vw - 32px));padding:20px;transform:translateX(-50%);pointer-events:auto}.demo-tour-actions-between,.demo-tour-progress{display:flex;align-items:center;justify-content:space-between;gap:12px}.demo-tour-progress strong{color:var(--muted);font-size:.84rem}@media (max-width:900px){.demo-tour-start-button{display:none}}@media (max-width:640px){.demo-data-disclosure{align-items:flex-start;flex-direction:column}.demo-tour-actions-between{align-items:stretch;flex-direction:column}.demo-tour-actions-between>div{justify-content:flex-end}}@media (prefers-reduced-motion:reduce){.demo-tour-spotlight{transition:none}}@media (max-width:560px){.app-header{gap:6px;padding:8px 10px}}@media (max-width:718.98px){.topbar-actions{gap:2px}}@media (max-width:420px){.topbar-actions{gap:2px;margin-left:auto}.topbar-actions>*,.topbar-family,.topbar-icon-button,.topbar-user-pill{min-width:34px;width:34px;min-height:34px}}.topbar-notification-count{position:absolute;top:-7px;right:-7px;display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--danger);color:#ffffff;font-size:.68rem}.notification-panel{width:min(380px,calc(100vw - 24px))}.notification-list{display:grid;grid-gap:8px;gap:8px}.notification-item{display:grid;grid-gap:4px;gap:4px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft);text-decoration:none}.notification-item span{color:var(--muted);font-size:.82rem;line-height:1.4}.notification-item.is-read{opacity:.72}.dashboard-period-selector,.finance-filter-panel,.planning-workflow-note{display:grid;grid-gap:14px;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.dashboard-period-main,.finance-filter-header,.finance-panel-header,.planning-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.finance-filter-title-block{display:grid;grid-gap:10px;gap:10px;min-width:0}.finance-filter-range{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:10px;min-width:min(100%,460px)}.finance-filter-range>.swiss-date-field{flex:1 1 200px;min-width:180px}.dashboard-period-main strong,.planning-workflow-note strong{color:var(--brand-ink)}.dashboard-period-controls,.dashboard-period-range,.finance-filter-actions,.finance-panel-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.finance-filter-actions{justify-content:flex-end;margin-left:auto}.finance-filter-actions-grid{display:grid;grid-template-columns:repeat(3,max-content);grid-gap:8px;gap:8px}.dashboard-period-field,.dashboard-period-range label,.finance-filter-grid label{display:grid;min-width:0;grid-gap:6px;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.dashboard-period-field input,.dashboard-period-range input,.finance-filter-grid input,.finance-filter-grid select,.planning-edit-cell input{min-height:40px;width:100%;border:1px solid var(--line-strong);border-radius:6px;background:var(--panel);color:var(--text);font:inherit}.dashboard-period-field input,.dashboard-period-range input,.finance-filter-grid input,.finance-filter-grid select,.finance-select{padding:0 10px}.finance-select,.transaction-bulk-select,.transaction-inline-category-select,.transaction-page-size-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 17px) 17px,calc(100% - 11px) 17px;background-repeat:no-repeat;background-size:6px 6px,6px 6px}.finance-overview-stack{display:grid;width:min(1240px,100%);grid-gap:18px;gap:18px}.finance-update-banner{width:-moz-fit-content;width:fit-content;max-width:100%;padding:9px 12px;border:1px solid rgba(80,160,48,.28);border-radius:8px;background:var(--success-soft);color:var(--success);font-size:.86rem;font-weight:800}.finance-update-banner.is-error{border-color:#e0a7a3;background:var(--danger-soft);color:var(--danger)}.finance-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.finance-filter-submit{display:flex;justify-content:flex-end}.transaction-filter-submit-row{align-items:flex-end;justify-content:flex-end;gap:10px}.transaction-filter-search-field{min-width:min(320px,100%)}.finance-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.finance-panel{display:grid;grid-gap:12px;gap:12px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.finance-gap-note,.planning-workflow-note p{margin:0;color:var(--muted);line-height:1.5}.finance-chart-frame,.finance-sankey-frame{min-width:0;overflow:hidden;border:1px solid #d5dde8;border-radius:var(--radius);background:#ffffff}.finance-chart-scroll,.finance-sankey-frame{overflow-x:auto}.finance-svg-chart{display:block;width:auto;max-width:none;min-width:0;height:auto}.finance-echarts-sankey{width:100%;min-width:980px;height:100%}.finance-panel-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.finance-download-picker{position:relative}.finance-download-picker-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:40;display:grid;grid-gap:6px;gap:6px;min-width:110px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-md)}.finance-download-option{justify-content:flex-start;width:100%;min-height:34px}.finance-chart-gridline{stroke:#d5dde8;stroke-width:1}.finance-chart-axis{stroke:#546376;stroke-width:1.4}.finance-chart-axis-label,.finance-chart-label,.finance-chart-legend text{fill:#546376;font-size:12px;font-weight:800}.finance-chart-label{fill:#0f172a}.finance-chart-value-label-bg{fill:rgba(255,255,255,.92);stroke:rgba(84,99,118,.22);stroke-width:1}.finance-chart-value-label{fill:var(--text);font-size:11px;font-weight:800;pointer-events:none}.finance-chart-category.is-clickable{cursor:pointer}.finance-chart-hit-target{fill:transparent;pointer-events:all}.finance-chart-category:focus-visible .finance-chart-selection{stroke:var(--accent);stroke-width:2}.finance-chart-selection{fill:var(--accent-soft)}.finance-chart-bar{transition:opacity .14s ease,transform .14s ease}.finance-chart-category.is-clickable:hover .finance-chart-bar,.finance-chart-category:focus-visible .finance-chart-bar{opacity:.84}.finance-mini-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-soft);text-decoration:none}.finance-export-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:12px}.finance-multi-filter{min-width:0;border:0;padding:0;margin:0}.finance-multi-filter legend,.swiss-date-field>span{display:block;margin-bottom:6px;color:var(--muted);font-size:.78rem;font-weight:900}.finance-multi-filter details{position:relative}.finance-multi-filter summary{min-height:42px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);cursor:pointer;list-style:none}.finance-multi-filter summary::-webkit-details-marker{display:none}.finance-multi-filter-menu{position:absolute;z-index:30;display:grid;grid-gap:8px;gap:8px;width:min(320px,90vw);max-height:260px;overflow:auto;margin-top:6px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-lg)}.finance-multi-filter-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}.finance-multi-filter-meta small{color:var(--muted);font-size:.76rem;font-weight:800}.finance-multi-filter-meta button{border:0;background:transparent;color:var(--accent);cursor:pointer;font:inherit;font-size:.76rem;font-weight:800;text-decoration:underline}.finance-multi-filter-actions{display:flex;align-items:center;gap:10px}.finance-multi-filter-meta button:disabled{color:var(--muted);cursor:default;text-decoration:none}.finance-multi-filter-menu label{display:flex;align-items:center;gap:8px;min-height:28px}.finance-multi-filter-menu input[type=checkbox]{min-height:16px;width:16px;margin:0;padding:0}.swiss-date-input-row{position:relative;display:block}.swiss-date-input-row input[type=text]{width:100%;padding-right:42px}.swiss-date-picker-trigger{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.swiss-date-picker-trigger:focus-visible,.swiss-date-picker-trigger:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);outline:none}.swiss-date-picker-trigger:disabled{opacity:.5;cursor:default}.swiss-date-picker-icon{width:18px;height:18px}.swiss-date-calendar-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:80;width:min(320px,calc(100vw - 32px));max-width:calc(100vw - 32px);margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-lg)}.swiss-date-calendar-header{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;grid-gap:8px;gap:8px;margin-bottom:10px}.swiss-date-calendar-header strong{color:var(--text);font-size:.9rem;font-weight:900;text-align:center;text-transform:capitalize}.swiss-date-calendar-day,.swiss-date-calendar-nav{border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);cursor:pointer;font:inherit}.swiss-date-calendar-nav{width:34px;height:34px;color:var(--muted);font-weight:900}.swiss-date-calendar-day:focus-visible,.swiss-date-calendar-day:hover,.swiss-date-calendar-nav:focus-visible,.swiss-date-calendar-nav:hover{border-color:color-mix(in srgb,var(--accent) 24%,var(--line));background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);outline:none}.swiss-date-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:4px;gap:4px}.swiss-date-calendar-weekday{min-height:24px;color:var(--muted);font-size:.72rem;font-weight:900}.swiss-date-calendar-day,.swiss-date-calendar-weekday{display:flex;align-items:center;justify-content:center}.swiss-date-calendar-day{aspect-ratio:1;min-width:0;padding:0;font-size:.84rem;font-weight:800}.swiss-date-calendar-day.is-outside-month{color:color-mix(in srgb,var(--muted) 58%,transparent)}.swiss-date-calendar-day.is-today{border-color:color-mix(in srgb,var(--accent) 52%,var(--line))}.swiss-date-calendar-day.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}.swiss-date-calendar-day.is-selected:focus-visible,.swiss-date-calendar-day.is-selected:hover{background:var(--accent);color:#fff}.field-error{display:block;margin-top:5px;color:var(--danger);font-size:.78rem;font-weight:800}.category-rule-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.category-rule-filter label{display:grid;grid-gap:6px;gap:6px;min-width:min(360px,100%);color:var(--muted);font-size:.78rem;font-weight:900}.category-rule-filter input{min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.finance-table-scroll{overflow-x:auto}.finance-preview-table{width:100%;border-collapse:collapse;min-width:820px}.finance-preview-table td,.finance-preview-table th{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.finance-preview-table th{color:var(--muted);font-size:.75rem;text-transform:uppercase}.finance-sort-header-button{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;text-align:left;text-transform:inherit}.finance-sort-header-button:focus-visible,.finance-sort-header-button:hover{color:var(--text)}.finance-sort-header-button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.finance-sort-arrow{flex:0 0 auto;color:var(--muted);font-size:.7rem;line-height:1;opacity:.55}.finance-sort-arrow.is-active{color:var(--accent-strong);opacity:1}.finance-preview-table tbody tr{transition:background-color .12s ease}.finance-preview-table tbody tr:hover,.finance-row-chip{background:var(--accent-soft)}.finance-row-chip{display:inline-flex;margin-left:8px;padding:2px 7px;border-radius:999px;color:var(--accent-strong);font-size:.7rem;font-weight:900}.category-hierarchy-list{display:grid;grid-gap:14px;gap:14px}.category-hierarchy-group,.category-node{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-sm)}.category-hierarchy-group>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;cursor:pointer;list-style:none}.category-hierarchy-group>summary::-webkit-details-marker{display:none}.category-hierarchy-group>summary strong{display:block;color:var(--brand-ink);font-size:1.1rem}.category-hierarchy-group>summary small{color:var(--muted);font-weight:800}.category-hierarchy-body{display:grid;grid-gap:12px;gap:12px;padding:0 16px 16px}.category-subcategory-list{display:grid;grid-gap:10px;gap:10px;margin-left:22px;padding-left:18px;border-left:2px solid var(--accent-soft)}.category-node{display:grid;grid-gap:12px;gap:12px;padding:14px}.category-node.is-sub{background:var(--panel-soft)}.category-node-actions,.category-node-main,.category-rule-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.category-node-main>div{display:grid;grid-gap:3px;gap:3px}.category-hierarchy-empty,.category-node-main small,.category-rule-empty{color:var(--muted)}.category-rule-pill,.category-tree-marker{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.72rem;font-weight:900;text-decoration:none}.category-rule-pill{gap:6px}.category-rule-pill small{color:var(--muted)}.category-hierarchy-orphans{display:grid;grid-gap:12px;gap:12px;padding:16px}.planning-workflow-note{grid-template-columns:minmax(220px,.75fr) minmax(0,1fr);align-items:center}.planning-save-message{padding:12px 14px;border:1px solid rgba(80,160,48,.28);border-radius:var(--radius);background:var(--success-soft);color:var(--success);font-weight:800}.planning-edit-cell{display:grid;grid-template-columns:minmax(100px,1fr) auto;grid-gap:8px;gap:8px}.planning-edit-cell input{padding:0 10px}.planning-main-category-row{background:var(--panel-soft)}.planning-main-category-row td:first-child{color:var(--brand-ink)}.planning-sub-category-row td:first-child{padding-left:24px;color:var(--muted)}.planning-filter-month-year-note{grid-column:1/-1}.muted-text{color:var(--muted)}@media (max-width:1100px){.finance-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.planning-workflow-note{grid-template-columns:1fr}}@media (max-width:1000px){.finance-filter-header{flex-direction:column;align-items:stretch}.finance-filter-actions,.finance-filter-actions-grid,.finance-filter-range,.finance-filter-title-block{width:100%;min-width:0}.finance-filter-range>.swiss-date-field{min-width:0;flex:1 1 170px}.finance-filter-actions{margin-left:0;justify-content:flex-start}.finance-filter-actions-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:820px){.finance-filter-header{flex-direction:column;align-items:stretch}.finance-filter-range{flex-wrap:wrap;min-width:0}.finance-filter-actions{width:100%;margin-left:0;justify-content:flex-start}.finance-filter-actions-grid{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.finance-filter-actions-grid .ui-button{width:100%;min-width:0;min-height:36px;padding:6px 8px;white-space:normal;overflow-wrap:anywhere;line-height:1.2;text-align:center}.finance-filter-grid,.finance-overview-grid{grid-template-columns:1fr}.category-subcategory-list{margin-left:0}}@media (max-width:560px){.finance-filter-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(36px,auto));align-items:start}.finance-filter-actions-grid>:first-child{grid-column:1;grid-row:1}.finance-filter-actions-grid>:nth-child(2){grid-column:1;grid-row:2}.finance-filter-actions-grid>:nth-child(3){grid-column:1;grid-row:3}.finance-filter-actions-grid>:nth-child(4){grid-column:2;grid-row:1}.finance-filter-actions-grid>:nth-child(5){grid-column:2;grid-row:2}.finance-filter-actions-grid>:nth-child(6){grid-column:2;grid-row:3}}@media (max-width:460px){.finance-filter-actions-grid{grid-template-columns:1fr;grid-template-rows:none}.finance-filter-actions-grid>:nth-child(-n+6){grid-column:auto;grid-row:auto}}:is(html[data-theme=dark],html.dark) .accounts-stack,:is(html[data-theme=dark],html.dark) .app-frame,:is(html[data-theme=dark],html.dark) .app-header,:is(html[data-theme=dark],html.dark) .app-main,:is(html[data-theme=dark],html.dark) .app-shell,:is(html[data-theme=dark],html.dark) .app-sidebar,:is(html[data-theme=dark],html.dark) .budget-stack,:is(html[data-theme=dark],html.dark) .categories-stack,:is(html[data-theme=dark],html.dark) .category-suggestions-stack,:is(html[data-theme=dark],html.dark) .dashboard-stack,:is(html[data-theme=dark],html.dark) .family-management-stack,:is(html[data-theme=dark],html.dark) .finance-overview-stack,:is(html[data-theme=dark],html.dark) .imports-stack,:is(html[data-theme=dark],html.dark) .net-groups-stack,:is(html[data-theme=dark],html.dark) .planning-stack,:is(html[data-theme=dark],html.dark) .privacy-stack,:is(html[data-theme=dark],html.dark) .section-hub-stack,:is(html[data-theme=dark],html.dark) .spending-stack,:is(html[data-theme=dark],html.dark) .subscriptions-stack,:is(html[data-theme=dark],html.dark) .topbar-family,:is(html[data-theme=dark],html.dark) .topbar-icon-button,:is(html[data-theme=dark],html.dark) .topbar-menu-panel,:is(html[data-theme=dark],html.dark) .topbar-user-pill,:is(html[data-theme=dark],html.dark) .transactions-stack,:is(html[data-theme=dark],html.dark) body{background:var(--background)!important;color:var(--text)}:is(html[data-theme=dark],html.dark) :where(.ui-card,.dashboard-card,.finance-panel,.finance-filter-panel,.account-card,.account-list,.category-card,.category-list,.category-suggestions-panel,.imports-panel,.spending-panel,.budget-panel,.subscription-panel,.net-group-panel,.transactions-panel,.planning-panel,.privacy-panel,.section-hub-panel,.section-hub-card,.ui-page-header){background:var(--panel)!important;border-color:var(--line)!important}:is(html[data-theme=dark],html.dark) .page-heading,:is(html[data-theme=dark],html.dark) .page-heading>div,:is(html[data-theme=dark],html.dark) .ui-page-header,:is(html[data-theme=dark],html.dark) .ui-page-header>div{background:var(--background)!important;color:var(--text)!important}html.dark,html.dark body,html.dark body>div:first-child,html[data-theme=dark],html[data-theme=dark] body,html[data-theme=dark] body>div:first-child{background-color:#111827!important}html.dark,html[data-theme=dark]{color-scheme:dark;--background:#111827!important;--panel:#172033!important;--panel-soft:#1e293b!important;--text:#eef2f7!important;--muted:#a9b4c4!important;--line:#334155!important;--line-strong:#475569!important;--accent:#5db7f0!important;--accent-soft:#132f46!important;--accent-strong:#8cccf5!important;--brand-ink:#f8fafc!important;--danger-soft:#3a1f22!important;--success-soft:#123425!important;--warning-soft:#342d18!important}html.dark #__next,html.dark .app-frame,html.dark .app-main,html.dark .app-shell,html.dark body,html[data-theme=dark] #__next,html[data-theme=dark] .app-frame,html[data-theme=dark] .app-main,html[data-theme=dark] .app-shell,html[data-theme=dark] body{background:var(--background)!important;color:var(--text)!important}html.dark .finance-chart-frame,html.dark .finance-sankey-frame,html.dark .transaction-bulk-form,html.dark .transaction-categorization-filter,html.dark .transaction-categorization-panel,html.dark .transaction-category-picker,html.dark .transaction-delete-action,html.dark .transaction-detail-card,html.dark .transaction-page-controls,html.dark .transaction-split-empty,html.dark .transaction-split-panel,html.dark .transaction-suggestion-panel,html.dark .transaction-suggestion-table-wrap,html.dark .transaction-table,html.dark .transaction-table-area,html.dark .transaction-table-shell,html[data-theme=dark] .finance-chart-frame,html[data-theme=dark] .finance-sankey-frame,html[data-theme=dark] .transaction-bulk-form,html[data-theme=dark] .transaction-categorization-filter,html[data-theme=dark] .transaction-categorization-panel,html[data-theme=dark] .transaction-category-picker,html[data-theme=dark] .transaction-delete-action,html[data-theme=dark] .transaction-detail-card,html[data-theme=dark] .transaction-page-controls,html[data-theme=dark] .transaction-split-empty,html[data-theme=dark] .transaction-split-panel,html[data-theme=dark] .transaction-suggestion-panel,html[data-theme=dark] .transaction-suggestion-table-wrap,html[data-theme=dark] .transaction-table,html[data-theme=dark] .transaction-table-area,html[data-theme=dark] .transaction-table-shell{background:var(--panel)!important;border-color:var(--line)!important}html.dark .app-main>*,html.dark :where(.content-stack,.dashboard-stack,.transactions-stack,.accounts-stack,.categories-stack,.category-suggestions-stack,.family-management-stack,.imports-stack,.subscriptions-stack,.privacy-stack,.spending-stack,.budget-stack,.planning-stack,.net-groups-stack,.finance-overview-stack,.section-hub-stack),html[data-theme=dark] .app-main>*,html[data-theme=dark] :where(.content-stack,.dashboard-stack,.transactions-stack,.accounts-stack,.categories-stack,.category-suggestions-stack,.family-management-stack,.imports-stack,.subscriptions-stack,.privacy-stack,.spending-stack,.budget-stack,.planning-stack,.net-groups-stack,.finance-overview-stack,.section-hub-stack){background:transparent!important}@media (max-width:765.98px){.topbar-actions{display:inline-flex!important;justify-self:end!important;justify-content:flex-end!important;width:max-content!important;gap:2px!important;margin-left:auto!important}.topbar-actions>*,.topbar-family,.topbar-icon-button,.topbar-mobile-menu-button,.topbar-user-pill{width:34px!important;min-width:34px!important;min-height:34px!important;max-width:34px!important}.topbar-family,.topbar-user-pill{grid-template-columns:auto!important;padding:0!important;justify-items:center!important}.topbar-family strong,.topbar-family:after,.topbar-user-pill strong{display:none!important;content:none!important}.topbar-family-icon svg,.topbar-flag,.topbar-icon-button .fs-22,.topbar-icon-button i,.topbar-icon-button svg,.topbar-user-icon svg{width:17px!important;height:17px!important;font-size:17px!important;line-height:17px!important}}