@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";:root{--font-family: "Nunito", system-ui, sans-serif;--primary-color: #78c2ad;--primary-hover: #5eb39a;--text-color: #5d4e37;--bg-color: #fffdf5;--bg-secondary: #f5ede0;--border-color: #d4c9b0;--success-color: #8dd87c;--danger-color: #f28b82;--warning-color: #ffc078;--accent-color: #88d8e5;--shadow-color: rgba(93, 78, 55, .12);--shadow-lg: 0 8px 24px rgba(93, 78, 55, .15)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);color:var(--text-color);background:linear-gradient(180deg,#e8f5e9 0%,var(--bg-color) 100%);background-attachment:fixed;line-height:1.5;font-weight:500;min-height:100vh}button{cursor:pointer;border:none;background:none;font-family:inherit;font-weight:600}input{font-family:inherit;font-weight:500}.app-container{max-width:600px;margin:0 auto;padding:1rem;min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);padding:1rem 1.25rem;border-radius:20px;box-shadow:var(--shadow-lg),inset 0 2px #ffffff4d;border:3px solid rgba(255,255,255,.4)}h1{font-size:1.5rem;font-weight:800;margin:0;color:#fff;text-shadow:2px 2px 0 rgba(93,78,55,.2);letter-spacing:.5px}.app-title{display:flex;flex-direction:column;gap:2px}.app-version{font-size:.7rem;font-weight:700;color:#ffffffd9;letter-spacing:.3px;font-variant-numeric:tabular-nums}.settings-button{color:#fff;padding:10px;border-radius:50%;background:#ffffff40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s ease;border:2px solid rgba(255,255,255,.3)}.settings-button:hover{background:#fff6;transform:rotate(45deg)}.manager-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.manager-header h2{font-size:1.25rem;font-weight:700;color:var(--text-color)}.back-button{padding:10px;background:var(--bg-secondary);border-radius:50%;border:2px solid var(--border-color);transition:all .2s ease}.back-button:hover{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.add-category-form{display:flex;gap:.5rem;margin-bottom:1.5rem}.add-category-form input[type=text]{flex:1;padding:.85rem 1rem;border-radius:16px;border:3px solid var(--border-color);background:#fff;font-size:1rem;transition:all .2s ease}.add-category-form input[type=text]:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #78c2ad33}.color-picker-input{width:48px;height:48px;padding:0;border:3px solid white;border-radius:8px;cursor:pointer;background:none;box-shadow:0 2px 6px var(--shadow-color);flex-shrink:0}.add-category-form button{background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #78c2ad66;transition:all .2s ease;border:2px solid rgba(255,255,255,.3)}.add-category-form button:hover{transform:scale(1.05);box-shadow:0 6px 16px #78c2ad80}.category-list-settings{display:flex;flex-direction:column;gap:.5rem}.category-setting-row{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;background:#fff;border:3px solid var(--border-color);border-radius:16px;transition:all .2s ease}.category-setting-row:hover{border-color:var(--primary-color);box-shadow:0 4px 12px var(--shadow-color)}.cat-info{display:flex;align-items:center;gap:.75rem;font-weight:600}.mini-color-picker{width:28px;height:28px;padding:0;border:3px solid white;border-radius:50%;cursor:pointer;background:none;box-shadow:0 2px 6px var(--shadow-color)}.cat-actions{display:flex;gap:.25rem}.move-btn,.delete-cat-btn{padding:8px;color:var(--text-color);border-radius:50%;transition:all .2s ease}.move-btn:hover{background:var(--bg-secondary);color:var(--primary-color)}.move-btn:disabled{opacity:.3}.delete-cat-btn:hover{background:#fce8e8;color:var(--danger-color)}.add-item-wrapper{position:relative;margin-bottom:2rem;z-index:10}.input-group{display:flex;gap:.5rem}.main-input{flex:1;padding:.9rem 1.25rem;border-radius:24px;border:3px solid var(--border-color);font-size:1rem;background:#fff;transition:all .2s ease;box-shadow:0 2px 8px var(--shadow-color)}.main-input:focus{outline:none;background:#fff;border-color:var(--primary-color);box-shadow:0 4px 16px #78c2ad40}.main-input::placeholder{color:#a89f8f}.add-button{background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);color:#fff;width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s ease;box-shadow:0 4px 16px #78c2ad66;border:3px solid rgba(255,255,255,.4)}.add-button:hover{transform:scale(1.08);box-shadow:0 6px 20px #78c2ad80}.add-button:active{transform:scale(.95)}.add-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.suggestions-list{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:16px;box-shadow:var(--shadow-lg);margin-top:.5rem;list-style:none;overflow:hidden;border:3px solid var(--border-color)}.suggestions-list li{padding:.85rem 1.25rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;border-bottom:2px solid var(--bg-secondary);transition:all .15s ease;font-weight:500}.suggestions-list li:last-child{border-bottom:none}.suggestions-list li:hover{background:linear-gradient(90deg,rgba(120,194,173,.1) 0%,transparent 100%);padding-left:1.5rem}.delete-suggestion{color:#b8a99a;padding:6px;border-radius:50%;transition:all .2s ease}.delete-suggestion:hover{color:var(--danger-color);background:#fce8e8}.shopping-list{flex:1;padding-bottom:4rem}.empty-state{text-align:center;color:#a89f8f;margin-top:3rem;font-weight:600;font-size:1.1rem}.category-group{margin-bottom:1.5rem;border-radius:20px;overflow:hidden;border:3px solid var(--border-color);box-shadow:0 4px 16px var(--shadow-color);background:#fff}.category-header{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#fff;margin-bottom:0;padding:.6rem 1rem;font-weight:700;background:linear-gradient(90deg,var(--primary-color) 0%,#9ed9cc 100%);border-bottom:2px solid rgba(255,255,255,.2)}.category-items{background:#fff;border-radius:0;border:none;overflow:hidden}.item-row{display:flex;align-items:center;padding:.85rem 1rem;border-bottom:2px dashed var(--bg-secondary);background:#fff;transition:all .2s ease}.item-row:last-child{border-bottom:none}.item-row:hover{background:linear-gradient(90deg,rgba(120,194,173,.05) 0%,transparent 100%)}.item-row.is-history{opacity:.5;background:var(--bg-secondary)}.item-row.is-history .item-name{text-decoration:line-through;color:#a89f8f}.check-button{width:28px;height:28px;margin-right:1rem;display:flex;align-items:center;justify-content:center;color:var(--border-color)}.checkbox{width:24px;height:24px;border:3px solid var(--border-color);border-radius:8px;transition:all .2s ease;background:#fff}.check-button:hover .checkbox{border-color:var(--primary-color);background:#78c2ad1a;transform:scale(1.1)}.item-content{flex:1;display:flex;flex-direction:column;cursor:pointer}.item-name{font-size:1rem;font-weight:600;color:var(--text-color)}.item-quantity{font-size:.85rem;color:#a89f8f;font-weight:500}.error-boundary{max-width:500px;margin:3rem auto;padding:1.5rem;text-align:center;background:#fff;border:3px solid var(--border-color);border-radius:20px;box-shadow:var(--shadow-lg)}.error-boundary h2{margin-bottom:.75rem}.error-boundary button{margin-top:1rem;padding:.75rem 1.5rem;border-radius:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);box-shadow:0 4px 12px #78c2ad66}.error-detail{margin-top:1rem;padding:.75rem;background:var(--bg-secondary);border-radius:10px;font-size:.8rem;color:#a3463f;white-space:pre-wrap;word-break:break-word;text-align:left}.badge-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.sale-badge,.opportunity-badge{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:#fff;font-weight:700;padding:2px 8px;border-radius:20px}.sale-badge{background:var(--warning-color)}.opportunity-badge{background:#9f7aea}.edit-button{padding:8px;color:#b8a99a;opacity:1;border-radius:50%;transition:all .2s ease}.edit-button:hover{color:var(--primary-color);background:#78c2ad1a}.history-section{margin-top:2rem;border-top:3px dashed var(--border-color);padding-top:1rem}.history-toggle{display:flex;align-items:center;gap:.5rem;color:#a89f8f;font-weight:600;width:100%;padding:.6rem .75rem;border-radius:12px;transition:all .2s ease}.history-toggle:hover{background:var(--bg-secondary);color:var(--text-color)}.history-list{margin-top:1rem;border-radius:16px;overflow:hidden;border:3px solid var(--border-color)}.modal-overlay{position:fixed;inset:0;background:#5d4e3780;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:linear-gradient(180deg,#fffdf5,#f5ede0);width:100%;max-width:400px;border-radius:24px;padding:0;box-shadow:0 20px 50px #5d4e3740;animation:popIn .3s cubic-bezier(.34,1.56,.64,1);border:4px solid var(--primary-color);overflow:hidden}@keyframes popIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);margin-bottom:0}.modal-header h2{color:#fff;font-weight:700;text-shadow:1px 1px 0 rgba(93,78,55,.2)}.modal-header button{color:#fff;padding:6px;border-radius:50%;background:#fff3;transition:all .2s ease}.modal-header button:hover{background:#fff6}.form-group{margin:1rem 1.25rem}.form-group label{display:block;font-size:.875rem;font-weight:700;margin-bottom:.5rem;color:var(--text-color)}.modal-input,.modal-select{width:100%;padding:.85rem 1rem;border:3px solid var(--border-color);border-radius:12px;font-size:1rem;background:#fff;transition:all .2s ease}.modal-input:focus,.modal-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #78c2ad33}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.modal-actions{display:flex;gap:.75rem;padding:1rem 1.25rem 1.5rem}.save-btn{flex:1;background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);color:#fff;padding:.85rem;border-radius:16px;font-weight:700;font-size:1rem;box-shadow:0 4px 12px #78c2ad66;transition:all .2s ease;border:2px solid rgba(255,255,255,.3)}.save-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px #78c2ad80}.delete-btn{padding:.85rem 1rem;background:#fce8e8;color:var(--danger-color);border-radius:16px;font-weight:700;transition:all .2s ease;border:2px solid transparent}.delete-btn:hover{background:var(--danger-color);color:#fff}.settings-manager{display:flex;flex-direction:column}.settings-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:#fff;padding:6px;border-radius:20px;border:3px solid var(--border-color);box-shadow:0 2px 8px var(--shadow-color)}.tab-button{flex:1;padding:.75rem 1rem;border-radius:14px;font-weight:600;color:#a89f8f;transition:all .2s ease}.tab-button.active{background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%);color:#fff;box-shadow:0 4px 12px #78c2ad66}.tab-button:not(.active):hover{color:var(--text-color);background:var(--bg-secondary)}.product-manager{display:flex;flex-direction:column;gap:1.5rem}.product-category-group{background:#fff;border:3px solid var(--border-color);border-radius:20px;overflow:hidden;box-shadow:0 4px 16px var(--shadow-color)}.product-category-header{padding:.75rem 1rem;background:linear-gradient(90deg,var(--bg-secondary) 0%,white 100%);font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color);border-bottom:2px solid var(--border-color)}.product-list{display:flex;flex-direction:column}.product-row{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-bottom:2px dashed var(--bg-secondary);transition:all .2s ease}.product-row:last-child{border-bottom:none}.product-row:hover{background:#78c2ad0d}.product-name{font-size:1rem;flex:1;font-weight:500}.drag-handle{display:flex;align-items:center;justify-content:center;color:#b8ab90;padding:6px;margin-right:.25rem;cursor:grab;touch-action:none;border-radius:8px;flex-shrink:0}.drag-handle:active{cursor:grabbing;background:#78c2ad1f}.product-row.dragging{background:#fff;border-radius:12px;box-shadow:var(--shadow-lg);border-bottom-color:transparent}.product-actions{display:flex;gap:.25rem}.product-edit-form{display:flex;gap:.5rem;flex:1;align-items:center}.product-name-input{flex:1;padding:.6rem .75rem;border:2px solid var(--border-color);border-radius:10px;font-size:.875rem;transition:all .2s ease}.product-name-input:focus{outline:none;border-color:var(--primary-color)}.product-category-select{padding:.6rem .75rem;border:2px solid var(--border-color);border-radius:10px;font-size:.875rem;max-width:120px;transition:all .2s ease}.product-category-select:focus{outline:none;border-color:var(--primary-color)}.edit-product-btn,.delete-product-btn,.save-edit-btn,.cancel-edit-btn{padding:8px;border-radius:50%;color:#b8a99a;transition:all .2s ease}.edit-product-btn:hover{background:var(--bg-secondary);color:var(--primary-color)}.delete-product-btn:hover{background:#fce8e8;color:var(--danger-color)}.save-edit-btn{color:var(--success-color)}.save-edit-btn:hover{background:#e8f5e8}.cancel-edit-btn:hover{background:var(--bg-secondary);color:var(--text-color)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:10px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.undo-notification{position:fixed;bottom:2rem;left:50%;transform:translate(-50%) translateY(100px);background:transparent;padding:0;z-index:1000;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease;touch-action:none}.undo-button{background:var(--text-color);color:var(--bg-color);padding:.6rem 1.25rem;border-radius:50px;font-size:.9rem;display:flex;align-items:center;gap:.6rem;box-shadow:0 4px 15px #0003;border:2px solid rgba(255,255,255,.1);font-weight:700;transition:all .2s ease}.undo-button:hover{background:var(--primary-color);color:#fff;transform:scale(1.05);box-shadow:0 6px 20px #78c2ad66}.data-manager{display:flex;flex-direction:column;gap:1rem}.data-info{display:flex;align-items:center;gap:.5rem;background:#fff;border:3px solid var(--border-color);border-radius:16px;padding:.9rem 1rem;color:var(--text-color);box-shadow:0 2px 8px var(--shadow-color)}.data-hint{color:#a89f8f;font-size:.95rem;font-weight:600;padding:0 .25rem}.data-actions{display:flex;flex-direction:column;gap:.75rem}.data-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem;border-radius:16px;font-weight:700;font-size:1rem;color:#fff;transition:all .2s ease;box-shadow:0 4px 12px var(--shadow-color)}.export-btn{background:linear-gradient(135deg,var(--primary-color) 0%,#9ed9cc 100%)}.import-btn{background:linear-gradient(135deg,var(--accent-color) 0%,#a7e3ec 100%)}.data-btn:hover{transform:scale(1.02)}.import-warning{display:flex;align-items:center;gap:.5rem;color:#b07a4a;font-size:.9rem;font-weight:600;padding:0 .25rem}.data-status{padding:.9rem 1rem;border-radius:16px;font-weight:700;font-size:.95rem}.data-status.success{background:#8dd87c2e;border:3px solid var(--success-color);color:#4a7c3a}.data-status.error{background:#f28b822e;border:3px solid var(--danger-color);color:#a3463f}
