:root{--bg-base:#fbf3ea;--bg-surface:#fffcf8;--border:#f0e2d2;--text:#4a3b31;--text-muted:#5b4f45;--accent:#f2895f;--income:#6fa88a;--expense:#e8735f;--cashback:#dda23e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg-base);color:var(--text);margin:0;font-family:Nunito,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden}.app-shell{min-height:100vh}.save-error-banner{z-index:30;background:var(--expense);color:#fff;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex;position:sticky;top:0}.save-error-banner button{color:var(--expense);cursor:pointer;background:#fff;border:none;border-radius:10px;flex-shrink:0;padding:4px 12px;font-size:13px;font-weight:700}.top-bar{background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:28px;padding:14px 28px;display:flex;position:sticky;top:0}.home-btn{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:12px;flex-shrink:0;width:36px;height:36px;font-size:17px}.home-btn-spacer{flex-shrink:0;width:36px}.brand-btn{color:var(--accent);cursor:pointer;text-align:center;background:0 0;border:none;flex:1;padding:0;font-size:18px;font-weight:700}.main-menu{position:relative}.menu-btn{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;width:36px;height:36px;color:var(--text);border-radius:14px;font-size:16px}.menu-dropdown{background:var(--bg-surface);border:1px solid var(--border);z-index:20;border-radius:16px;min-width:180px;position:absolute;top:44px;right:0;overflow:hidden;box-shadow:0 8px 24px #0000001f}.menu-item{text-align:left;cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;padding:10px 14px;font-size:14px;display:block}.menu-item:hover{background:var(--bg-base)}.menu-item.active{background:var(--accent);color:#fff}.menu-item.active:hover{background:var(--accent)}main{max-width:1100px;margin:0 auto;padding:24px 28px 60px}main.wide{max-width:1300px}.page{flex-direction:column;gap:20px;padding-bottom:92px;display:flex}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:20px;padding:20px;box-shadow:0 2px 10px #4a3b310d}.card h3{margin:0 0 12px;font-size:16px}.hint-text{color:var(--text-muted);margin:0 0 12px;font-size:13px}.pantry-upload-title{font-size:19px}.pantry-receipt-steps{padding-left:18px}.pantry-receipt-steps li{margin-bottom:4px}.pantry-receipt-steps li:last-child{margin-bottom:0}.empty-hint{color:var(--text-muted);padding:16px 0;font-size:14px}.mascot-hint-img{width:96px;margin:0 auto 8px;display:block}.pantry-ocr-busy-row{align-items:center;gap:8px;display:flex}.mascot-inline-img{flex:none;width:40px;display:block}.mascot-inline-emoji{flex:none;font-size:32px;line-height:1;display:block}.success-hint{color:var(--income);margin-top:10px;font-size:14px}.error-hint{color:var(--expense);margin-top:10px;font-size:14px}.help-instructions{flex-direction:column;gap:16px;margin-top:14px;display:flex}.help-bank h4{margin:0 0 6px;font-size:14px}.help-bank ol{color:var(--text-muted);flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:13px;display:flex}.dashboard-page{text-align:center;align-items:center;gap:16px;padding-top:8px}.dashboard-bg-card{background-position:50%;background-size:cover;flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.dashboard-bg-card .period-current,.dashboard-bg-card .dash-empty-hint,.dashboard-bg-card .legend-name,.dashboard-bg-card .legend-amount{text-shadow:0 1px 6px #fffcf8cc}.dash-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.dash-kind-toggle{align-self:center}.import-shortcut-btn{border:1px solid var(--accent);background:var(--bg-surface);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:14px;padding:8px 14px;font-size:13px;font-weight:600}.btn-icon{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:12px;width:32px;height:32px;font-size:16px}.period-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;gap:4px;padding:4px;display:flex}.period-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:7px;padding:6px 14px;font-size:13px}.period-tab.active{background:var(--accent);color:#fff}.period-nav{align-items:center;gap:14px;display:flex}.period-current{text-transform:capitalize;min-width:160px;font-size:15px;font-weight:600}.custom-period-nav{gap:10px}.custom-period-input{width:132px;padding:6px 8px;font-size:13px}.custom-period-nav .period-current{text-align:center;min-width:0;font-size:13px}.donut-wrap{justify-content:center;align-items:center;width:320px;height:320px;display:flex;position:relative}.recharts-wrapper :focus,.recharts-wrapper :focus-visible,.recharts-surface :focus,.recharts-surface :focus-visible{outline:none!important}.donut-empty-ring{border:24px solid var(--bg-surface);background:var(--bg-base);z-index:1;border-radius:50%;position:absolute;inset:10px}.donut-center{background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;z-index:2;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:150px;height:110px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 14px #4a3b311a}.donut-center-label{color:var(--text-muted);font-size:12px}.donut-center-value{color:var(--income);font-size:20px;font-weight:700}.donut-center-value.expense{color:var(--expense)}.dash-empty-hint{max-width:280px}.category-legend{text-align:left;flex-direction:column;gap:8px;width:100%;max-width:340px;display:flex}.legend-group{border-bottom:1px solid var(--border)}.legend-group:last-child{border-bottom:none}.legend-row{align-items:center;gap:8px;padding:4px 0;font-size:14px;display:flex}.legend-row-toggle{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;font-family:inherit}.legend-chevron{width:12px;color:var(--text-muted);font-size:11px;transition:transform .15s;display:inline-block}.legend-chevron.open{transform:rotate(90deg)}.legend-name{flex:1}.legend-amount{color:var(--text-muted);font-weight:600}.legend-detail{background:var(--bg-surface);border-radius:10px;flex-direction:column;gap:4px;margin:2px 0 4px;padding:8px 8px 10px 20px;display:flex}.legend-detail-row{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:baseline;gap:8px;width:100%;margin:0 -4px;padding:2px 4px;font-family:inherit;font-size:12px;display:flex}.legend-detail-row:hover{background:var(--bg-base);color:var(--text)}.legend-detail-date{opacity:.8;flex-shrink:0}.legend-detail-desc{flex:1}.legend-detail-amount{flex-shrink:0;font-weight:600}.fab-row{gap:28px;margin-top:8px;display:flex}.fab{cursor:pointer;color:#fff;border:none;border-radius:50%;width:60px;height:60px;font-size:28px;font-weight:700;box-shadow:0 6px 16px #00000026}.fab-plus{background:var(--income)}.fab-minus{background:var(--expense)}.form-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.form-row label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:12px;display:flex}@media (width<=480px){.form-row>input,.form-row>select,.form-row>button,.form-row>label,.form-row>.pantry-qty-pair{flex:100%}}.pantry-qty-pair label{flex:1 1 0;min-width:0}.pantry-qty-pair input{width:100%;min-width:0}input,select,textarea{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:12px;padding:8px 10px;font-family:inherit;font-size:14px}.category-add-inline{align-items:center;gap:6px;display:flex}.category-add-inline input{min-width:160px}.kind-toggle{border:1px solid var(--border);border-radius:14px;display:flex;overflow:hidden}.toggle-btn{background:var(--bg-surface);cursor:pointer;color:var(--text-muted);border:none;padding:8px 14px;font-size:14px}.toggle-btn.active-expense{background:var(--expense);color:#fff}.toggle-btn.active-income{background:var(--income);color:#fff}.toggle-btn.active{background:var(--accent);color:#fff}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:9px 16px;font-size:14px;font-weight:700}.btn-secondary{background:var(--bg-base);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:8px 14px;font-size:14px}.btn-link{color:var(--expense);cursor:pointer;background:0 0;border:none;margin-left:10px;padding:0;font-size:12px}.btn-link.muted{color:var(--text-muted)}.inline-confirm{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:inline-flex}.filters-row{flex-wrap:nowrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.filters-row>select{text-overflow:ellipsis;flex:1 1 0;min-width:0;padding:7px 8px;font-size:13px}.filters-row>.btn-link,.filters-row>.inline-confirm{white-space:nowrap;flex:none;margin-left:0}.filters-date-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.filters-date-label{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.add-tx-toggle{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0;font-size:17px;font-weight:700;display:flex}.add-tx-toggle-icon{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:18px;line-height:1;transition:transform .15s;display:inline-flex}.add-tx-toggle-icon.open{transform:rotate(45deg)}.add-tx-toggle+.form-row{margin-top:14px}.table-scroll{overflow-x:auto}.tx-table{border-collapse:collapse;width:100%;font-size:14px}.tx-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:12px;font-weight:500}.tx-table td{border-bottom:1px solid var(--border);padding:8px 10px}.text-right{text-align:right}.tx-table td.income{color:var(--income);font-weight:600}.tx-table td.expense{color:var(--expense);font-weight:600}.comment-input-wrap{align-items:center;display:flex;position:relative}.comment-input{width:100%;min-width:140px;padding:5px 24px 5px 8px;font-size:13px}.comment-clear-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:4px;font-size:12px;line-height:1;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.comment-clear-btn:hover{color:var(--text)}.row-excluded{opacity:.45}.tx-table tfoot td{border-bottom:none;border-top:2px solid var(--border);padding-top:12px;font-size:15px;font-weight:700}.tx-total-label{color:var(--text);font-weight:700}.tx-list-head{color:var(--text-muted);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.tx-select-all{cursor:pointer;align-items:center;gap:6px;display:flex}.tx-total{font-weight:700}.tx-total.income{color:var(--income)}.tx-total.expense{color:var(--expense)}.tx-list{flex-direction:column;display:flex}.tx-row{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:12px 0;display:flex}.tx-row:last-child{border-bottom:none}.tx-row-top{align-items:flex-start;gap:8px;display:flex}.tx-row-delete{flex-shrink:0;margin-left:0;font-size:14px}.tx-row-desc{word-break:break-word;flex:1;font-size:14px}.tx-row-amount{white-space:nowrap;font-weight:700}.tx-row-amount.income{color:var(--income)}.tx-row-amount.expense{color:var(--expense)}.tx-row-meta{color:var(--text-muted);gap:6px;padding-left:24px;font-size:12px;display:flex}.tx-row-controls{flex-wrap:wrap;gap:8px;padding-left:24px;display:flex}.tx-row-controls select,.tx-row-controls .comment-input-wrap{flex:140px;min-width:0}.budgets-columns{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.budgets-chart-card{flex:480px}.budgets-list-card{flex:340px;min-width:300px}.budget-chart-scroll{overflow-x:auto}.budget-list{flex-direction:column;gap:10px;display:flex}.budget-row-header{align-items:center;gap:10px;display:flex}.category-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.budget-name{flex:1;font-size:16px;font-weight:600}.budget-amounts{color:var(--text-muted);font-size:13px}.limit-input{width:90px}.budget-total-row{border-top:2px solid var(--border);justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;display:flex}.budget-total-label{font-weight:700}.budget-total-value{color:var(--accent);font-size:17px;font-weight:700}.progress-track{background:var(--bg-base);border-radius:4px;height:8px;margin-top:6px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .3s}.goals-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.goal-header{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.goal-header-toggle{cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:none;padding:0;font-family:inherit}.goal-name{flex:1;font-weight:600}.goal-date{color:var(--text-muted);font-size:12px}.goal-amounts{color:var(--text-muted);margin-top:6px;font-size:13px}.goal-reached{color:var(--accent);align-items:center;gap:6px;margin-top:8px;font-weight:700;display:flex}.goal-topup{gap:8px;margin-top:12px;display:flex}.goal-topup input{flex:1}.goal-history{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;display:flex}.goal-history-empty{padding:0}.goal-history-row{justify-content:space-between;gap:8px;font-size:13px;display:flex}.goal-history-date{color:var(--text-muted)}.goal-history-amount{font-weight:600}.goal-history-amount.income{color:var(--income)}.goal-history-amount.expense{color:var(--expense)}.plain-list{flex-direction:column;gap:6px;margin:0 0 14px;padding:0;font-size:14px;list-style:none;display:flex}.muted{color:var(--text-muted)}.loan-summary{flex-wrap:wrap;gap:24px;margin-bottom:12px;display:flex}.loan-summary-item{flex-direction:column;gap:2px;font-size:12px;display:flex}.loan-summary-value{font-size:20px;font-weight:700}.loan-summary-value.expense{color:var(--expense)}.loan-list{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.loan-row{border:1px solid var(--border);border-left:4px solid var(--border);border-radius:16px;padding:12px 14px}.loan-row.loan-rate-low{border-left-color:var(--income)}.loan-row.loan-rate-mid{border-left-color:var(--cashback)}.loan-row.loan-rate-high{border-left-color:var(--expense)}.loan-row-header{align-items:center;gap:10px;display:flex}.loan-name{flex:1;font-weight:700}.loan-rate-badge{white-space:nowrap;border-radius:10px;padding:3px 9px;font-size:12px;font-weight:700}.loan-rate-badge.loan-rate-low{color:var(--income);background:color-mix(in srgb, var(--income) 15%, transparent)}.loan-rate-badge.loan-rate-mid{color:var(--cashback);background:color-mix(in srgb, var(--cashback) 18%, transparent)}.loan-rate-badge.loan-rate-high{color:var(--expense);background:color-mix(in srgb, var(--expense) 15%, transparent)}.loan-row-details{flex-wrap:wrap;gap:6px;margin-top:4px;font-size:13px;display:flex}.loan-amount{font-weight:600}.loan-pay{gap:8px;margin-top:10px;display:flex}.loan-pay input{flex:1}.modal-overlay{z-index:50;background:#2b221b73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-surface);border-radius:24px;width:320px;padding:22px;box-shadow:0 20px 50px #4a3b3140}.modal-box h3{margin:0 0 14px}.tx-edit-meta{color:var(--text-muted);gap:6px;margin:-8px 0 10px;font-size:13px;display:flex}.tx-edit-amount{margin-bottom:14px;font-size:24px;font-weight:700}.tx-edit-amount.income{color:var(--income)}.tx-edit-amount.expense{color:var(--expense)}.form-col{flex-direction:column;gap:10px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.marking-scanner-box{flex-direction:column;gap:10px;width:min(360px,92vw);display:flex}.marking-scanner-video{aspect-ratio:1;object-fit:cover;background:#000;border-radius:16px;width:100%}.btn-primary.btn-income{background:var(--income)}.btn-primary.btn-expense{background:var(--expense)}.ambassador-widget{z-index:15;position:fixed;bottom:20px;left:20px}.ambassador-avatar{border:2px solid var(--bg-surface);cursor:pointer;background:linear-gradient(145deg,#f6c39a,#f2895f);border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;animation:2.4s ease-in-out infinite ambassador-bounce;display:flex;box-shadow:0 8px 20px #f2895f59}.ambassador-emoji{font-size:30px}.ambassador-image{object-fit:contain;width:46px;height:46px}.ambassador-image-option{width:30px;height:30px}@keyframes ambassador-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.ambassador-picker{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;padding:6px;position:absolute;bottom:62px;left:0;box-shadow:0 8px 24px #0000001f}.ambassador-picker-grid{flex-wrap:wrap;gap:6px;display:flex}.ambassador-option{background:var(--bg-base);cursor:pointer;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:relative}.ambassador-option.active{border-color:var(--accent)}.ambassador-option:disabled{cursor:not-allowed;opacity:.6}.ambassador-lock{font-size:11px;position:absolute;bottom:-4px;right:-4px}.ambassador-bubble{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px 16px 16px 4px;max-width:220px;padding:10px 14px;font-size:13px;animation:.2s ease-out ambassador-pop;position:absolute;bottom:70px;left:0;box-shadow:0 8px 24px #0000001f}@keyframes ambassador-pop{0%{opacity:0;transform:translateY(6px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-color-scheme:dark){:root{--bg-base:#211a15;--bg-surface:#2b221b;--border:#3c3025;--text:#f2e6d8;--text-muted:#b3a08c;--accent:#f4986c;--income:#7fba9c;--expense:#f0836e;--cashback:#e8b458;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=warm]{--bg-base:#fbf3ea;--bg-surface:#fffcf8;--border:#f0e2d2;--text:#4a3b31;--text-muted:#5b4f45;--accent:#f2895f;--income:#6fa88a;--expense:#e8735f;--cashback:#dda23e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=midnight]{--bg-base:#14151f;--bg-surface:#1c1e2b;--border:#2c2e3d;--text:#e8e6f0;--text-muted:#8c8aa0;--accent:#8b7ff2;--income:#6fd9b0;--expense:#f2718b;--cashback:#e8c458;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=mint]{--bg-base:#eef8f5;--bg-surface:#fff;--border:#d5ece4;--text:#23423a;--text-muted:#435652;--accent:#2fa88a;--income:#3fae7a;--expense:#e0715a;--cashback:#dba13e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=lavender]{--bg-base:#f5f1fb;--bg-surface:#fff;--border:#e3d9f2;--text:#3d3153;--text-muted:#554c62;--accent:#8a6fd6;--income:#6fa88a;--expense:#e0708a;--cashback:#d4a13e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=sunset]{--bg-base:#fde8d9;--bg-surface:#fff6ee;--border:#f6d4b4;--text:#4a2a1f;--text-muted:#644534;--accent:#d94a1f;--income:#4a9d6e;--expense:#c73f3f;--cashback:#e0962e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=ocean]{--bg-base:#eaf4fa;--bg-surface:#fff;--border:#cfe6f2;--text:#203a4a;--text-muted:#40525b;--accent:#2389c9;--income:#35a373;--expense:#e0615a;--cashback:#d9a53e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=forest]{--bg-base:#16211a;--bg-surface:#1e2d23;--border:#2e4435;--text:#e5efe6;--text-muted:#94a99a;--accent:#5bb97e;--income:#7fd19a;--expense:#e58a74;--cashback:#e0c35a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=berry]{--bg-base:#fbeff3;--bg-surface:#fffbfc;--border:#f3d9e3;--text:#4a1f30;--text-muted:#634855;--accent:#c23f74;--income:#4f9d6e;--expense:#d9455c;--cashback:#dba23e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=sand]{--bg-base:#f3ede3;--bg-surface:#fbf8f3;--border:#e3d8c5;--text:#3f362a;--text-muted:#534d3f;--accent:#a8793f;--income:#5f9c6d;--expense:#c2614a;--cashback:#c99a3b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=slate]{--bg-base:#1a1c1f;--bg-surface:#232528;--border:#35383c;--text:#e9eaec;--text-muted:#9a9ea3;--accent:#7a8ba0;--income:#6fc29a;--expense:#e07a7a;--cashback:#e0bb5e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.picker-grid{flex-wrap:wrap;gap:10px;display:flex}.theme-option{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;width:76px;color:var(--text-muted);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;font-family:inherit;font-size:11px;display:flex;position:relative}.theme-option.active{border-color:var(--accent);color:var(--text)}.theme-option:disabled{cursor:not-allowed;opacity:.6}.theme-swatch{border-radius:50%;width:28px;height:28px}.theme-lock{font-size:11px;position:absolute;top:6px;right:10px}.checkbox-row{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.checkbox-row input{width:auto}.pantry-header-card{background-position:50%;background-size:cover}.pantry-header-card h3{color:var(--text);text-shadow:0 1px 6px #fffcf8cc}.pantry-toggle{margin-top:4px}.pantry-toggle .toggle-btn{flex:1 1 0;min-width:0;padding:6px 2px}.pantry-toggle-content{justify-content:center;align-items:center;gap:3px;min-width:0;display:flex}.pantry-toggle-icon{object-fit:contain;flex:none;width:38px;height:38px;display:block}.pantry-toggle-icon-emoji{justify-content:center;align-items:center;font-size:28px;line-height:1;display:flex}.pantry-toggle-label{overflow-wrap:anywhere;min-width:0;font-size:11px;line-height:1.1}.pantry-qty-input{width:100px}.pantry-receipt-name-input{flex:1;min-width:0}.pantry-name-input{resize:none;field-sizing:content;background:0 0;border-color:#0000;width:100%;min-width:220px;font-size:17px;font-weight:600;line-height:1.4}.pantry-name-input:hover,.pantry-name-input:focus{border-color:var(--border);background:var(--bg-surface)}.pantry-add-btn{align-self:flex-end}.pantry-add-row{flex-wrap:wrap;align-items:stretch;gap:20px;display:flex}.pantry-add-card{flex:360px;margin:0}.pantry-upload-col{flex-direction:column;flex:360px;gap:16px;display:flex}.pantry-upload-col .pantry-add-card{flex:none}.pantry-camera-card{color:var(--accent);cursor:pointer;justify-content:center;align-items:center;gap:8px;min-height:24px;font-family:inherit;font-size:15px;font-weight:600;display:flex}.pantry-camera-card:disabled{opacity:.5;cursor:default}.pantry-camera-input{display:none}.pantry-replace-prompt{background:var(--bg-base);margin-top:10px}.pantry-list-header{text-align:center;flex-direction:column;align-items:center;gap:14px;margin-bottom:16px;display:flex}.pantry-list-header-bg{background-position:50%;background-size:cover;border-radius:20px 20px 0 0;margin:-20px -20px 16px;padding:20px 20px 14px}.pantry-list-header h3{margin:0}.pantry-list-header-bg h3,.pantry-list-header-bg .period-current,.pantry-list-header-bg .pantry-filter-row{text-shadow:0 1px 6px #fffcf8cc}.theme-bg-card{text-shadow:0 1px 6px #fffcf8cc;background-position:50%;background-size:cover}.theme-bg-strip{text-shadow:0 1px 6px #fffcf8cc;background-position:50%;background-size:cover;border-radius:20px 20px 0 0;margin:-20px -20px 16px;padding:20px 20px 14px}.pantry-period-group{flex-direction:column;align-items:center;gap:8px;display:flex}.pantry-filter-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;width:100%;padding-top:14px;display:flex}.pantry-icon-btn{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:12px;flex-shrink:0;width:40px;height:40px;font-size:20px}.pantry-icon-btn:disabled{opacity:.4;cursor:default}.pantry-help-wrap{flex-shrink:0;position:relative}.pantry-help-btn{border:1px solid var(--border);background:var(--bg-base);color:var(--text-muted);cursor:pointer;border-radius:50%;width:22px;height:22px;padding:0;font-size:12px;font-weight:700;line-height:1}.pantry-help-tip{background:var(--text);color:var(--bg-surface);white-space:nowrap;z-index:5;border-radius:8px;padding:6px 10px;font-size:12px;position:absolute;top:28px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.pantry-month-nav{margin:0}.pantry-search-row{align-items:center;gap:10px;margin-bottom:14px;display:flex}.pantry-search-input{width:100%;max-width:320px;padding:7px 12px;font-size:14px}.pantry-manual-copy{border:1px solid var(--border);background:var(--bg-base);border-radius:14px;margin-bottom:14px;padding:12px}.pantry-manual-copy-text{width:100%;min-height:100px;margin-bottom:8px;font-family:inherit}.pantry-date-input{width:110px}.pantry-receipt-list,.pantry-item-list{flex-direction:column;display:flex}.pantry-date-group{border-bottom:1px solid var(--border)}.pantry-date-group:last-child{border-bottom:none}.pantry-date-group-header{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:none;align-items:center;gap:10px;padding:10px 0;font-family:inherit;display:flex}.pantry-date-chevron{width:14px;color:var(--text-muted);flex-shrink:0;font-size:12px;transition:transform .15s;display:inline-flex}.pantry-date-chevron.open{transform:rotate(90deg)}.pantry-date-group-label{flex:1;font-size:15px;font-weight:700}.pantry-date-group-count{color:var(--text-muted);font-size:13px}.pantry-date-group-items{flex-direction:column;padding-bottom:6px;display:flex}.pantry-date-group-items .pantry-item-row:last-child{border-bottom:none}.pantry-receipt-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;display:flex}.pantry-receipt-row:last-child{border-bottom:none}.pantry-item-row{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 0;display:flex}.pantry-item-row:last-child{border-bottom:none}.pantry-item-row-top{align-items:flex-start;gap:8px;display:flex}.pantry-item-row-top .pantry-name-input{flex:1}.pantry-item-row-meta{flex-wrap:wrap;align-items:flex-end;gap:14px;padding-left:2px;display:flex}.pantry-item-row-meta label{color:var(--text-muted);flex-direction:column;gap:2px;font-size:11px;display:flex}.pantry-row-out{background:color-mix(in srgb, var(--expense) 8%, transparent)}.pantry-qty-pair{flex-wrap:nowrap;gap:14px;display:flex}.pantry-qty-pair .pantry-qty-cell-input{text-align:right;width:56px}.pantry-remaining-cell{color:var(--income);font-weight:700}.pantry-remaining-cell.out{color:var(--expense)}
