:root,[data-theme=classic]{--bg: #f7f9f9;--surface: #ffffff;--line: #e1e6e9;--text: #121719;--muted: #5c6771;--accent: #0f7a5f;--on-accent: #ffffff;--overspend: #c4392b;--accent-muted: #d3ebe1;--ease-out: cubic-bezier(.23, 1, .32, 1);--press: .16s;--tile-step: 5%;--glow: 10%;--site-glow: 8%;--lit: none;--label-step: 5%;--amount-tint: 50%;--r-screen: 36px;--r-tabbar: 24px;--r-tile: 20px;--r-card: 18px;--r-tabitem: 17px;--r-cell: 16px;--r-nav: 12px;--r-pill: 99px;--radius-sm: var(--r-nav);--radius: var(--r-card);--radius-lg: var(--r-tile);color-scheme:light dark}@media(prefers-color-scheme:dark){:root,[data-theme=classic]{--bg: #10141a;--surface: #171d26;--line: #232b36;--text: #e8ecf1;--muted: #8c97a6;--accent: #35d6a4;--on-accent: #05201a;--overspend: #ff6b5a;--accent-muted: #1b3a32;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%}}[data-theme=frost]{--bg: #0f141a;--surface: #192028;--line: #29313a;--text: #e7ecf0;--muted: #8f9aa4;--accent: #60ceef;--on-accent: #061d2b;--overspend: #fa6863;--accent-muted: #103846;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%;color-scheme:dark}[data-theme=plasma]{--bg: #0d0c15;--surface: #181625;--line: #282639;--text: #eeedf5;--muted: #918fa4;--accent: #b884ff;--on-accent: #1b0e2d;--overspend: #f75d59;--accent-muted: #34234f;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%;color-scheme:dark}[data-theme=pine]{--bg: #09120b;--surface: #111e15;--line: #1f3025;--text: #e7ede8;--muted: #8b9a8d;--accent: #a8e363;--on-accent: #092104;--overspend: #fa6863;--accent-muted: #1c3517;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%;color-scheme:dark}[data-theme=opal]{--bg: #0e0c20;--surface: #1b1b35;--line: #2c304f;--text: #edeef7;--muted: #9b9db1;--accent: #60f0d4;--on-accent: #00272a;--overspend: #ff645f;--accent-muted: #003e4c;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%;color-scheme:dark}[data-theme=smalt]{--bg: #060e10;--surface: #0e1a1c;--line: #1b2c2e;--text: #e9f0ef;--muted: #8a9b9a;--accent: #e4c173;--on-accent: #241a03;--overspend: #ff6b5a;--accent-muted: #33290f;--tile-step: 0%;--glow: 16%;--site-glow: 14%;--lit: 0 0 10px color-mix(in oklab, var(--bg), var(--accent) 55%);--label-step: 7%;--amount-tint: 35%;color-scheme:dark}[data-theme=lavender]{--bg: #f5f4fd;--surface: #fdfdff;--line: #dfdcea;--text: #252131;--muted: #646172;--accent: #7250ba;--on-accent: #f9f7ff;--overspend: #cc272e;--accent-muted: #e9e3ff;--tile-step: 6%;color-scheme:light}[data-theme=sand]{--bg: #f6ede0;--surface: #fdfaf4;--line: #e4d9c9;--text: #2d251c;--muted: #665e52;--accent: #007475;--on-accent: #f1fbfa;--overspend: #cc272e;--accent-muted: #cbecec;--tile-step: 7%;color-scheme:light}[data-theme=porcelain]{--bg: #f3f1ec;--surface: #fffdf9;--line: #e1dbd1;--text: #1e1f24;--muted: #606068;--accent: #1f3d8f;--on-accent: #f4f7ff;--overspend: #c6262e;--accent-muted: #dce3f7;--tile-step: 6%;color-scheme:light}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;-webkit-text-size-adjust:100%}.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) 16px calc(env(safe-area-inset-bottom) + 8px)}.app-bar{display:flex;align-items:center;gap:10px;padding:14px 0 8px;font-weight:600}.app-bar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-preview{display:flex;align-items:center;gap:14px;padding:4px 0 8px}.profile-preview-text{display:flex;flex-direction:column;gap:2px;min-width:0}.profile-preview-name{font-size:1.15rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-photo-actions{display:flex;align-items:center;gap:8px}.link-separator{color:var(--muted);font-size:.88rem}.profile-photo-actions .link{padding:2px 0;font-size:.88rem}.link.as-button{cursor:pointer;padding:2px 0;font-size:.88rem;color:var(--accent)}.link:disabled,.link.as-button:has(input:disabled){opacity:.5;cursor:default}.chip.emoji{font-size:1.15rem;padding:6px 12px;line-height:1.2}.emoji-input{font-size:1.5rem;text-align:center;max-width:5rem}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:34px;height:34px;border-radius:50%;border:2px solid transparent;padding:0}.swatch.selected{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--text)}.unsaved{color:#c79a1e;font-size:.85rem;margin:0}.divider{border:none;border-top:1px solid var(--line);margin:6px 0}h2{font-size:1.05rem;margin:0}.content{flex:1;padding-bottom:90px}.top-list,.stat,.hub-card,.limit-tile,.limit-editor{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none}.limit-tile,.limit-editor{border-radius:var(--r-card)}.limit-tile.over{border-color:var(--overspend)}.month-bar{display:flex;align-items:center;gap:12px;padding:4px 0}.month-label{font-weight:600}.total{display:flex;flex-direction:column;gap:2px;margin:0 -16px;padding:30px 22px 20px;background:radial-gradient(120% 90% at 82% 0%,color-mix(in oklab,var(--bg),var(--accent) var(--glow)) 0%,var(--bg) 62%)}.total-kicker{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--muted);font-size:11.5px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}.total-aside{white-space:nowrap}.total-amount{font-size:44px;font-weight:650;line-height:1.05;letter-spacing:-.035em;margin:6px 0 2px;font-variant-numeric:tabular-nums}.total-meter{display:flex;gap:4px;margin-top:10px}.total-meter i{flex:1;height:7px;border-radius:var(--r-pill);background:var(--line)}.total-meter i{transition:background-color .2s var(--ease-out)}.total-meter i.on{background:var(--accent);box-shadow:var(--lit)}.total-meter i.over{background:var(--overspend)}.total-detail{color:var(--muted);font-size:.85rem;font-variant-numeric:tabular-nums;padding-top:2px}.day{margin-bottom:10px}.day-header{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;justify-content:space-between;padding:6px 4px;background:var(--bg)}.day-label{align-self:flex-start;padding:6px 10px;border-radius:var(--r-pill);background:color-mix(in oklab,var(--bg),var(--text) var(--label-step));color:var(--muted);font-family:ui-monospace,SF Mono,JetBrains Mono,Cascadia Mono,monospace;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.rows{display:flex;flex-direction:column;gap:7px}.row,.limit-tile,.cat-cell{--tile-surface: color-mix( in oklab, var(--tile-tint, var(--line)) 14%, color-mix(in oklab, var(--text) var(--tile-step), var(--surface)) );background:var(--tile-surface);--avatar-gap: var(--tile-surface)}.row{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:var(--r-tile)}@keyframes row-in{0%{opacity:0;transform:translateY(-6px)}}.row.is-new{animation:row-in .22s var(--ease-out)}.row-text{display:flex;flex-direction:column;flex:1;min-width:0}.row-title{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-subtitle,.day-total{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.row-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-amount{font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;color:color-mix(in oklab,var(--text),var(--tile-tint) var(--amount-tint))}.row-amount.income{color:var(--accent)}.dot{width:10px;height:10px;border-radius:50%;background-clip:content-box;flex:none}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:none;overflow:hidden;color:#10141a;font-weight:600;font-variant-numeric:normal;line-height:1;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.limit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.limit-tile{padding:16px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;font:inherit;color:inherit;text-align:left;cursor:pointer;--ring-track: color-mix(in oklab, var(--text) 10%, var(--tile-surface));transition:transform var(--press) var(--ease-out)}.limit-tile:active{transform:scale(.985)}.limit-tile.editing{border-color:var(--accent)}.limit-editor{padding:14px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}.limit-editor-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.limit-editor-actions .primary{width:auto;flex:1;min-width:120px}.limit-ring{position:relative;display:grid;place-items:center;width:58px;height:58px}.limit-pct{position:absolute;font-size:12.5px;font-weight:600;font-variant-numeric:tabular-nums}.limit-name{font-size:14px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.limit-left{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.limit-pct.over,.limit-left.over{color:var(--overspend)}.bar{height:6px;border-radius:3px;background:var(--line);margin-top:10px;overflow:hidden}.bar-fill{height:100%;border-radius:3px}.stats{display:flex;gap:10px;padding:8px 0 18px}.stat{flex:1;padding:12px;display:flex;flex-direction:column;gap:2px;min-width:0}.stat-caption{color:var(--muted);font-size:.78rem}.stat-value{font-weight:600;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-value.accent{color:var(--accent)}.slices{display:flex;flex-direction:column;gap:22px;padding:8px 0 18px}.slice-head{display:flex;align-items:center;gap:8px;padding-bottom:6px}.slice-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slice-amount{font-size:.85rem;font-variant-numeric:tabular-nums;white-space:nowrap}.slice-share{color:var(--muted)}.trend{display:flex;align-items:flex-end;gap:8px;height:150px;padding:10px 0 4px}.trend-column{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.trend-column.picked .trend-label{color:var(--text);font-weight:600}.trend-bar-track{flex:1;width:100%;display:flex;align-items:flex-end}.trend-bar{width:100%;background:var(--line);border-radius:6px 6px 0 0}.trend-bar.current{background:var(--accent)}.trend-label{color:var(--muted);font-size:.75rem}.hub{display:flex;flex-direction:column;gap:12px;padding:12px 0 18px}.hub-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px;font:inherit;color:inherit;text-align:left;width:100%}button.hub-card{cursor:pointer}.hub-label{color:var(--muted);font-size:.85rem}.hub-value{font-size:1.05rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-hint{color:var(--muted);font-size:.85rem}.hub-action{padding:6px 0 0}.back{align-self:flex-start;padding:10px 0 0}.form{display:flex;flex-direction:column;gap:14px;padding-top:12px}.auth{justify-content:center;min-height:70dvh}.field{display:flex;flex-direction:column;gap:6px}.field span,.field-label{color:var(--muted);font-size:.85rem}input{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;font-size:16px;width:100%}.amount-input{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cat-cell{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 4px;border:1px solid transparent;border-radius:var(--r-cell);font:inherit;color:inherit;cursor:pointer;min-width:0;transition:transform var(--press) var(--ease-out)}.cat-cell:active{transform:scale(.96)}.cat-cell.selected{border-color:var(--tile-tint)}.cat-dot{width:18px;height:18px;border-radius:50%;background:var(--bg);border:2px solid var(--tile-tint);flex:none}.cat-caption{font-size:9.5px;font-weight:500;color:var(--muted);text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(prefers-reduced-motion:reduce){.cat-cell:active{transform:none}}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:flex;align-items:center;gap:6px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.9rem}.chip.selected,.toggle button.selected{background:var(--accent-muted);border-color:var(--accent)}.toggle{display:flex;gap:8px}.toggle button{flex:1;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px}button{font:inherit;cursor:pointer}.primary{background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--radius);padding:15px;font-weight:600;font-size:1rem}.primary:disabled{opacity:.45}.link,.icon{background:none;border:none;color:var(--accent);padding:6px;font-size:1rem}.icon{font-size:1.5rem;line-height:1}.tabs{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:22px 0 16px;padding:8px;border:1px solid var(--line);border-radius:var(--r-tabbar);background:var(--surface);box-shadow:0 10px 28px #0000004d}.tabs button{background:none;border:none;color:var(--muted);padding:10px 2px;border-radius:var(--r-tabitem);font-size:11.5px;font-weight:500;white-space:nowrap;transition:color .15s var(--ease-out),background-color .15s var(--ease-out)}.tabs button.selected{color:var(--accent);background:var(--accent-muted)}.fab{position:fixed;right:calc(50vw - min(280px,50vw) + 22px);bottom:calc(env(safe-area-inset-bottom) + 96px);z-index:3;width:62px;height:62px;display:grid;place-items:center;padding:0;border:3px solid var(--bg);border-radius:22px;background:var(--accent);color:var(--on-accent);font-size:34px;font-weight:400;line-height:1;box-shadow:0 14px 34px -10px color-mix(in oklab,var(--bg),var(--accent) 80%),0 4px 12px #00000059;transition:transform var(--press) var(--ease-out)}.fab:active{transform:scale(.94)}@media(prefers-reduced-motion:reduce){.fab:active{transform:none}}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:40dvh;padding:0 32px;gap:8px}.empty-title{font-size:1.15rem;font-weight:600;margin:0}.empty-body{color:var(--muted);font-size:.9rem;margin:0;max-width:34ch}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--overspend);font-size:.9rem}.banner{background:var(--accent-muted);border-radius:var(--radius-sm);padding:10px 12px;font-size:.85rem}h1{font-size:1.5rem;margin:0}.comparison{margin:-10px 0 16px;font-variant-numeric:tabular-nums}.comparison-base{white-space:nowrap}.slice-delta{display:block;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums;padding-top:4px}.top-list{display:flex;flex-direction:column;overflow:hidden}.top-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}.top-row:last-of-type{border-bottom:none}.top-text{display:flex;flex-direction:column;flex:1;min-width:0}.top-title{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-meta{color:var(--muted);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.trend-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.trend-readout{color:var(--text);font-size:.85rem;font-variant-numeric:tabular-nums;white-space:nowrap}.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.theme-card{display:flex;align-items:center;gap:12px;text-align:left;padding:10px;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);color:inherit;font:inherit}.theme-card.selected{border-color:var(--accent);background:var(--accent-muted)}.theme-swatch{width:44px;height:44px;flex:none;border-radius:var(--r-nav);border:1px solid var(--line);background-image:linear-gradient(120deg,var(--bg) 0 48%,var(--accent) 48% 100%);display:grid;place-items:center}.theme-text{display:flex;flex-direction:column;gap:2px;min-width:0}.theme-name{font-weight:600}.theme-hint{color:var(--muted);font-size:.8rem}.panel{display:flex;flex-direction:column;min-width:0}@media(min-width:900px){.shell{max-width:1180px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(0,1fr);grid-template-areas:"brand nav add" "main  main main";align-items:center;column-gap:18px;padding:22px 28px 32px}.shell>.app-bar{grid-area:brand;padding:0 0 14px;font-size:1.05rem}.shell>.main{grid-area:main;min-width:0;align-self:stretch;padding-top:22px;background:radial-gradient(90% 120% at 88% -10%,color-mix(in oklab,var(--bg),var(--accent) var(--site-glow)) 0%,var(--bg) 60%)}.shell>.tabs{grid-area:nav;position:static;display:flex;justify-content:flex-start;gap:6px;margin:0;padding:0 0 14px;border:none;border-radius:0;background:none;box-shadow:none}.shell .tabs button{padding:9px 14px;border-radius:var(--r-nav);font-size:13px}.shell>.fab{grid-area:add;position:static;width:auto;height:auto;margin:0 0 14px;padding:11px 18px;border:none;border-radius:14px;font-size:13px;font-weight:600;line-height:1;box-shadow:var(--lit)}.shell>.fab:after{content:" Додати"}.shell>.main{border-top:1px solid var(--line)}.shell .content{padding-bottom:0}.shell .total{margin:0;padding:0 0 20px;background:none}.shell .total-amount{font-size:52px;letter-spacing:-.04em}.panels{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:16px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:none;padding:16px;gap:4px}.panel-wide{grid-column:1 / -1}.days{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-items:start;column-gap:20px}.panel .rows,.panel .top-list,.panel .stat{background:none;border-color:transparent;box-shadow:none}.panel .stats{padding-bottom:0}.panel .slices:last-child,.panel .trend{padding-bottom:0}}@media(prefers-reduced-motion:reduce){@keyframes row-in{0%{opacity:0}}.limit-tile:active{transform:none}}
