:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#15313e;background:#f3f7f6;font-synthesis:none}*{box-sizing:border-box}html,body,#root{max-width:100%;overflow-x:clip}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,5vw,3.6rem);letter-spacing:-.05em;margin-bottom:.5rem}h2{font-size:1.45rem;letter-spacing:-.025em;margin-bottom:1.25rem}.eyebrow{color:#638078;font-size:.72rem;font-weight:750;letter-spacing:.12em;margin-bottom:.55rem}.centered{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr)}.brand-panel{background:linear-gradient(145deg,#153d4b,#236758);color:#e9f6ef;display:grid;place-content:center;padding:clamp(3rem,8vw,9rem)}.brand-panel .eyebrow{color:#b7ddc7}.brand-panel p:last-child{color:#d6e9dd;font-size:1.1rem;line-height:1.6;max-width:34rem}.auth-card{width:min(100%,29rem);margin:auto;padding:2.5rem;background:#fff;border:1px solid #dbe6e0;border-radius:1.25rem;box-shadow:0 20px 70px #173e4a16}.auth-shell .auth-card{border:0;box-shadow:none;border-radius:0;width:100%;min-height:100%;display:grid;align-content:center}.compact{max-width:31rem}form{display:grid;gap:1rem}label{color:#49635c;display:grid;font-size:.9rem;font-weight:650;gap:.45rem}input,select{appearance:none;background:#fff;border:1px solid #c8d6d0;border-radius:.65rem;color:#15313e;padding:.78rem .9rem;width:100%}input:focus,select:focus{border-color:#2c8a6b;box-shadow:0 0 0 3px #2c8a6b22;outline:0}.primary,.secondary{border:0;border-radius:.7rem;font-weight:750;padding:.8rem 1rem}.primary{background:#20755d;color:#fff}.primary:hover{background:#165d49}.secondary{background:#e3eee8;color:#184c3d}.text-button,.icon-button{background:transparent;border:0;color:#397360;font-weight:650;padding:.5rem}.text-button:hover{text-decoration:underline}.link-button{display:inline-block;text-align:center;text-decoration:none}.notice{border-radius:.6rem;font-size:.9rem;margin:0;padding:.75rem .85rem}.error{background:#fff0ef;color:#9d2e24}.success{background:#e9f7ed;color:#256c3d}.app-shell{margin:0 auto;max-width:1120px;padding:2.3rem 1.25rem 5rem}header,.toolbar,.section-heading,.entry{align-items:center;display:flex;gap:1rem;justify-content:space-between}header{margin-bottom:2.4rem}header h1{font-size:clamp(2rem,4vw,3rem);margin:0}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.3rem;justify-content:flex-end}.toolbar{background:#fff;border:1px solid #dbe6e0;border-radius:1rem;margin-bottom:1rem;padding:.8rem}.toolbar label{align-items:center;display:flex;flex:1;flex-direction:row;min-width:0}.toolbar input,.toolbar select{min-width:0;width:auto}.toolbar select{flex:1;max-width:25rem}.toolbar>div{display:flex;flex-wrap:wrap;gap:.5rem}.invitation-card,.empty-budget{background:#eff7f2;border:1px solid #bfddca;border-radius:1rem;margin-bottom:1rem;padding:1rem}.invitation-card{display:grid;gap:.65rem}.invitation-card>div{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.invitation-card span,.empty-budget p{color:#4d6d63}.empty-budget{padding:2.5rem 1.4rem;text-align:center}.empty-budget h2{margin-bottom:.55rem}.summary-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin:1rem 0 1.5rem}.summary{background:#fff;border:1px solid #dbe6e0;border-radius:1rem;min-height:8rem;padding:1.2rem}.summary span{color:#668078;display:block;font-size:.9rem;font-weight:650;margin-bottom:.65rem}.summary strong{font-size:clamp(1.35rem,3vw,2rem);letter-spacing:-.04em}.summary.positive strong{color:#17755c}.summary.negative strong{color:#b1493d}.summary.neutral{background:linear-gradient(135deg,#e1f0e8,#f7fcf8);border-color:#bad9c8}.summary.neutral span{color:#396d59}.summary.neutral strong{color:#155c47}.entries-card,.statistics-card{background:#fff;border:1px solid #dbe6e0;border-radius:1rem;overflow:hidden}.section-heading{padding:1.35rem 1.4rem}.section-heading h2{margin:0}.section-heading>span{background:#eef4f0;border-radius:99px;color:#4d6d63;font-size:.8rem;font-weight:700;padding:.4rem .65rem}.entry-list{border-top:1px solid #e5ede9}.entry{border-bottom:1px solid #e5ede9;padding:.9rem 1.4rem}.entry:last-child{border-bottom:0}.entry-icon{align-items:center;border-radius:50%;display:grid;flex:0 0 2.3rem;font-size:1.15rem;font-weight:800;height:2.3rem;place-content:center}.entry-icon.income{background:#e5f6ea;color:#17755c}.entry-icon.expense{background:#fceceb;color:#b1493d}.entry-main{display:grid;flex:1;gap:.16rem}.entry-main span,.entry time{color:#71877f;font-size:.83rem}.entry>strong{min-width:7rem;text-align:right}.entry-actions{display:flex;justify-content:end;min-width:7rem}strong.income{color:#17755c}strong.expense{color:#b1493d}.empty{padding:3rem 1.4rem;text-align:center}.empty h3{margin-bottom:.4rem}.empty p{color:#668078;margin:0 auto 1.4rem;max-width:28rem}.mobile-add{display:none}.statistics-card{margin-top:1.5rem}.statistics-empty{color:#668078;margin:0;padding:0 1.4rem 1.4rem}.trend-chart{align-items:end;display:flex;gap:.8rem;height:11rem;padding:.5rem 1.4rem 1.1rem}.trend-month{align-items:center;color:#6b8279;display:grid;flex:1;font-size:.75rem;gap:.45rem;justify-items:center;min-width:0}.trend-bars{align-items:end;display:flex;gap:.22rem;height:8.6rem}.trend-bars span{border-radius:.3rem .3rem .08rem .08rem;display:block;min-height:.5rem;width:.72rem}.income-bar{background:#4eb58f}.expense-bar{background:#de867a}.category-stats{border-top:1px solid #e5ede9;padding:1.15rem 1.4rem}.category-stats h3{font-size:1rem;margin-bottom:.8rem}.category-stat{border-top:1px solid #eef3f0;display:flex;justify-content:space-between;padding:.65rem 0}.category-stat:first-of-type{border-top:0}.modal-backdrop{background:#14313c88;inset:0;display:grid;padding:1rem;place-items:center;position:fixed;z-index:5}.modal{background:#fff;border-radius:1rem;box-shadow:0 18px 60px #0b242c55;max-width:34rem;padding:1.3rem;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.2rem}.modal-header h2{margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr}.full{grid-column:1 / -1}.modal-intro,.install-guide{color:#5a756c;line-height:1.5;margin-bottom:0}.install-guide{display:grid;gap:.7rem}.install-guide p{margin:0}.install-guide .primary{margin-top:.5rem}.quick-add{display:grid;gap:.75rem}.quick-add-option{align-items:center;background:#f5faf7;border:1px solid #d6e6de;border-radius:.9rem;color:#15313e;display:flex;gap:.85rem;padding:1rem;text-align:left;width:100%}.quick-add-option:hover{background:#eaf5ee;border-color:#9dcfba}.quick-add-option strong,.quick-add-option small{display:block}.quick-add-option strong{font-size:1rem}.quick-add-option small{color:#668078;font-size:.82rem;margin-top:.15rem}.quick-add-icon,.receipt-status{align-items:center;background:#dff1e8;border-radius:.7rem;color:#166149;display:grid;flex:0 0 2.6rem;font-size:1.35rem;font-weight:800;height:2.6rem;place-items:center;width:2.6rem}.visually-hidden{height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px;clip:rect(0,0,0,0)}.receipt-button{background:#edf6f1;border:0;border-radius:99px;color:#246a54;font-size:.72rem;font-weight:750;justify-self:start;margin-top:.2rem;padding:.28rem .55rem}.receipt-draft{align-items:center;background:#f3f8f5;border:1px solid #d8e8df;border-radius:.8rem;display:flex;flex-wrap:wrap;gap:.65rem;padding:.7rem}.receipt-draft img{border-radius:.55rem;height:3.4rem;object-fit:cover;width:3.4rem}.receipt-draft span{display:grid;flex:1;gap:.08rem;min-width:9rem}.receipt-draft strong{font-size:.88rem}.receipt-draft small{color:#668078;font-size:.77rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-replace{color:#246a54;cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:750;gap:.35rem;margin-left:auto;width:auto}.receipt-replace input{font-size:.7rem;max-width:12rem;padding:.25rem}.receipt-viewer{display:grid;gap:.8rem}.receipt-viewer img{background:#f3f7f6;border-radius:.75rem;max-height:68dvh;max-width:100%;object-fit:contain;width:100%}.receipt-viewer p{color:#668078;font-size:.85rem;margin:0;text-align:center}.install-banner{align-items:center;background:#173f4c;border:1px solid #326474;border-radius:.9rem;bottom:1rem;box-shadow:0 10px 30px #12344240;color:#fff;display:flex;gap:.65rem;left:1rem;max-width:calc(100vw - 2rem);padding:.65rem .8rem;position:fixed;text-align:left;z-index:4}.install-banner:hover{background:#0f303b}.install-banner:disabled{opacity:.75}.install-banner strong,.install-banner small{display:block}.install-banner strong{font-size:.82rem}.install-banner small{color:#cae4dd;font-size:.7rem;margin-top:.13rem}.install-icon{align-items:center;background:#2b8066;border-radius:.6rem;display:grid;font-size:1.1rem;font-weight:800;height:2rem;place-items:center;width:2rem}@media(max-width:720px){.app-shell{padding:1.25rem 1rem 6.5rem}.auth-shell{grid-template-columns:1fr}.brand-panel{min-height:35vh;padding:2.5rem 1.5rem}.auth-shell .auth-card{min-height:auto;padding:2.5rem 1.5rem}header{align-items:flex-start;flex-direction:column;gap:.8rem;margin-bottom:1.25rem}header h1{font-size:2.2rem}.header-actions{display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;width:100%}.header-actions .secondary,.header-actions .text-button{font-size:.82rem;min-width:0;padding:.6rem .45rem;white-space:normal}.toolbar{align-items:stretch;flex-direction:column;gap:.75rem;margin-bottom:.85rem;padding:.8rem}.toolbar label{display:grid;gap:.55rem;grid-template-columns:4.6rem minmax(0,1fr);justify-content:initial;width:100%}.toolbar label input,.toolbar label select{max-width:none;min-width:0;width:100%}.toolbar>div{width:100%}.toolbar>div .secondary{width:100%}.toolbar .primary{display:none}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:.85rem 0 1rem}.summary{min-width:0;min-height:6.8rem;padding:1rem}.summary strong{overflow-wrap:anywhere}.summary.neutral{grid-column:1 / -1;min-height:8.25rem;order:-1}.summary.neutral strong{font-size:2.25rem}.summary span{font-size:.8rem;margin-bottom:.45rem}.entries-card,.statistics-card{border-radius:.85rem}.section-heading{padding:1.05rem 1rem}.section-heading>div{min-width:0}.section-heading h2{overflow-wrap:anywhere}.entry{align-items:center;display:grid;gap:.35rem .7rem;grid-template-columns:auto minmax(0,1fr) auto;padding:.9rem 1rem}.entry-main{grid-column:2 / -1;min-width:0}.entry-main span{overflow-wrap:anywhere}.entry time{display:none}.entry>strong{grid-column:2;min-width:0;text-align:left}.entry-actions{grid-column:3;grid-row:3;min-width:0}.entry-actions .text-button{font-size:.75rem;padding:.3rem}.entry-actions .icon-button{padding:.3rem}.empty{padding:2.4rem 1rem}.statistics-card{margin-top:1rem}.trend-chart{gap:.45rem;padding:.45rem 1rem 1rem}.trend-bars span{width:.6rem}.category-stats{padding:1rem}.modal-backdrop{align-items:end;padding:0}.modal{border-radius:1.2rem 1.2rem 0 0;max-height:90dvh;overflow:auto;padding:1.2rem 1rem calc(1.2rem + env(safe-area-inset-bottom))}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.mobile-add{align-items:center;background:#20755d;border:0;border-radius:99px;bottom:calc(1rem + env(safe-area-inset-bottom));box-shadow:0 10px 28px #155c4755;color:#fff;display:flex;font-weight:800;gap:.45rem;padding:.85rem 1.15rem;position:fixed;right:1rem;z-index:3}.mobile-add span{font-size:1.35rem;line-height:.8}.install-banner{bottom:calc(1rem + env(safe-area-inset-bottom));left:1rem}.app-shell~.install-banner{display:none}}@media(max-width:720px){.quick-add-option{padding:1rem}.receipt-draft{align-items:flex-start}.receipt-replace{margin-left:0;width:100%}.receipt-replace input{max-width:100%;width:100%}}:root{background:#f4f8f7;color:#102f3a}body{background:radial-gradient(circle at 12% -10%,#dceee6 0,transparent 32rem),radial-gradient(circle at 100% 18%,#e7f0ec 0,transparent 24rem),#f4f8f7}body:before{background:linear-gradient(115deg,#ffffff94,transparent 38%);content:"";inset:0;pointer-events:none;position:fixed;z-index:-1}::selection{background:#bfe0d0;color:#0d3d31}button,input,select{-webkit-tap-highlight-color:transparent}button{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}button:active{transform:scale(.975)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #38a77f55;outline-offset:2px}h1{color:#10313e;font-weight:800;letter-spacing:-.06em}h2,h3{color:#14313e;font-weight:780}.eyebrow{color:#52766b;font-size:.68rem;font-weight:800;letter-spacing:.16em}.primary{background:linear-gradient(135deg,#176b52,#25886b);box-shadow:0 8px 18px #1e775334;letter-spacing:-.01em}.primary:hover{background:linear-gradient(135deg,#125542,#1d765d);box-shadow:0 10px 24px #1e775347;transform:translateY(-1px)}.secondary{background:#e7f2ed;box-shadow:inset 0 1px #ffffffc7;color:#175342}.secondary:hover{background:#d8ebe2}.text-button{color:#397360}.app-shell{max-width:1160px;position:relative}header{position:relative}header:after{background:linear-gradient(90deg,#2d8b6d,#8bcbb1 62%,transparent);border-radius:99px;bottom:-1rem;content:"";height:3px;left:0;opacity:.65;position:absolute;width:6rem}.header-actions{padding:.3rem}.toolbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffbf;border-color:#fff;box-shadow:0 12px 28px #173e4a0b,inset 0 1px #fff}.toolbar label{color:#527168;font-size:.82rem;letter-spacing:.01em}input,select{background:#fcfefd;border-color:#cfdfd7;box-shadow:inset 0 1px 2px #173e4a08;font-weight:650}input:focus,select:focus{background:#fff;border-color:#2e9773;box-shadow:0 0 0 4px #2c8a6b18,inset 0 1px 2px #173e4a08}.summary-grid{gap:1.05rem}.summary{border-color:#fff;box-shadow:0 13px 28px #123b4910,inset 0 1px #fff;overflow:hidden;position:relative}.summary:after{background:currentColor;content:"";height:3px;left:1.15rem;opacity:.14;position:absolute;right:1.15rem;top:0}.summary span{font-size:.78rem;letter-spacing:.02em;text-transform:uppercase}.summary strong{font-weight:800}.summary.positive{background:linear-gradient(145deg,#fff,#f0faf4);color:#17755c}.summary.negative{background:linear-gradient(145deg,#fff,#fff6f4);color:#b1493d}.summary.neutral{background:linear-gradient(135deg,#123e48,#196752 68%,#2a8768);border-color:#245f58;box-shadow:0 16px 34px #12504034;color:#d8f3e7}.summary.neutral:after{background:#c5f2d8;opacity:.55}.summary.neutral span,.summary.neutral strong{color:#f4fff9}.entries-card,.statistics-card{border-color:#fff;box-shadow:0 14px 30px #123b490d,inset 0 1px #fff}.section-heading{background:linear-gradient(115deg,#fff,#f5faf7)}.section-heading>span{background:#e2f1e9;color:#276651;letter-spacing:.02em}.entry{transition:background .18s ease,transform .18s ease}.entry:hover{background:#f7fbf8}.entry-icon{box-shadow:inset 0 1px #ffffffad,0 4px 10px #173e4a0d}.entry-icon.income{background:linear-gradient(145deg,#dff7e8,#f7fffa)}.entry-icon.expense{background:linear-gradient(145deg,#fff0ee,snow)}.entry-main>strong{font-weight:780}.entry>strong{font-weight:800}.receipt-button{background:linear-gradient(135deg,#e0f2e8,#f7fcf9);border:1px solid #c5e2d3;box-shadow:0 2px 5px #173e4a0a}.statistics-card{background:linear-gradient(180deg,#fff,#fbfdfc)}.trend-bars span{box-shadow:0 5px 10px #173e4a1a}.modal-backdrop{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0c28329e}.modal{border:1px solid #ffffffb8;box-shadow:0 24px 70px #071a215e,inset 0 1px #fff}.modal-header{border-bottom:1px solid #e8f0ec;padding-bottom:1rem}.quick-add-option{background:linear-gradient(135deg,#fbfefc,#eff8f3);border-color:#d5e8dd;box-shadow:0 5px 13px #153c4809}.quick-add-option:hover{box-shadow:0 10px 20px #153c4814;transform:translateY(-1px)}.quick-add-icon,.receipt-status{background:linear-gradient(145deg,#d8f1e3,#f5fcf8);box-shadow:inset 0 1px #fff,0 4px 9px #153c4810}.receipt-draft{background:linear-gradient(135deg,#f4fbf7,#edf7f1);border-color:#d5e8dd}.mobile-add{align-items:center;background:linear-gradient(135deg,#166d53,#2a9573);border:0;border-radius:99px;bottom:1.5rem;box-shadow:0 14px 30px #0e593e65,inset 0 1px #ffffff4d;color:#fff;display:flex;font-size:.95rem;font-weight:800;gap:.5rem;min-height:3.45rem;padding:.95rem 1.3rem;position:fixed;right:max(1.5rem,calc((100vw - 1160px)/2));z-index:3}.mobile-add span{font-size:1.45rem;line-height:.8}@media(max-width:720px){body{background:radial-gradient(circle at 100% 0,#dceee6 0,transparent 16rem),#f4f8f7}.app-shell{padding-top:1.5rem}header:after{bottom:-.6rem}.toolbar{border-radius:1.05rem;box-shadow:0 10px 22px #173e4a0c,inset 0 1px #fff}.summary{border-radius:1.05rem}.summary.neutral{min-height:8.7rem}.entries-card,.statistics-card{box-shadow:0 12px 26px #123b490d,inset 0 1px #fff}.entry{min-height:5.85rem}.mobile-add{bottom:calc(1.15rem + env(safe-area-inset-bottom));min-height:3.2rem;padding:.9rem 1.2rem}.modal{box-shadow:0 -12px 42px #071a213d,inset 0 1px #fff}}.app-header{align-items:center;gap:.9rem;justify-content:space-between;margin-bottom:1.7rem}.app-header:after{bottom:-.75rem;left:0;width:4.25rem}.app-header h1{font-size:clamp(2rem,6vw,2.7rem)}.app-header .eyebrow{margin-bottom:.25rem}.menu-button{align-items:center;background:#ffffffb8;border:1px solid #ffffff;border-radius:.9rem;box-shadow:0 7px 18px #153c4812,inset 0 1px #fff;color:#1a5745;display:grid;flex:0 0 2.85rem;height:2.85rem;justify-content:center;padding:0;width:2.85rem}.balance-card{background:linear-gradient(135deg,#123e48,#196752 68%,#2a8768);border:1px solid #245f58;border-radius:1.25rem;box-shadow:0 18px 36px #12504034,inset 0 1px #ffffff30;color:#f4fff9;margin:0 0 .9rem;overflow:hidden;padding:1.2rem 1.2rem 1rem;position:relative}.balance-card:after{background:radial-gradient(circle,#d6fae5aa 0,transparent 68%);content:"";height:12rem;position:absolute;right:-5rem;top:-6rem;width:12rem}.balance-card>span{color:#d8f3e7;display:block;font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.balance-card>strong{display:block;font-size:clamp(2.35rem,9vw,3.35rem);letter-spacing:-.07em;line-height:1.08;margin:.35rem 0 1.1rem;position:relative;z-index:1}.balance-card>div{border-top:1px solid #ffffff38;display:grid;gap:.5rem;grid-template-columns:1fr 1fr;padding-top:.8rem;position:relative;z-index:1}.balance-card small{color:#c7e9d8;display:grid;font-size:.7rem;gap:.13rem}.balance-card b{color:#f7fffb;font-size:.94rem}.budget-meta-wrap{margin:.15rem .15rem 1rem;position:relative;z-index:4}.budget-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem .6rem}.budget-meta-trigger{align-items:center;background:transparent;border:0;color:#55736a;display:inline-flex;font-size:.9rem;font-weight:720;gap:.35rem;margin:0;padding:0;text-align:left}.budget-meta-trigger:hover{color:#1b4d40}.budget-trigger>span{color:#1b4d40;font-size:1.04rem;font-weight:790}.year-trigger{color:#397360}.month-trigger{text-transform:capitalize}.year-trigger:before,.month-trigger:before{background:#9db9ad;border-radius:99px;content:"";height:.26rem;width:.26rem}.budget-meta-trigger svg{color:#538a75;transition:transform .18s ease}.budget-meta-trigger svg.rotated{transform:rotate(180deg)}.quick-budget-menu{background:#fffc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #ffffff;border-radius:.95rem;box-shadow:0 16px 34px #103b4724,inset 0 1px #fff;display:grid;gap:.25rem;left:0;max-width:21rem;padding:.6rem;position:absolute;top:calc(100% + .65rem);width:min(100%,21rem)}.quick-budget-menu>p{color:#71877f;font-size:.68rem;font-weight:800;letter-spacing:.12em;margin:.25rem .4rem .35rem;text-transform:uppercase}.quick-budget-menu>button{align-items:center;background:transparent;border:0;border-radius:.65rem;color:#173d42;display:flex;font-size:.87rem;font-weight:760;gap:.6rem;justify-content:space-between;padding:.65rem .7rem;text-align:left;width:100%}.quick-budget-menu>button:hover,.quick-budget-menu>button.active{background:#e6f3eb;color:#165c47}.quick-budget-menu>button span{display:grid;gap:.1rem}.quick-budget-menu>button small{color:#6d877e;font-size:.72rem;font-weight:620}.quick-budget-menu>button.active small{color:#428069}.quick-budget-menu .quick-budget-manage{border-top:1px solid #e0ece6;border-radius:0;color:#397360;font-size:.8rem;gap:.45rem;justify-content:flex-start;margin-top:.25rem;padding-top:.8rem}.quick-year-menu{background:#fffc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #ffffff;border-radius:.95rem;box-shadow:0 16px 34px #103b4724,inset 0 1px #fff;display:grid;gap:.25rem;left:0;max-width:16rem;padding:.6rem;position:absolute;top:calc(100% + .65rem);width:min(100%,16rem)}.quick-year-menu>p{color:#71877f;font-size:.68rem;font-weight:800;letter-spacing:.12em;margin:.25rem .4rem .35rem;text-transform:uppercase}.quick-year-menu>button{align-items:center;background:transparent;border:0;border-radius:.65rem;color:#173d42;display:flex;font-size:.87rem;font-weight:760;justify-content:space-between;padding:.65rem .7rem;text-align:left;width:100%}.quick-year-menu>button:hover,.quick-year-menu>button.active{background:#e6f3eb;color:#165c47}.quick-year-menu .quick-year-manage{border-top:1px solid #e0ece6;border-radius:0;color:#397360;font-size:.8rem;gap:.45rem;justify-content:flex-start;margin-top:.25rem;padding-top:.8rem}.quick-month-menu{background:#fffc;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid #ffffff;border-radius:.95rem;box-shadow:0 16px 34px #103b4724,inset 0 1px #fff;left:0;max-width:22rem;padding:.6rem;position:absolute;top:calc(100% + .65rem);width:min(100%,22rem)}.quick-month-menu>p{color:#71877f;font-size:.68rem;font-weight:800;letter-spacing:.12em;margin:.25rem .4rem .45rem;text-transform:uppercase}.quick-month-menu>div{display:grid;gap:.2rem;grid-template-columns:1fr 1fr}.quick-month-menu button{align-items:center;background:transparent;border:0;border-radius:.6rem;color:#31594e;display:flex;font-size:.78rem;font-weight:720;gap:.35rem;justify-content:space-between;padding:.6rem;text-align:left;text-transform:capitalize}.quick-month-menu button:hover,.quick-month-menu button.active{background:#e6f3eb;color:#165c47}.quick-month-menu button i{background:#2f9a70;border-radius:99px;box-shadow:0 0 0 3px #2f9a701a;height:.35rem;width:.35rem}.recurring-suggestions{background:linear-gradient(135deg,#edf8f2,#fff);border:1px solid #d2e8dc;border-radius:1rem;box-shadow:0 10px 24px #123b490d,inset 0 1px #fff;margin:0 0 1rem;overflow:hidden;padding:1rem}.recurring-suggestion-head{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between}.recurring-suggestions h2{font-size:1.05rem;margin:0 0 .25rem}.recurring-suggestion-head>div>p:last-child{color:#668078;font-size:.82rem;margin:0}.recurring-add-all{flex:0 0 auto;font-size:.78rem;padding:.58rem .7rem}.recurring-suggestion-list{display:grid;gap:.55rem;margin-top:.85rem}.recurring-suggestion{align-items:center;background:#ffffffb8;border:1px solid #e1eee8;border-radius:.8rem;display:grid;gap:.65rem;grid-template-columns:auto minmax(0,1fr) auto;padding:.7rem}.recurring-icon{align-items:center;background:#e1f4e9;border-radius:.65rem;color:#1a7358;display:grid;height:2.3rem;place-items:center;width:2.3rem}.recurring-icon.income{background:#e1f4e9;color:#1a7358}.recurring-icon.expense{background:#fff0ed;color:#ab544b}.recurring-suggestion div{display:grid;gap:.1rem;min-width:0}.recurring-suggestion strong{color:#183d40;font-size:.9rem}.recurring-suggestion small{color:#648078;font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-suggestion .secondary{font-size:.78rem;padding:.55rem .7rem}.recurring-toggle{align-items:center;background:#eef8f2;border:1px solid #d1e7da;border-radius:.75rem;color:#1b5745;display:flex;gap:.7rem;padding:.8rem}.recurring-toggle input{accent-color:#1d7d60;appearance:auto;box-shadow:none;flex:0 0 auto;height:1.15rem;margin:0;padding:0;width:1.15rem}.recurring-toggle span{display:grid;gap:.08rem}.recurring-toggle strong{font-size:.88rem}.recurring-toggle small{color:#668078;font-size:.76rem;font-weight:600}.ai-receipt-status{align-items:center;background:#eff8f3;border:1px solid #d3e9dc;border-radius:.8rem;color:#1b5745;display:flex;gap:.7rem;padding:.8rem}.ai-receipt-status>span:last-child{display:grid;gap:.1rem}.ai-receipt-status strong{font-size:.88rem}.ai-receipt-status small{color:#668078;font-size:.76rem;font-weight:600}.ai-receipt-success{background:linear-gradient(135deg,#e2f5ea,#f8fdf9);border-color:#bde0cd}.ai-receipt-success>span:first-child{align-items:center;background:#2b8d6b;border-radius:.6rem;color:#fff;display:grid;font-size:1.05rem;height:2.2rem;place-content:center;width:2.2rem}.ai-receipt-spinner{border:3px solid #cfe7da;border-right-color:#218467;border-radius:50%;height:1.75rem;width:1.75rem;animation:receipt-spin .8s linear infinite}.receipt-analysis-progress{align-items:center;display:grid;gap:1rem;grid-template-columns:4.8rem minmax(0,1fr);min-height:13rem;padding:1rem .25rem}.receipt-analysis-progress img{border-radius:.85rem;box-shadow:0 8px 20px #163c4720;height:4.8rem;object-fit:cover;width:4.8rem}.receipt-analysis-progress>div{align-items:flex-start;display:grid;gap:.55rem}.receipt-analysis-progress strong{color:#194d40;font-size:1.05rem}.receipt-analysis-progress small{color:#648077;line-height:1.45}.category-suggestion{background:#fff8e9;border:1px solid #efdbad;border-radius:.85rem;display:grid;gap:.8rem;padding:.9rem}.category-suggestion .eyebrow{color:#9a6d20;font-size:.64rem;margin-bottom:.25rem}.category-suggestion>div:first-child{display:grid;gap:.2rem}.category-suggestion strong{color:#5e4718;font-size:1rem}.category-suggestion small{color:#7d6837;line-height:1.4}.category-suggestion>div:last-child{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem}.category-suggestion .secondary{background:#f4e4b7;color:#624a19}@keyframes receipt-spin{to{transform:rotate(360deg)}}.drawer-backdrop{background:#0c28327a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:20}.app-drawer{background:linear-gradient(165deg,#fbfefc,#f1f8f4);border-radius:1.25rem 0 0 1.25rem;box-shadow:-18px 0 54px #071a2155;display:flex;flex-direction:column;height:100%;max-width:25rem;padding:max(1.2rem,env(safe-area-inset-top)) 1rem max(1rem,env(safe-area-inset-bottom));width:min(89vw,25rem)}.drawer-head{align-items:center;display:flex;justify-content:space-between;padding:.15rem .1rem 1.1rem}.drawer-head .eyebrow{margin-bottom:.15rem}.drawer-head strong{color:#14313e;font-size:1.25rem;letter-spacing:-.03em}.drawer-close{align-items:center;background:#e7f2ed;border:0;border-radius:.7rem;color:#1a5f49;display:grid;height:2.4rem;place-items:center;width:2.4rem}.drawer-content{display:grid;gap:.6rem;overflow:auto;padding:.1rem .05rem 1rem}.drawer-section{background:#fffa;border:1px solid #ffffff;border-radius:.9rem;box-shadow:0 5px 13px #153c4808;overflow:hidden}.drawer-section-toggle,.drawer-profile-toggle{align-items:center;background:transparent;border:0;color:#173d42;display:flex;font-weight:790;justify-content:space-between;padding:.95rem;text-align:left;width:100%}.drawer-section-label{align-items:center;display:inline-flex;gap:.65rem}.drawer-section-label svg{color:#347b64}.drawer-section.open{border-color:#d2e7dc}.drawer-section-body{border-top:1px solid #e1eee8;display:grid;gap:.75rem;padding:.85rem}.drawer-section-body label{font-size:.78rem}.drawer-section-body input,.drawer-section-body select{background:#fff}.drawer-action{align-items:center;background:#e5f2eb;border:1px solid #d4e8dd;border-radius:.65rem;color:#1a604b;display:flex;font-size:.85rem;font-weight:760;gap:.55rem;padding:.75rem .8rem;text-align:left}.drawer-action:hover{background:#d8ece1}.drawer-recurring{border-top:1px solid #e1eee8;display:grid;gap:.45rem;margin-top:.1rem;padding-top:.8rem}.drawer-recurring>p{color:#55766c;font-size:.72rem;font-weight:800;letter-spacing:.08em;margin:0;text-transform:uppercase}.drawer-recurring>div{align-items:center;display:flex;gap:.7rem;justify-content:space-between}.drawer-recurring span{color:#244f44;display:grid;font-size:.83rem;font-weight:750;gap:.08rem}.drawer-recurring small{color:#6d877e;font-size:.7rem;font-weight:600}.drawer-recurring strong{color:#1c644e;font-size:.8rem;white-space:nowrap}.drawer-invitation{align-items:center;display:flex;gap:.7rem;justify-content:space-between}.drawer-invitation span{color:#244f44;display:grid;font-size:.85rem;font-weight:750;gap:.1rem}.drawer-invitation small{color:#6d877e;font-size:.72rem;font-weight:600}.drawer-invitation .secondary{font-size:.75rem;padding:.55rem .65rem}.drawer-profile{border-top:1px solid #dcebe3;margin-top:auto;padding-top:.6rem}.drawer-profile-toggle{border-radius:.8rem;gap:.65rem;justify-content:flex-start;padding:.65rem}.drawer-profile-toggle>span:last-child{margin-left:auto}.drawer-profile-toggle small,.drawer-profile-toggle strong{display:block}.drawer-profile-toggle small{color:#678077;font-size:.68rem;font-weight:700}.drawer-profile-toggle strong{color:#1b5042;font-size:.9rem;margin-top:.08rem}.profile-avatar{align-items:center;background:linear-gradient(145deg,#176b52,#49a886);border-radius:50%;box-shadow:0 4px 10px #14564130;color:#fff;display:grid;flex:0 0 2.25rem;font-weight:800;height:2.25rem;place-content:center;width:2.25rem}.profile-form{border-top:1px solid #e1eee8;padding:.7rem .65rem .2rem}.profile-form label{font-size:.76rem}.profile-form .primary{padding:.7rem}.profile-logout{align-items:center;background:transparent;border:0;color:#8c3d37;display:inline-flex;font-size:.83rem;font-weight:760;gap:.4rem;padding:.45rem;text-align:left}@media(min-width:721px){.app-drawer{border-radius:1.25rem 0 0 1.25rem}}@media(max-width:720px){.app-header{align-items:center;flex-direction:row;margin-bottom:1.5rem}.balance-card{border-radius:1.1rem;margin-bottom:.75rem}.budget-meta{flex-wrap:wrap;margin-bottom:.8rem}.entries-card{margin-top:0}.recurring-suggestion-head{align-items:stretch;flex-direction:column}.recurring-add-all{align-self:flex-start}}.entry{gap:.75rem;padding:.78rem 1.15rem}.entry-actions{align-items:center;display:flex;gap:.3rem;justify-content:flex-end;min-width:auto}.entry-action-button{align-items:center;background:#edf5f1;border:1px solid #d9e8e1;border-radius:.62rem;color:#276957;display:inline-flex;height:2.15rem;justify-content:center;padding:0;transition:background .15s ease,border-color .15s ease,color .15s ease;width:2.15rem}.entry-action-button.edit:hover{background:#dff0e8;border-color:#a9d4bf;color:#155c47}.entry-action-button.delete{background:#fff3f1;border-color:#f0d7d2;color:#a74b40}.entry-action-button.delete:hover{background:#fee7e3;border-color:#e6aca4;color:#8f362e}.delete-confirmation{display:grid;gap:1rem}.delete-confirmation>div:nth-child(2){display:grid;gap:.35rem}.delete-confirmation p{color:#557168;line-height:1.45;margin:0}.delete-confirmation p+p{color:#9a4037;font-size:.88rem;font-weight:700}.delete-confirmation-icon{align-items:center;background:#fff0ee;border:1px solid #f1d0cb;border-radius:.85rem;color:#b14c41;display:grid;height:3rem;place-items:center;width:3rem}.delete-confirmation-actions{display:grid;gap:.6rem;grid-template-columns:1fr 1fr}.danger-button{background:#b6493e;border:0;border-radius:.7rem;color:#fff;font-weight:760;padding:.8rem 1rem}.danger-button:hover{background:#963a31}.danger-button:disabled{cursor:wait;opacity:.7}@media(max-width:720px){.entry{align-items:center;gap:.16rem .6rem;grid-template-columns:auto minmax(0,1fr) auto;padding:.72rem 1rem}.entry-icon{align-self:center;flex-basis:2rem;grid-row:1 / 3;height:2rem;width:2rem}.entry-main{grid-column:2;grid-row:1}.entry>strong{align-self:start;grid-column:2;grid-row:2}.entry-actions{align-self:center;grid-column:3;grid-row:1 / 3}.entry-action-button{border-radius:.58rem;height:2rem;width:2rem}.delete-confirmation-actions{grid-template-columns:1fr}}
