body{background:#f7f8fb}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.stat-card .stat-value{font-size:1.25rem;font-weight:600}@media (min-width:768px){.stat-card .stat-value{font-size:1.5rem}}.done-row .item-name{opacity:.6;text-decoration:line-through}.btn-primary{--bs-btn-bg:#7fa3e6;--bs-btn-border-color:#7fa3e6;--bs-btn-hover-bg:#6b92da;--bs-btn-hover-border-color:#6b92da;--bs-btn-active-bg:#6b92da;--bs-btn-active-border-color:#6b92da;--bs-btn-disabled-bg:#7fa3e6;--bs-btn-disabled-border-color:#7fa3e6}.btn-success{--bs-btn-bg:#74bf94;--bs-btn-border-color:#74bf94;--bs-btn-hover-bg:#63b084;--bs-btn-hover-border-color:#63b084;--bs-btn-active-bg:#63b084;--bs-btn-active-border-color:#63b084;--bs-btn-disabled-bg:#74bf94;--bs-btn-disabled-border-color:#74bf94}.btn-warning{--bs-btn-bg:#f0c36b;--bs-btn-border-color:#f0c36b;--bs-btn-hover-bg:#e6b452;--bs-btn-hover-border-color:#e6b452;--bs-btn-active-bg:#e6b452;--bs-btn-active-border-color:#e6b452;--bs-btn-disabled-bg:#f0c36b;--bs-btn-disabled-border-color:#f0c36b}.btn-danger{--bs-btn-bg:#e89aab;--bs-btn-border-color:#e89aab;--bs-btn-hover-bg:#de8397;--bs-btn-hover-border-color:#de8397;--bs-btn-active-bg:#de8397;--bs-btn-active-border-color:#de8397;--bs-btn-disabled-bg:#e89aab;--bs-btn-disabled-border-color:#e89aab}.btn-dark{--bs-btn-bg:#6b7280;--bs-btn-border-color:#6b7280;--bs-btn-hover-bg:#5d6470;--bs-btn-hover-border-color:#5d6470;--bs-btn-active-bg:#5d6470;--bs-btn-active-border-color:#5d6470}.btn-outline-primary{--bs-btn-color:#4a6fbf;--bs-btn-border-color:#b8cbef;--bs-btn-hover-bg:#e6efff;--bs-btn-hover-border-color:#b8cbef;--bs-btn-hover-color:#24489a;--bs-btn-active-bg:#e6efff;--bs-btn-active-border-color:#b8cbef;--bs-btn-active-color:#24489a}.btn-outline-success{--bs-btn-color:#3f8f63;--bs-btn-border-color:#bfe3cd;--bs-btn-hover-bg:#e6f6ec;--bs-btn-hover-border-color:#bfe3cd;--bs-btn-hover-color:#1e6b3f;--bs-btn-active-bg:#e6f6ec;--bs-btn-active-border-color:#bfe3cd;--bs-btn-active-color:#1e6b3f}.btn-outline-danger{--bs-btn-color:#c0566f;--bs-btn-border-color:#efc0cb;--bs-btn-hover-bg:#fde6eb;--bs-btn-hover-border-color:#efc0cb;--bs-btn-hover-color:#9b2c48;--bs-btn-active-bg:#fde6eb;--bs-btn-active-border-color:#efc0cb;--bs-btn-active-color:#9b2c48}.btn-outline-warning{--bs-btn-color:#a7802a;--bs-btn-border-color:#f3dca4;--bs-btn-hover-bg:#fff3d6;--bs-btn-hover-border-color:#f3dca4;--bs-btn-hover-color:#7a5a00}.text-danger{color:#c2475f!important}.text-success{color:#2f8f5b!important}.text-warning{color:#b7871e!important}.text-info{color:#2a8c86!important}.soft-amber{color:#7a5a00;background:#fff3d6}.soft-blue{color:#24489a;background:#e6efff}.soft-teal{color:#13665e;background:#dff4f1}.soft-green{color:#1e6b3f;background:#e6f6ec}.soft-rose{color:#9b2c48;background:#fde6eb}.soft-slate{color:#3f4a5a;background:#eef1f5}.bar-green{background:#8fd0a9}.bar-amber{background:#f0cf7e}.bar-rose{background:#e9a1b3}:root{--bd-ink:#1f2a44;--bd-muted:#6b7689;--bd-indigo:#6c8ee6;--bd-teal:#4fb3a9;--bd-amber:#e9b44c;--bd-rose:#e07a93;--bd-green:#5fb884;--bd-surface:#fff;--bd-page:#f4f6fb}body{background:var(--bd-page);color:var(--bd-ink)}.card{border-radius:1rem}.card-header{border-bottom:1px solid #1f2a440f;padding-top:.75rem;padding-bottom:.75rem;font-weight:600}.btn{border-radius:.6rem}.btn-sm{border-radius:.5rem}.btn .lucide,.btn svg{vertical-align:-.15em}.icon-chip{color:#4a6bd0;background:#eaf0ff;border-radius:.7rem;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;display:inline-flex}.page-title{color:var(--bd-ink);align-items:center;gap:.6rem;margin:0;font-weight:700;display:flex}.bd-navbar{background:var(--bd-surface);border-bottom:1px solid #1f2a440f}.bd-brand{color:var(--bd-ink);align-items:center;gap:.5rem;font-weight:700;display:inline-flex}.bd-brand-mark{color:#fff;background:linear-gradient(135deg,#8fa9ef,#6cc3b8);border-radius:.65rem;justify-content:center;align-items:center;width:2rem;height:2rem;display:inline-flex}.bd-nav-link{color:var(--bd-muted);border-radius:.6rem;align-items:center;gap:.4rem;padding:.45rem .75rem;display:inline-flex}.stat-card .stat-label{color:var(--bd-muted);align-items:center;gap:.5rem;font-size:.85rem;display:flex}.bd-nav-link,.bd-nav-link:hover{text-decoration:none}.category-pill{white-space:nowrap;vertical-align:middle;border-radius:999px;align-items:center;gap:.45rem;padding:.2rem .6rem .2rem .2rem;font-size:.8rem;font-weight:600;line-height:1.2;display:inline-flex}.budget-fieldset{border:0;min-width:0;margin:0;padding:0}@media (max-width:575.98px){html{font-size:17px}.btn{min-height:48px;font-size:1.05rem}.form-control,.form-select{min-height:50px}.money{white-space:normal}.stat-card .stat-value{font-size:1.2rem}}.form-label{font-weight:600}.btn-sm{min-height:38px}.navbar .nav-link,.bd-nav-link{min-height:40px}.btn:focus-visible,.form-control:focus-visible,.form-select:focus-visible,a:focus-visible{outline-offset:2px;outline:3px solid #7fa3e6}.stat-card .stat-value{font-size:1.4rem}@media (min-width:768px){.stat-card .stat-value{font-size:1.6rem}}.dash-big-amount{font-size:1.2rem;font-weight:700}html,body{overflow-x:clip}.category-pill{white-space:normal;max-width:100%}@media (max-width:767.98px){.scroll-panel{-webkit-overflow-scrolling:touch;max-height:420px;overflow-y:auto}}.app-loading-bar{z-index:3000;background:linear-gradient(90deg,#7fa3e6,#6cc3b8,#7fa3e6) 0 0/200% 100%;height:4px;animation:1.2s linear infinite app-loading-slide;position:fixed;top:0;left:0;right:0}@keyframes app-loading-slide{0%{background-position:200% 0}to{background-position:-200% 0}}.app-saving{z-index:2990;background:#1f2a442e;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-saving-box{text-align:center;background:#fff;border-radius:1rem;padding:1.5rem 2rem;box-shadow:0 10px 30px #1f2a4433}@media (prefers-reduced-motion:reduce){.app-loading-bar{animation:none}}.app-modal-header .btn-close{width:2.25rem;height:2.25rem;padding:.5rem}.app-modal-footer{justify-content:flex-end;gap:.5rem;display:flex}@media (max-width:575.98px){.app-modal-footer{flex-direction:column-reverse;align-items:stretch}.app-modal-footer>*{width:100%;min-height:54px;font-size:1.1rem}}@media (min-width:576px){.app-modal-footer>*{min-width:140px}}.card-footer.card-total{color:#1f2a44;border-top:3px solid #7fa3e6;padding:.9rem 1rem;font-weight:600;background:#eaf0ff!important}@media (max-width:575.98px){html{font-size:16px}body{font-size:1rem;line-height:1.45}.fs-2{font-size:1.5rem!important}.fs-4{font-size:1.2rem!important}.fs-5{font-size:1.05rem!important}.fs-6{font-size:.92rem!important}.small,small{font-size:.85rem}.p-3{padding:.7rem!important}.card-header{padding:.6rem .8rem;font-size:1rem}.list-group-item{padding:.7rem .8rem}.btn{min-height:42px;padding:.4rem .8rem;font-size:1rem}.btn-lg{min-height:46px;padding:.5rem .9rem;font-size:1.05rem}.btn-sm{min-height:36px;font-size:.92rem}.form-control,.form-select{min-height:44px;font-size:1rem}.form-label{margin-bottom:.25rem;font-size:.95rem}.stat-card .stat-value{font-size:1.1rem}.icon-chip{transform:scale(.9)}.app-modal-footer>.btn{min-height:50px;font-size:1.05rem}}.category-pill{gap:.3rem;padding:.12rem .5rem .12rem .12rem;font-size:.72rem}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}.reveal-up{transform:translateY(18px)}.reveal-fade{transform:none}.reveal-left{transform:translate(-18px)}.reveal-right{transform:translate(18px)}.reveal-scale{transform:scale(.97)}.reveal.is-visible{opacity:1;transform:none}.reveal-stagger>.reveal:first-child{transition-delay:0s}.reveal-stagger>.reveal:nth-child(2){transition-delay:90ms}.reveal-stagger>.reveal:nth-child(3){transition-delay:.18s}.reveal-stagger>.reveal:nth-child(4){transition-delay:.27s}.reveal-stagger>.reveal:nth-child(5){transition-delay:.36s}.reveal-stagger>.reveal:nth-child(6){transition-delay:.45s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}:root{--metal-steel:#5b7aa3;--metal-bronze:#a9823a;--metal-teal:#3f8c85;--metal-copper:#b06a57;--metal-sage:#4e8e65;--metal-graphite:#4a5263;--card-border:#c9d0dc}.card.shadow-sm{background:linear-gradient(#fff 0%,#f6f8fb 100%);border-radius:.9rem;border:1px solid var(--card-border)!important;box-shadow:0 1px 1px #1018280d,0 6px 16px -6px #10182829!important}.card-header.soft-blue,.card-header.soft-amber,.card-header.soft-teal,.card-header.soft-green,.card-header.soft-rose,.card-header.soft-slate,.modal-header.soft-amber{color:#1f2a3d;letter-spacing:.01em;font-weight:700;box-shadow:inset 0 1px #ffffffbf;border-bottom-style:solid!important;border-bottom-width:2px!important}.card-header.soft-blue,.modal-header.soft-amber.soft-blue{border-bottom-color:var(--metal-steel)!important;background:linear-gradient(#f1f5fa 0%,#d8e2ee 100%)!important}.card-header.soft-amber,.modal-header.soft-amber{border-bottom-color:var(--metal-bronze)!important;background:linear-gradient(#faf5ea 0%,#e8d9b8 100%)!important}.card-header.soft-teal{border-bottom-color:var(--metal-teal)!important;background:linear-gradient(#eff7f6 0%,#cfe5e2 100%)!important}.card-header.soft-green{border-bottom-color:var(--metal-sage)!important;background:linear-gradient(#eff7f2 0%,#cfe6d7 100%)!important}.card-header.soft-rose{border-bottom-color:var(--metal-copper)!important;background:linear-gradient(#faf1ee 0%,#ecd2c8 100%)!important}.card-header.soft-slate{border-bottom-color:var(--metal-graphite)!important;background:linear-gradient(#f3f4f7 0%,#d9dde5 100%)!important}.stat-card.shadow-sm{background:linear-gradient(135deg,#fff 0%,#eef2f7 100%)}.card-footer.card-total{border-top:2px solid var(--metal-steel);color:#1f2a3d;background:linear-gradient(#eef2f8 0%,#dbe3ee 100%)!important}:root{--ap-blue:#0071e3;--ap-blue-hover:#0062c4;--ap-ink:#1d1d1f;--ap-muted:#6e6e73;--ap-line:#e5e5ea;--ap-surface:#fff;--ap-canvas:#f5f5f7;--ap-green:#248a3d;--ap-orange:#b25000;--ap-red:#d70015;--ap-teal:#0a7f8c}html,body{background:var(--ap-canvas);color:var(--ap-ink);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}h1,h2,h3,h4,h5,h6{color:var(--ap-ink);letter-spacing:-.02em;font-weight:600}.bd-navbar{-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--ap-line)!important;box-shadow:none!important;background:#ffffffd1!important}.bd-nav-link{color:var(--ap-muted);border-radius:999px}.bd-nav-link:hover{color:var(--ap-ink);background:var(--ap-canvas)}.bd-nav-link.active{color:var(--ap-ink);background:var(--ap-canvas);font-weight:600}.bd-brand-mark{background:var(--ap-ink);color:#fff;border-radius:10px}.card,.card.shadow-sm{overflow:hidden;background:var(--ap-surface)!important;border:1px solid var(--ap-line)!important;border-radius:18px!important;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000d!important}.card-header.soft-blue,.card-header.soft-amber,.card-header.soft-teal,.card-header.soft-green,.card-header.soft-rose,.card-header.soft-slate,.modal-header.soft-amber{padding:.9rem 1.1rem;font-size:1.05rem;font-weight:600;color:var(--ap-ink)!important;border-bottom:1px solid var(--ap-line)!important;box-shadow:none!important;background:#fbfbfd!important}.card-footer.card-total{color:var(--ap-ink);font-weight:600;background:var(--ap-canvas)!important;border-top:1px solid var(--ap-line)!important}.card-footer.card-total .money{color:var(--ap-ink);font-weight:700}.stat-card{border-left-width:4px!important}.accent-blue{border-left-color:var(--ap-blue)!important}.accent-green{border-left-color:var(--ap-green)!important}.accent-amber{border-left-color:var(--ap-orange)!important}.accent-rose{border-left-color:var(--ap-red)!important}.accent-teal{border-left-color:var(--ap-teal)!important}.accent-text-blue{color:var(--ap-blue)}.accent-text-green{color:var(--ap-green)}.accent-text-amber{color:var(--ap-orange)}.accent-text-rose{color:var(--ap-red)}.accent-text-teal{color:var(--ap-teal)}.card.soft-green{background:#f0faf3!important}.icon-chip{color:var(--ap-blue);background:#f2f2f7;border-radius:10px}.icon-chip.teal{color:var(--ap-teal);background:#e6f6f8}.icon-chip.amber{color:var(--ap-orange);background:#fff2e0}.icon-chip.rose{color:var(--ap-red);background:#ffebe9}.icon-chip.green{color:var(--ap-green);background:#e6f7ec}.icon-chip.slate{color:var(--ap-muted);background:#f2f2f7}.soft-badge-green{color:var(--ap-green)!important;background:#e6f7ec!important}.soft-badge-amber{color:var(--ap-orange)!important;background:#fff2e0!important}.soft-badge-rose{color:var(--ap-red)!important;background:#ffebe9!important}.soft-badge-teal{color:var(--ap-teal)!important;background:#e6f6f8!important}.soft-badge-slate{color:var(--ap-muted)!important;background:#f2f2f7!important;border:0!important}.btn-primary{--bs-btn-bg:var(--ap-blue);--bs-btn-border-color:var(--ap-blue);--bs-btn-hover-bg:var(--ap-blue-hover);--bs-btn-hover-border-color:var(--ap-blue-hover);--bs-btn-active-bg:var(--ap-blue-hover);--bs-btn-active-border-color:var(--ap-blue-hover);--bs-btn-disabled-bg:var(--ap-blue);--bs-btn-disabled-border-color:var(--ap-blue);border-radius:12px}.btn-success{--bs-btn-bg:var(--ap-green);--bs-btn-border-color:var(--ap-green);--bs-btn-hover-bg:#1d6f30;--bs-btn-hover-border-color:#1d6f30;--bs-btn-active-bg:#1d6f30;--bs-btn-active-border-color:#1d6f30;--bs-btn-disabled-bg:var(--ap-green);--bs-btn-disabled-border-color:var(--ap-green);border-radius:12px}.btn-warning{--bs-btn-bg:#ff9f0a;--bs-btn-border-color:#ff9f0a;--bs-btn-hover-bg:#e68f09;--bs-btn-hover-border-color:#e68f09;--bs-btn-active-bg:#e68f09;--bs-btn-active-border-color:#e68f09;--bs-btn-disabled-bg:#ff9f0a;--bs-btn-disabled-border-color:#ff9f0a;color:#1d1d1f;border-radius:12px}.btn-danger{--bs-btn-bg:var(--ap-red);--bs-btn-border-color:var(--ap-red);--bs-btn-hover-bg:#b00010;--bs-btn-hover-border-color:#b00010;--bs-btn-active-bg:#b00010;--bs-btn-active-border-color:#b00010;--bs-btn-disabled-bg:var(--ap-red);--bs-btn-disabled-border-color:var(--ap-red);border-radius:12px}.btn-dark{--bs-btn-bg:var(--ap-ink);--bs-btn-border-color:var(--ap-ink);--bs-btn-hover-bg:#3a3a3c;--bs-btn-hover-border-color:#3a3a3c;--bs-btn-active-bg:#3a3a3c;--bs-btn-active-border-color:#3a3a3c;border-radius:12px}.btn-outline-primary{--bs-btn-color:var(--ap-blue);--bs-btn-border-color:#b6d7fb;--bs-btn-hover-bg:#eaf3ff;--bs-btn-hover-border-color:#b6d7fb;--bs-btn-hover-color:var(--ap-blue-hover);--bs-btn-active-bg:#eaf3ff;--bs-btn-active-border-color:#b6d7fb;--bs-btn-active-color:var(--ap-blue-hover);border-radius:12px}.btn-outline-danger{--bs-btn-color:var(--ap-red);--bs-btn-border-color:#f5c2c0;--bs-btn-hover-bg:#ffebe9;--bs-btn-hover-border-color:#f5c2c0;--bs-btn-hover-color:#b00010;--bs-btn-active-bg:#ffebe9;--bs-btn-active-border-color:#f5c2c0;--bs-btn-active-color:#b00010;border-radius:12px}.btn-outline-secondary,.btn-outline-dark{border-radius:12px}.form-control,.form-select{background-color:#fff;border-color:#d2d2d7;border-radius:12px}.form-control:focus,.form-select:focus{border-color:var(--ap-blue);box-shadow:0 0 0 4px #0071e326}.list-group-item{border-color:var(--ap-line)!important}.modal-content{border:0;border-radius:20px;box-shadow:0 30px 80px #0003}.app-modal-header{border-bottom:1px solid var(--ap-line)!important;background:#fbfbfd!important}.app-footer{z-index:1020;-webkit-backdrop-filter:saturate(180%)blur(16px);border-top:1px solid var(--ap-line);height:40px;color:var(--ap-ink);background:#ffffffe6;align-items:center;font-size:.8rem;display:flex;position:fixed;bottom:0;left:0;right:0}.app-footer .text-muted{color:var(--ap-muted)!important}.app-main{padding-bottom:4.5rem!important}.bd-user{color:var(--ap-ink);font-size:.95rem}.bd-user-avatar{background:var(--ap-canvas);width:28px;height:28px;color:var(--ap-muted);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.profile-avatar{color:#fff;background:linear-gradient(135deg,#f5a524,#e8731c);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:700;display:inline-flex}.bd-user,.bd-user:hover,.bd-user:focus{color:var(--ap-ink);text-decoration:none}.bd-user.active .fw-semibold{text-underline-offset:4px;text-decoration:underline}.skeleton-bar{background:linear-gradient(90deg,#eceff5 25%,#f8f9fc 37%,#eceff5 63%) 0 0/400% 100%;border-radius:8px;animation:1.4s infinite skeleton-shine}@keyframes skeleton-shine{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.skeleton-bar{animation:none}}
