:root{--bg-color:#f4f7f9;--card-bg:#fff;--text-main:#1e293b;--text-muted:#64748b;--primary:#3b82f6;--primary-hover:#2563eb;--success:#10b981;--danger:#ef4444;--danger-hover:#dc2626;--border:#e2e8f0;--shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;--radius:16px;--radius-sm:10px;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1)}[data-theme=dark]{--bg-color:#0f172a;--card-bg:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--primary:#60a5fa;--primary-hover:#3b82f6;--success:#34d399;--danger:#f87171;--danger-hover:#ef4444;--border:#334155;--shadow:0 10px 15px -3px #0000004d}*{box-sizing:border-box}body{background-color:#f4f7f9;background-color:var(--bg-color);color:#1e293b;color:var(--text-main);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;transition:background-color all .2s cubic-bezier(.4,0,.2,1);transition:background-color var(--transition)}.app-container{min-height:100vh;padding-bottom:60px}.max-width-wrapper{margin:0 auto;max-width:560px;padding:0 16px}.header{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:24px 0 16px}.header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#8b5cf6);background:linear-gradient(135deg,var(--primary),#8b5cf6);-webkit-background-clip:text;background-clip:text;font-size:26px;font-weight:800;letter-spacing:-.5px;margin:0}.header-actions{gap:8px}.header-actions,.theme-toggle{align-items:center;display:flex}.theme-toggle{background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:50%;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;box-shadow:var(--shadow);cursor:pointer;font-size:18px;height:40px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:40px}.theme-toggle:hover{border-color:#3b82f6;border-color:var(--primary);transform:scale(1.05)}.logout-btn{background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:20px;color:#64748b;color:var(--text-muted);cursor:pointer;font-size:13px;font-weight:600;padding:8px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.logout-btn:hover{border-color:#ef4444;border-color:var(--danger);color:#ef4444;color:var(--danger)}.tab-container{background:#e2e8f0;background:var(--border);border-radius:12px;display:flex;gap:4px;margin-bottom:22px;padding:4px}.tab{background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:14px;font-weight:600;padding:10px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.tab.active{color:#3b82f6;color:var(--primary)}.panel-card,.tab.active{background:#fff;background:var(--card-bg);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;box-shadow:var(--shadow)}.panel-card{border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);margin-bottom:18px;padding:18px}.card-title{font-size:17px;margin:0 0 14px}.empty-hint{color:#64748b;color:var(--text-muted);margin-top:40px;text-align:center}.input-row{display:flex;flex-wrap:wrap;gap:8px}.input-main{background:#f4f7f9;background:var(--bg-color);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-sm);color:#1e293b;color:var(--text-main);flex:1 1;font-size:16px;min-width:0;outline:none;padding:12px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.input-block{margin-bottom:12px;width:100%}.input-qty{flex:0 0 80px;padding:12px 8px;text-align:center;width:80px}.select-unit{background:#f4f7f9;background:var(--bg-color);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-sm);color:#1e293b;color:var(--text-main);flex:0 0 96px;font-size:15px;outline:none;padding:12px 10px}.input-main:focus,.select-unit:focus,.textarea-field:focus{border-color:#3b82f6;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.textarea-field{background:#f4f7f9;background:var(--bg-color);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-sm);color:#1e293b;color:var(--text-main);font-family:inherit;font-size:15px;margin-bottom:12px;min-height:84px;outline:none;padding:12px;resize:vertical;width:100%}.btn-primary{background:#3b82f6;background:var(--primary);border:none;border-radius:10px;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:15px;font-weight:700;padding:12px 18px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);white-space:nowrap}.btn-primary:hover{background:#2563eb;background:var(--primary-hover)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-block{width:100%}.btn-ghost{background:#0000;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-sm);color:#64748b;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:600;padding:10px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-ghost:hover{border-color:#3b82f6;border-color:var(--primary);color:#3b82f6;color:var(--primary)}.btn-danger{background:#ef4444;background:var(--danger);border:none;border-radius:10px;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-weight:700;padding:10px 16px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-danger:hover{background:#dc2626;background:var(--danger-hover)}.btn-small{font-size:13px;padding:8px 12px}.icon-btn{background:#0000;border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:10px;border-radius:var(--radius-sm);cursor:pointer;font-size:15px;line-height:1;padding:8px 10px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.icon-btn:hover{border-color:#3b82f6;border-color:var(--primary)}.icon-btn-danger:hover{border-color:#ef4444;border-color:var(--danger)}.list-selector{align-items:center;display:flex;gap:10px;margin-bottom:8px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}.list-selector::-webkit-scrollbar{display:none}.list-pill-group{align-items:center;display:flex;flex-shrink:0;gap:4px}.list-pill-group.active{background:#f4f7f9;background:var(--bg-color);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:22px;padding:2px 4px 2px 2px}.list-pill-controls{align-items:center;display:flex;gap:2px}.list-control-btn{align-items:center;background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:50%;color:#64748b;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:28px;justify-content:center;line-height:1;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);width:28px}.list-control-btn:hover:not(:disabled){border-color:#3b82f6;border-color:var(--primary);color:#3b82f6;color:var(--primary)}.list-control-btn:disabled{cursor:not-allowed;opacity:.35}.list-control-btn-danger:hover:not(:disabled){border-color:#ef4444;border-color:var(--danger);color:#ef4444;color:var(--danger)}.list-pill{background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:20px;color:#64748b;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition);white-space:nowrap}.list-pill:hover{color:#1e293b;color:var(--text-main)}.list-pill.active,.list-pill:hover{border-color:#3b82f6;border-color:var(--primary)}.list-pill.active{background:#3b82f6;background:var(--primary);color:#fff}.list-pill-add{background:#0000;border:1px dashed #64748b;border:1px dashed var(--text-muted)}.add-item-form{display:flex;flex-direction:column;gap:10px}.add-item-form>.input-main{width:100%}.add-item-details{align-items:stretch;display:flex;gap:8px}.add-item-details .input-qty{flex:0 0 80px;width:80px}.add-item-details .select-unit{flex:1 1;min-width:0}.add-item-details .btn-primary{flex-shrink:0;padding:12px 16px}.view-toggle{background:#e2e8f0;background:var(--border);border-radius:12px;display:flex;gap:4px;margin-bottom:14px;padding:4px}.view-toggle-btn{background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--text-muted);cursor:pointer;flex:1 1;font-size:13px;font-weight:600;padding:9px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.view-toggle-btn.active{background:#fff;background:var(--card-bg);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;box-shadow:var(--shadow);color:#3b82f6;color:var(--primary)}.list-action-bar{align-items:center;color:#64748b;color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:14px;font-weight:600;gap:10px;justify-content:space-between;margin-bottom:14px}.list-action-buttons{display:flex;flex-wrap:wrap;gap:8px}.btn-clear-checked{background:#0000;border:1px solid #ef4444;border:1px solid var(--danger);border-radius:20px;color:#ef4444;color:var(--danger);cursor:pointer;font-size:13px;font-weight:700;padding:8px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.btn-clear-checked:hover{background:#ef4444;background:var(--danger);color:#fff}.category-block{margin-bottom:22px}.group-header{align-items:center;border-bottom:2px solid #e2e8f0;border-bottom:2px solid var(--border);display:flex;gap:8px;justify-content:space-between;margin-bottom:10px;padding:4px 4px 8px}.group-header-recipe{border-bottom-color:#3b82f6;border-bottom-color:var(--primary)}.group-checkbox-label{align-items:center;cursor:pointer;display:inline-flex;flex:1 1;gap:10px}.group-checkbox-label input,.item-checkbox{accent-color:#3b82f6;accent-color:var(--primary);cursor:pointer;flex-shrink:0;height:20px;width:20px}.group-title{color:#64748b;color:var(--text-muted);font-size:14px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.group-header-recipe .group-title{color:#3b82f6;color:var(--primary)}.group-count{background:#f4f7f9;background:var(--bg-color);border-radius:10px;color:#64748b;color:var(--text-muted);font-size:12px;font-weight:700;padding:3px 8px}.item-row{background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:12px;box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;box-shadow:var(--shadow);gap:10px;justify-content:space-between;margin-bottom:8px;padding:12px 14px;transition:all .2s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.item-left,.item-row{align-items:center;display:flex}.item-left{cursor:pointer;flex:1 1;gap:12px;min-width:0}.item-name{font-size:15px;font-weight:500;overflow-wrap:anywhere}.item-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.item-meta{background:#f4f7f9;background:var(--bg-color);border-radius:6px;color:#64748b;color:var(--text-muted);font-size:12px;font-weight:600;padding:4px 8px;white-space:nowrap}.row-checked{opacity:.55}.row-checked .item-name{color:#64748b;color:var(--text-muted);text-decoration:line-through}.card-grid{display:flex;flex-direction:column;gap:14px}.recipe-header-inline{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:10px}.recipe-header-inline h4{font-size:18px;margin:0}.recipe-ingredients-preview{color:#64748b;color:var(--text-muted);font-size:14px;line-height:1.6;margin:0 0 14px;padding-left:18px}.scale-controls{align-items:center;display:flex;font-size:14px;font-weight:600;gap:8px}.scale-value{min-width:38px;text-align:center}.scale-btn{background:#f4f7f9;background:var(--bg-color);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:8px;color:#1e293b;color:var(--text-main);cursor:pointer;font-size:16px;font-weight:700;height:30px;width:30px}.scale-btn:hover{border-color:#3b82f6;border-color:var(--primary)}.card-actions{align-items:center;display:flex;gap:8px}.card-actions .btn-primary{flex:1 1}.recipe-controls-card{display:flex;flex-direction:column;gap:12px}.recipe-list-selector{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.recipe-list-selector label{color:#64748b;color:var(--text-muted);font-size:14px;font-weight:600}.select-list{flex:1 1;min-width:160px}.favorite-card{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:0}.favorite-info{display:flex;flex-direction:column;gap:6px}.favorite-info strong{font-size:15px}.login-screen,.splash-screen{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -1px #00000008;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px;max-width:380px;padding:28px 24px;width:100%}.login-brand{text-align:center}.login-emoji{font-size:44px}.login-brand h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#8b5cf6);background:linear-gradient(135deg,var(--primary),#8b5cf6);-webkit-background-clip:text;background-clip:text;font-size:24px;font-weight:800;margin:8px 0 4px}.login-brand p{color:#64748b;color:var(--text-muted);font-size:14px;margin:0}.field{display:flex;flex-direction:column;gap:6px}.field-label{color:#64748b;color:var(--text-muted);font-size:13px;font-weight:600}.field-row{display:flex;gap:12px}.field-row .field{flex:1 1}.checkbox-field{align-items:center;color:#64748b;color:var(--text-muted);cursor:pointer;display:flex;font-size:14px;gap:10px}.checkbox-field input{accent-color:#3b82f6;accent-color:var(--primary);height:18px;width:18px}.login-error{color:#ef4444;color:var(--danger);font-size:14px;font-weight:600;margin:0;text-align:center}.modal-overlay{align-items:center;animation:fadeIn .15s ease;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal-card{animation:popIn .18s ease;background:#fff;background:var(--card-bg);border:1px solid #e2e8f0;border:1px solid var(--border);border-radius:16px;border-radius:var(--radius);box-shadow:0 20px 40px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:420px;outline:none;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:18px 20px}.modal-header h3{font-size:17px;margin:0}.modal-close{background:#0000;border:none;color:#64748b;color:var(--text-muted);cursor:pointer;font-size:18px;line-height:1}.modal-body{overflow-y:auto;padding:20px}.modal-form{display:flex;flex-direction:column;gap:14px}.modal-message{font-size:15px;line-height:1.5;margin:0}.modal-footer{border-top:1px solid #e2e8f0;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 20px}.notification-checkmark{animation:fadeInOutBanner 1.2s ease-in-out forwards;font-size:40px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:9999}.notification-checkmark.center{animation:fadeInOutCenter 1.2s ease-in-out forwards;left:50%;right:auto;top:50%;transform:translate(-50%,-50%)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fadeInOutBanner{0%{opacity:0;transform:scale(.5)}20%{opacity:1;transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes fadeInOutCenter{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@media (max-width:480px){.add-item-details{flex-wrap:wrap}.add-item-details .input-qty{flex:1 1 72px;width:auto}.add-item-details .select-unit{flex:1 1 100px}.add-item-details .btn-primary{flex:1 1 100%}.input-qty{flex:1 1 70px}.select-unit{flex:1 1 90px}.input-row .btn-primary{flex:1 1 100%}.field-row{flex-direction:column}.recipe-header-inline h4{font-size:16px}}
/*# sourceMappingURL=main.0e276c5e.css.map*/