:root{--color-bg:#d9ded7;--color-surface:#fff;--color-surface-muted:#eef1ee;--color-border:#dde3de;--color-border-strong:#c7cfc9;--color-text:#202822;--color-text-muted:#63706a;--color-primary:#2f9e6e;--color-primary-hover:#278a5e;--color-primary-contrast:#fff;--color-primary-tint:#e4f4ec;--color-danger:#d33f3f;--color-danger-hover:#b93434;--color-danger-tint:#fbeaea;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #141e190f;--shadow-md:0 4px 16px #141e1914;--shadow-lg:0 12px 32px #141e192e;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--fab-clearance:6.5rem}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);margin:0}#app{max-width:800px;margin:0 auto}button{font:inherit;color:inherit}button:not([class]){border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;padding:.45rem .9rem;transition:background-color .12s,border-color .12s}button:not([class]):hover{background:var(--color-surface-muted)}button:not([class]):active{background:var(--color-border)}button[type=submit]:not([class]){background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-contrast);font-weight:600}button[type=submit]:not([class]):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}input[type=text],input[type=password],input[type=email],input[type=number],select,textarea{font:inherit;color:inherit;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);padding:.4rem .55rem}.appHeader{cursor:pointer;border-bottom:1px solid var(--color-border);padding:.75rem 1rem}.appHeader h1{letter-spacing:-.01em;color:var(--color-primary-hover);margin:0;font-size:1.4rem}.syncStatus{color:var(--color-text-muted);margin-top:.15rem;font-size:.75rem;display:block}.navBar{flex-wrap:wrap;align-items:flex-end;gap:.25rem;padding:.5rem .5rem 0;display:flex}.tab{border:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;border-bottom:none;padding:.4rem .9rem;transition:background-color .12s,color .12s}.tab:hover{background:var(--color-border)}.tab.active{background:var(--color-surface);border-bottom:1px solid var(--color-surface);color:var(--color-text);margin-bottom:-1px;font-weight:600;position:relative}.tabBody{border-top:1px solid var(--color-border);background:var(--color-surface);border-radius:0 var(--radius-lg) var(--radius-lg) var(--radius-lg);padding:1.25rem}.logoutButton{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;align-self:center;align-items:center;gap:.4rem;padding:.4rem .9rem;display:flex}.logoutButton:hover{background:var(--color-surface-muted)}.logoutIcon{width:1.1rem;height:1.1rem;display:none}@media (width<=480px){.navBar{gap:.15rem;padding:.5rem .35rem 0}.tab{padding:.4rem .5rem}.logoutButton{padding:.4rem .55rem}.logoutButton .logoutLabel{display:none}.logoutButton .logoutIcon{display:block}}.tabContent.narrow{max-width:400px}.tabContent form{flex-direction:column;gap:.75rem;display:flex}.tabContent label{flex-direction:column;gap:.25rem;display:flex}.error{color:var(--color-danger);margin-bottom:.5rem}.msg{color:var(--color-primary-hover);margin-bottom:.5rem}.forgotLink{color:var(--color-primary-hover);cursor:pointer;font-size:.9rem;text-decoration:underline}.buildListTab select{margin-bottom:1rem}.buildListTab{padding-bottom:var(--fab-clearance)}.buildListTab:focus,.buildListTab:focus-visible{outline:none}.aisle{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:.75rem;overflow:hidden}.aisle.dropTarget{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary)}.item.dropTarget{outline:2px solid var(--color-primary);outline-offset:-2px}.aisleLabel{background:var(--color-surface-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;padding:.5rem .75rem;font-weight:600;display:flex}.aisleLabel input{min-width:0;font-weight:600;font-size:inherit;border:1px solid var(--color-border-strong);flex:1;padding:0 .25rem}.aisleNameText{flex:1}.emptyAislePlaceholder{color:var(--color-text-muted);padding:.6rem .75rem;font-size:.85rem;font-style:italic}.deleteAisle{color:var(--color-danger);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1rem}.deleteAisle:disabled{color:var(--color-text-muted);cursor:not-allowed}.item{border-top:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.item.disabled{background:var(--color-surface-muted);color:var(--color-text-muted)}.itemName{flex:1}.itemCount{width:4rem}.dragHandle{color:var(--color-text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 .4rem}.dragHandle:active{cursor:grabbing}.toggleEnabled{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;padding:0;display:flex}.deleteItem{color:var(--color-danger);cursor:pointer;background:0 0;border:none;padding:0 .25rem;font-size:1rem}.shopItem{border-top:1px solid var(--color-border);align-items:center;gap:.5rem;padding:.35rem .6rem;display:flex}.shopItem.done .itemName{opacity:.5;text-decoration:line-through}.shopItem .itemCount{width:auto;font-weight:600}.shopItem .itemName{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:.6rem 0}.menuTab{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.menuTab .buttonPane{grid-column:1/-1}.weekDay{border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.dayLabel{background:var(--color-surface-muted);padding:.45rem .6rem;font-weight:600}.menuItem{border-top:1px solid var(--color-border);align-items:center;gap:.25rem;padding:.25rem .5rem;display:flex}.emptyDayDropZone{min-height:2rem}.emptyDayDropZone.isOver{background:var(--color-surface-muted)}.menuItem .itemName{flex:1;font-size:.9rem}.settingsTab{flex-direction:column;gap:1.5rem;max-width:400px;display:flex}.settingRow label{align-items:center;gap:.5rem;display:flex}.listNamesWidget{align-items:flex-start;gap:.5rem;margin-top:.5rem;display:flex}.listNamesWidget select{flex:1}.listNamesWidget .buttons{flex-direction:column;gap:.25rem;display:flex}.buttonPane{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.floatingButtons{flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.floatingButtons button{background:var(--color-primary);color:var(--color-primary-contrast);border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-md);border:none;padding:.55rem 1.1rem;font-size:1rem;font-weight:600;transition:background-color .12s}.floatingButtons button:hover{background:var(--color-primary-hover)}.modalOverlay{z-index:100;background:#0f141180;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:90%;min-width:300px;max-width:500px;max-height:80vh;padding:1.5rem;position:relative;overflow-y:auto}.modal .close{cursor:pointer;color:var(--color-text-muted);font-size:1.5rem;line-height:1;position:absolute;top:.5rem;right:.75rem}.modal h3{margin:0 0 1rem}.modal form{flex-direction:column;gap:.75rem;display:flex}.modal label{flex-direction:column;gap:.25rem;display:flex}.modal .actions{gap:.5rem;display:flex}.printView .printContent{column-count:2;column-gap:1rem}.printAisle{break-inside:avoid;margin-bottom:.75rem}.printAisleLabel{border-bottom:1px solid var(--color-border-strong);font-weight:600}@media print{body{background:#fff}#app>.appHeader,#app>.navBar,#app>.tabBody{display:none}.modalOverlay{background:0 0;display:block;position:static}.printView.modal{width:auto;max-width:none;max-height:none;box-shadow:none;border-radius:0;margin:0;padding:0;position:static;overflow:visible}.printView .close{display:none}}.printItem{padding:.1rem .25rem}.recipesModal{max-width:900px}.recipeCards{flex-wrap:wrap;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;display:flex}.recipeCard{border:1px solid var(--color-border);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-sm);background:var(--color-surface);overflow:hidden}.recipeCard.editing{border-color:var(--color-primary)}.recipeCard .cardHeader{background:var(--color-surface-muted);align-items:center;gap:.4rem;padding:.35rem .5rem;font-weight:600;display:flex}.recipeCard .cardTitle{flex:1}.recipeCard input.cardTitle.name{width:100%;font-weight:600;font-size:inherit;border:1px solid var(--color-border-strong);padding:0 .25rem}.recipeCard .cardBody{padding:.5rem}.recipeCard .editBtn,.recipeCard .selectBtn{float:right;cursor:pointer;background:0 0;border:none;padding:.2rem}.recipeCard .editBtn img,.recipeCard .selectBtn img{width:1.2rem;height:1.2rem}.recipeCard .recipeText{white-space:pre-wrap;clear:both;margin:.25rem 0}.recipeCard ul{margin:.5rem 0 0;padding-left:1.2rem}.recipeCard li.keyIngredient{color:#25a}.recipeCard li.commonIngredient{color:var(--color-text-muted)}.recipeCard input.keyIngredients,.recipeCard input.commonIngredients{border:none;border-bottom:1px solid var(--color-border);width:100%;font:inherit;padding:.15rem 0}.recipeCard input.keyIngredients{color:#25a}.recipeCard input.commonIngredients{color:var(--color-text-muted)}.recipeCard input.keyIngredients::placeholder{color:#a9c0e0}.recipeCard input.commonIngredients::placeholder{color:#bbb}.recipeCard textarea.description{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font:inherit;resize:none;padding:.3rem}.recipeCard .cardActions{gap:.5rem;margin-top:.5rem;display:flex}.deleteWidget{float:right;align-items:center;gap:.35rem;display:flex}.deleteWidget .button{cursor:pointer;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.1rem .4rem}.deleteWidget .delete{color:var(--color-danger)}.deleteWidget .yes{color:var(--color-primary-hover)}.deleteWidget .no{color:var(--color-danger)}
