:root{--bg: #0b0c10;--surface: #14161d;--surface-2: #1a1d26;--surface-3: #22262f;--line: rgb(255 255 255 / .08);--line-strong: rgb(255 255 255 / .16);--ink: #f1f2f5;--ink-2: #9ba1b0;--ink-3: #6b7180;--accent: #3ecf9a;--accent-soft: rgb(62 207 154 / .14);--red: #ff6b5e;--red-soft: rgb(255 107 94 / .14);--yellow: #f5c26b;--cyan: #56cfe1;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 0 0 rgb(255 255 255 / .04) inset, 0 18px 40px -28px rgb(0 0 0 / .9);--ease: cubic-bezier(.19, 1, .22, 1);--ease-quad: cubic-bezier(.25, .46, .45, .94);--text-xs: clamp(.7rem, .66rem + .12vw, .8rem);--text-sm: clamp(.8rem, .76rem + .14vw, .92rem);--text-base: clamp(.875rem, .83rem + .16vw, 1rem);--text-lg: clamp(1.02rem, .95rem + .24vw, 1.25rem);--text-xl: clamp(1.4rem, 1.2rem + .7vw, 2rem);--text-2xl: clamp(1.75rem, 1.35rem + 1.6vw, 3rem);--text-hero: clamp(2.1rem, 1.3rem + 2.2vw, 3.9rem);--gutter: clamp(1.25rem, .6rem + 2.4vw, 3.5rem);--gap: clamp(1rem, .7rem + .9vw, 1.75rem);--sidebar-w: clamp(198px, 6vw + 126px, 282px)}*{margin:0;padding:0;box-sizing:border-box}html{color-scheme:dark}body{background:var(--bg);color:var(--ink);font-family:Public Sans,system-ui,sans-serif;font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(60vw 40vw at 18% -8%,rgb(62 207 154 / .12),transparent 62%),radial-gradient(52vw 38vw at 92% 4%,rgb(86 207 225 / .09),transparent 64%)}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.tabular,.hero-value,.balance-value,.pots-total-value,.stat-tile-value,.donut-center strong{font-variant-numeric:tabular-nums}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;position:relative;z-index:1}.sidebar{display:flex;flex-direction:column;background:linear-gradient(180deg,var(--surface) 0%,#101218 100%);border-right:1px solid var(--line);color:var(--ink-2);padding:clamp(1.25rem,2vw,2rem) 0 1.25rem;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:.65rem;padding:0 1.25rem clamp(1.5rem,3vw,2.75rem);color:var(--ink);font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em;white-space:nowrap;overflow:hidden}.brand-mark{width:22px;height:22px;flex-shrink:0;border-radius:7px 7px 7px 14px;background:linear-gradient(140deg,var(--accent),var(--cyan));box-shadow:0 0 22px -4px var(--accent)}.nav-list{list-style:none;display:flex;flex-direction:column;gap:.2rem;padding:0 .75rem}.nav-link{position:relative;display:flex;align-items:center;gap:.8rem;padding:.8rem .9rem;border-radius:var(--radius-sm);color:var(--ink-2);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:color .16s var(--ease-quad)}.nav-link svg{width:20px;height:20px;flex-shrink:0;position:relative;z-index:1;transition:transform .26s var(--ease)}.nav-label{position:relative;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-link:hover{color:var(--ink)}.nav-link:hover svg{transform:translate(2px)}.nav-link.is-active{color:var(--ink)}.nav-indicator{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:var(--radius-sm);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #3ecf9a47;view-transition-name:nav-indicator}.nav-indicator:after{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sidebar-foot{margin-top:auto;display:flex;align-items:center;gap:.5rem;padding:1rem 1.4rem 0;font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap;overflow:hidden}.sidebar-foot-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--accent);box-shadow:0 0 #3ecf9a80;animation:pulse 2.8s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 #3ecf9a80}70%,to{box-shadow:0 0 0 7px #3ecf9a00}}.app-main{min-width:0;width:100%;max-width:2100px;margin-inline:auto;padding:clamp(1.5rem,2.4vw,3rem) var(--gutter) 4rem}.page{view-transition-name:page}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:clamp(1.25rem,2vw,2rem)}.page-kicker{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}.page-title{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.035em;line-height:1.05}.mini-heading{font-size:var(--text-base);font-weight:700;margin-bottom:.9rem}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.15rem,1.4vw,1.9rem);box-shadow:var(--shadow);min-width:0;transition:border-color .22s var(--ease-quad),box-shadow .22s var(--ease-quad)}.card:hover{border-color:var(--line-strong);box-shadow:var(--shadow),0 0 0 1px #ffffff05}.card-dark{background:linear-gradient(150deg,#1b1f28,#101218)}.card-muted{background:var(--surface-2);box-shadow:none}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.section-header h2{font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em}.link-btn{display:inline-flex;align-items:center;gap:.3rem;background:none;border:none;color:var(--ink-3);font-weight:600;font-size:var(--text-xs);text-decoration:none;cursor:pointer;transition:color .15s var(--ease-quad)}.link-btn:after{content:"→";transition:transform .26s var(--ease)}.link-btn:hover{color:var(--accent)}.link-btn:hover:after{transform:translate(3px)}.hero{position:relative;display:grid;gap:clamp(1.25rem,2vw,2.5rem);align-items:center;background:radial-gradient(90% 140% at 0% 0%,rgb(62 207 154 / .14),transparent 58%),linear-gradient(150deg,#1b1f28,#0f1117);border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);padding:clamp(1.4rem,2.2vw,2.75rem);margin-bottom:var(--gap);overflow:hidden}.hero-figures{min-width:0;container-type:inline-size}.hero-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.hero-value{display:block;margin:.35rem 0 clamp(1.25rem,2vw,2rem);font-size:var(--text-hero);font-weight:700;letter-spacing:-.045em;white-space:nowrap;line-height:1;background:linear-gradient(180deg,#fff 30%,#8fa39c);-webkit-background-clip:text;background-clip:text;color:transparent}@container (min-width: 0px){.hero-value{font-size:min(var(--text-hero),17cqi)}}.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.9rem 1.5rem}.hero-stats strong{font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em}.hero-stat-label{display:flex;align-items:center;gap:.45rem;font-size:var(--text-xs);color:var(--ink-3);margin-bottom:.25rem}.tick{width:3px;height:14px;border-radius:2px;flex-shrink:0}.tick-in{background:var(--accent)}.tick-out{background:var(--red)}.tick-pot{background:var(--cyan)}.hero-chart{min-width:0}.range-switch{display:flex;justify-content:flex-end;gap:.25rem;margin-bottom:.4rem}.range-switch button{border:1px solid transparent;border-radius:999px;padding:.25rem .7rem;background:none;color:var(--ink-3);font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:color .15s var(--ease-quad),background-color .15s var(--ease-quad),transform .14s var(--ease-quad)}.range-switch button:hover{color:var(--ink)}.range-switch button:active{transform:scale(.94)}.range-switch button.is-current{color:var(--accent);background:var(--accent-soft);border-color:#3ecf9a47}.flow-chart{width:100%}.flow-chart .recharts-cartesian-axis-tick text{fill:var(--ink-3)}.chart-tooltip{background:#0c0d12f0;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.6rem .75rem;box-shadow:0 14px 34px -18px #000000e6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:140px}.chart-tooltip-date{font-size:var(--text-xs);color:var(--ink-3);margin-bottom:.35rem}.chart-tooltip-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:var(--text-xs);color:var(--ink-2)}.chart-tooltip-row strong{font-size:var(--text-sm);color:var(--ink);font-variant-numeric:tabular-nums}.overview-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);align-items:start}@media (min-width: 720px){.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid .span-2,.overview-grid .span-2-md{grid-column:span 2}}@media (min-width: 1180px){.overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-grid .span-3{grid-column:span 3}}@media (min-width: 1660px){.overview-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.overview-grid .span-2-md{grid-column:span 1}}.overview-col{display:flex;flex-direction:column;gap:var(--gap);min-width:0}.pots-total{display:flex;align-items:center;gap:.9rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1.1rem;margin-bottom:1.1rem}.pots-total-icon{width:36px;height:36px;border-radius:9px 9px 9px 18px;background:linear-gradient(140deg,var(--accent),var(--cyan));flex-shrink:0;box-shadow:0 0 24px -6px var(--accent)}.pots-total-value{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em}.pots-legend,.budget-legend,.bills-summary,.spending-summary,.bills-breakdown{list-style:none;display:flex;flex-direction:column;gap:.55rem}.budget-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));margin-top:1.1rem}.pots-legend li,.budget-legend li,.bills-summary li,.spending-summary li{display:flex;flex-direction:column;gap:.15rem;padding-left:.85rem;border-left:3px solid var(--line-strong)}.pots-legend span,.budget-legend span,.bills-summary span,.spending-summary span{font-size:var(--text-xs);color:var(--ink-3)}.pots-legend strong,.budget-legend strong,.bills-summary strong,.spending-summary strong{font-variant-numeric:tabular-nums}.bills-summary li,.spending-summary li{flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem 0 .55rem .85rem}.spending-figures{font-size:var(--text-xs);color:var(--ink-3)}.spending-figures strong{font-size:var(--text-sm);color:var(--ink)}.tx-list{list-style:none;display:flex;flex-direction:column}.tx-list li{display:flex;align-items:center;gap:.8rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.tx-list li:last-child{border-bottom:none;padding-bottom:0}.tx-list-compact li{padding:.6rem 0}.tx-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tx-right{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.tx-right strong{font-variant-numeric:tabular-nums}.tx-date{font-size:var(--text-xs);color:var(--ink-3)}.amount-in{color:var(--accent)}.amount-out{color:var(--ink)}.amount-due{color:var(--red)}.avatar{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;color:#0b0c10;font-size:.7rem;font-weight:700}.progress{width:100%;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress.is-over{outline:1px solid var(--red);outline-offset:2px}.progress-fill{display:block;height:100%;border-radius:999px;transform-origin:left center;animation:grow-bar .82s var(--ease) both;transition:width .42s var(--ease)}@keyframes grow-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:.5rem}.empty-state{padding:1.25rem 0;color:var(--ink-3);font-size:var(--text-sm)}.donut{position:relative;width:100%;min-width:180px}.donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.donut-center strong{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em}.donut-center span{font-size:var(--text-xs);color:var(--ink-3)}.budget-progress-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem clamp(1.25rem,2vw,2.5rem)}.budget-progress-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem;font-weight:600;font-size:var(--text-sm)}.budget-progress-figures{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.budget-progress-figures span{font-weight:400;color:var(--ink-3);font-size:var(--text-xs)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.search-field input{width:clamp(220px,22vw,360px);max-width:100%;padding:.7rem .95rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);transition:border-color .16s var(--ease-quad),background-color .16s var(--ease-quad)}.search-field input::placeholder{color:var(--ink-3)}.search-field input:hover{border-color:#ffffff3d}.toolbar-selects{display:flex;gap:1rem;flex-wrap:wrap}.inline-field{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-xs);color:var(--ink-3)}.inline-field select{padding:.6rem .8rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);font-weight:600;color:var(--ink)}.tx-table{width:100%;border-collapse:collapse}.tx-table th{text-align:left;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:0 0 .8rem;border-bottom:1px solid var(--line)}.tx-table td{padding:.85rem 0;border-bottom:1px solid var(--line);vertical-align:middle}.tx-table tbody tr{transition:background-color .15s var(--ease-quad)}.tx-table tbody tr:hover{background:#ffffff06}.tx-table tr:last-child td{border-bottom:none}.tx-table td.align-right{font-variant-numeric:tabular-nums}.tx-cell{display:flex;align-items:center;gap:.75rem;min-width:0}.recurring-tag{font-size:.66rem;font-weight:700;color:var(--ink-3);background:var(--surface-3);border-radius:999px;padding:.1rem .45rem;flex-shrink:0}.muted-cell{color:var(--ink-3);font-size:var(--text-xs)}.align-right{text-align:right}.due-cell{display:flex;align-items:center;gap:.5rem;font-size:var(--text-xs);color:var(--ink-3);flex-wrap:wrap}.pill{font-size:.66rem;font-weight:700;border-radius:999px;padding:.14rem .5rem;white-space:nowrap}.pill-paid{color:var(--accent);background:var(--accent-soft)}.pill-due-soon{color:var(--red);background:var(--red-soft)}.pill-upcoming{color:var(--ink-2);background:var(--surface-3)}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.25rem}.result-count{font-size:var(--text-xs);color:var(--ink-3)}.pagination{display:flex;align-items:center;gap:.5rem}.page-list{list-style:none;display:flex;gap:.35rem}.page-btn{min-width:36px;height:36px;padding:0 .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background-color .15s var(--ease-quad),color .15s var(--ease-quad),transform .14s var(--ease-quad)}.page-btn:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.page-btn:active:not(:disabled){transform:scale(.96)}.page-btn.is-current{background:var(--accent);border-color:var(--accent);color:#08120d}.page-btn:disabled{opacity:.4;cursor:not-allowed}.budgets-layout{display:grid;grid-template-columns:clamp(320px,26vw,460px) minmax(0,1fr);gap:var(--gap);align-items:start}.budget-cards,.pot-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--gap);min-width:0}.budget-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.budget-card-head h2{display:flex;align-items:center;font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em}.row-actions{display:flex;gap:.25rem;flex-shrink:0}.budget-maximum{color:var(--ink-3);font-size:var(--text-sm);margin-bottom:.7rem}.budget-split{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0 .5rem}.budget-split div{display:flex;flex-direction:column;gap:.2rem;padding-left:.85rem;border-left:3px solid var(--line-strong)}.budget-split span{font-size:var(--text-xs);color:var(--ink-3)}.budget-split strong{font-variant-numeric:tabular-nums}.budget-latest{margin-top:1.25rem;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem 1.25rem}.budget-latest .section-header{margin-bottom:.5rem}.budget-latest .section-header h2{font-size:var(--text-base)}.pot-total-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.pot-total-row span{color:var(--ink-3);font-size:var(--text-sm)}.pot-total-row strong{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.pot-meta{display:flex;align-items:center;justify-content:space-between;margin-top:.55rem;font-size:var(--text-xs);color:var(--ink-3)}.pot-meta span:first-child{font-weight:700;color:var(--ink-2)}.pot-actions{display:flex;gap:.75rem;margin-top:1.25rem}.transfer-preview{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.transfer-preview span{color:var(--ink-3);font-size:var(--text-sm)}.transfer-preview strong{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.transfer-target{display:flex;justify-content:flex-end;font-size:var(--text-xs);color:var(--ink-3);margin:.4rem 0 1rem}.bills-layout{display:grid;grid-template-columns:clamp(280px,22vw,400px) minmax(0,1fr);gap:var(--gap);align-items:start}.bills-aside{display:flex;flex-direction:column;gap:var(--gap)}.bills-breakdown li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-3)}.bills-breakdown li:last-child{border-bottom:none}.bills-breakdown strong{color:var(--ink);font-variant-numeric:tabular-nums}.bills-breakdown .is-warning strong{color:var(--red)}.balance-label{font-size:var(--text-xs);color:var(--ink-3);margin-bottom:.4rem}.balance-value{display:block;font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em}.stat-tile{display:flex;flex-direction:column;gap:.2rem;padding-left:.9rem;border-left:3px solid var(--line-strong)}.stat-tile-label{font-size:var(--text-xs);color:var(--ink-3)}.stat-tile-value{font-size:var(--text-lg);font-weight:700}.btn{border:1px solid transparent;border-radius:var(--radius-sm);padding:.8rem 1.15rem;font-weight:700;font-size:var(--text-sm);cursor:pointer;transition:background-color .15s var(--ease-quad),color .15s var(--ease-quad),border-color .15s var(--ease-quad),transform .14s var(--ease-quad)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#08120d}.btn-primary:hover:not(:disabled){background:#57e0ad}.btn-soft{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink);flex:1}.btn-soft:hover:not(:disabled){background:var(--surface-3);border-color:#ffffff42}.btn-ghost{background:none;color:var(--ink-3)}.btn-ghost:hover:not(:disabled){color:var(--ink);background:var(--surface-3)}.btn-danger{background:var(--red);color:#1a0705}.btn-danger:hover:not(:disabled){background:#ff8377}.btn-danger-text{color:var(--red)}.btn-danger-text:hover:not(:disabled){color:#ff8377;background:var(--red-soft)}.btn-sm{padding:.4rem .6rem;font-size:var(--text-xs)}.btn-block{display:block;width:100%;margin-top:.75rem}.field{margin-bottom:1rem}.field label{display:block;font-size:var(--text-xs);font-weight:700;color:var(--ink-3);margin-bottom:.35rem}.field input,.field select{width:100%;padding:.72rem .9rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink);transition:border-color .16s var(--ease-quad)}.field input:hover,.field select:hover{border-color:#ffffff42}.field-invalid input,.field-invalid select,.field-invalid .money-input{border-color:var(--red)}.field-error{margin-top:.35rem;font-size:var(--text-xs);color:var(--red);font-weight:600}.field-hint{margin-top:.35rem;font-size:var(--text-xs);color:var(--ink-3);text-align:right}.money-input{display:flex;align-items:center;gap:.4rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding-left:.9rem;background:var(--surface-2)}.money-input span{color:var(--ink-3);font-weight:600}.money-input input{border:none;padding-left:0;background:none}.money-input input:focus-visible{outline:none}.select-wrap{position:relative}.select-swatch{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;pointer-events:none}.select-wrap select.has-swatch{padding-left:2.1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#06070aad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:1.25rem;z-index:50;animation:fade-in .22s var(--ease-quad) both}.modal{width:100%;max-width:460px;max-height:90vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:calc(var(--radius) + 2px);padding:clamp(1.4rem,2vw,2rem);box-shadow:0 36px 70px -24px #000000d9;animation:modal-in .28s var(--ease) both}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.modal-head h2{font-size:var(--text-xl);font-weight:700;letter-spacing:-.03em}.icon-btn{border:none;background:none;color:var(--ink-3);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem;transition:color .15s var(--ease-quad)}.icon-btn:hover{color:var(--ink)}.modal-description{color:var(--ink-3);font-size:var(--text-sm);margin-bottom:1.25rem}.rise{animation:rise .48s var(--ease) both;animation-delay:calc(var(--i, 0) * 55ms)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}::view-transition-old(page){animation:vt-page-out .18s var(--ease-quad) both}::view-transition-new(page){animation:vt-page-in .3s var(--ease) both}@keyframes vt-page-out{to{opacity:0;transform:translateY(-8px);filter:blur(2px)}}@keyframes vt-page-in{0%{opacity:0;transform:translateY(12px);filter:blur(2px)}}::view-transition-group(nav-indicator){animation-duration:.34s;animation-timing-function:cubic-bezier(.32,.72,0,1)}::view-transition-old(nav-indicator),::view-transition-new(nav-indicator){animation:none;mix-blend-mode:normal;height:100%}@media (min-width: 1100px){.hero{grid-template-columns:minmax(280px,1fr) minmax(0,1.55fr)}}@media (max-width: 1100px){.budgets-layout,.bills-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:sticky;top:auto;bottom:0;order:2;width:100%;height:auto;border-right:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;padding:.4rem 0 .3rem;z-index:20}.brand,.sidebar-foot{display:none}.nav-list{flex-direction:row;justify-content:space-around;padding:0 .4rem;gap:0}.nav-link{flex-direction:column;gap:.2rem;padding:.55rem .5rem .45rem;font-size:.68rem;text-align:center}.nav-indicator:after{left:22%;right:22%;top:auto;bottom:0;width:auto;height:3px;border-radius:3px 3px 0 0}.app-main{order:1;padding-bottom:2rem}.budget-split{grid-template-columns:1fr}}@media (max-width: 640px){.nav-label{display:none}.search-field{flex:1}.search-field input{width:100%}.tx-table thead{display:none}.tx-table tr{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.tx-table td{padding:0;border:none}.tx-table td:first-child{grid-column:1}.tx-table td.align-right{grid-column:2;grid-row:1}}@media (prefers-reduced-motion: reduce){.rise{animation:fade-in .2s ease both;animation-delay:0ms}.progress.is-over{outline:1px solid var(--red);outline-offset:2px}.progress-fill{animation:none}.modal{animation:fade-in .18s ease both}.sidebar-foot-dot{animation:none}.nav-link svg,.link-btn:after{transition:none}::view-transition-old(page){animation:fade-out .12s ease both}::view-transition-new(page){animation:fade-in .16s ease both}::view-transition-group(nav-indicator){animation-duration:1ms}@keyframes fade-out{to{opacity:0}}}
