:root{--bg:#f5f6f8;--surface:#fff;--surface-2:#eef0f3;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--primary:#0f766e;--primary-contrast:#fff;--primary-soft:#ccfbf1;--danger:#dc2626;--success:#15803d;--warning:#b45309;--warning-soft:#fef3c7;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000a;--raised:var(--surface);--fab-shadow:0 6px 20px color-mix(in srgb, var(--primary) 32%, transparent);--radius:16px;--tabbar-height:62px;--tabbar-space:calc(var(--tabbar-height) + var(--safe-bottom) + 12px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-sheet:cubic-bezier(.32, .72, 0, 1);--ease-snap:cubic-bezier(.34, 1.4, .64, 1);--dur-press:90ms;--dur-fast:.16s;--dur-base:.26s;--dur-slow:.42s;--focus-ring:0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);interpolate-size:allow-keywords}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0d10;--surface:#16191e;--surface-2:#1f242b;--text:#f3f4f6;--muted:#9ca3af;--border:#2a3038;--primary:#2dd4bf;--primary-contrast:#042f2e;--primary-soft:#134e4a;--danger:#f87171;--success:#4ade80;--warning:#fbbf24;--warning-soft:#422006;--shadow:none;--raised:#343b45;--fab-shadow:0 6px 20px #00000080}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}body.no-scroll{overflow:hidden}a{color:var(--primary);text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3{margin:0}.positive{color:var(--success)}.negative{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:.85rem}.done{color:var(--muted);text-decoration:line-through}.page{max-width:640px;padding:calc(var(--safe-top) + 12px) 16px calc(var(--tabbar-space) + 96px);margin:0 auto}.page-header{padding:8px 0 12px}.page-header-row{align-items:center;gap:8px;min-height:44px;display:flex}.page-header h1{letter-spacing:-.02em;flex:1;font-size:1.9rem;font-weight:750}.page-actions{gap:4px;display:flex}.back-link{place-items:center;width:36px;height:44px;margin-left:-8px;display:grid}.subtitle{color:var(--muted);margin:-8px 0 16px}.section{margin-top:24px}.section-title{justify-content:space-between;align-items:baseline;margin-bottom:8px;display:flex}.section-title h2,.group-title{margin-bottom:8px;font-size:1.05rem;font-weight:650}.tab{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.68rem;font-weight:550;display:flex}.tab.active{color:var(--primary)}.fab{right:max(16px,50vw - 304px);bottom:calc(var(--tabbar-space) + 16px);z-index:15;background:var(--primary);width:60px;height:60px;color:var(--primary-contrast);box-shadow:var(--fab-shadow);animation:fab-in var(--dur-slow) var(--ease-snap) .12s backwards;border-radius:50%;place-items:center;display:grid;position:fixed}.fab:active{transform:scale(.92)}@keyframes fab-in{0%{opacity:0;transform:scale(.4)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);color:inherit;margin-bottom:12px;padding:16px;display:block}.card h2{margin-bottom:8px;font-size:1.15rem}.list{margin:0;padding:0;list-style:none}.list.card{padding:0;overflow:hidden}.list>li+li{border-top:1px solid var(--border)}.list-row{text-align:left;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 16px;display:flex}.list-row.compact{min-height:44px;padding:8px 0}.row-link{min-width:0;color:inherit;text-align:left;flex:1;align-items:center;gap:12px;display:flex}.list-row>.row-link{align-self:stretch}.row-main{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.row-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.row-sub.negative{color:var(--danger)}.row-sub.positive{color:var(--success)}.list-header{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-2);padding:8px 16px 4px;font-size:.78rem;font-weight:650}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.dot.large{width:18px;height:18px}.pill{border:1px solid;border-radius:999px;padding:0 8px;font-size:.75rem;line-height:1.5;display:inline-block}.muted-pill{color:var(--muted);border-style:dashed}.badge{background:var(--surface-2);border-radius:6px;padding:2px 8px;font-size:.75rem;font-weight:650;display:inline-block}.empty{text-align:center;color:var(--muted);padding:40px 16px}.loading{place-items:center;padding:40px;display:grid}.spinner{vertical-align:-3px;border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.balance-card{color:#fff;background:linear-gradient(135deg,#115e59,#0f766e);border:0;flex-direction:column;gap:4px;display:flex}.balance-card .label{opacity:.85;font-size:.9rem}.balance-card .muted{color:#fffc}.balance{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:2.1rem;font-weight:750}.balance-split{flex-wrap:wrap;gap:4px 16px;font-size:.9rem;display:flex}.balance-card .positive,.balance-card .negative{color:#fff;opacity:.9}.alert-card,.hint-card{text-align:left;background:var(--warning-soft);width:100%;color:var(--text);border-color:#0000;align-items:flex-start;gap:12px;display:flex}.alert-card svg,.hint-card svg{color:var(--warning);flex-shrink:0}.alert-card p{margin:2px 0 0;font-size:.9rem}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat-grid .card{margin:0}.stat{flex-direction:column;gap:2px;padding:14px 12px;display:flex}.stat-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:750}.stat-value.small{font-size:1rem}.stat-label{color:var(--muted);font-size:.8rem}.period-nav{justify-content:space-between;align-items:center;margin:8px 0 12px;display:flex}.category-bar .row-title{align-items:center;gap:8px;display:flex}.bar-track{background:var(--surface-2);border-radius:3px;height:6px;margin-top:6px;display:block;overflow:hidden}.bar{transform-origin:0;height:100%;animation:bar-grow .7s var(--ease-out) 80ms backwards;transition:width var(--dur-slow) var(--ease-out), background-color var(--dur-base) ease;border-radius:3px;display:block}@keyframes bar-grow{0%{transform:scaleX(0)}}.search{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:12px;align-items:center;gap:8px;margin-bottom:12px;padding:0 12px;display:flex}.search input{box-shadow:none;background:0 0;border:0;outline:none;flex:1;padding:12px 0}.search,.quick-add{transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease}.search:focus-within,.quick-add:focus-within{border-color:var(--primary);box-shadow:var(--focus-ring)}.tx-summary{flex-direction:column;gap:2px;display:flex}.tx-summary strong{font-variant-numeric:tabular-nums;font-size:1.6rem}.category-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.category-option{border:1.5px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:8px;min-height:48px;padding:0 12px;font-weight:550;display:flex}.category-option.active{border-color:var(--cat);background:color-mix(in srgb, var(--cat) 14%, var(--surface))}.connection-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.connection-card .list{margin:8px 0}.conn-ACTIVE{background:var(--primary-soft);color:var(--primary)}.conn-EXPIRED,.conn-ERROR{background:var(--warning-soft);color:var(--warning)}.bank-logo{object-fit:contain;background:#fff;border-radius:6px;width:32px;height:32px}.bank-list{margin-top:4px}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{width:40px;height:40px;transition:outline-color var(--dur-fast) ease, border-color var(--dur-fast) ease, transform var(--dur-base) var(--ease-snap);border:3px solid #0000;border-radius:50%;outline:2px solid #0000}.swatch.active{border-color:var(--surface);outline-color:var(--text);transform:scale(1.08)}.swatch:active{transition-duration:var(--dur-press);transform:scale(.9)}.check{border:2px solid var(--border);color:#0000;width:28px;height:28px;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-base) var(--ease-out);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.check:before{content:"";position:absolute;inset:-8px}.check:active{border-color:var(--primary);transition-duration:var(--dur-press);transform:scale(.88)}.completing{pointer-events:none}.completing .check{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);animation:check-pop .36s var(--ease-snap)}.completing .check path{stroke-dasharray:22;animation:check-draw .26s var(--ease-out) 60ms backwards}.completing .row-title{color:var(--muted);animation:strike var(--dur-base) var(--ease-out);transition:color var(--dur-base) ease;text-decoration-line:line-through}@keyframes check-pop{0%{transform:scale(.8)}55%{transform:scale(1.14)}}@keyframes check-draw{0%{stroke-dashoffset:22px}}@keyframes strike{0%{text-decoration-color:#0000}}.task-list{flex-direction:column;gap:10px;display:flex}.task-card{align-items:flex-start;gap:12px;margin:0;display:flex}.task-body{text-align:left;flex:1;min-width:0}.task-body h3{margin:6px 0 2px;font-size:1rem;font-weight:600}.task-meta{flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;display:flex}.task-notes{color:var(--muted);-webkit-line-clamp:2;white-space:pre-line;-webkit-box-orient:vertical;margin:4px 0 0;font-size:.88rem;display:-webkit-box;overflow:hidden}.project-NOVACLOUD{color:#4338ca;background:#e0e7ff}.project-SOLLECITA{color:#be185d;background:#fce7f3}.project-FREELANCE{color:#15803d;background:#dcfce7}.project-ALTRO{background:var(--surface-2);color:var(--muted)}@media (prefers-color-scheme:dark){.project-NOVACLOUD{color:#c7d2fe;background:#312e81}.project-SOLLECITA{color:#fbcfe8;background:#831843}.project-FREELANCE{color:#bbf7d0;background:#14532d}}.status-pill{background:var(--surface-2);border-radius:999px;flex-shrink:0;min-height:36px;padding:0 12px;font-size:.8rem;font-weight:650}.status-TODO{--status:#64748b}.status-IN_PROGRESS{--status:#0ea5e9}.status-BLOCKED{--status:#ef4444}.status-DONE{--status:#22c55e}.status-pill,.stat[class*=status-] .stat-value{color:var(--status)}.status-pill{background:color-mix(in srgb, var(--status) 14%, transparent)}.action-list{flex-direction:column;gap:8px;display:flex}.status-button{border:1.5px solid color-mix(in srgb, var(--status) 40%, transparent);color:var(--status)}.status-button.current{background:color-mix(in srgb, var(--status) 14%, transparent)}.chips{scrollbar-width:none;gap:8px;padding:2px 0 10px;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;flex-shrink:0;min-height:36px;padding:0 14px;font-size:.9rem;font-weight:550}.chip.active{background:var(--text);border-color:var(--text);color:var(--bg)}.segmented{background:var(--surface-2);border-radius:12px;gap:2px;margin-bottom:12px;padding:3px;display:flex;position:relative}.segmented:before{content:"";width:calc((100% - 6px - (var(--seg-count) - 1) * 2px) / var(--seg-count));background:var(--raised);transform:translateX(calc(var(--seg-index) * (100% + 2px)));transition:transform var(--dur-base) var(--ease-out);border-radius:9px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a}.segmented button{min-height:36px;color:var(--muted);transition:color var(--dur-fast) ease;border-radius:9px;flex:1;padding:0 6px;font-size:.85rem;font-weight:600;position:relative}.segmented button.active{color:var(--text)}.icon-button{width:44px;height:44px;color:var(--text);transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-base) var(--ease-out);border-radius:50%;place-items:center;display:grid}.icon-button:active:not(:disabled){background:var(--surface-2);transition-duration:var(--dur-press);transform:scale(.9)}.button{text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-weight:650;display:inline-flex}.button:disabled{opacity:.5;cursor:default}.button.block{width:100%;display:flex}.card .button.block+.button.block{margin-top:8px}.button.primary{background:var(--primary);color:var(--primary-contrast)}.button.secondary{background:var(--surface-2);color:var(--text)}.button.danger{color:var(--danger);background:0 0}.button.danger.armed{background:var(--danger);color:#fff;position:relative;overflow:hidden}.button.danger.armed:after{content:"";transform-origin:0;background:#ffffff8c;height:3px;animation:3s linear forwards countdown;position:absolute;bottom:0;left:0;right:0}@keyframes countdown{to{transform:scaleX(0)}}.button-row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.link-button{color:var(--primary);font-weight:600}.filter-hint{color:var(--muted);margin:-4px 0 12px;font-size:.85rem}.form{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--muted);font-size:.85rem;font-weight:600}.field-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.input-with-action{gap:8px;display:flex}.input-with-action input{flex:1}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);appearance:none;border-radius:12px;width:100%;min-height:48px;padding:12px;font-size:16px}select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 15px);background-repeat:no-repeat;background-size:5px 5px}input,textarea,select{transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease}input:not([type=checkbox],[type=radio]):focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:var(--focus-ring);outline:none}textarea{resize:vertical}.checkbox{align-items:flex-start;gap:10px;font-size:.92rem;display:flex}.checkbox input{appearance:auto;width:22px;height:22px;min-height:0;accent-color:var(--primary);flex-shrink:0;margin:0;padding:0}.form-error{color:var(--danger);animation:error-in var(--dur-base) var(--ease-out);margin:0}@keyframes error-in{0%{opacity:0;transform:translateY(-4px)}}.sheet-backdrop{z-index:40;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-scrim{animation:fade var(--dur-base) ease-out;background:#0006;position:absolute;inset:0}.sheet-backdrop.closing{pointer-events:none}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:92dvh;padding-bottom:var(--safe-bottom);animation:slide-up var(--dur-slow) var(--ease-sheet);border-radius:20px 20px 0 0;flex-direction:column;display:flex;position:relative;box-shadow:0 -8px 32px #0000001f}.sheet:focus{outline:none}.sheet-handle{background:var(--border);width:40px;height:5px;transition:background-color var(--dur-fast) ease, transform var(--dur-fast) ease;border-radius:3px;margin:8px auto 0}.sheet-grip:active .sheet-handle{background:var(--muted);transform:scaleX(1.15)}.sheet-header{justify-content:space-between;align-items:center;padding:4px 8px 4px 16px;display:flex}.sheet-header h2{font-size:1.15rem}.sheet-body{overscroll-behavior:contain;padding:4px 16px 20px;overflow-y:auto}@keyframes slide-up{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}.wake-banner{z-index:50;padding:calc(var(--safe-top) + 8px) 16px 8px;background:var(--warning-soft);color:var(--text);text-align:center;animation:drop-in var(--dur-slow) var(--ease-out);font-size:.88rem;position:fixed;top:0;left:0;right:0}@keyframes drop-in{0%{transform:translateY(-100%)}}.toast{left:16px;right:16px;bottom:calc(var(--tabbar-space) + 12px);z-index:60;background:var(--text);max-width:480px;color:var(--bg);animation:toast-in var(--dur-slow) var(--ease-snap) both;border-radius:12px;margin:0 auto;padding:12px 16px;font-weight:550;position:fixed;box-shadow:0 8px 24px #0003}.toast.leaving{animation:toast-out .18s var(--ease-in) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)scale(.94)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px)scale(.97)}}body:has(.fab) .toast{bottom:calc(var(--tabbar-space) + 88px)}.toast-error{background:var(--danger);color:#fff}.error-card{border-color:var(--danger)}.error-card p,.settings-card p{margin-top:0}.login{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-form{width:100%;max-width:360px;animation:page-in .5s var(--ease-out) backwards;flex-direction:column;gap:16px;display:flex}.login-form h1{text-align:center;margin-bottom:8px;font-size:1.7rem}.login-logo{border-radius:18px;align-self:center}a,button,input,select,textarea,label{touch-action:manipulation}.card,.list-row,.row-link,.chip,.button,.category-option,.status-pill,.fab,.weekday-picker button,.select-box{transition:transform var(--dur-base) var(--ease-out), background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, box-shadow var(--dur-fast) ease, opacity var(--dur-fast) ease}a.card:active,button.card:active,.chip:active,.button:active:not(:disabled),.category-option:active,.status-pill:active,.weekday-picker button:active{transition-duration:var(--dur-press);transform:scale(.97)}.fab:active{transition-duration:var(--dur-press)}.row-link:active{background:var(--surface-2);transition-duration:0s}@media (hover:hover) and (pointer:fine){a.card:hover,button.card:hover{border-color:color-mix(in srgb, var(--text) 16%, var(--border))}.row-link:hover{background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.button.primary:hover:not(:disabled),.fab:hover{background:color-mix(in srgb, var(--primary) 88%, var(--text))}.button.secondary:hover:not(:disabled),.icon-button:hover:not(:disabled),.chip:hover:not(.active){background:color-mix(in srgb, var(--surface-2) 85%, var(--text))}.button.danger:hover:not(.armed){background:color-mix(in srgb, var(--danger) 10%, transparent)}.segmented button:hover:not(.active),.tab:hover:not(.active){color:var(--text)}.check:hover{border-color:var(--primary)}.kanban-card:hover{border-color:color-mix(in srgb, var(--text) 18%, var(--border))}}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.list .row-link:focus-visible,.list-row:focus-visible{outline-offset:-2px}.page>:not(.fab,.sheet-backdrop,.selection-bar,.skeleton-list,.page-skeleton){animation:page-in .32s var(--ease-out) var(--stagger,0s) backwards}.page>:nth-child(2){--stagger:30ms}.page>:nth-child(3){--stagger:60ms}.page>:nth-child(4){--stagger:90ms}.page>:nth-child(5){--stagger:.12s}.page>:nth-child(n+6){--stagger:.15s}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.skeleton-list,.page-skeleton{animation:fade var(--dur-base) ease-out .16s backwards}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--border) 40%, var(--surface-2) 80%);background-size:300% 100%;border-radius:6px;animation:1.6s linear infinite shimmer;display:block}.skeleton-list{padding:4px 16px}.skeleton-row{flex-direction:column;gap:8px;padding:12px 0;display:flex}.skeleton-row+.skeleton-row{border-top:1px solid var(--border)}.skeleton-title{height:14px}.skeleton-sub{width:35%;height:10px}.skeleton-heading{width:45%;height:30px;margin:16px 0 20px}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.spinner{animation:1.6s linear infinite spin!important}.skeleton,.offline-dot.syncing{animation:none!important}}.sheet-grip{touch-action:none;cursor:grab}.auto-pill{border-style:dashed;align-items:center;gap:3px;display:inline-flex}.action-card,.review-card{background:var(--primary-soft);border-color:#0000;align-items:flex-start;gap:12px;display:flex}.action-card{flex-wrap:wrap}.action-card p{flex:1;margin:0;font-size:.92rem}.action-card svg,.review-card svg:first-child{color:var(--primary);flex-shrink:0}.review-card{color:var(--text);align-items:center}.suggestion-note{background:var(--primary-soft);border-radius:12px;align-items:center;gap:8px;margin:0;padding:10px 12px;font-size:.9rem;display:flex}.rule-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.icon-button.danger-armed{background:var(--danger);color:#fff;animation:check-pop .3s var(--ease-snap)}.quick-picks{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quick-picks .muted{width:100%}.button.quick-pick{background:color-mix(in srgb, var(--cat) 16%, var(--surface));border:1.5px solid var(--cat);min-height:44px;color:var(--text)}:root{--series-in:#2a78d6;--series-out:#eb6834}@media (prefers-color-scheme:dark){:root{--series-in:#3987e5;--series-out:#d95926}}.chart-card{padding:14px 14px 10px}.trend{margin:0}.trend-readout{color:var(--muted);flex-direction:column;gap:2px;margin-bottom:8px;font-size:.85rem;display:flex}.trend-readout strong{color:var(--text);font-size:.95rem}.trend-readout>span{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.legend-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}.legend-swatch.series-in{background:var(--series-in)}.legend-swatch.series-out{background:var(--series-out);margin-left:6px}.trend-svg{width:100%;height:150px;display:block;overflow:visible}.series-in-fill{fill:var(--series-in)}.series-out-fill{fill:var(--series-out)}.trend-svg g{transition:opacity var(--dur-base) ease}.trend-dim{opacity:.35}.series-in-fill,.series-out-fill{transform-box:fill-box;transform-origin:bottom;animation:grow-up .6s var(--ease-out) calc(var(--i,0) * 25ms) backwards}@keyframes grow-up{0%{transform:scaleY(0)}}.trend-labels span{transition:color var(--dur-fast) ease}.trend-grid{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:2 3}.trend-axis{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.trend-labels{text-align:center;color:var(--muted);grid-template-columns:repeat(12,1fr);margin-top:-12px;font-size:.7rem;display:grid}.trend-labels .active{color:var(--text);font-weight:700}.trend-scale{text-align:right;color:var(--muted);font-size:.7rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.balance-forecast{opacity:.9;font-size:.88rem}.delta{margin-left:6px;font-size:.72rem;font-weight:650;display:inline-block}.stat .delta{margin-left:0}.delta-good{color:var(--success)}.delta-bad{color:var(--danger)}.budget-row .row-sub{margin-top:4px}.bar.bar-warn{background:var(--warning)}.bar.bar-over{background:var(--danger)}.forecast-card{grid-template-columns:1fr 1fr;gap:12px;display:grid}.forecast-card div{flex-direction:column;gap:2px;display:flex}.forecast-card strong{font-variant-numeric:tabular-nums}.split-toggle{align-self:flex-start}.split-row{grid-template-columns:1fr 90px 44px;align-items:center;gap:6px;display:grid}.button.current-choice{background:var(--primary-soft);justify-content:space-between}.quick-add{background:var(--surface);border:1px solid var(--border);border-radius:14px;align-items:center;gap:4px;margin-bottom:6px;padding-left:4px;display:flex}.quick-add input{background:0 0;border:0}.quick-add input:focus{outline:none}.quick-add .icon-button{color:var(--primary)}.quick-add .icon-button:disabled{color:var(--muted)}.quick-preview{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px;margin:0 4px 12px;font-size:.85rem;display:flex}.quick-preview strong{color:var(--text)}.swipe-row{position:relative;overflow:hidden}.swipe-content{background:var(--surface);touch-action:pan-y;position:relative}.swipe-action{color:#fff;visibility:hidden;align-items:center;gap:6px;padding:0 20px;font-weight:650;display:flex;position:absolute;inset:0}.swipe-action-left{justify-content:flex-end}.swipe-action svg{transition:transform var(--dur-base) var(--ease-snap)}.swipe-row:not([data-armed]) .swipe-action{color:#ffffffbf}.swipe-row[data-armed] .swipe-action svg{transform:scale(1.25)}.swipe-row[data-swipe=left] .swipe-action-left,.swipe-row[data-swipe=right] .swipe-action-right{visibility:visible}.swipe-done{background:var(--success)}.swipe-snooze{background:var(--warning)}.weekday-picker{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.weekday-picker button{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);border-radius:50%;font-weight:700}.weekday-picker button.active{animation:check-pop .3s var(--ease-snap);background:var(--primary);border-color:var(--primary);color:var(--primary-contrast)}.kanban{scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:minmax(78%,1fr);grid-auto-flow:column;gap:10px;margin:0 -16px;padding:0 16px 12px;display:grid;overflow-x:auto}@media (width>=640px){.kanban{grid-auto-columns:minmax(240px,1fr)}}.kanban::-webkit-scrollbar{display:none}.kanban-column{scroll-snap-align:start;background:var(--surface-2);border-radius:var(--radius);outline:2px solid #0000;min-height:200px;padding:10px;transition:background-color .15s,outline-color .15s}.kanban-column.drop-target{outline-color:var(--status);background:color-mix(in srgb, var(--status) 10%, var(--surface-2))}.kanban-column header{align-items:center;gap:6px;margin-bottom:8px;font-size:.9rem;font-weight:650;display:flex}.kanban-dot{background:var(--status);border-radius:50%;width:8px;height:8px}.kanban-cards{flex-direction:column;gap:8px;display:flex}.kanban-card{background:var(--surface);border:1px solid var(--border);touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:grab;transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-fast) ease, border-color var(--dur-fast) ease, box-shadow var(--dur-base) ease;border-radius:12px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.kanban-card:active{transition-duration:var(--long-press,.28s);transform:scale(.96)}.kanban-card h3{margin:0;font-size:.95rem;font-weight:600}.kanban-card.dragging-source{opacity:.35}.kanban-ghost{z-index:70;pointer-events:none;animation:lift var(--dur-fast) var(--ease-out) backwards;position:fixed;transform:rotate(2deg)scale(1.03);box-shadow:0 12px 30px #00000040}@keyframes lift{0%{transform:scale(.96);box-shadow:0 1px 2px #0000001a}}.kanban-card.landed{animation:land .9s var(--ease-out)}@keyframes land{0%{box-shadow:0 0 0 3px color-mix(in srgb, var(--status) 55%, transparent);transform:scale(.96)}30%{transform:scale(1)}to{box-shadow:0 0 0 3px #0000}}.kanban-empty{text-align:center;color:var(--muted);margin:12px 0;font-size:.85rem}.checklist-progress{align-items:center;gap:8px;display:flex}.checklist-progress .bar-track{flex:1;margin:0}.checklist-progress .bar{background:var(--primary)}.checklist{margin:0;padding:0;list-style:none}.checklist li{justify-content:space-between;align-items:center;gap:8px;min-height:40px;display:flex}.time-list .list-row{padding:4px 0}.tabbar{left:12px;right:12px;bottom:calc(var(--safe-bottom) + 10px);z-index:20;max-width:520px;height:var(--tabbar-height);background:color-mix(in srgb, var(--surface) 74%, transparent);-webkit-backdrop-filter:saturate(200%)blur(24px);border:1px solid #ffffff8c;border-radius:28px;grid-template-columns:repeat(5,1fr);margin:0 auto;padding:5px;display:grid;position:fixed;box-shadow:0 10px 30px #0f172a24,0 2px 6px #0f172a0f,inset 0 1px #fff9}@media (prefers-color-scheme:dark){.tabbar{background:color-mix(in srgb, var(--surface) 70%, transparent);border-color:#ffffff1a;box-shadow:0 10px 30px #00000073,inset 0 1px #ffffff14}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.tabbar{background:color-mix(in srgb, var(--surface) 96%, transparent)}}.tab{transition:color var(--dur-base) ease, transform var(--dur-base) var(--ease-out);border-radius:22px;position:relative}.tab-indicator{background:color-mix(in srgb, var(--primary) 14%, transparent);width:calc(20% - 2px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 18%, transparent);transition:transform var(--dur-slow) var(--ease-snap), opacity var(--dur-fast) ease;pointer-events:none;border-radius:22px;position:absolute;top:5px;bottom:5px;left:5px}.tab.active svg{animation:tab-pop var(--dur-slow) var(--ease-snap)}@keyframes tab-pop{40%{transform:scale(1.15)translateY(-1px)}}.tab:active{transition-duration:var(--dur-press);transform:scale(.92)}.offline-status{top:calc(var(--safe-top) + 8px);z-index:55;color:var(--text);background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:saturate(180%)blur(18px);border:1px solid var(--border);white-space:nowrap;animation:pill-in var(--dur-slow) var(--ease-snap) backwards;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:.8rem;font-weight:600;display:inline-flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000001f}@keyframes pill-in{0%{opacity:0;transform:translate(-50%,-16px)scale(.9)}}.offline-dot{background:var(--warning);border-radius:50%;width:8px;height:8px}.offline-dot.syncing{background:var(--primary);animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.3}}.ptr{top:calc(var(--safe-top) - 36px);z-index:45;width:38px;height:38px;color:var(--primary);background:color-mix(in srgb, var(--surface) 75%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:50%;place-items:center;display:grid;position:fixed;left:50%;box-shadow:0 4px 14px #00000024}.ptr-refreshing,.ptr-settling{transition:transform .3s var(--ease-sheet), opacity .3s ease}.ptr-settling{opacity:0}.ptr-arrow{display:grid}.ptr-arrow.ready{color:var(--primary);transition:transform var(--dur-base) var(--ease-snap)}.totals-card{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.totals-card div{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:flex-end;gap:4px 12px;font-weight:650;display:flex}.report-card{gap:10px;margin-bottom:16px;display:grid}.report-card .section-title{margin:0}.report-numbers{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.report-numbers div{gap:2px;display:grid}.report-top{gap:6px;margin:0;padding:0;list-style:none;display:grid}.report-top li{align-items:center;gap:8px;font-size:.95rem;display:flex}.report-top .amount{margin-left:auto}.anomaly-row{align-items:center}.anomaly-row .row-main{color:inherit;text-decoration:none}.anomaly-icon{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.row-title.wrap{white-space:normal;overflow:visible}.cash-row{text-align:left;width:100%}.compact-list{margin:8px 0 16px}.compact-list .list-row{gap:8px}.field-row.align-end{align-items:end}.goal-entry{margin-bottom:8px}.networth-svg{height:110px}.networth-line{fill:none;stroke:var(--series-in);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.networth-area{fill:var(--series-in);opacity:.1;animation:.8s ease-out .2s backwards fade}.networth-cursor{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3;transition:transform var(--dur-base) var(--ease-out)}.networth-labels{justify-content:space-between;display:flex}.trend-readout .delta{margin-left:8px}.project-AUTOMAZIONI{color:#b45309;background:#fef3c7}@media (prefers-color-scheme:dark){.project-AUTOMAZIONI{color:#fde68a;background:#78350f}}.stage-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:10px;height:10px}.stage-NEW{background:#94a3b8}.stage-CONTACTED{background:#2a78d6}.stage-REPLIED{background:#0891b2}.stage-MEETING{background:#9333ea}.stage-PROPOSAL{background:#d97706}.stage-WON{background:#16a34a}.stage-LOST{opacity:.6;background:#dc2626}.badge.priority-high{color:#b91c1c;background:#fee2e2;margin-left:6px}@media (prefers-color-scheme:dark){.badge.priority-high{color:#fecaca;background:#7f1d1d}}.follow-up{flex-shrink:0;font-size:.85rem}.follow-up.due{color:var(--primary);font-weight:600}.quick-actions{flex-wrap:wrap;gap:8px;margin:8px 0 16px;display:flex}.quick-actions .button{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.activity-form{margin:8px 0 16px}.timeline{border-left:2px solid var(--border);gap:12px;margin:0 0 16px;padding:0 0 0 16px;list-style:none;display:grid}.timeline li{position:relative}.timeline li:before{content:"";background:var(--primary);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-22px}.timeline-date{color:var(--muted);font-size:.8rem;display:block}.timeline p{white-space:pre-line;margin:2px 0 0}.notes-text{white-space:pre-line;margin-top:0}.file-button{cursor:pointer;justify-content:center;align-items:center;gap:6px;display:flex}.field-row .grow,.field.grow{flex:auto;min-width:0}.field-row .narrow,.field.narrow{flex:0 0 90px;width:90px}.document-total{text-align:right;font-size:1.05rem}.receipt-summary{grid-template-columns:1fr auto;gap:6px 12px;display:grid}.receipt-stamp{color:var(--muted);grid-column:1/-1;font-size:.85rem}.print-toolbar{justify-content:space-between;gap:8px;margin-bottom:16px;display:flex}.print-toolbar .button{align-items:center;gap:6px;text-decoration:none;display:inline-flex}.print-doc{color:#111;background:#fff;border-radius:12px;padding:28px 24px;font-family:Georgia,Times New Roman,serif;font-size:13px;line-height:1.5;box-shadow:0 1px 3px #0000001f}.print-doc h1.print-title{margin:20px 0 12px;font-size:16px}.print-doc h2{margin:18px 0 6px;font-size:14px}.print-head{border-bottom:1px solid #ccc;justify-content:space-between;gap:16px;padding-bottom:12px;display:flex}.print-owner{font-size:15px}.print-meta{text-align:right;white-space:nowrap}.print-client{max-width:60%;margin:16px 0 0 auto;display:grid}.print-label{color:#666;text-transform:uppercase;letter-spacing:.04em;font-size:11px}.print-table{border-collapse:collapse;width:100%;margin:6px 0 10px}.print-table td{vertical-align:top;border-bottom:1px solid #e5e5e5;padding:6px 0}.print-table .num{text-align:right;white-space:nowrap;padding-left:12px}.print-table .total td{border-bottom:2px solid #111;font-weight:700}.print-small{color:#444;font-size:11px}.print-description,.print-notes{white-space:pre-line}.print-sign{justify-content:space-between;align-items:flex-end;margin-top:40px;display:flex}.print-sign>div:last-child{gap:4px;min-width:200px;display:grid}.print-line{border-bottom:1px solid #111;height:36px;display:block}.print-stamp{text-align:center;color:#666;border:1px dashed #999;place-items:center;width:90px;height:90px;font-size:10px;display:inline-grid}@media print{@page{size:A4;margin:18mm 16mm}body{background:#fff!important}body *{visibility:hidden}.print-doc,.print-doc *{visibility:visible}.print-doc{width:100%;box-shadow:none;border-radius:0;padding:0;position:absolute;inset:0 auto auto 0}}.github-section{margin-bottom:16px}.hub-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px;display:grid}.hub-tile{text-align:center;color:inherit;justify-items:center;gap:6px;padding:16px 8px;font-size:.9rem;font-weight:600;text-decoration:none;display:grid}.hub-tile svg{color:var(--primary)}.job-list{gap:10px;margin:8px 0 0;padding:0;list-style:none;display:grid}.job-list li{align-items:flex-start;gap:10px;display:flex}.job-dot{background:var(--border);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:6px}.job-ok{background:#16a34a}.job-bad{background:#dc2626}.select-box{border:2px solid var(--border);border-radius:6px;flex-shrink:0;place-items:center;width:22px;height:22px;display:grid}.select-box.on{background:var(--primary);border-color:var(--primary);color:var(--primary-contrast);animation:check-pop .3s var(--ease-snap)}.list-row.selected{background:var(--primary-soft)}details::details-content{block-size:0;transition:block-size var(--dur-base) var(--ease-out), content-visibility var(--dur-base) allow-discrete;overflow:clip}details[open]::details-content{block-size:auto}.icon-button.active{color:var(--primary)}.selection-bar{left:16px;right:16px;bottom:calc(var(--tabbar-space,90px) + 8px);background:var(--surface);z-index:20;animation:rise-in var(--dur-slow) var(--ease-sheet) backwards;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex;position:fixed;box-shadow:0 6px 24px #0000002e}@keyframes rise-in{0%{opacity:0;transform:translateY(24px)}}.print-doc{position:relative;overflow:hidden}.print-cancelled{letter-spacing:.1em;color:#dc262640;pointer-events:none;border:6px solid #dc262640;padding:4px 24px;font-size:64px;font-weight:700;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)rotate(-24deg)}.subscription-badge{vertical-align:1px;margin-left:6px}.subscription-badge.up{color:var(--danger)}.price-bar{background:var(--primary);opacity:.5;border-radius:2px;height:4px;margin-top:4px;display:block}details.section>summary{cursor:pointer}.secret-box{background:var(--surface-2);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:10px;width:100%;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;display:block}.shortcut-steps{margin:0;padding-left:20px;font-size:.9rem}.shortcut-steps li{margin:6px 0}.plain-fieldset{border:0;min-width:0;margin:0;padding:0;display:contents}.hint-card.danger svg{color:var(--danger)}
