:root{--bg:#fffaf3;--card:#fffefb;--text:#3e403b;--muted:#777e74;--line:#eee9df;--brand:#4b7868;--soft:#edf4e8;--green:#4b7868}
body{background:#fffaf3;color:var(--text)}.card{border-color:var(--line);box-shadow:0 5px 0 #ede8da45;border-radius:25px}.primary{background:#4b7868;border-radius:15px;box-shadow:0 3px 0 #375d4f}.primary:active{transform:translateY(1px);box-shadow:0 1px 0 #375d4f}.secondary{border-radius:14px}.top h1{font-size:24px;letter-spacing:-.05em}.version-pill{font-size:10px;padding:6px 9px;background:#fff4df;border-color:#eee3c9;color:#886b37}.brand-heading{display:flex;align-items:center;gap:11px}.brand-heading>div:last-child{min-width:0}.top{align-items:flex-start;gap:8px}.top .sub{line-height:1.6}.status{color:#777e74;margin-top:0}.summary-card{background:#e5efd9;color:#354f3d;border:1px solid #dce7d0;box-shadow:0 5px 0 #e0e6d366}.summary-card .eyebrow{color:#677e5f}.summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.metric{min-width:0}.metric:first-child{grid-column:1/-1;padding:0 0 17px;border-bottom:1px dashed #c1d2b8}.metric+.metric{border-left:0;padding-left:0}.metric:nth-child(3){grid-column:auto;border-left:1px solid #c9d7bf;padding-left:15px}.metric span{color:#637c5c;font-size:11px}.metric b,.metric.exp b,.metric.inc b{color:#354f3d;font-size:23px;white-space:nowrap;word-break:keep-all;letter-spacing:-.05em}.metric:first-child b{font-size:36px;margin-top:9px}.budget-inline{border-top:1px dashed #bfcfb6;margin-top:18px;padding-top:15px}.budget-edit{color:#456c45}.budget-track{background:#d2e1c6}.budget-track>div{background:#6b9872!important}.budget-line{font-size:12px;flex-wrap:wrap}.summary-card .sectionTitle{margin-bottom:20px}.mic{background:#5b8471;box-shadow:0 0 0 9px #edf4e8,0 8px 0 9px #dce8d650}.hero h2{font-size:23px;color:#3d4c3f}.hero-sub{color:#7b8275}.quick-chips button:nth-child(2){background:#fff1df;color:#916539}.quick-chips button:nth-child(3){background:#f6eaf1;color:#8d6480}.quick-chips button:nth-child(4){background:#e9f0f6;color:#5d788e}.preview{background:#fffdf6;border-color:#d6e4c8}.preview-summary{border-color:#e7e4d9}.preview-summary strong{color:#49725a}.category-icon{background:#f4eddb;color:#8a7949}.nav{background:#fffefbf5}.navbtn.active{background:#edf3e5;color:#507151}.bar{background:#f0eedf}.fill{background:#80a282}.result-summary{background:#f4f1e7;color:#6b705b}.toast{background:#4b6651}.chart-label b{color:#526c52}.settingRow{border-color:#eee9df}
/* Safari date/month controls must never define the width of a grid track. */
.grid,.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.grid>div,.filters>div{min-width:0}input,select,textarea{box-sizing:border-box;min-width:0;min-inline-size:0;max-width:100%;width:100%;font-size:16px}input[type=date],input[type=time],input[type=month]{display:block;min-width:0;max-width:100%;width:100%;overflow:hidden;appearance:none;-webkit-appearance:none;min-height:44px}input::-webkit-date-and-time-value{min-width:0;text-align:left}input::-webkit-datetime-edit{min-width:0;padding:0}.filters input,.filters select{height:44px}.filters .search-full{grid-column:1/-1}.filters{gap:13px 12px}.filters .reset-full{grid-column:1/-1}.filters .reset-full button{min-height:38px;font-size:12px;background:#f7f5ee;border:0}.transaction-row{grid-template-columns:33px minmax(0,1fr) auto;gap:9px}.transaction-meta{overflow-wrap:anywhere}.transaction-amount{white-space:nowrap;font-size:14px}.row-actions{gap:10px}.category-entry{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;padding:14px 0;border-bottom:1px dashed var(--line)}.category-entry>div:first-child{min-width:0}.category-entry strong{display:block;font-size:13px;overflow-wrap:anywhere}.category-entry small{display:block;margin-top:7px;font-size:11px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}.category-entry-actions{display:flex;flex-shrink:0;gap:5px}.category-entry-actions button{padding:6px 8px;font-size:11px;min-height:33px}.category-form{background:#f9f7ef;padding:16px;border-radius:17px}.category-list{font-size:12px;color:var(--muted)}.category-message{font-size:12px;line-height:1.7;color:#507151}.checkline{display:flex;align-items:center;gap:9px;font-size:12px;margin:14px 0;line-height:1.6}.checkline input{width:19px;height:19px;flex:none;accent-color:#5b8471}.app .pig{flex:none}.top .pig{--pig-size:39px}
/* A little piggy bank made entirely of local CSS shapes. */
.pig{--pig-size:90px;width:var(--pig-size);height:calc(var(--pig-size)*.82);position:relative;border-radius:43% 43% 40% 40%;background:#f6c7bb;border:2px solid #e9b2a6;box-shadow:inset 0 -5px 0 #eab4a54d;isolation:isolate}.pig:before,.pig:after{content:'';position:absolute;top:-12%;width:29%;height:36%;background:#f6c7bb;border:2px solid #e9b2a6;z-index:-1;border-radius:8px 80% 0 0}.pig:before{left:2%;transform:rotate(-22deg)}.pig:after{right:2%;transform:rotate(22deg) scaleX(-1)}.pig-eyes{position:absolute;left:24%;right:24%;top:38%;height:9%;display:flex;justify-content:space-between}.pig-eyes:before,.pig-eyes:after{content:'';background:#65554c;width:12%;height:100%;border-radius:50%}.pig-nose{position:absolute;left:33%;top:54%;width:34%;height:25%;background:#eaa69f;border-radius:45%;display:flex;justify-content:center;align-items:center;gap:16%}.pig-nose:before,.pig-nose:after{content:'';width:13%;height:30%;background:#b87673;border-radius:50%}.pig-cheek{position:absolute;left:12%;right:12%;top:56%;height:9%;display:flex;justify-content:space-between}.pig-cheek:before,.pig-cheek:after{content:'';width:17%;height:100%;background:#efa5a0;border-radius:50%;opacity:.7}.pig-slot{position:absolute;left:37%;top:9%;width:26%;height:4%;background:#b98474;border-radius:50%}.brand-heading .pig{margin-top:7px}.intro[hidden]{display:none}.intro{position:fixed;inset:0;z-index:999;background:#fffaf3;display:flex;align-items:center;justify-content:center;text-align:center;animation:intro-fade .3s 1.45s forwards}.intro-inner{display:flex;align-items:center;flex-direction:column;padding:25px}.intro .pig{--pig-size:118px;animation:pig-pop .75s cubic-bezier(.18,.8,.25,1) both}.intro-title{font-size:28px;color:#4b6651;font-weight:750;margin:25px 0 9px;letter-spacing:-.05em}.intro-copy{font-size:14px;color:#8a8878}.intro-skip{margin-top:28px;background:transparent;color:#7b8275;border:0;font-size:13px;text-decoration:underline;padding:10px 20px}.intro-coin{width:32px;height:32px;line-height:28px;border:2px solid #deb962;border-radius:50%;background:#ffdf86;color:#a58642;font-weight:bold;margin-bottom:21px;animation:coin-drop .85s ease both}.intro-note{color:#aaad9a;font-size:11px;margin-top:10px}
@keyframes pig-pop{0%{transform:translateY(16px) scale(.88);opacity:0}55%{transform:translateY(-5px) scale(1.035);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}@keyframes coin-drop{0%{transform:translateY(-35px) rotate(-12deg);opacity:0}45%{opacity:1}100%{transform:translateY(21px) rotate(0);opacity:0}}@keyframes intro-fade{to{opacity:0;visibility:hidden;pointer-events:none}}
@media(min-width:900px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters .search-full{grid-column:1/-1}.top h1{font-size:29px}.top .pig{--pig-size:48px}.summary .metric:first-child b{font-size:38px}.category-settings{grid-column:1/-1}.category-content{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}.category-list{max-height:420px;overflow:auto}}
@media(max-width:420px){.top{flex-wrap:wrap;margin-bottom:12px}.version-pill{margin-left:auto;font-size:10px}.summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.metric:nth-child(3){grid-column:auto}.metric:first-child b{font-size:32px}.metric b{font-size:22px}.card{padding:18px}.top h1{font-size:23px}.hero h2{font-size:22px}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card .sectionTitle{margin-bottom:17px}.category-form{padding:13px}.category-entry{flex-wrap:wrap}.category-entry-actions{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.intro{display:none}*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}
