:root{font-family:Nunito,system-ui,-apple-system,Segoe UI,sans-serif;--ink: #3b2e2a;--cream: #fbf3e7;--sand: #e4d5c3;--blush: #f3e4d3;--terracotta: #de7a57;--sage: #7fa98b;--butter: #eebe4e;--dusty: #7c9cb8;--over: #b8523a;--muted: #8a776e;--accent: var(--terracotta);--on-accent: #ffffff;--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 28px;--radius-pill: 999px;--shadow-soft: 0 2px 10px rgba(59, 46, 42, .06);--shadow-card: 0 8px 24px rgba(59, 46, 42, .08);--shadow-lifted: 0 16px 40px rgba(59, 46, 42, .12);--font-display: "Fraunces", Georgia, serif;--font-text: "Nunito", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--ease: cubic-bezier(.32, .72, .35, 1);--dur: .22s;--color-brand: var(--accent);--color-brand-hover: #c96844;--color-brand-text: var(--on-accent);--color-background: #ffffff;--color-surface: var(--cream);--color-text: var(--ink);--color-subtle-text: var(--muted);--color-line: var(--sand);--color-accent: var(--blush);--color-positive: var(--sage);--color-negative: var(--over);--color-positive-bg: rgba(127, 169, 139, .18);--color-negative-bg: rgba(184, 82, 58, .14);--color-shadow: rgba(59, 46, 42, .08);--calendar-icon-filter: none;--soft-divider: rgba(59, 46, 42, .12);--dropdown-border: var(--sand);--app-surface-gradient: var(--cream)}body[data-theme=dark]{--ink: #f4e9dc;--cream: #241d1b;--sand: #453733;--blush: #302724;--muted: #b3a096;--shadow-soft: 0 2px 10px rgba(0, 0, 0, .3);--shadow-card: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lifted: 0 16px 40px rgba(0, 0, 0, .45);--color-background: #2c2422;--color-accent: var(--blush);--color-shadow: rgba(0, 0, 0, .35);--calendar-icon-filter: invert(.85);--soft-divider: rgba(244, 233, 220, .14)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--cream);color:var(--ink);font-family:var(--font-text);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3,.headline-text,.display{font-family:var(--font-display);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;font-weight:700;letter-spacing:-.02em;line-height:1.12}h1{font-size:34px}h2{font-size:26px}h3{font-size:20px}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.amount{font-family:var(--font-display);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;font-weight:700;letter-spacing:-.03em;font-size:44px;line-height:1}.amount .cents{opacity:.4;font-size:.58em}.mono{font-family:var(--font-mono);font-size:14px}.muted{color:var(--muted)}#root{min-height:100vh}button{font-family:inherit}*{scrollbar-width:thin;scrollbar-color:var(--color-brand) var(--color-accent)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent;border-radius:999px}*::-webkit-scrollbar-thumb{background-color:var(--sand);border-radius:999px;border:2px solid transparent;background-clip:padding-box}select,input,textarea{font-family:inherit;font-size:16px;color:var(--ink)}select{appearance:none;border-radius:var(--radius-md);border:2px solid var(--sand);background:var(--color-background);padding:11px 36px 11px 14px;color:var(--ink);transition:border-color var(--dur) var(--ease)}select:focus{outline:none;border-color:var(--accent)}input[type=date]{background:var(--color-background);color:var(--ink)}input[type=date]::-webkit-calendar-picker-indicator{filter:var(--calendar-icon-filter);cursor:pointer}.instruction-text{font-size:15px;color:var(--muted)}.glass-row{background:var(--blush);border-radius:var(--radius-md);padding:12px 16px;border:2px solid var(--sand)}body[data-theme=dark] .glass-row{background:var(--blush);border-color:var(--sand)}.ai-textarea::placeholder{font-size:15px;color:var(--muted)}li{padding-bottom:10px;list-style-position:inside}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--on-accent);border:0;font-family:var(--font-text);font-weight:700;font-size:16px;padding:14px 22px;border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--dur) var(--ease),filter var(--dur) var(--ease)}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(1px) scale(.99)}.btn--ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.btn--quiet{background:var(--blush);color:var(--ink)}.btn--danger{background:var(--over);color:#fff}.btn--block{display:flex;width:100%}.card{background:var(--color-background);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow-card)}.card--quiet{background:var(--blush);box-shadow:none}.card--outline{background:transparent;box-shadow:inset 0 0 0 2px var(--sand)}.field{display:flex;flex-direction:column;gap:8px}.label{font-size:14px;font-weight:700}.input{font:inherit;color:var(--ink);background:var(--color-background);border:2px solid var(--sand);border-radius:var(--radius-md);padding:13px 15px;transition:border-color var(--dur) var(--ease)}.input::placeholder{color:var(--muted)}.input:focus{outline:none;border-color:var(--accent)}.input--error{border-color:var(--over)}.hint{font-size:13px;color:var(--muted)}.chip{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;padding:8px 15px;border-radius:var(--radius-pill);background:transparent;box-shadow:inset 0 0 0 1.5px var(--sand);cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease)}.chip[aria-pressed=true],.chip.is-on{background:var(--accent);color:var(--on-accent);box-shadow:none}.chip:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);background-size:260% 100%;background-position:160% 0}.chip:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1.5px var(--accent),var(--shadow-lifted)}.chip[aria-pressed=true]:hover,.chip.is-on:hover{box-shadow:var(--shadow-lifted)}.chip:hover:after{opacity:1;animation:chip-sheen 1.8s var(--ease) infinite}.row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1.5px solid var(--sand)}.row:last-child{border-bottom:0}.bar{height:9px;border-radius:var(--radius-pill);background:#3b2e2a1a;overflow:hidden}.bar__fill{height:100%;border-radius:var(--radius-pill);background:var(--accent);transition:width var(--dur) var(--ease)}.bar__fill--over{background:var(--over)}.icon{width:24px;height:24px;color:currentColor}.sigh{display:inline-flex;gap:5px;align-items:flex-end;color:var(--accent)}.sigh i{display:block;border-radius:999px;background:currentColor}.sigh i:nth-child(1){width:9px;height:9px}.sigh i:nth-child(2){width:6px;height:6px;margin-bottom:5px}.sigh i:nth-child(3){width:4px;height:4px;margin-bottom:11px}@keyframes sigh-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.animate-in{animation:sigh-in var(--dur) var(--ease) both}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.spotlight-target{position:relative;box-shadow:0 0 0 3px var(--accent),var(--shadow-lifted)}.spotlight-target:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(100deg,transparent 35%,rgba(222,122,87,.22) 50%,transparent 65%);background-size:300% 100%;animation:spotlight-shimmer 2.2s var(--ease) infinite}@keyframes spotlight-shimmer{0%{background-position:160% 0}to{background-position:-60% 0}}@keyframes chip-sheen{0%{background-position:160% 0}to{background-position:-60% 0}}.helper-launcher{position:relative;overflow:hidden;box-shadow:var(--shadow-lifted);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}.helper-launcher:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.4) 50%,transparent 70%);background-size:260% 100%;background-position:160% 0}.helper-launcher:hover{transform:translateY(-2px);box-shadow:0 18px 38px #3b2e2a42}.helper-launcher:hover:after{opacity:1;animation:chip-sheen 1.8s var(--ease) infinite}.break-even-value.is-deficit{animation:break-even-pulse 2.6s var(--ease) infinite}@keyframes break-even-pulse{0%,to{text-shadow:0 0 0 rgba(184,82,58,0)}50%{text-shadow:0 0 14px rgba(184,82,58,.55)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
