*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{color:#1a1a2e;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y;direction:rtl;background-color:#f6f5fa;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:#4361ee;text-decoration:none}a:hover{text-decoration:underline}:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}.auth-container{min-height:100vh;justify-content:center;align-items:center;min-height:100dvh;padding:1rem;display:flex}.auth-card{background:#fff;border-radius:24px;width:100%;max-width:420px;padding:2.5rem;box-shadow:0 4px 24px #0000001a}.auth-card-google{text-align:center;padding:2.5rem 2rem}.auth-logo{margin-bottom:.3rem;font-size:3.5rem;line-height:1}.auth-card h1{text-align:center;color:#1a1a2e;margin-bottom:.4rem;font-size:1.8rem}.auth-subtitle{text-align:center;color:#888;margin-bottom:1.5rem;font-size:.9rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.4rem;font-size:.9rem;font-weight:600;display:block}.form-group input{border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:.7rem 1rem;font-size:1rem;transition:border-color .2s}.form-group input:focus{border-color:#4361ee;outline:none}.divider{text-align:center;color:#888;margin:1.2rem 0;position:relative}.divider:before,.divider:after{content:"";background:#ddd;width:40%;height:1px;position:absolute;top:50%}.divider:before{right:0}.divider:after{left:0}.google-login{justify-content:center;margin-bottom:1rem;display:flex}.auth-link{text-align:center;margin-top:1rem;font-size:.9rem}.btn{cursor:pointer;touch-action:manipulation;border:none;border-radius:12px;padding:.65rem 1.4rem;font-size:.95rem;font-weight:600;transition:background-color .2s,transform .1s,box-shadow .2s}.btn:active{transform:scale(.96)}.btn-primary{color:#fff;background:linear-gradient(135deg,#4361ee,#3a56d4);width:100%;box-shadow:0 2px 8px #4361ee40}.btn-primary:hover{background:linear-gradient(135deg,#3a56d4,#2f4bc0);box-shadow:0 4px 12px #4361ee59}.btn-secondary{color:#444;background-color:#eef0f4}.btn-secondary:hover{background-color:#e2e4e8}.btn-delete{color:#e74c3c;background:0 0;border-radius:50%;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.3rem .6rem;font-size:1.2rem;display:flex}.btn-delete:hover{background-color:#ffeaea}.btn-sm{padding:.4rem .9rem;font-size:.82rem}.home-container{max-width:700px;padding:.8rem 1rem;padding-bottom:calc(5rem + var(--safe-bottom,0px));min-height:100vh;min-height:100dvh;margin:0 auto}.app-header{z-index:50;padding:.4rem 0;padding-top:max(.4rem, var(--safe-top,0px));background:#f6f5fa;justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex;position:sticky;top:0}.app-header h1{font-size:1.4rem;font-weight:700}.header-right{align-items:center;gap:.6rem;display:flex}.welcome{color:#666;font-size:.85rem;font-weight:500}.tab-bar{padding:.2rem .5rem;padding-bottom:max(.2rem, var(--safe-bottom,0px));z-index:100;background:#fff;border-top:1px solid #eee;border-radius:0;margin-bottom:0;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 16px #00000014}.tab-item{color:#999;cursor:pointer;z-index:1;touch-action:manipulation;background:0 0;border:none;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.15rem;padding:.5rem .3rem;font-size:.7rem;font-weight:600;transition:color .2s;display:flex;position:relative}.tab-item:hover{color:#666}.tab-item.tab-active{color:#4361ee;background:0 0}.tab-emoji{font-size:1.3rem;position:relative}.tab-badge{text-align:center;color:#fff;box-sizing:border-box;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:.6rem;font-weight:700;line-height:16px;position:absolute;top:-8px}.tab-badge-expired{background:#e53935;right:-14px}.tab-badge-expiring{background:#ffa726;right:-14px}.tab-badge-expired+.tab-badge-expiring{right:-30px}.tab-label{white-space:nowrap}.tab-content{min-height:200px;animation:.2s ease-out fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.add-form{gap:.4rem;margin-bottom:1.2rem;display:flex}.add-form-v2{background:#fff;border:1px solid #0000000a;border-radius:16px;flex-direction:column;gap:.4rem;margin-bottom:.8rem;padding:.8rem;display:flex;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.add-form-row-1{gap:.4rem;display:flex}.add-form-row-2{align-items:center;gap:.4rem;display:flex}.add-form-submit{white-space:nowrap;flex-shrink:0;width:auto!important}.add-input{background:#fff;border:2px solid #e8eaf0;border-radius:12px;flex:1;padding:.75rem 1rem;font-size:1rem;transition:border-color .2s,box-shadow .2s}.add-input:focus{border-color:#4361ee;outline:none;box-shadow:0 0 0 3px #4361ee1a}.add-input-wrapper{flex:1;position:relative}.add-input-wrapper .add-input{box-sizing:border-box;width:100%;padding-left:2rem}.dropdown-toggle{cursor:pointer;color:#999;z-index:2;background:0 0;border:none;padding:.2rem;font-size:.75rem;line-height:1;position:absolute;top:50%;left:.4rem;transform:translateY(-50%)}.dropdown-toggle:hover{color:#555}.city-autocomplete .dropdown-toggle{z-index:2;position:absolute;top:50%;left:.4rem;transform:translateY(-50%)}.city-autocomplete .add-input{padding-left:2rem}.add-autocomplete{z-index:10;background:#fff;border:1px solid #e0e0e0;border-radius:0 0 8px 8px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.quantity-input{text-align:center;border:2px solid #e0e0e0;border-radius:8px;width:70px;padding:.7rem;font-size:1rem}.quantity-input:focus{border-color:#4361ee;outline:none}.add-form .btn-primary{white-space:nowrap;width:auto}.unit-select{cursor:pointer;background:#fff;border:2px solid #e0e0e0;border-radius:8px;min-width:80px;padding:.7rem .5rem;font-size:1rem}.unit-select:focus{border-color:#4361ee;outline:none}.grocery-group{background:#fff;border:1px solid #0000000a;border-radius:16px;margin-bottom:.8rem;padding:.8rem 1.2rem;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.group-title{color:#333;border-bottom:1px solid #f0f2f5;margin-bottom:.6rem;padding-bottom:.4rem;font-size:1rem;font-weight:700}.group-title-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.group-title-toggle:hover{color:#4361ee}.collapse-icon{color:#999;font-size:.75rem;transition:color .2s}.group-title-toggle:hover .collapse-icon{color:#4361ee}.collapse-all-controls{justify-content:flex-end;gap:.3rem;margin-bottom:.4rem;display:flex}.btn-collapse-all{color:#777;cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #e4e6ea;border-radius:10px;padding:.3rem .6rem;font-size:.75rem;transition:background .15s,color .15s}.btn-collapse-all:hover{color:#4361ee;background:#eef0f8;border-color:#c5cae9}.reorder-modal{text-align:right}.reorder-modal-desc{text-align:center;color:#888;margin-bottom:.8rem;font-size:.85rem}.reorder-list{flex-direction:column;gap:.4rem;display:flex}.reorder-item{background:#f8f9fa;border-radius:10px;justify-content:space-between;align-items:center;padding:.6rem .8rem;transition:background-color .15s;display:flex}.reorder-item-info{align-items:center;gap:.4rem;font-size:.95rem;display:flex}.reorder-item-emoji{font-size:1.1rem}.reorder-item-name{font-weight:600}.reorder-item-count{color:#888;font-size:.8rem}.reorder-item-btns{gap:.3rem;display:flex}.btn-reorder-arrow{color:#4361ee;cursor:pointer;touch-action:manipulation;background:#eef0f8;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.85rem;font-weight:700;transition:background-color .15s,transform .1s;display:flex}.btn-reorder-arrow:hover:not(:disabled){background:#c5cae9}.btn-reorder-arrow:active:not(:disabled){transform:scale(.9)}.btn-reorder-arrow:disabled{opacity:.25;cursor:default}.grocery-group ul{list-style:none}.grocery-item{border-bottom:1px solid #f0f2f5;flex-direction:column;gap:.2rem;padding:.55rem 0;display:flex}.grocery-item:last-child{border-bottom:none}.item-top-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.item-checkbox{accent-color:#4361ee;cursor:pointer;border-radius:4px;flex-shrink:0;width:20px;height:20px}.item-info{align-items:center;gap:.5rem;display:flex}.image-zoom-overlay{z-index:1100}.image-zoom-container{flex-direction:column;align-items:center;gap:.8rem;padding:1.5rem;display:flex}.image-zoom-spinner{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:48px;height:48px;animation:.8s linear infinite zoom-spin}@keyframes zoom-spin{to{transform:rotate(360deg)}}.image-zoom{object-fit:contain;image-rendering:auto;background:#fff;border-radius:12px;width:280px;height:280px;padding:1rem;box-shadow:0 4px 24px #0003}.image-zoom-name{color:#fff;text-align:center;text-shadow:0 1px 4px #00000080;margin:0;font-size:1.1rem;font-weight:600}.image-zoom-close{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#fff3;border:1px solid #fff6}.item-name{text-align:right;flex:1;min-width:0;font-size:1rem;transition:color .2s,-webkit-text-decoration .2s,text-decoration .2s}.search-highlight{color:#856404;background:#fff3cd;border-radius:2px;padding:0 1px}.item-name:hover{color:#4361ee}.grocery-done{opacity:.55}.item-name-done{color:#999;text-decoration:line-through}.item-name-done:hover{color:#666}.quantity-controls{align-items:center;gap:.3rem;display:flex}.btn-quantity{color:#4361ee;cursor:pointer;touch-action:manipulation;background:#eef0f8;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:1rem;font-weight:700;transition:background-color .2s;display:flex}.btn-quantity:hover:not(:disabled){background-color:#c5cae9}.btn-quantity:disabled{opacity:.4;cursor:not-allowed}.item-quantity{color:#4361ee;text-align:center;background:#e8eaf6;border-radius:12px;min-width:1.5rem;padding:.1rem .5rem;font-size:.85rem;font-weight:600}.item-actions{align-items:center;gap:.3rem;display:flex}.item-actions-row{align-items:center;gap:.3rem;padding-top:.15rem;display:flex}.item-action-pill{cursor:pointer;touch-action:manipulation;border:none;border-radius:10px;justify-content:center;align-items:center;min-width:34px;min-height:34px;padding:.3rem .55rem;font-size:.85rem;transition:background-color .15s,transform .1s;display:flex}.item-action-pill:active{transform:scale(.93)}.item-action-type{background:#f0f2f5;font-size:1.1rem}.item-action-type:hover{background:#e2e4e8}.item-action-image{color:#546e7a;background:#eceff1}.item-action-image:hover{background:#cfd8dc}.item-action-price{color:#2e7d32;background:#e8f5e9;font-weight:700}.item-action-price:hover{background:#c8e6c9}.item-action-delete{color:#d32f2f;background:#fff0f0;font-weight:600}.item-action-delete:hover{background:#ffcdd2}.btn-type{cursor:pointer;background:0 0;border-radius:8px;padding:.3rem .5rem;font-size:1.2rem}.btn-type:hover{background-color:#f0f2f5}.type-select{cursor:pointer;background:#fff;border:2px solid #4361ee;border-radius:8px;padding:.3rem .5rem;font-size:1rem}.type-select:focus{outline:none}.complete-bar{justify-content:center;margin-bottom:.8rem;display:flex}.btn-complete{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#4caf50,#43a047);border:none;border-radius:12px;padding:.7rem 1.5rem;font-size:.95rem;font-weight:600;transition:background-color .2s,transform .1s;box-shadow:0 2px 8px #4caf5040}.btn-complete:hover{background-color:#43a047}.btn-complete:active{transform:scale(.97)}.btn-complete:disabled{cursor:not-allowed;background-color:#c8e6c9}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:flex-end;animation:.2s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{padding:1.5rem;padding-bottom:calc(1.5rem + var(--safe-bottom,0px));text-align:center;width:100%;max-width:500px;max-height:92vh;background:#fff;border-radius:20px 20px 0 0;max-height:92dvh;animation:.25s ease-out slideUp;position:relative;overflow-y:auto;box-shadow:0 -4px 32px #0000001f}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.modal-close-btn{cursor:pointer;color:#666;z-index:1;touch-action:manipulation;background:#f0f0f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:1.2rem;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:.5rem;left:.5rem}.modal-close-btn:hover{color:#333;background:#e0e0e0}.modal-card h2{margin-bottom:.8rem;font-size:1.3rem}.modal-card p{color:#666;margin-bottom:1.2rem;font-size:.95rem;line-height:1.5}.modal-card .btn{width:auto;min-width:100px}.duplicate-modal-actions{justify-content:center;gap:.5rem;display:flex}.duplicate-modal-actions .btn-primary{width:auto}.smart-bar{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.8rem;display:flex}.shopping-actions-bar{gap:.35rem;margin-bottom:.8rem;display:flex}.shop-action-btn{cursor:pointer;touch-action:manipulation;white-space:nowrap;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:.2rem;padding:.55rem .3rem;font-size:.8rem;font-weight:600;transition:filter .15s,transform .1s;display:flex}.shop-action-btn:active{transform:scale(.96)}.shop-action-btn:disabled{opacity:.45;cursor:not-allowed}.shop-action-refresh{color:#1565c0;background:#e3f2fd}.shop-action-refresh:hover:not(:disabled){background:#bbdefb}.shop-action-store{color:#2e7d32;background:#e8f5e9}.shop-action-store:hover:not(:disabled){background:#c8e6c9}.shop-action-smart{color:#5e35b1;background:linear-gradient(135deg,#ede7f6,#e8eaf6)}.shop-action-smart:hover:not(:disabled){background:linear-gradient(135deg,#d1c4e9,#c5cae9)}.btn-refresh{color:#444;cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #e0e2e8;border-radius:12px;padding:.65rem .9rem;font-size:.9rem;font-weight:600;transition:background-color .2s,transform .1s}.btn-refresh:hover{background:#f0f1f4;border-color:#d0d2d8}.btn-refresh:active{transform:scale(.97)}.btn-refresh:disabled{opacity:.6;cursor:not-allowed}.btn-smart{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;padding:.65rem 1.2rem;font-size:.95rem;font-weight:600;transition:transform .1s,box-shadow .2s;box-shadow:0 2px 10px #667eea4d}.btn-smart:hover{box-shadow:0 4px 12px #667eea73}.btn-smart:active{transform:scale(.97)}.btn-smart:disabled{opacity:.6;cursor:not-allowed}.smart-modal{text-align:right;max-height:80vh;overflow-y:auto}.smart-modal h2{text-align:center;margin-bottom:.5rem}.smart-modal-desc{text-align:center;color:#888;margin-bottom:1rem;font-size:.85rem}.smart-suggestion-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.smart-suggestion{background:#f8f9fa;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.6rem .8rem;transition:background-color .15s;display:flex}.smart-suggestion:hover{background:#eef0f5}.smart-suggestion.selected{background:#e8eaf6;border:2px solid #4361ee}.smart-checkbox{accent-color:#4361ee;cursor:pointer;flex-shrink:0;width:20px;height:20px}.smart-suggestion-emoji{cursor:pointer}.smart-suggestion-info{cursor:pointer;flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.smart-suggestion-name{font-size:.95rem;font-weight:500}.smart-suggestion-qty{flex-shrink:0;align-items:center;gap:.3rem;margin-right:auto;display:flex}.smart-qty-value{text-align:center;min-width:28px;font-size:.9rem;font-weight:600}.smart-qty-unit{color:#888;font-size:.8rem}.reason-badge{border-radius:8px;padding:.1rem .4rem;font-size:.7rem;font-weight:600}.reason-frequent{color:#1565c0;background:#e3f2fd}.reason-missing{color:#e65100;background:#fff3e0}.reason-expired{color:#e74c3c;background:#ffeaea}.smart-modal-actions{justify-content:center;gap:.5rem;display:flex}.smart-empty{text-align:center;color:#888;padding:1.5rem;font-size:.95rem}.loading{text-align:center;color:#999;padding:3rem;font-size:1rem}.empty-state{text-align:center;color:#999;padding:2.5rem 1rem}.empty-state p:first-child{margin-bottom:.5rem;font-size:2.5rem}.error-message{text-align:center;border-radius:12px;margin-bottom:.8rem;padding:.75rem 1rem;font-size:.9rem;font-weight:500;animation:.2s ease-out fadeIn}.error-message:not([class*=success]){color:#d32f2f;background:#fff0f0;border:1px solid #fecaca}.home-setup{flex-direction:column;align-items:center;gap:1rem;display:flex}.setup-card{text-align:center;background:#fff;border:1px solid #0000000a;border-radius:16px;width:100%;padding:1.2rem 1.5rem;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.setup-card h2{margin-bottom:.5rem;font-size:1.3rem}.setup-card p{color:#888;margin-bottom:1rem;font-size:.9rem}.setup-form{gap:.5rem;display:flex}.setup-form-vertical{flex-direction:column}.city-autocomplete{flex:1;position:relative}.city-suggestions{z-index:100;background:#fff;border:2px solid #e0e0e0;border-top:none;border-radius:0 0 8px 8px;max-height:180px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.city-suggestion-item{cursor:pointer;padding:.5rem .8rem;font-size:.9rem;transition:background-color .1s}.city-suggestion-item:hover{background:#e8eaf6}.city-edit-inline{flex:1;align-items:center;gap:.3rem;display:flex}.city-edit-input{max-width:150px;padding:.4rem .6rem;font-size:.85rem}.setup-divider{color:#888;padding:.3rem 0;font-size:.9rem}.home-header-card{background:#fff;border:1px solid #0000000a;border-radius:16px;margin-bottom:.6rem;padding:1rem 1.2rem;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.home-title-row{text-align:center;margin-bottom:.7rem}.home-title-row h2{margin:0;font-size:1.2rem}.home-info-grid{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem;display:grid}.home-info-item{flex-direction:column;gap:.2rem;display:flex}.home-info-label{color:#999;text-transform:uppercase;letter-spacing:.3px;font-size:.75rem;font-weight:600}.home-info-value{color:#333;align-items:center;gap:.3rem;font-size:.9rem;font-weight:500;display:flex}.home-info-edit-btn{cursor:pointer;opacity:.6;touch-action:manipulation;background:0 0;border:none;padding:.1rem;font-size:.8rem;transition:opacity .15s}.home-info-edit-btn:hover{opacity:1}.home-members-row{border-top:1px solid #f0f2f5;flex-direction:column;gap:.3rem;padding-top:.5rem;display:flex}.home-actions-bar{flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem;display:flex}.home-action-btn{cursor:pointer;touch-action:manipulation;white-space:nowrap;border:none;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:.25rem;min-width:0;padding:.5rem .4rem;font-size:.78rem;font-weight:600;transition:filter .15s,transform .1s;display:flex}.home-action-btn:active{transform:scale(.96)}.home-action-btn:disabled{opacity:.5;cursor:not-allowed}.home-action-refresh{color:#1565c0;background:#e3f2fd}.home-action-refresh:hover{background:#bbdefb}.home-action-settings{color:#f57f17;background:#fff8e1}.home-action-settings:hover{background:#ffecb3}.home-action-history{color:#00796b;background:#e0f2f1}.home-action-history:hover{background:#b2dfdb}.home-action-danger{color:#c62828;background:#ffeaea}.home-action-danger:hover{background:#ffcdd2}.home-actions{gap:.5rem;display:flex}.btn-delete-home{color:#e74c3c;cursor:pointer;background:#ffeaea;border:none;border-radius:12px;padding:.4rem .8rem;font-size:.85rem;font-weight:600}.btn-delete-home:hover{background:#ffcdd2}.invite-section{align-items:center;gap:.5rem;margin-bottom:.6rem;font-size:.9rem;display:flex}.invite-label{color:#888}.invite-code{color:#4361ee;letter-spacing:1px;background:#eef0f8;border-radius:8px;padding:.2rem .6rem;font-family:monospace;font-size:.95rem;font-weight:700}.members-section{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.members-label{color:#888}.members-list{flex-wrap:wrap;gap:.35rem;display:flex}.member-badge{background:#f0f2f5;border-radius:20px;padding:.25rem .65rem;font-size:.82rem;font-weight:500}.section-title{color:#333;margin-bottom:.6rem;font-size:1.05rem;font-weight:700}.home-grocery-item{cursor:pointer;border-bottom:1px solid #f5f5f5;justify-content:space-between;align-items:center;padding:.6rem 0;transition:background-color .15s;display:flex}.home-grocery-item:hover{background-color:#f8f9fa}.home-grocery-item:last-child{border-bottom:none}.home-grocery-info{flex:1;align-items:center;gap:.5rem;display:flex}.home-grocery-name{font-size:1rem}.home-grocery-qty{color:#4361ee;background:#e8eaf6;border-radius:10px;padding:.1rem .45rem;font-size:.8rem;font-weight:600}.home-grocery-badges{gap:.3rem;display:flex}.badge-expired{color:#e74c3c;background:#ffeaea;border-radius:10px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.badge-expiring-soon{color:#f57f17;background:#fff8e1;border-radius:10px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.inventory-toolbar{flex-direction:column;gap:.5rem;margin-bottom:.6rem;display:flex}.inventory-search{position:relative}.inventory-search-input{background:#fff;border:2px solid #e0e2e8;border-radius:12px;width:100%;padding:.55rem .9rem .55rem 2rem;font-size:.9rem;transition:border-color .2s}.inventory-search-input:focus{border-color:#4361ee;outline:none}.inventory-search-clear{color:#aaa;cursor:pointer;background:0 0;border:none;padding:.2rem;font-size:.85rem;line-height:1;position:absolute;top:50%;left:.6rem;transform:translateY(-50%)}.inventory-search-clear:hover{color:#666}.inventory-sort-bar{flex-wrap:wrap;gap:.35rem;display:flex}.inventory-sort-btn{color:#666;cursor:pointer;touch-action:manipulation;background:#fff;border:1.5px solid #e0e2e8;border-radius:20px;padding:.3rem .7rem;font-size:.78rem;font-weight:500;transition:all .15s}.inventory-sort-btn:hover{color:#444;border-color:#c0c4cc}.inventory-sort-active{color:#fff;background:#4361ee;border-color:#4361ee}.inventory-sort-active:hover{color:#fff;background:#3a56d4;border-color:#3a56d4}.detail-modal{text-align:right;max-height:80vh;overflow-y:auto}.detail-modal h2{text-align:center;margin-bottom:1rem}.detail-modal-actions{gap:.5rem;margin-top:.8rem;display:flex}.detail-modal-actions .btn{flex:1}.batch-list{flex-direction:column;gap:.8rem;margin-bottom:1rem;display:flex}.batch-card{background:#f8f9fa;border-radius:10px;padding:.8rem 1rem}.batch-card.batch-expired{background:#fff5f5;border:1px solid #fecaca}.batch-row{justify-content:space-between;align-items:center;margin-bottom:.4rem;font-size:.9rem;display:flex}.batch-row:last-child{margin-bottom:0}.batch-label{color:#888}.batch-value{font-weight:500}.batch-value.expired-text{color:#e74c3c;font-weight:600}.batch-actions{justify-content:flex-end;gap:.4rem;margin-top:.5rem;display:flex}.btn-batch{cursor:pointer;border:none;border-radius:6px;padding:.3rem .7rem;font-size:.8rem;font-weight:600;transition:background-color .2s}.btn-batch-remove{color:#e74c3c;background:#ffeaea}.btn-batch-remove:hover{background:#fdd}.btn-batch-date{color:#4361ee;background:#e8eaf6}.btn-batch-date:hover{background:#c5cae9}.date-edit-row{align-items:center;gap:.4rem;margin-top:.4rem;display:flex}.date-input{border:2px solid #e0e0e0;border-radius:6px;flex:1;padding:.3rem .5rem;font-size:.85rem}.date-input:focus{border-color:#4361ee;outline:none}.btn-date-save{color:#fff;background:#4361ee}.btn-date-cancel{color:#333;background:#e0e0e0}.btn-scan{color:#4361ee;cursor:pointer;touch-action:manipulation;background:#eef0f8;border:none;border-radius:12px;flex-shrink:0;padding:.5rem .8rem;font-size:1.2rem;transition:background-color .2s}.btn-scan:hover{background:#c5cae9}.scanner-modal{max-width:500px}.btn-image{color:#78909c;cursor:pointer;background:0 0;border-radius:8px;padding:.3rem .5rem;font-size:.95rem}.btn-image:hover{background-color:#eceff1}.btn-price{color:#4caf50;cursor:pointer;background:0 0;border-radius:8px;padding:.3rem .5rem;font-size:1rem;font-weight:700}.btn-price:hover{background-color:#e8f5e9}.price-modal{text-align:right;max-width:450px;max-height:85vh;overflow-y:auto}.price-list{flex-direction:column;gap:.4rem;margin:.8rem 0;display:flex}.price-row{background:#f8f9fa;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .8rem;display:flex}.price-store{font-size:.9rem;font-weight:500}.price-value{color:#4caf50;font-size:1rem;font-weight:700}.chp-section{border-top:2px solid #e0e0e0;margin-top:1rem;padding-top:.8rem}.chp-search-form{gap:.4rem;margin-bottom:.6rem;display:flex}.chp-search-wrapper{position:relative}.chp-autocomplete{z-index:10;background:#fff;border:1px solid #e0e0e0;border-radius:0 0 8px 8px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001f}.chp-autocomplete-item{text-align:right;cursor:pointer;direction:rtl;background:0 0;border:none;border-bottom:1px solid #f0f0f0;align-items:center;gap:.5rem;width:100%;padding:.5rem .8rem;font-size:.85rem;display:flex}.autocomplete-image{object-fit:contain;flex-shrink:0;width:24px;height:24px}.chp-autocomplete-item:last-child{border-bottom:none}.dropdown-close-btn{color:#888;cursor:pointer;text-align:center;background:#f5f5f5;border:none;border-bottom:1px solid #e0e0e0;width:100%;padding:.35rem .8rem;font-size:.8rem;display:block}.dropdown-close-btn:hover{color:#555;background:#eee}.chp-autocomplete-item:hover{background:#e3f2fd}.chp-section h3{color:#555;margin:0 0 .5rem;font-size:1rem}.chp-matched-name{color:#888;margin:0 0 .5rem;font-size:.85rem;font-style:italic}.chp-product-list{flex-direction:column;gap:.4rem;margin:.5rem 0;display:flex}.chp-product-option{text-align:right;cursor:pointer;direction:rtl;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;width:100%;padding:.6rem .8rem;font-size:.9rem;transition:background .15s,border-color .15s;display:block}.chp-product-option:hover{background:#e3f2fd;border-color:#90caf9}.chp-row{flex-wrap:wrap;gap:.3rem}.price-address{color:#888;flex-basis:100%;font-size:.75rem}.price-values{align-items:center;gap:.4rem;display:flex}.price-sale{color:#e53935;font-weight:700}.price-original{color:#999;font-size:.85rem;font-weight:400;text-decoration:line-through}.price-sale-desc{color:#e53935;flex-basis:100%;font-size:.75rem}.price-form{gap:.4rem;margin-top:.8rem;display:flex}.btn-best-store{color:#fff;cursor:pointer;touch-action:manipulation;background:linear-gradient(135deg,#43a047,#66bb6a);border:none;border-radius:12px;padding:.65rem .9rem;font-size:.9rem;font-weight:600;transition:transform .1s,box-shadow .2s;box-shadow:0 2px 8px #43a04740}.btn-best-store:hover{box-shadow:0 4px 12px #43a04773}.btn-best-store:disabled{opacity:.6;cursor:not-allowed}.best-store-modal{text-align:right;max-width:450px;max-height:85vh;overflow-y:auto}.best-store-subtitle{color:#888;margin:-.3rem 0 .5rem;font-size:.85rem}.best-store-list{flex-direction:column;gap:.5rem;margin:.8rem 0;display:flex}.best-store-cheapest{background:#e8f5e9;border:2px solid #4caf50}.best-store-header{justify-content:space-between;align-items:center;display:flex}.best-store-name{font-size:1rem;font-weight:600}.best-store-total{color:#333;font-size:1.1rem;font-weight:700}.best-store-cheapest .best-store-total{color:#2e7d32}.best-store-branch{color:#666;margin-top:.1rem;font-size:.8rem}.best-store-address{color:#999;font-size:.75rem}.best-store-meta{color:#888;margin-top:.2rem;font-size:.8rem}.best-store-card{cursor:pointer;background:#f8f9fa;border-radius:10px;padding:.7rem 1rem;transition:background .15s}.best-store-card:hover{background:#f0f0f0}.best-store-progress{text-align:center;padding:1rem 0}.progress-bar-container{background:#e0e0e0;border-radius:5px;width:100%;height:10px;margin-bottom:.6rem;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#43a047,#66bb6a);border-radius:5px;height:100%;transition:width .2s}.progress-text{color:#555;font-size:.9rem;font-weight:600}.progress-estimate{color:#999;margin-top:.3rem;font-size:.8rem}.best-store-details{border-top:1px solid #e0e0e0;margin-top:.6rem;padding-top:.6rem}.best-store-address-detail{color:#555;margin-bottom:.5rem;font-size:.85rem}.best-store-section-title{color:#555;margin-bottom:.3rem;font-size:.8rem;font-weight:600}.best-store-item-row{color:#444;justify-content:space-between;align-items:center;padding:.2rem 0;font-size:.82rem;display:flex}.best-store-item-price{white-space:nowrap;margin-right:.5rem;font-weight:600}.best-store-item-price .sale-price{color:#d32f2f}.best-store-item-price s{color:#999;margin-left:.3rem;font-weight:400}.best-store-missing{margin-top:.5rem}.best-store-missing-item{color:#999;padding:.15rem 0;font-size:.82rem}.best-store-not-found{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;margin-top:.8rem;padding:.6rem .8rem}.btn-show-all-stores{color:#1976d2;cursor:pointer;background:0 0;border:1px dashed #ccc;border-radius:8px;width:100%;margin-top:.4rem;padding:.5rem;font-size:.85rem;transition:background .15s;display:block}.btn-show-all-stores:hover{background:#f0f4ff}.expiry-settings-modal{text-align:right;max-width:450px;max-height:85vh;overflow-y:auto}.expiry-settings-desc{color:#666;margin-bottom:.8rem;font-size:.85rem}.expiry-settings-list{flex-direction:column;gap:.5rem;display:flex}.expiry-setting-row{background:#f8f9fa;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .6rem;display:flex}.expiry-setting-type{font-size:.9rem;font-weight:500}.expiry-setting-input-group{align-items:center;gap:.3rem;display:flex}.expiry-setting-input{text-align:center;border:1px solid #ddd;border-radius:6px;width:60px;padding:.3rem .4rem;font-size:.9rem}.expiry-setting-unit{color:#888;font-size:.8rem}.expiry-reset-btn{cursor:pointer;color:#1976d2;background:0 0;border:none;padding:.1rem .3rem;font-size:1rem}.expiry-settings-actions{gap:.5rem;margin-top:1rem;display:flex}.expiry-settings-actions .btn{flex:1}.history-manager-modal{text-align:right;max-width:480px;max-height:85vh;overflow-y:auto}.history-manager-desc{color:#666;margin-bottom:.8rem;font-size:.85rem}.history-filter-input{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;margin-bottom:.8rem;padding:.5rem .7rem;font-size:.9rem}.history-items-list{flex-direction:column;gap:.3rem;max-height:50vh;display:flex;overflow-y:auto}.history-item-row{background:#f8f9fa;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .6rem;display:flex}.history-item-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.history-item-name{font-size:.9rem;font-weight:500}.history-item-meta{color:#888;font-size:.75rem}.confirm-modal{text-align:right;max-width:360px}.confirm-modal p{color:#444;margin:.8rem 0;font-size:.95rem;line-height:1.5}.confirm-actions{gap:.5rem;margin-top:1rem;display:flex}.confirm-actions .btn{flex:1}.recipe-new-btn-row{margin-bottom:.6rem}.recipe-new-btn-row .btn{width:100%}.recipe-actions-bar{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-bottom:.8rem;display:flex}.recipe-actions-bar .btn-primary{width:auto}.recipe-actions-bar .btn{padding:.55rem 1rem;font-size:.85rem}.recipe-list{flex-direction:column;gap:.5rem;display:flex}.recipe-list-item{cursor:pointer;touch-action:manipulation;background:#fff;border:1px solid #0000000a;border-radius:14px;justify-content:space-between;align-items:center;padding:.8rem 1rem;transition:background-color .15s,transform .1s;display:flex;box-shadow:0 1px 4px #0000000a,0 2px 8px #00000005}.recipe-list-item:hover{background:#f8f9fa}.recipe-list-item:active{transform:scale(.98)}.recipe-list-info{flex-direction:column;gap:.15rem;display:flex}.recipe-list-title{color:#333;font-size:1rem;font-weight:600}.recipe-list-meta{color:#888;font-size:.8rem}.recipe-form-modal{text-align:right;max-width:500px;max-height:90vh;overflow-y:auto}.recipe-form-modal .form-group{margin-bottom:1rem}.recipe-ing-name-row{margin-bottom:.4rem}.recipe-ing-name-row .add-input{width:100%}.recipe-ing-form{flex-wrap:wrap;align-items:flex-start;gap:.4rem;display:flex}.recipe-ing-form .add-input-wrapper{flex:100%;min-width:0}.recipe-ing-form .quantity-input{width:60px}.recipe-ing-form .unit-select{min-width:70px}.recipe-ing-form .btn-secondary{width:auto;padding:.5rem .8rem;font-size:1.1rem;font-weight:700}.steps-mode-toggle{gap:.4rem;margin-bottom:.5rem;display:flex}.steps-mode-toggle .btn{flex:1;padding:.4rem .6rem;font-size:.85rem}.recipe-freetext-steps{resize:vertical;white-space:pre-wrap;width:100%;min-height:120px;font-size:.95rem;line-height:1.7}.recipe-ing-list{flex-direction:column;gap:.3rem;margin-top:.5rem;list-style:none;display:flex}.recipe-ing-item{background:#f8f9fa;border-radius:8px;justify-content:space-between;align-items:center;padding:.4rem .7rem;font-size:.9rem;display:flex}.recipe-ing-item .btn-delete{padding:.2rem .4rem;font-size:.9rem}.recipe-steps-input{resize:vertical;min-height:100px;font-family:inherit;line-height:1.6}.recipe-image-preview-wrapper{align-items:center;gap:.5rem;display:flex}.recipe-image-preview{object-fit:cover;border:2px solid #e0e0e0;border-radius:8px;width:80px;height:80px}.recipe-share-row label{cursor:pointer;direction:rtl;justify-content:flex-end;align-items:center;gap:.4rem;width:fit-content;font-weight:500;display:flex}.recipe-form-actions{gap:.5rem;margin-top:1rem;display:flex}.recipe-form-actions .btn{flex:1}.recipe-step-text{cursor:pointer;flex:1}.recipe-step-text:hover{color:#4361ee}.recipe-ing-item.editing{background:#eef2ff;border:1px solid #4361ee}.recipe-detail-modal{text-align:right;max-width:500px;max-height:90vh;overflow-y:auto}.recipe-detail-meta{text-align:center;color:#888;margin-top:-.5rem;margin-bottom:1rem;font-size:.85rem}.recipe-detail-image-wrapper{justify-content:center;margin-bottom:1rem;display:flex}.recipe-detail-image{object-fit:contain;border-radius:12px;max-width:100%;max-height:300px;box-shadow:0 2px 12px #0000001a}.recipe-detail-section{margin-bottom:1rem}.recipe-detail-section h3{color:#333;margin-bottom:.5rem;font-size:1rem}.recipe-detail-ingredients{flex-direction:column;gap:.3rem;list-style:none;display:flex}.recipe-detail-ingredients li{background:#f8f9fa;border-radius:8px;flex-direction:column;gap:.15rem;padding:.4rem .7rem;font-size:.9rem;display:flex}.recipe-detail-ingredients li.ing-at-home{background:#e8f5e9}.ing-home-match{color:#2e7d32;padding-right:1.4rem;font-size:.75rem}.recipe-detail-steps{white-space:pre-wrap;background:#f8f9fa;border-radius:10px;padding:.8rem 1rem;font-size:.95rem;line-height:1.8}.recipe-detail-steps p{margin:0 0 .3rem}.recipe-detail-steps-list{counter-reset:recipe-step;flex-direction:column;gap:.4rem;list-style:none;display:flex}.recipe-detail-steps-list li{counter-increment:recipe-step;background:#f8f9fa;border-radius:8px;gap:.4rem;padding:.5rem .8rem;font-size:.9rem;line-height:1.6;display:flex}.recipe-detail-steps-list li:before{content:counter(recipe-step) ".";color:#4361ee;flex-shrink:0;font-weight:700}.recipe-shopping-item{background:#f8f9fa;border-radius:8px;flex-direction:column;gap:.3rem;padding:.6rem .8rem;font-size:.9rem;display:flex}.recipe-shopping-item-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.recipe-shopping-name-wrapper{flex:1;min-width:0;position:relative}.recipe-shopping-name{cursor:pointer;color:#333;word-break:break-word}.recipe-shopping-name:hover{color:#4361ee}.recipe-shopping-badge{border-radius:6px;width:fit-content;padding:.15rem .5rem;font-size:.75rem}.badge-at-home{color:#155724;background:#d4edda}.badge-on-list{color:#856404;background:#fff3cd}.recipe-search-bar{align-items:center;gap:.4rem;margin-bottom:.8rem;display:flex}.recipe-search-bar .add-input{flex:1;min-width:0}.recipe-search-bar .btn.btn-primary,.recipe-search-bar .btn.btn-secondary,.recipe-search-bar .btn{flex-shrink:0;width:auto;padding:.55rem;font-size:1.1rem;line-height:1}.recipe-category-select{flex-wrap:wrap;gap:.4rem;display:flex}.recipe-category-select .btn{padding:.4rem .8rem;font-size:.85rem}.recipe-detail-like-row{align-items:center;gap:.4rem;margin-bottom:.5rem;display:flex}.btn-like{cursor:pointer;background:0 0;border:none;padding:0;font-size:1.4rem;line-height:1}.like-count{color:#888;font-size:.85rem}.guide-overlay{-webkit-backdrop-filter:blur(6px);z-index:2000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.3s ease-out overlayFadeIn;display:flex;position:fixed;inset:0}.guide-container{width:100%;max-width:400px;max-height:90vh;background:#fff;border-radius:24px;flex-direction:column;max-height:90dvh;padding:1.5rem;animation:.3s ease-out slideUp;display:flex;position:relative;overflow-y:auto;box-shadow:0 8px 40px #0003}.guide-skip{color:#888;cursor:pointer;z-index:1;touch-action:manipulation;background:#f0f0f0;border:none;border-radius:20px;padding:.3rem .9rem;font-size:.8rem;font-weight:600;transition:background .15s,color .15s;position:absolute;top:.8rem;left:.8rem}.guide-skip:hover{color:#555;background:#e0e0e0}.guide-progress{justify-content:center;gap:.35rem;margin-bottom:1.2rem;padding-top:.3rem;display:flex}.guide-dot{background:#e0e2e8;border-radius:50%;width:8px;height:8px;transition:background .25s,transform .25s}.guide-dot-active{background:#4361ee;transform:scale(1.3)}.guide-dot-done{background:#a5b4fc}.guide-content{text-align:center;flex:1}.guide-emoji{margin-bottom:.5rem;font-size:3rem;line-height:1}.guide-title{color:#1a1a2e;margin-bottom:.5rem;font-size:1.3rem;font-weight:700}.guide-desc{color:#666;white-space:pre-line;margin-bottom:.8rem;font-size:.9rem;line-height:1.6}.guide-visual{margin-bottom:.8rem}.guide-mock{background:#f6f5fa;border-radius:16px;padding:.8rem}.guide-mock-card{background:#fff;border-radius:12px;padding:.7rem;box-shadow:0 1px 4px #0000000f}.guide-mock-card+.guide-mock-card{margin-top:.5rem}.guide-mock-icon{text-align:center;margin-bottom:.2rem;font-size:1.5rem}.guide-mock-label{text-align:center;color:#333;margin-bottom:.3rem;font-size:.82rem;font-weight:600}.guide-mock-input{color:#999;background:#f0f2f5;border-radius:8px;margin-bottom:.3rem;padding:.35rem .6rem;font-size:.75rem}.guide-mock-input-wide{width:100%}.guide-mock-btn{color:#fff;text-align:center;background:linear-gradient(135deg,#4361ee,#3a56d4);border-radius:8px;margin-top:.2rem;padding:.3rem .7rem;font-size:.75rem;font-weight:600}.guide-mock-btn-wide{width:100%;margin-top:.5rem}.guide-mock-divider{text-align:center;color:#999;padding:.3rem 0;font-size:.8rem}.guide-mock-form{flex-direction:column;gap:.4rem;display:flex}.guide-mock-row{align-items:center;gap:.3rem;display:flex}.guide-mock-qty{text-align:center;background:#f0f2f5;border-radius:6px;min-width:30px;padding:.3rem .5rem;font-size:.75rem}.guide-mock-unit{background:#f0f2f5;border-radius:6px;padding:.3rem .5rem;font-size:.75rem}.guide-mock-scan{font-size:1rem}.guide-mock-dropdown{background:#fff;border:1px solid #e0e2e8;border-radius:0 0 10px 10px;overflow:hidden}.guide-mock-dropdown-item{border-bottom:1px solid #f0f2f5;align-items:center;gap:.4rem;padding:.4rem .6rem;font-size:.78rem;display:flex}.guide-mock-dropdown-item:last-child{border-bottom:none}.guide-mock-dropdown-highlight{background:#eef0f8}.guide-mock-thumb{font-size:1rem}.guide-mock-price-row{border-bottom:1px solid #f8f8f8;justify-content:space-between;padding:.3rem 0;font-size:.78rem;display:flex}.guide-mock-price-row:last-child{border-bottom:none}.guide-mock-price-val{color:#2e7d32;font-weight:700}.guide-mock-recipe-list{flex-direction:column;gap:.4rem;display:flex}.guide-mock-recipe-item{background:#fff;border-radius:10px;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex;box-shadow:0 1px 3px #0000000d}.guide-mock-recipe-item span:first-child{font-size:1.3rem}.guide-mock-recipe-title{font-size:.82rem;font-weight:600}.guide-mock-recipe-meta{color:#999;font-size:.7rem}.guide-mock-ing{color:#555;padding:.2rem 0;font-size:.78rem}.guide-actions{gap:.5rem;margin-top:.8rem;display:flex}.guide-btn{cursor:pointer;touch-action:manipulation;border:none;border-radius:14px;flex:1;padding:.7rem 1rem;font-size:.95rem;font-weight:600;transition:transform .1s,filter .15s}.guide-btn:active{transform:scale(.96)}.guide-btn-next{color:#fff;background:linear-gradient(135deg,#4361ee,#3a56d4);box-shadow:0 2px 8px #4361ee4d}.guide-btn-next:hover{filter:brightness(1.05)}.guide-btn-back{color:#555;background:#f0f2f5}.guide-btn-back:hover{background:#e4e6ea}.guide-step-label{text-align:center;color:#bbb;margin-top:.5rem;font-size:.75rem}.fab-add{bottom:calc(5rem + var(--safe-bottom,0px));color:#fff;cursor:pointer;z-index:900;touch-action:manipulation;background:linear-gradient(135deg,#4361ee,#3a56d4);border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:2rem;font-weight:300;line-height:1;transition:transform .15s,box-shadow .15s;display:flex;position:fixed;right:1.2rem;box-shadow:0 4px 16px #4361ee66}.fab-add:active{transform:scale(.9)}.add-panel-backdrop{z-index:1499;background:#00000040;animation:.15s ease-out overlayFadeIn;position:fixed;inset:0}.add-panel{bottom:var(--keyboard-offset,0px);z-index:1500;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));background:#fff;border-radius:20px 20px 0 0;animation:.25s ease-out slideUp;position:fixed;left:0;right:0;transform:translateZ(0);box-shadow:0 -4px 24px #0000001f}.add-panel-close{cursor:pointer;touch-action:manipulation;background:#e8eaf0;border:none;border-radius:20px;width:48px;height:6px;margin:0 auto .6rem;padding:0;font-size:0;display:block}.add-panel-close:hover{background:#d0d3da}.add-panel .add-form-v2{margin:0}.add-panel .add-autocomplete-up{max-height:200px;margin-bottom:4px;top:auto;bottom:100%}.pwa-install-banner{bottom:calc(4.5rem + var(--safe-bottom,0px));z-index:2000;background:#fff;border-radius:16px;width:calc(100% - 2rem);max-width:400px;padding:1rem;animation:.3s ease-out slideUp;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0000002e}.pwa-install-content{align-items:center;gap:.7rem;margin-bottom:.8rem;display:flex}.pwa-install-icon{font-size:2rem}.pwa-install-text{flex-direction:column;gap:.15rem;font-size:.9rem;display:flex}.pwa-install-text strong{font-size:1rem}.pwa-install-actions{align-items:center;gap:.5rem;display:flex}.pwa-install-btn{flex:1}.pwa-dismiss-btn{color:#888;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.4rem .6rem;font-size:.85rem}.pwa-dismiss-btn:hover{color:#555}.pwa-dont-remind{color:#888;cursor:pointer;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.8rem;display:flex}.pwa-dont-remind input{cursor:pointer}.pwa-ios-hint{color:#555;flex:1;font-size:.85rem}.home-action-install{color:#fff;background:linear-gradient(135deg,#4361ee,#3a56d4)}@media (max-width:600px){.home-container{padding:.6rem .8rem;padding-bottom:calc(4.5rem + var(--safe-bottom,0px))}.app-header{text-align:right;flex-direction:row;gap:.3rem}.app-header h1{font-size:1.15rem}.header-right{gap:.4rem}.welcome{font-size:.78rem}.header-right .btn{padding:.35rem .7rem;font-size:.78rem}.tab-item{gap:.1rem;padding:.4rem .3rem;font-size:.65rem}.tab-emoji{font-size:1.15rem}.add-form{flex-wrap:wrap}.add-input-wrapper{flex:100%;min-width:0}.add-form-v2{padding:.6rem}.add-form-row-2 .quantity-input{width:55px}.add-form-row-2 .unit-select{min-width:65px}.add-input{min-width:0}.quantity-input{flex-shrink:0;width:60px}.unit-select{flex-shrink:0;min-width:70px}.add-form .btn-primary{flex-shrink:0}.grocery-group{padding:.7rem .8rem}.grocery-item,.item-top-row{gap:.3rem}.item-checkbox{width:18px;height:18px}.item-name{word-break:break-word;font-size:.9rem}.item-quantity{padding:.1rem .4rem;font-size:.75rem}.quantity-controls{gap:.2rem}.btn-quantity{width:24px;height:24px;font-size:.8rem}.item-actions{gap:.2rem}.btn-complete,.btn-smart{padding:.6rem 1rem;font-size:.9rem}.btn-refresh,.btn-best-store{padding:.6rem .8rem;font-size:.85rem}.shopping-actions-bar{gap:.25rem}.shop-action-btn{padding:.5rem .2rem;font-size:.73rem}.item-actions-row{gap:.25rem}.item-action-pill{min-width:30px;min-height:30px;padding:.25rem .4rem;font-size:.8rem}.btn-scan{padding:.4rem .6rem;font-size:1rem}.price-form{flex-wrap:wrap}.smart-bar{gap:.25rem}.modal-card{width:100%;max-width:100%;padding:1.2rem;padding-bottom:calc(1.2rem + var(--safe-bottom,0px));border-radius:20px 20px 0 0}.modal-card h2{font-size:1.1rem}.modal-card p{font-size:.85rem}.smart-modal{max-height:85vh}.smart-suggestion{gap:.4rem;padding:.5rem .6rem}.smart-suggestion-name,.smart-suggestion-qty{font-size:.85rem}.smart-qty-value{min-width:24px;font-size:.85rem}.reason-badge{white-space:nowrap;padding:.1rem .3rem;font-size:.65rem}.batch-card{padding:.6rem .8rem}.batch-row{flex-wrap:wrap;gap:.2rem;font-size:.8rem}.batch-actions{flex-wrap:wrap;gap:.3rem}.btn-batch{padding:.25rem .5rem;font-size:.75rem}.date-edit-row{flex-wrap:wrap}.date-input{min-width:0;font-size:.8rem}.setup-card{padding:1rem 1.2rem}.setup-form{flex-wrap:wrap}.setup-form .add-input{flex:100%}.home-header-card{padding:.8rem 1rem}.home-title-row h2{font-size:1.05rem}.home-info-grid{gap:.4rem}.home-info-label{font-size:.7rem}.home-info-value{font-size:.85rem}.home-actions-bar{gap:.3rem}.home-action-btn{padding:.45rem .3rem;font-size:.72rem}.invite-section{flex-wrap:wrap;font-size:.8rem}.invite-code{font-size:.85rem}.home-grocery-item{flex-wrap:wrap;gap:.3rem}.home-grocery-name{font-size:.9rem}.home-grocery-badges{flex-wrap:wrap}.badge-expired,.badge-expiring-soon{font-size:.7rem}.auth-card{padding:1.5rem}.auth-card h1{font-size:1.4rem}.recipe-form-modal{max-width:95%;padding:1rem}.recipe-form-modal .form-group label{font-size:.85rem}.recipe-detail-modal{max-width:95%;padding:1rem}.recipe-list-item{padding:.6rem .8rem}.recipe-list-title{font-size:.9rem}.recipe-ing-form .quantity-input{width:55px}.recipe-ing-form .unit-select{min-width:60px;font-size:.8rem}.recipe-ing-item{padding:.3rem .5rem;font-size:.8rem}.guide-overlay{align-items:flex-end;padding:.5rem}.guide-container{padding:1.2rem;padding-bottom:calc(1.2rem + var(--safe-bottom,0px));max-height:92vh;border-radius:24px 24px 0 0;max-height:92dvh}.guide-emoji{font-size:2.5rem}.guide-title{font-size:1.15rem}.guide-desc{font-size:.85rem}}.admin-page{padding:.5rem 0}.admin-tabs{gap:.4rem;margin-bottom:1rem;display:flex;overflow-x:auto}.admin-tab{color:#555;cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #e0e2e8;border-radius:20px;padding:.45rem .9rem;font-size:.82rem;font-weight:500;transition:all .15s}.admin-tab-active{color:#fff;background:#4361ee;border-color:#4361ee}.admin-tab-count{background:#0000001a;border-radius:10px;margin-inline-start:.3rem;padding:0 .4rem;font-size:.72rem;display:inline-block}.admin-tab-active .admin-tab-count{background:#ffffff40}.admin-section{flex-direction:column;gap:.6rem;display:flex}.admin-filter-input{background:#fff;border:2px solid #e0e2e8;border-radius:12px;width:100%;padding:.5rem .8rem;font-size:.88rem;transition:border-color .2s}.admin-filter-input:focus{border-color:#4361ee;outline:none}.admin-list{flex-direction:column;gap:.45rem;display:flex}.admin-card{background:#fff;border:1.5px solid #eee;border-radius:12px;align-items:center;gap:.6rem;padding:.7rem .9rem;transition:box-shadow .15s;display:flex}.admin-card:hover{box-shadow:0 2px 8px #0000000f}.admin-card-main{flex:1;min-width:0}.admin-card-title{color:#1a1a2e;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;font-weight:600;overflow:hidden}.admin-card-sub{color:#888;margin-top:.1rem;font-size:.78rem}.admin-card-meta{flex-wrap:wrap;gap:.4rem;margin-top:.3rem;display:flex}.admin-tag{color:#4361ee;background:#f0f0ff;border-radius:8px;padding:.1rem .5rem;font-size:.72rem;font-weight:500}.admin-tag-muted{color:#aaa;padding:.1rem .3rem;font-size:.72rem}.admin-card-actions{gap:.3rem;display:flex}.admin-user-detail{flex-direction:column;gap:.5rem;margin:1rem 0;display:flex}.admin-user-detail-row{background:#f8f9fa;border-radius:8px;justify-content:space-between;align-items:center;padding:.5rem .7rem;font-size:.9rem;display:flex}.admin-user-detail-label{color:#555;font-weight:600}.admin-delete-btn,.admin-edit-btn{cursor:pointer;background:0 0;border:1.5px solid #eee;border-radius:8px;padding:.3rem .5rem;font-size:.85rem;transition:all .15s}.admin-delete-btn:hover{background:#ffeaea;border-color:#e74c3c}.admin-edit-btn:hover{background:#f0f0ff;border-color:#4361ee}.admin-empty{text-align:center;color:#aaa;padding:2rem 0;font-size:.9rem}.admin-success{color:#2e7d32;text-align:center;background:#e8f5e9;border-radius:10px;margin-bottom:.5rem;padding:.5rem .9rem;font-size:.85rem;font-weight:500}.admin-type-form{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.admin-type-input{border:2px solid #e0e2e8;border-radius:10px;flex:1;min-width:120px;padding:.45rem .7rem;font-size:.88rem}.admin-type-input:focus{border-color:#4361ee;outline:none}.admin-type-select{background:#fff;border:2px solid #e0e2e8;border-radius:10px;padding:.45rem .5rem;font-size:.85rem}.admin-edit-modal{max-width:500px;max-height:85vh;overflow-y:auto}.admin-edit-form{flex-direction:column;gap:.5rem;display:flex}.admin-edit-form label{color:#555;margin-top:.3rem;font-size:.82rem;font-weight:600}.admin-edit-input{border:2px solid #e0e2e8;border-radius:10px;width:100%;padding:.45rem .7rem;font-size:.88rem}.admin-edit-input:focus{border-color:#4361ee;outline:none}.admin-edit-textarea{resize:vertical;border:2px solid #e0e2e8;border-radius:10px;width:100%;padding:.5rem .7rem;font-family:inherit;font-size:.85rem}.admin-edit-textarea:focus{border-color:#4361ee;outline:none}.admin-checkbox-label{cursor:pointer;align-items:center;gap:.4rem;display:flex;color:#333!important;font-size:.88rem!important;font-weight:500!important}.admin-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:10px;padding:.5rem 1.2rem;font-weight:600}.btn-danger:hover{background:#c0392b}@supports (-webkit-touch-callout:none){input,select,textarea{font-size:max(1rem,16px)!important}}
