.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100dvh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface-2);flex-direction:column;gap:20px;height:100dvh;padding:24px 16px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:10px;padding:0 8px;font-size:20px;font-weight:700;display:flex}.side-nav{flex-direction:column;gap:2px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--ink-2);align-items:center;gap:12px;padding:10px 12px;font-weight:550;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link:hover{background:var(--surface-3);color:var(--ink)}.nav-link.active{background:var(--accent-tint);color:var(--accent-text)}.sidebar-foot{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:auto;padding:12px 8px 0;display:flex}.sidebar-user{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);flex:1;font-size:13px;overflow:hidden}.main{min-width:0;padding:28px var(--gutter) 48px}.page{flex-direction:column;gap:20px;max-width:1180px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:4px;display:flex}.eyebrow{color:var(--accent-text);margin-bottom:4px;font-size:13px;font-weight:600}.tabbar{display:none}@media (width<=860px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.main{padding-top:calc(16px + env(safe-area-inset-top));padding-bottom:calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}.tabbar{z-index:20;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);background:var(--tabbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);align-items:center;display:grid;position:fixed;inset:auto 0 0}.tabbar .nav-link{box-shadow:none;background:0 0;flex-direction:column;justify-content:center;gap:2px;padding:6px 2px;font-size:11px;font-weight:600}.tabbar .nav-link.active{color:var(--accent-text)}.tabbar .nav-link.active svg{stroke-width:2.4px}.fab{background:var(--accent);width:54px;height:54px;color:var(--accent-contrast);box-shadow:0 8px 20px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:18px;justify-self:center;place-items:center;margin-top:-18px;transition:transform .15s;display:grid}.fab:active{transform:scale(.94)}.page-head{flex-direction:column;align-items:flex-start}}.mobile-top{display:none}.space-switcher{position:relative}.space-current{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;color:var(--ink);text-align:left;align-items:center;gap:10px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.space-current:hover{border-color:var(--border-hover)}.space-current[aria-expanded=true]{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--focus-ring)}.space-icon{background:var(--surface-3);width:32px;height:32px;color:var(--ink-2);border-radius:9px;flex:none;place-items:center;display:grid}.space-icon.type-asso,.space-current .space-icon{background:var(--accent-tint);color:var(--accent-text)}.space-text{flex-direction:column;flex:1;min-width:0;display:flex}.space-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:650;overflow:hidden}.space-sub{color:var(--muted);font-size:12px}.space-chevron{color:var(--muted);flex:none}.count-badge{background:var(--accent);min-width:20px;height:20px;color:var(--accent-contrast);text-align:center;border-radius:10px;flex:none;padding:0 6px;font-size:12px;font-weight:700;line-height:20px}.space-menu{z-index:40;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);min-width:260px;max-height:min(70dvh,520px);box-shadow:var(--shadow-lg);padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.space-menu-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:8px 10px 4px;font-size:12px;font-weight:650}.space-option,.space-invite{border-radius:var(--radius-sm);width:100%;color:var(--ink);text-align:left;align-items:center;gap:10px;padding:8px 10px;display:flex}.space-option:hover,.space-option:focus-visible{background:var(--surface-3)}.space-option[aria-checked=true]{background:var(--accent-tint)}.space-check{color:var(--accent-text)}.space-create{border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--accent-text);margin-top:4px;padding-top:12px}.space-create .space-icon{border:1.5px dashed var(--border-strong);color:var(--accent-text);background:0 0}.space-invite{background:var(--surface-2);flex-wrap:wrap;margin-bottom:4px}.space-invite>svg{color:var(--accent-text)}.space-invite-actions{gap:6px;width:100%;padding-left:26px;display:flex}@media (width<=860px){.mobile-top{z-index:25;padding:calc(8px + env(safe-area-inset-top)) var(--gutter) 8px;background:var(--tabbar-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);align-items:center;gap:10px;display:flex;position:sticky;top:0}.mobile-top .space-switcher{flex:1;min-width:0}.space-switcher.compact .space-current{padding:5px 8px}.space-switcher.compact .space-icon{width:28px;height:28px}.main{padding-top:16px}.tabbar.no-fab{grid-template-columns:repeat(4,1fr)}}.mobile-only{display:none}@media (width<=860px){.mobile-only{display:flex}}.page-nav{max-width:1180px;margin:0 auto}.page-nav:empty{display:none}.back-link.page-back{margin:0 0 12px}.back-to-top{z-index:30;background:var(--accent);width:48px;height:48px;color:var(--accent-contrast);box-shadow:var(--shadow-md);border-radius:50%;place-items:center;animation:.2s ease-out back-to-top-in;display:grid;position:fixed;bottom:28px;right:28px}.back-to-top:hover{background:var(--accent-hover)}@keyframes back-to-top-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=860px){.back-to-top{display:none}}.email-banner{max-width:1180px;margin:0 auto 20px}.email-banner.blocked{border-color:var(--danger)}.banner-actions{flex-wrap:wrap;gap:8px;display:flex}a.brand{color:inherit;border-radius:10px;line-height:1;text-decoration:none}a.brand svg{flex:none;display:block}a.brand span{line-height:1;display:block}.brand-link{border-radius:10px;display:inline-flex}.brand-link svg{display:block}a.sidebar-user{text-decoration:none}a.sidebar-user:hover{color:var(--ink);text-decoration:underline}.tone-income{--tone:var(--income);--tone-text:var(--income-text);--tone-tint:var(--income-tint);--tone-contrast:var(--income-contrast);--tone-planned:var(--income-planned)}.tone-expense{--tone:var(--expense);--tone-text:var(--expense-text);--tone-tint:var(--expense-tint);--tone-contrast:var(--expense-contrast);--tone-planned:var(--expense-planned)}.dot{background:var(--tone,var(--ink));border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:18px 20px;display:flex}.card-head h2{flex:1;min-width:0}.card-body{padding:18px 20px}.btn{border-radius:var(--radius-sm);white-space:nowrap;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:600;transition:background .15s,box-shadow .15s,transform .1s;display:inline-flex}a.btn{text-decoration:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn-lg{min-height:48px;font-size:16px}.btn-block{width:100%}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-income,.btn-expense{background:var(--tone);color:var(--tone-contrast)}.btn-income:hover:not(:disabled),.btn-expense:hover:not(:disabled){filter:brightness(.93)}.btn-ghost{background:var(--surface-raised);color:var(--ink);box-shadow:inset 0 0 0 1px var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-ghost.danger,.link-btn.danger{color:var(--danger)}.icon-btn{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--ink-2);place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--ink)}.icon-btn.small{width:32px;height:32px}.link-btn{color:var(--ink-2);border-radius:6px;align-items:center;gap:4px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.link-btn:hover{color:var(--accent-text);text-underline-offset:3px;text-decoration:underline}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field-label{color:var(--ink-2);padding:0;font-size:13px;font-weight:600}.input{background:var(--field-bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;min-height:42px;padding:8px 12px;font-size:15px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--placeholder)}.input:hover{border-color:var(--border-hover)}.input:focus{border-color:var(--ink-2);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-ring)}.select{appearance:none;background-image:var(--select-arrow);background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.select.tone-income,.select.tone-expense{background-color:var(--tone-tint);border-color:#0000;font-weight:550}.amount-input{position:relative}.amount-input .input{text-align:right;font-variant-numeric:tabular-nums;padding-right:30px;font-weight:600}.amount-suffix{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.amount-input.large .input{letter-spacing:-.01em;min-height:64px;padding-right:44px;font-size:30px;font-weight:700}.amount-input.large .amount-suffix{font-size:24px;right:16px}.check{white-space:nowrap;cursor:pointer;align-items:center;gap:6px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--accent)}.form-error{color:var(--danger);font-size:13px;font-weight:600}.field-error{color:var(--danger);margin:4px 0 0;font-size:13px;font-weight:600;line-height:1.35}.field>.field-error,.field-error+.field-error{margin-top:0}.segmented{background:var(--surface-3);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.segmented label{min-height:34px;color:var(--ink-2);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:600;transition:background .15s,color .15s;display:inline-flex;position:relative}.segmented input{opacity:0;pointer-events:none;position:absolute}.segmented label.active{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.segmented label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{cursor:pointer;position:relative}.chip input{opacity:0;pointer-events:none;position:absolute}.chip span{border:1px solid var(--border-strong);background:var(--surface-raised);border-radius:999px;align-items:center;min-height:36px;padding:0 12px;font-size:14px;font-weight:550;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.chip:hover span{border-color:var(--tone)}.chip input:checked+span{background:var(--tone);border-color:var(--tone);color:var(--tone-contrast)}.chip input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.pill{border-radius:var(--radius-sm);background:var(--tone-tint);min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;padding:9px 12px;font-weight:550;display:block;overflow:hidden}.badge{border:1px dashed var(--border-strong);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.month-switcher{background:var(--surface-raised);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;align-items:center;gap:4px;padding:4px;display:flex;position:relative}.month-label{border-radius:var(--radius-sm);min-width:168px;height:40px;font-family:var(--font-display);letter-spacing:-.01em;padding:0 12px;font-size:19px;font-weight:650}.month-label:hover{background:var(--accent-tint);color:var(--accent-text)}.month-popover{z-index:30;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);width:280px;box-shadow:var(--shadow-md);flex-direction:column;gap:10px;padding:12px;animation:.14s ease-out pop;display:flex;position:absolute;top:calc(100% + 8px);right:0}.month-popover-head{justify-content:space-between;align-items:center;display:flex}.month-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.month-cell{border-radius:var(--radius-sm);height:38px;font-size:14px;font-weight:550}.month-cell:hover{background:var(--surface-3)}.month-cell.today{box-shadow:inset 0 0 0 1.5px var(--accent-line)}.month-cell.selected{background:var(--accent);color:var(--accent-contrast)}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.98)}}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0;padding:16px 18px}.kpi-label{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.kpi-label .dot{width:8px;height:8px}.kpi-value{letter-spacing:-.02em;white-space:nowrap;margin-top:6px;font-size:clamp(22px,2.4vw,28px);font-weight:700;line-height:1.15}.kpi-sub{color:var(--muted);margin-top:4px;font-size:13px}@media (width<=1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=380px){.kpi{padding:14px}.kpi-value{font-size:20px}}.banner{background:var(--warn-bg);border:1px solid var(--warn-border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:12px 16px;padding:14px 18px;display:flex}.banner-text{flex-direction:column;flex:260px;display:flex}.banner-form,.inline-fields{align-items:center;gap:10px;display:flex}.banner-form .amount-input,.inline-fields .amount-input{width:140px}.banner .form-error{flex-basis:100%}.toasts{z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius);background:var(--toast-bg);color:var(--toast-ink);box-shadow:var(--shadow-md);pointer-events:auto;align-items:center;gap:10px;padding:10px 12px 10px 14px;font-size:14px;font-weight:550;animation:.2s ease-out toast-in;display:flex}.toast-success svg{color:var(--toast-icon);flex:none}.toast-error{background:var(--danger)}.toast-action{background:#ffffff24;border-radius:6px;margin-left:6px;padding:4px 10px;font-weight:700}.toast-action:hover{background:#ffffff3d}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=860px){.toasts{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}}.sheet{background:var(--surface-raised);width:min(520px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:var(--shadow-lg);border:0;border-radius:22px;padding:0;overflow:auto}.sheet::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet[open]{animation:.2s ease-out sheet-in}.sheet-body{flex-direction:column;gap:16px;padding:20px;display:flex}.sheet-head{justify-content:space-between;align-items:center;display:flex}.kind-toggle{grid-template-columns:1fr 1fr;display:grid}.kind-toggle label.active.tone-income{color:var(--income-text)}.kind-toggle label.active.tone-expense{color:var(--expense-text)}@keyframes sheet-in{0%{opacity:0;transform:translateY(16px)}}@media (width<=560px){.sheet{border-radius:22px 22px 0 0;width:100vw;max-width:100vw;max-height:92dvh;margin:auto 0 0}.sheet-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}}.tx-form{gap:10px;display:grid}.tx-form-sheet{gap:16px}.tx-form-sheet .field-row{grid-template-columns:1fr auto;align-items:end;gap:12px;display:grid}.tx-form-sheet .segmented{display:flex}.tx-form-sheet .segmented label{flex:1;min-height:36px}.field-label-input.hinted .input{border-color:var(--tone);background:var(--field-bg)}.tx-form-inline{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 132px;grid-template-areas:"cat label amount""date status status""recur recur recur""attach attach attach""actions actions actions"}.tx-form-inline .field-recur{grid-area:recur;justify-self:start}.tx-form-inline .field-category{grid-area:cat}.tx-form-inline .field-label-input{grid-area:label}.tx-form-inline .field-amount{grid-area:amount}.tx-form-inline .field-date{grid-area:date}.tx-form-inline .field-status{grid-area:status;align-self:center}.tx-form-inline .form-actions{grid-area:actions}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-actions .form-error{flex-basis:100%}@media (width<=560px){.tx-form-inline{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"cat cat""amount date""label label""status status""recur recur""attach attach""actions actions"}.tx-form-inline .field-recur{justify-self:start}.tx-form-inline .segmented{display:flex}.tx-form-inline .segmented label{flex:1}}.tx-form-sheet .form-actions{background:linear-gradient(to bottom, color-mix(in srgb, var(--surface-raised) 85%, transparent), var(--surface-raised) 30%);margin:0 -20px -20px;padding:12px 20px 20px;position:sticky;bottom:-20px}@media (width<=560px){.tx-form-sheet .form-actions{bottom:calc(-20px - env(safe-area-inset-bottom));padding-bottom:calc(20px + env(safe-area-inset-bottom));margin-bottom:calc(-20px - env(safe-area-inset-bottom))}.tx-form-sheet .form-actions .btn{flex:1}.tx-form-sheet .form-actions .spacer{display:none}}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface-3) 0%, var(--skeleton-shine) 50%, var(--surface-3) 100%);background-size:200% 100%;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.is-stale{opacity:.55;transition:opacity .2s}.error-block{color:var(--danger);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;font-weight:600;display:flex}.splash{place-content:center;justify-items:center;gap:16px;min-height:100dvh;display:grid}.empty-state{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:28px 20px;display:flex}.legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 16px;margin-bottom:12px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:12px;height:12px;display:inline-block}.swatch-income{background:var(--income)}.swatch-expense{background:var(--expense)}.swatch-expense-planned{background:var(--expense-planned)}.chart-plot{width:100%;min-height:220px;position:relative}.chart svg{display:block;overflow:visible}.chart .grid{stroke:var(--grid);stroke-width:1px}.chart .baseline{stroke:var(--border-strong);stroke-width:1px}.chart .tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11.5px}.chart .month-tick.selected{fill:var(--ink);font-weight:700}.col-income{fill:var(--income)}.col-expense{fill:var(--expense)}.col-hit{fill:#0000;rx:8px}.col-group{cursor:default;outline:none}.col-group.hovered .col-hit{fill:var(--chart-hover)}.col-group:focus-visible .col-hit{stroke:var(--focus);stroke-width:2px}.chart-tooltip{z-index:5;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:170px;box-shadow:var(--shadow-md);pointer-events:none;padding:10px 12px;font-size:13px;position:absolute}.chart-tooltip p{white-space:nowrap;align-items:center;gap:6px;display:flex}.chart-tooltip strong{font-variant-numeric:tabular-nums}.tooltip-title{margin-bottom:4px;font-weight:700}.tooltip-foot{border-top:1px solid var(--border);color:var(--ink-2);margin-top:4px;padding-top:4px}.key{border-radius:1px;width:12px;height:2px;display:inline-block}.key-income{background:var(--income)}.key-expense{background:var(--expense)}.empty-chart{text-align:center;color:var(--muted);padding:32px 0}.cat-bars ul{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.cat-bar-text{justify-content:space-between;gap:12px;margin-bottom:6px;font-size:14px;display:flex}.cat-bar-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.cat-bar-value{white-space:nowrap;font-variant-numeric:tabular-nums}.cat-bar-track{gap:2px;height:10px;display:flex}.cat-bar .seg{min-width:3px;height:100%}.seg-done{background:var(--expense)}.seg-planned{background:var(--expense-planned)}.cat-bar .seg:last-child{border-radius:0 4px 4px 0}.cat-bar:hover .seg{filter:brightness(1.08)}.password-input{position:relative}.password-input .input{padding-right:44px}.password-input .icon-btn{position:absolute;top:50%;right:5px;transform:translateY(-50%)}.link-btn.accent{color:var(--accent-text)}.btn-danger{background:var(--danger);color:var(--danger-contrast)}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.kpi-accent{position:relative;overflow:hidden}.kpi-accent:before{content:"";background:var(--accent);width:4px;position:absolute;inset:0 auto 0 0}.recur-toggle{border:1px dashed var(--border-strong);min-height:36px;color:var(--ink-2);border-radius:10px;gap:8px;padding:0 12px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.recur-toggle:hover{border-color:var(--tone)}.recur-toggle.on{border-style:solid;border-color:var(--tone);background:var(--tone-tint);color:var(--tone-text)}.recur-toggle input{accent-color:var(--tone)}.recur-info{flex-flow:wrap;align-items:center;gap:8px 14px}.recur-badge{background:var(--tone-tint);color:var(--tone-text);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:650;display:inline-flex}.recur-mark{vertical-align:-2px;color:var(--tone-text);margin-right:6px;display:inline-flex}.btn-sm{gap:6px;min-height:32px;padding:0 10px;font-size:13px}.tx-main:disabled,.recent-row:disabled{cursor:default;color:inherit;opacity:1}.recent-row:disabled:hover{background:0 0}.status-chip.static{cursor:default}.series-income{--series:var(--income);--series-planned:var(--income-planned)}.series-expense{--series:var(--expense);--series-planned:var(--expense-planned)}.series-accent{--series:var(--accent);--series-planned:var(--accent-tint)}.swatch.series-income,.swatch.series-expense,.swatch.series-accent,.key.series-income,.key.series-expense,.key.series-accent{background:var(--series)}.swatch-planned{background:var(--border-strong)}.chart .col{fill:var(--series);transition:opacity .12s}.chart .col.planned{fill:var(--series-planned)}.chart .col.dimmed,.chart .slice.dimmed{opacity:.45}.chart .line{fill:none;stroke:var(--series);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--series);opacity:.1}.chart .dot-mark{fill:var(--series);stroke:var(--surface);stroke-width:2px}.chart .crosshair{stroke:var(--border-strong);stroke-width:1px}.chart .bar-track{fill:var(--surface-3)}.chart .bar-label{fill:var(--ink-2);font-size:13px;font-weight:600}.chart .bar-value{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.chart-foot{color:var(--ink-2);margin-top:8px;font-size:13px}.shade-1{--slice:var(--share-1)}.shade-2{--slice:var(--share-2)}.shade-3{--slice:var(--share-3)}.shade-4{--slice:var(--share-4)}.shade-5{--slice:var(--share-5)}.shade-other{--slice:var(--share-other)}.chart .slice{fill:var(--slice);stroke:var(--surface);stroke-width:2px;stroke-linejoin:round;transition:opacity .12s}.swatch[class*=shade-]{background:var(--slice)}.pie-chart{flex-wrap:wrap;align-items:center;gap:18px 24px;display:flex}.pie-figure{flex:none;width:180px;height:180px;margin:0 auto;position:relative}.pie-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;line-height:1.2;display:flex;position:absolute;inset:32%}.pie-center strong{font-variant-numeric:tabular-nums;font-size:15px}.pie-center .small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.pie-legend{flex-direction:column;flex:200px;gap:2px;margin:0;padding:0;list-style:none;display:flex}.pie-legend li{border-radius:var(--radius-sm);outline:none;align-items:center;gap:8px;padding:5px 8px;font-size:14px;display:flex}.pie-legend li.active,.pie-legend li:focus-visible{background:var(--chart-hover)}.pie-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pie-value{white-space:nowrap;font-variant-numeric:tabular-nums}.only-touch{display:none}@media (pointer:coarse){.only-touch{display:inline-flex}.only-mouse{display:none}}.attach-btn{border:1px solid var(--border-strong);background:var(--surface-raised);min-width:32px;height:30px;color:var(--ink-2);vertical-align:middle;border-radius:999px;flex:none;align-items:center;gap:3px;padding:0 7px;font-size:12px;font-weight:700;display:inline-flex}.attach-btn:hover{border-color:var(--accent-line);color:var(--accent-text);background:var(--accent-tint)}.history-label .attach-btn{margin-left:8px}.recent-item,.history-list li{align-items:center;gap:6px;display:flex}.recent-item>.recent-row,.history-list li>.history-row{flex:1;min-width:0}.recent-item>.attach-btn,.history-list li>.attach-btn{margin-right:6px}.attach-field{border:1.5px dashed var(--border-strong);border-radius:var(--radius-sm);flex-direction:column;gap:8px;padding:10px 12px;transition:border-color .12s,background .12s;display:flex}.attach-field.is-over{border-color:var(--accent-line);background:var(--accent-tint)}.attach-field .field-label{align-items:center;gap:6px;display:inline-flex}.attach-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.attach-list li{align-items:center;gap:6px;display:flex}.attach-list .attachment-link{border-radius:var(--radius-sm);background:var(--surface-2);min-width:0;color:var(--ink);text-align:left;flex:1;align-items:center;gap:8px;padding:6px 10px;display:flex}.attach-list button.attachment-link:hover{background:var(--surface-3)}.attach-list .staged .attachment-link{border:1px dashed var(--border);background:0 0}.attach-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attach-actions label{cursor:pointer}.attach-actions label:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.attach-actions .is-busy{opacity:.7;cursor:progress}.tx-form-inline .field-attach{grid-area:attach}.viewer{background:var(--viewer-bg);width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--viewer-ink);border:0;flex-direction:column;margin:0;padding:0;display:none;overflow:hidden}.viewer[open]{display:flex}.viewer::backdrop{background:var(--viewer-bg)}.viewer-bar,.viewer-tools{padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));flex:none;align-items:center;gap:8px;display:flex}.viewer-tools{padding-bottom:max(10px, env(safe-area-inset-bottom));justify-content:center;font-size:13px}.viewer-title{flex-direction:column;flex:1;min-width:0;display:flex}.viewer-title strong,.viewer-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-title span{opacity:.75;font-size:12px}.viewer-count{background:var(--viewer-chip);font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.viewer-btn{min-width:40px;height:40px;color:var(--viewer-ink);border-radius:12px;place-items:center;font-size:20px;text-decoration:none;display:grid}.viewer-btn:hover:not(:disabled){background:var(--viewer-chip)}.viewer-btn:disabled{opacity:.35}.viewer-hint{opacity:.7;margin-left:12px}.viewer-body{flex:1;min-height:0;display:flex;position:relative}.viewer-stage{touch-action:none;cursor:zoom-in;-webkit-user-select:none;user-select:none;flex:1;min-width:0;position:relative;overflow:hidden}.viewer-stage.zoomed{cursor:grab}.viewer-stage img{object-fit:contain;transform-origin:50%;will-change:transform;width:100%;height:100%;transition:transform 80ms ease-out;position:absolute;inset:0}.viewer-loading{opacity:.75;place-items:center;display:grid;position:absolute;inset:0}.viewer-pdf{background:var(--viewer-ink);border:0;flex:1;width:100%}.viewer-pdf-card{text-align:center;flex-direction:column;align-items:center;gap:14px;margin:auto;padding:24px;display:flex}.viewer-nav{background:var(--viewer-nav);width:46px;height:46px;color:var(--viewer-ink);border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;translate:0 -50%}.viewer-nav.prev{left:12px}.viewer-nav.next{right:12px}.viewer-nav:disabled{opacity:.25}@media (width<=640px){.viewer-hint{display:none}.viewer-nav{width:40px;height:40px}}.chart-data{margin-top:8px;font-size:14px}.chart-data summary{min-height:24px;color:var(--accent-text);cursor:pointer;padding:6px 0;font-weight:600;display:inline-block}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:6px}.data-table caption{text-align:left;color:var(--muted);padding-bottom:4px}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:right;padding:6px 8px}.data-table th[scope=row],.data-table thead th:first-child{text-align:left}.status-chip.warn{border-color:var(--warn-border);background:var(--warn-bg);color:var(--ink)}.loader{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.loader-spin{border:3px solid color-mix(in srgb, var(--accent) 22%, transparent);border-top-color:var(--accent);border-radius:50%;animation:.8s linear infinite loader-turn;display:block}@keyframes loader-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loader-spin{background:var(--accent);border:0;animation:none;width:12px!important;height:12px!important}}.skeleton,.splash{position:relative}.logout-dialog{width:min(400px,100vw - 32px)}.logout-dialog h2{margin:0 0 6px}.logout-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}@media (width>=561px){.owner-dialog{width:min(460px,100vw - 32px)}}.owner-dialog h2{margin:0}.owner-dialog h2+p{margin:-8px 0 0}.owner-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.owner-transfer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.owner-transfer p{max-width:46ch;margin:0}.error-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:24px;min-height:100dvh;padding:32px 20px;display:flex}.shell .error-screen{min-height:60vh}.shell .error-brand{display:none}.error-brand{color:var(--ink);border-radius:var(--radius);text-decoration:none}.error-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(440px,100%);box-shadow:var(--shadow-sm);padding:32px 28px}.error-card h1{margin:0 0 12px;font-size:1.5rem}.error-card>p{color:var(--ink-2);margin:0 0 24px}.error-actions{flex-direction:column;align-items:center;gap:14px;display:flex}.offline-banner{z-index:100;background:var(--warn-bg);border-bottom:1px solid var(--warn-border);color:var(--ink);text-align:center;padding:8px 16px;font-size:14px;position:sticky;top:0}.offline-banner[hidden]{display:none}.session-dialog .login-card{width:100%;box-shadow:none;border:0}.month-tables{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}@media (width<=1280px){.month-tables{grid-template-columns:minmax(0,1fr)}}.month-table .card-head h2{font-size:18px}.card-head-total{flex-direction:column;align-items:flex-end;line-height:1.25;display:flex}.amount-colored{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700}.tx-list{margin:0;padding:0;list-style:none}.tx-empty{color:var(--muted);padding:18px 20px}.tx-row{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:8px 12px;display:flex}.tx-row.editing{background:var(--surface-2);padding:14px 16px;display:block}.tx-main{border-radius:var(--radius-sm);text-align:left;flex:1;grid-template-columns:minmax(120px,42%) minmax(0,1fr) auto auto;align-items:center;gap:14px;min-width:0;padding:2px;display:grid}.tx-main:hover .pill{box-shadow:inset 0 0 0 1px var(--tone)}.tx-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);overflow:hidden}.tx-date{color:var(--muted);white-space:nowrap;font-size:13px}.tx-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:84px;font-weight:650}.tx-delete{color:var(--muted)}.tx-delete:hover{color:var(--danger);background:var(--expense-tint)}.tx-row.planned .pill{box-shadow:inset 0 0 0 1px var(--tone);background:0 0;border:0;outline:1px dashed #0000}.tx-row.planned .tx-amount{color:var(--muted)}.status-chip{border:1px dashed var(--border-strong);height:28px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:650;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.status-chip .when-hover{display:none}.status-chip:hover,.status-chip:focus-visible{border-style:solid;border-color:var(--tone);background:var(--tone-tint);color:var(--tone-text)}.status-chip:hover .when-idle,.status-chip:focus-visible .when-idle{display:none}.status-chip:hover .when-hover,.status-chip:focus-visible .when-hover{display:inline}.tx-row.flash{animation:1.6s ease-out flash}@keyframes flash{0%,30%{background:var(--tone-tint)}to{background:0 0}}.add-row{border-radius:0 0 var(--radius-lg) var(--radius-lg);width:100%;color:var(--tone-text);text-align:left;align-items:center;gap:12px;padding:14px 18px;font-weight:650;transition:background .15s;display:flex}.add-row:hover{background:var(--tone-tint)}.add-row-icon{border:1.5px dashed var(--tone);border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.footnote{color:var(--muted);text-align:center;max-width:720px;margin:4px auto 0;font-size:13px}@media (width<=560px){.tx-row{padding:8px 6px 8px 10px}.tx-main{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pill amount""label date";gap:4px 10px}.tx-main .pill{grid-area:pill;justify-self:start;max-width:100%;padding:6px 10px}.tx-main .tx-label{grid-area:label;font-size:13px}.tx-main .tx-date{text-align:right;grid-area:date}.tx-main .tx-amount{grid-area:amount;min-width:0}.status-chip span{display:none}.status-chip{padding:0 8px}}.widgets{flex-wrap:wrap;align-items:stretch;gap:16px;display:flex}.widget{flex-direction:column;min-width:0;display:flex}.widget>*{flex:1}.widget.size-small{flex:200px}.widget.size-medium{flex:2 340px}.widget.size-large{flex:3 480px}.widget.size-full{flex:100%}.kpi-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.report-shortcut{flex-wrap:wrap;align-items:center;gap:12px 16px;padding:14px 18px;display:flex}.report-shortcut-icon{background:var(--accent-tint);width:42px;height:42px;color:var(--accent-text);border-radius:12px;place-items:center;display:grid}.report-shortcut-text{flex-direction:column;flex:260px;gap:2px;display:flex}.report-shortcut-actions{gap:8px;display:flex}@media (width<=860px){.widget{flex-basis:100%!important}.widget-report_shortcut{display:none}}@media (width<=420px){.kpi-pair{gap:10px}}@media (width<=560px){.chart-card .card-head{flex-direction:column;align-items:flex-start}.page-head .month-switcher{justify-content:space-between;align-self:stretch}}.chart-card .card-head{flex-wrap:wrap;row-gap:2px}.recent-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;margin:0;padding:6px;list-style:none;display:grid}@media (width<=760px){.recent-list{grid-template-columns:minmax(0,1fr)}}.recent-row,.history-row{border-radius:var(--radius);text-align:left;align-items:center;gap:12px;width:100%;padding:10px 12px;transition:background .12s;display:flex}.recent-row:hover,.history-row:hover{background:var(--surface-2)}.recent-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.recent-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.signed-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:650}.signed-amount.income{color:var(--income-text)}.filters{flex-direction:column;gap:12px;padding:16px;display:flex}.search-input{display:block;position:relative}.search-input svg{color:var(--muted);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input .input{padding-left:38px}.filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-row .select{width:auto;min-width:180px}.date-filter{align-items:center;gap:6px;display:inline-flex}.date-filter .input{width:auto}.result-count{padding:0 4px}.history-group{margin-bottom:14px;overflow:hidden}.history-month{color:var(--ink-2);padding:14px 18px 6px;font-size:14px;font-weight:700}.history-list{margin:0;padding:0 6px 6px;list-style:none}.history-row{grid-template-columns:64px minmax(120px,220px) minmax(0,1fr) auto auto;display:grid}.history-date{color:var(--muted);font-size:13px}.history-row .pill{padding:5px 10px;font-size:14px}.history-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-2);overflow:hidden}@media (width<=640px){.history-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pill amount""label date";gap:2px 10px}.history-row .pill{grid-area:pill;justify-self:start;max-width:100%}.history-row .history-label{grid-area:label;font-size:13px}.history-row .history-date{text-align:right;grid-area:date}.history-row .signed-amount{grid-area:amount}.history-row .badge{display:none}.filter-row .select,.filter-row .segmented{flex:100%}.filter-row .segmented label{flex:1}.date-filter{flex:40%}.date-filter .input{width:100%}}.settings-section .card-head h2{flex:1}.section-intro{max-width:760px;padding:16px 20px 0;font-size:14px}.account-body{grid-template-columns:minmax(200px,1fr) minmax(0,2fr);align-items:start;gap:24px;display:grid}.reconcile-form{flex-direction:column;gap:8px;display:flex}.category-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:16px 20px 20px;display:grid}.category-list h3{align-items:center;gap:8px;margin-bottom:8px;display:flex}.category-list ul{margin:0 0 12px;padding:0;list-style:none}.category-item{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pill actions""meta actions";align-items:center;gap:2px 12px;padding:8px 0;display:grid}.category-item .pill{grid-area:pill;justify-self:start;max-width:100%;padding:5px 10px}.category-meta{grid-area:meta;padding-left:2px}.category-actions{grid-area:actions;gap:12px;display:flex}.category-item.archived .pill{background:var(--surface-3);color:var(--muted);text-decoration:line-through}.category-item.editing{display:block}.category-edit,.category-add{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto auto;gap:8px;display:grid}.category-add{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.password-form{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px;display:grid}.password-actions{grid-column:1/-1;justify-content:flex-end;align-items:center;gap:12px;display:flex}.session-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}@media (width<=900px){.account-body,.category-columns,.password-form{grid-template-columns:minmax(0,1fr)}}@media (width<=560px){.category-edit,.category-add{grid-template-columns:minmax(0,1fr)}.category-item{grid-template-columns:minmax(0,1fr);grid-template-areas:"pill""meta""actions"}.inline-fields,.banner-form{flex-wrap:wrap}}.login-screen{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100dvh;padding:24px 16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:min(400px,100%);box-shadow:var(--shadow-md);border-radius:24px;flex-direction:column;gap:16px;padding:32px 28px;display:flex}.login-card h1{margin-top:4px}.login-foot{text-align:center;max-width:400px}.bilan{padding:18px 20px 16px}.bilan-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1.15fr);align-items:stretch;gap:10px;display:grid}.bilan-cell{border-radius:var(--radius);background:var(--surface-2);min-width:0;padding:12px 14px}.bilan-label{color:var(--ink-2);align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.bilan-label .dot{width:8px;height:8px}.bilan-value{letter-spacing:-.02em;white-space:nowrap;margin-top:4px;font-size:clamp(19px,2vw,24px);font-weight:700}.bilan-sub{color:var(--muted);margin-top:2px;font-size:12.5px}.bilan-op{color:var(--muted);align-self:center;font-size:22px;font-weight:600}.bilan-result{background:var(--accent-tint);box-shadow:inset 0 0 0 1.5px color-mix(in srgb, var(--accent) 45%, transparent)}.bilan-result .bilan-label{color:var(--accent-text)}.bilan-result .bilan-sub{color:var(--ink-2)}.bilan-gauge{background:var(--surface-3);border-radius:3px;height:6px;margin-top:16px;overflow:hidden}.bilan-gauge span{background:var(--expense);border-radius:3px;height:100%;transition:width .4s;display:block}.bilan-caption{color:var(--muted);margin-top:8px;font-size:13px}@media (width<=900px){.bilan-row{grid-template-columns:22px minmax(0,1fr);gap:0}.bilan-row>.bilan-cell:first-child{grid-column:1/-1}.bilan-cell{border-bottom:1px solid var(--border);background:0 0;border-radius:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label value""sub value";align-items:center;column-gap:12px;padding:10px 4px;display:grid}.bilan-label{grid-area:label}.bilan-sub{grid-area:sub}.bilan-value{text-align:right;grid-area:value;margin:0;font-size:18px}.bilan-op{border-bottom:1px solid var(--border);align-self:stretch;place-items:center;font-size:18px;display:grid}.bilan-result{border-radius:var(--radius);border-bottom:0;margin-top:8px;padding:12px 14px}.bilan-row>.bilan-op:nth-last-child(2){border-bottom:0;margin-top:8px}}.settings-group{flex-direction:column;gap:8px;display:flex}.settings-group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;padding:0 4px;font-size:13px;font-weight:700;display:flex}.settings-group-title .space-icon{border-radius:7px;width:24px;height:24px}.settings-list{max-width:760px;margin:0;padding:4px;list-style:none}.settings-section .settings-list{max-width:none}.settings-list li+li{border-top:1px solid var(--border)}.settings-link{border-radius:var(--radius-sm);width:100%;min-height:64px;color:var(--ink);text-align:left;align-items:center;gap:14px;padding:10px 12px;text-decoration:none;transition:background .12s;display:flex}.settings-link:hover{background:var(--surface-2)}.settings-link:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.settings-link-icon{background:var(--accent-tint);width:38px;height:38px;color:var(--accent-text);border-radius:11px;flex:none;place-items:center;display:grid}.settings-link-icon.danger{background:var(--expense-tint);color:var(--danger)}.settings-link-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.settings-link-chevron{color:var(--muted);flex:none}.back-link{border-radius:var(--radius-sm);color:var(--accent-text);align-self:flex-start;align-items:center;gap:6px;margin-bottom:-8px;padding:6px 10px 6px 6px;font-weight:650;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--accent-tint)}.settings-panel{flex-direction:column;gap:16px;display:flex}.profile-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.readonly-value{min-height:42px;color:var(--ink-2);text-overflow:ellipsis;align-items:center;display:flex;overflow:hidden}.danger-zone{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.danger-zone .card-head h2{color:var(--danger)}.danger-body{flex-direction:column;align-items:flex-start;gap:14px;display:flex}.delete-form{flex-direction:column;gap:12px;width:min(460px,100%);display:flex}.section-hint{max-width:640px;margin-bottom:14px}.theme-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.theme-option{border-radius:var(--radius);border:1.5px solid var(--border);cursor:pointer;flex-direction:column;gap:10px;padding:10px;transition:border-color .15s;display:flex;position:relative}.theme-option:hover{border-color:var(--border-hover)}.theme-option.active{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--focus-ring)}.theme-option input,.accent-option input{opacity:0;pointer-events:none;position:absolute}:is(.theme-option:has(input:focus-visible),.accent-option:has(input:focus-visible)){outline:2px solid var(--focus);outline-offset:2px}.theme-option-label{align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.theme-preview{background:#f2f3ef;border-radius:8px;height:64px;position:relative;overflow:hidden}.theme-preview i{border-radius:4px;position:absolute}.theme-preview i:first-child{background:#fff;inset:10px 40% 10px 10px}.theme-preview i:nth-child(2){background:var(--accent);height:10px;top:10px;left:64%;right:10px}.theme-preview i:nth-child(3){background:#d9dcd5;height:8px;top:28px;left:64%;right:10px}.theme-preview-dark{background:#0f1311}.theme-preview-dark i:first-child{background:#232a25}.theme-preview-dark i:nth-child(3){background:#3a433d}.theme-preview-system{background:linear-gradient(135deg,#f2f3ef 50%,#0f1311 50%)}.accent-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.accent-option{border-radius:var(--radius);border:1.5px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:600;transition:border-color .15s;display:flex;position:relative}.accent-option:hover{border-color:var(--accent-line)}.accent-option.active{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent-text)}.accent-swatch{background:var(--accent);width:30px;height:30px;color:var(--accent-contrast);border-radius:50%;flex:none;place-items:center;display:grid}.recurrence-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.recurrence-list{margin:0;padding:6px 8px;list-style:none}.recurrence-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px;display:flex}.recurrence-row:last-child{border-bottom:0}.recurrence-icon{background:var(--tone-tint);width:34px;height:34px;color:var(--tone-text);border-radius:10px;flex:none;place-items:center;display:grid}.recurrence-text{flex-direction:column;flex:1;min-width:160px;line-height:1.35;display:flex}.recurrence-actions{align-items:center;gap:12px;display:flex}.recurrence-list.ended .recurrence-row{opacity:.7}.recurrence-row.editing{background:var(--surface-2);border-radius:var(--radius);display:block}.recurrence-edit{grid-template-columns:minmax(0,2fr) 110px 140px;align-items:end;gap:10px;display:grid}.recurrence-edit .form-actions{grid-column:1/-1}@media (width<=760px){.profile-form,.recurrence-edit{grid-template-columns:minmax(0,1fr)}.theme-options{gap:8px}.theme-option-label{font-size:13px}.accent-options{grid-template-columns:repeat(2,minmax(0,1fr))}.recurrence-totals{grid-template-columns:minmax(0,1fr)}}.history-label{flex-direction:column;gap:2px;display:flex}.history-audit{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;overflow:hidden}.history-row.is-deleted .pill,.history-row.is-deleted .signed-amount,.history-row.is-deleted .history-date{opacity:.55;text-decoration:line-through}.history-row.is-deleted:hover{background:0 0}.badge-deleted{color:var(--danger);border-style:solid}.history-list li.with-action{align-items:center;gap:8px;display:flex}.history-list li.with-action .history-row{flex:1;min-width:0}.history-restore{flex:none;margin-right:6px}.check-filter{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.check-filter input{width:16px;height:16px;accent-color:var(--accent)}@media (width<=640px){.history-row .history-audit{white-space:normal}.history-list li.with-action{flex-wrap:wrap}.history-list li.with-action .history-row{flex-basis:100%}.history-restore{margin:0 0 8px 12px}}.wizard-screen{justify-content:flex-start;padding-top:max(32px,6dvh)}.wizard-card{background:var(--surface);border:1px solid var(--border);width:min(640px,100%);box-shadow:var(--shadow-md);border-radius:24px;flex-direction:column;gap:20px;padding:28px;display:flex}.wizard-card.in-app{border-radius:var(--radius);width:100%;box-shadow:none}.narrow-page{max-width:720px}.wizard-head{align-items:center;gap:14px;display:flex}.wizard-head .eyebrow{margin-bottom:0}.wizard-body{flex-direction:column;gap:16px;display:flex}.wizard-body .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wizard-question{font-family:var(--font-display);font-size:17px;font-weight:650}.step-bar{gap:6px;margin:0;padding:0;list-style:none;display:flex}.step-bar li{border-top:3px solid var(--border);min-width:0;color:var(--muted);flex-direction:column;flex:1;gap:6px;padding-top:8px;font-size:12px;font-weight:600;display:flex}.step-bar li.done,.step-bar li.current{border-top-color:var(--accent-line);color:var(--ink)}.step-dot{background:var(--surface-3);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:grid}.step-bar li.current .step-dot,.step-bar li.done .step-dot{background:var(--accent);color:var(--accent-contrast)}.step-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.step-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding-top:8px;display:flex}.step-actions-main{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.choice-cards{gap:10px;display:grid}.choice-card{border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);cursor:pointer;align-items:center;gap:14px;padding:14px 16px;transition:border-color .15s,background .15s;display:flex;position:relative}.choice-card:hover{border-color:var(--border-hover)}.choice-card.active{border-color:var(--accent-line);background:var(--accent-tint)}.choice-card input{opacity:0;pointer-events:none;position:absolute}.choice-card:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.choice-icon{background:var(--surface-3);width:42px;height:42px;color:var(--ink-2);border-radius:12px;flex:none;place-items:center;display:grid}.choice-card.active .choice-icon,.invitation-summary .choice-icon{background:var(--accent);color:var(--accent-contrast)}.choice-text{flex-direction:column;flex:1;gap:2px;display:flex}.choice-check{color:var(--accent-text)}.asso-details,.join-field{border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:16px;padding:16px;display:flex}.invite-fields{flex-direction:column;gap:14px;display:flex}fieldset.field{border:0;min-width:0;margin:0;padding:0}fieldset.field legend{margin-bottom:8px;padding:0}.chip-options{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.chip-option{border:1.5px solid var(--border-strong);background:var(--surface-raised);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:14px;font-weight:600;position:relative}.chip-option.active{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent-text)}.chip-option input{opacity:0;pointer-events:none;position:absolute}.chip-option:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.title-preview{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);flex-direction:column;gap:2px;margin-top:4px;padding:12px 14px;display:flex}.title-preview strong{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px}.copy-field{gap:8px;display:flex}.copy-field .input{flex:1;min-width:0}.email-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.email-chips li{background:var(--surface-3);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 12px;font-size:14px;display:inline-flex}.category-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.category-group{border:0;flex-direction:column;gap:4px;min-width:0;margin:0;padding:0;display:flex}.category-group legend{align-items:center;gap:8px;width:100%;margin-bottom:6px;font-weight:700;display:flex}.category-group legend .link-btn{margin-left:auto;font-weight:600}.category-check{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:7px 10px;display:flex}.category-check:hover{background:var(--surface-2)}.category-check input{width:17px;height:17px;accent-color:var(--accent)}.category-check:not(.active) span{color:var(--muted)}.category-note{grid-column:1/-1}.invitation-summary{border-radius:var(--radius);background:var(--accent-tint);align-items:center;gap:14px;padding:14px 16px;display:flex}.invitation-summary>span:last-child{flex-direction:column;gap:2px;display:flex}.invitation-summary strong{font-family:var(--font-display);font-size:18px}.recap{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;margin:0;display:flex}.recap>div{grid-template-columns:140px minmax(0,1fr);gap:12px;padding:12px 16px;display:grid}.recap>div+div{border-top:1px solid var(--border)}.recap dt{color:var(--muted);font-size:14px}.recap dd{overflow-wrap:anywhere;margin:0;font-weight:600}.share-link{align-items:flex-start;gap:20px;display:flex}.share-link-body{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.qr-code{border:1px solid var(--border);border-radius:10px;flex:none}.qr-bg{fill:var(--qr-bg)}.qr-ink{fill:var(--qr-ink)}.invite-code{letter-spacing:.06em;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.share-dialog{width:min(640px,100vw - 32px)}.share-subtitle{font-size:15px}.invite-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.invite-row{flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.invite-row+.invite-row{border-top:1px solid var(--border)}.invite-row>svg{color:var(--accent-text)}.invite-row-text{flex-direction:column;flex:1;min-width:160px;display:flex}.invite-email{overflow-wrap:anywhere;font-weight:600}.invite-row-actions{flex-wrap:wrap;gap:6px;display:flex}@media (width<=560px){.wizard-card{border-radius:20px;padding:20px 16px}.wizard-body .field-row,.category-picker{grid-template-columns:minmax(0,1fr)}.step-label{display:none}.share-link{flex-direction:column;align-items:center}.recap>div{grid-template-columns:minmax(0,1fr);gap:2px}.copy-field{flex-wrap:wrap}.copy-field .btn{flex:1}}.space-badge{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.space-badge .space-icon{border-radius:8px;width:26px;height:26px}.space-form,.invite-section{flex-direction:column;gap:14px;display:flex}.space-form .field{max-width:520px}.leave-row{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:14px;display:flex}.leave-row p{flex:280px}.member-list{margin:0;padding:0 18px;list-style:none}.member-row{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 0;display:flex}.member-row+.member-row{border-top:1px solid var(--border)}.member-avatar{background:var(--accent-tint);width:36px;height:36px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.member-text{flex-direction:column;flex:180px;min-width:0;display:flex}.member-text strong,.member-text span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.member-role .select{min-width:150px}.member-actions{gap:10px;display:flex}.role-legend{border-top:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:14px 18px 18px;display:grid}.role-legend dt{font-size:14px;font-weight:650}.role-legend dd{color:var(--muted);margin:0;font-size:13px}@media (width<=640px){.role-legend{grid-template-columns:minmax(0,1fr)}.member-role{flex:100%;padding-left:48px}.member-role .select{width:100%}}.report-head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.report-body{flex-direction:column;gap:20px;display:flex}.kpis.kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}.evolution{font-weight:600}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.report-card .card-head{gap:8px}.table-scroll{padding:0 6px 10px;overflow-x:auto}.report-table{border-collapse:collapse;width:100%;font-size:14px}.report-table th,.report-table td{text-align:left;vertical-align:top;padding:9px 10px}.report-table thead th{color:var(--muted);border-bottom:1px solid var(--border);font-size:12px;font-weight:650}.report-table tbody tr+tr th,.report-table tbody tr+tr td{border-top:1px solid var(--border)}.report-table tbody th{min-width:130px;font-weight:550}.report-table tfoot th,.report-table tfoot td{border-top:1.5px solid var(--border-strong);font-weight:700}.report-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.report-table .strong{font-weight:700}.report-cat{display:block}.report-bar{background:var(--surface-3);border-radius:3px;gap:2px;height:6px;margin-top:6px;display:flex;overflow:hidden}.report-bar .seg{min-width:2px;height:100%}.report-bar .seg-done{background:var(--tone)}.report-bar .seg-planned{background:var(--tone-planned)}.planned-list{margin:0;padding:0 6px 6px;list-style:none}.planned-row{grid-template-columns:64px minmax(110px,200px) minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;display:grid}.planned-row+.planned-row{border-top:1px solid var(--border)}.planned-row .pill{padding:5px 10px;font-size:14px}.planned-done{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.planned-done .input{width:auto}@media (width<=1500px){.report-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.kpis.kpis-3{grid-template-columns:minmax(0,1fr)}.report-table .optional{display:none}.planned-row{grid-template-columns:minmax(0,1fr) auto}.planned-row .history-date,.planned-row .history-label{font-size:13px}.planned-row>.btn{grid-column:1/-1;justify-self:end}}.tx-extras{border-top:1px dashed var(--border-strong);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;padding-top:12px;display:flex}.tx-row.editing .tx-extras{margin:10px 2px 2px}.attachments{flex-direction:column;flex:260px;align-items:flex-start;gap:8px;display:flex}.attachments .field-label{align-items:center;gap:6px;display:inline-flex}.attachment-list{flex-direction:column;gap:4px;width:100%;margin:0;padding:0;list-style:none;display:flex}.attachment-list li{align-items:center;gap:6px;display:flex}.attachment-link{border-radius:var(--radius-sm);background:var(--surface-2);min-width:0;color:var(--ink);flex:1;align-items:center;gap:8px;padding:6px 10px;text-decoration:none;display:flex}.attachment-link:hover{background:var(--surface-3)}.attachment-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.attachment-add{cursor:pointer}.attachment-add.is-busy{opacity:.7;cursor:progress}.attachment-add:has(input:focus-visible){box-shadow:0 0 0 3px var(--focus-ring)}.attach-mark{color:var(--muted);vertical-align:-2px;margin-left:6px;display:inline-flex}.invoice-dialog{width:min(560px,100vw - 32px)}.invoice-form{flex-direction:column;gap:14px;display:flex}.invoice-form .field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.invoice-form textarea,.details-form textarea{resize:vertical;min-height:0;font:inherit;padding-top:10px;padding-bottom:10px}.banner-inline{border:1px solid var(--warn-border);border-radius:var(--radius-sm);background:var(--warn-bg);padding:10px 12px;font-size:14px}.details-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.details-form>:last-child,.details-wide{grid-column:1/-1}.invoice-list{margin:0;padding:0 18px 8px;list-style:none}.invoice-list li{flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.invoice-list li+li{border-top:1px solid var(--border)}.invoice-number{color:var(--accent-text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;font-weight:650}.invoice-text{flex-direction:column;flex:200px;min-width:0;display:flex}@media (width<=560px){.invoice-form .field-row,.details-form{grid-template-columns:minmax(0,1fr)}}.report-cta{border-radius:var(--radius);background:var(--accent);min-height:52px;color:var(--accent-contrast);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:0 18px;font-weight:650;text-decoration:none}.report-cta span{flex:1}.home-settings{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.home-preview-card{position:sticky;top:16px}.home-preview{background:var(--bg);border-radius:0 0 var(--radius-lg) var(--radius-lg);max-height:calc(100dvh - 140px);padding:14px;overflow:auto}.home-preview .widgets{zoom:.5}.home-preview .widget{flex-basis:100%!important}.home-preview .widget.size-small,.home-preview .widget.size-medium{flex-basis:40%!important}.save-state{color:var(--muted);font-size:13px}.save-state.saved:before{content:"✓ ";color:var(--income-text)}.save-state.error{color:var(--danger)}.widget-list{margin:0;padding:0 12px;list-style:none}.widget-item{border-radius:var(--radius-sm);background:var(--surface-raised);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 6px;transition:background .12s,opacity .12s;display:flex}.widget-item+.widget-item{border-top:1px solid var(--border)}.widget-item.is-dragged{opacity:.5;background:var(--accent-tint)}.widget-item.is-hidden{background:var(--surface-2)}.widget-grip{width:24px;color:var(--muted);cursor:grab;flex:none;place-items:center;display:grid}.widget-text{flex-direction:column;flex:180px;min-width:0;display:flex}.widget-actions{align-items:center;gap:4px;margin-left:auto;display:flex}.chart-choice{flex-wrap:wrap;flex-basis:100%;order:5;width:fit-content;max-width:calc(100% - 36px);margin-left:36px}.chart-choice label{min-height:30px;padding:0 10px;font-size:13px}.visibility-toggle{border:1.5px solid var(--border-strong);min-width:96px;min-height:32px;color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:600;display:inline-flex}.visibility-toggle.on{border-color:var(--accent-line);background:var(--accent-tint);color:var(--accent-text)}@media (width<=1100px){.home-settings{grid-template-columns:minmax(0,1fr)}.home-preview-card{position:static}}@media (width<=860px){.widget-grip{display:none}.chart-choice{max-width:100%;margin-left:0}.home-preview .widgets{zoom:.6}}.dash-recent{container-type:inline-size}@container (width<=700px){.recent-list{grid-template-columns:minmax(0,1fr)}}.help{flex-direction:column;gap:16px;max-width:760px;display:flex}.help-theme{padding:6px 0}.help-theme-title{padding:12px 18px 6px;font-size:15px}.help-item{border-top:1px solid var(--border)}.help-item h3{font-size:inherit}.help-question{text-align:left;width:100%;min-height:48px;color:var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-weight:600;display:flex}.help-question:hover{background:var(--surface-2)}.help-question:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.help-chevron{color:var(--accent-text);flex:none;transition:transform .3s}.help-item.open .help-chevron{transition-duration:.5s;transform:rotate(180deg)}.help-answer p{color:var(--ink-2);padding:0 18px 14px}.help-item.open .help-answer p{animation:.5s ease-out help-open}.help-item.closing .help-answer p{animation:.3s ease-in forwards help-close}@keyframes help-open{0%{opacity:0;transform:translateY(-6px)}}@keyframes help-close{to{opacity:0;transform:translateY(-6px)}}.help-empty{padding:8px 4px}@media (prefers-reduced-motion:reduce){.help-chevron,.help-item .help-answer p{transition:none!important;animation:none!important}}.login-forgot{align-self:flex-end;margin-top:-8px;font-size:14px}.legal-screen{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.legal-header{padding:16px var(--gutter,16px);width:100%;max-width:760px;margin:0 auto}.legal-brand{color:var(--ink);align-items:center;gap:10px;font-size:19px;font-weight:700;text-decoration:none;display:inline-flex}.legal-page{width:100%;max-width:760px;padding:8px var(--gutter,16px) 40px;color:var(--ink-2);flex:1;margin:0 auto;line-height:1.65}.legal-page h1{color:var(--ink);margin-bottom:4px}.legal-page h2{color:var(--ink);margin:32px 0 8px;scroll-margin-top:16px;font-size:19px}.legal-page p,.legal-page ul{max-width:70ch;margin:0 0 12px}.legal-page ul{padding-left:22px}.legal-page li+li{margin-top:6px}.legal-page a{color:var(--accent-text)}.legal-date{color:var(--muted);font-size:14px}.legal-todo{border:1px dashed var(--warn-border);border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--ink);padding:6px 10px}.legal-toc{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:20px 0 8px;padding:16px 20px}.legal-toc h2{margin:0 0 8px;font-size:16px}.legal-toc ol{margin:0;padding-left:22px}.legal-table-scroll{margin:8px 0 16px;overflow-x:auto}.legal-table{border-collapse:collapse;background:var(--surface-raised);width:100%;min-width:560px;font-size:14px}.legal-table th,.legal-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}.legal-table thead th{background:var(--surface-2);color:var(--ink)}.legal-footer{border-top:1px solid var(--border);padding:16px}.legal-footer ul{flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.legal-footer a{color:var(--muted);padding:6px 2px;display:inline-block}.login-screen .legal-footer{border-top:0;padding:0}.terms-checks{border:0;flex-direction:column;gap:8px;margin:4px 0 0;padding:0;display:flex}.check-field{align-items:flex-start;gap:10px;font-size:15px;line-height:1.45;display:flex}.check-field input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:0}.check-field a{color:var(--accent-text)}.terms-checks .form-error{margin:-2px 0 4px 32px}.data-export{flex-wrap:wrap;gap:10px;display:flex}.profile-form,.password-form,.recurrence-edit,.category-add,.category-edit{align-items:start}.recurrence-edit>.form-actions{align-self:end}.profile-form>.btn{align-self:start;margin-top:26px}@media (width<=760px){.profile-form>.btn{margin-top:0}}.profile-form>.form-error,.category-add>.form-error,.category-edit>.form-error,.recurrence-edit>.form-error{grid-column:1/-1}.planned-done .field-error,.planned-done .form-error{text-align:right;flex-basis:100%}.category-add>.field-error,.category-edit>.field-error{grid-column:1/-1}.donation-card{box-shadow:none;flex-direction:column;align-items:flex-start;gap:8px;padding:16px 18px;display:flex}.donation-title{font-size:15px}.help-answer>.btn{margin:0 18px 16px}
