:root{--color-primary: #2e7d32;--color-bg: #ffffff;--color-text: #1a1a1a;--color-muted: #5f6368;--color-border: #e0e0e0;--color-connected: #2e7d32;--color-unreachable: #c62828;--color-checking: #f9a825;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--color-text);background-color:var(--color-bg)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}body{-webkit-font-smoothing:antialiased}.app{max-width:640px;margin:0 auto;padding:1.5rem 1rem;padding-top:calc(1.5rem + env(safe-area-inset-top))}.app-header h1{font-size:1.6rem;margin:0 0 .5rem;color:var(--color-primary)}.status{display:inline-block;margin:0;font-size:.9rem;font-weight:600}.status--connected{color:var(--color-connected)}.status--unreachable{color:var(--color-unreachable)}.status--checking{color:var(--color-checking)}.card{margin-top:1.5rem;padding:1.25rem;border:1px solid var(--color-border);border-radius:12px;background:#fafafa}.card h2{margin:0 0 .75rem;font-size:1.2rem}.card p{margin:0;line-height:1.6;color:var(--color-muted)}.pantry-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.pantry-input{flex:1 1 100%;padding:.6rem .75rem;font-size:1rem;border:1px solid var(--color-border);border-radius:8px;background:#fff}.pantry-add{flex:1 1 100%;padding:.6rem 1rem;font-size:1rem;font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:8px;cursor:pointer}.pantry-add:disabled{opacity:.5;cursor:not-allowed}.pantry-error{margin:0 0 1rem;color:var(--color-unreachable);font-size:.9rem}.pantry-muted{margin:0;color:var(--color-muted)}.pantry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.pantry-item{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid var(--color-border);border-radius:10px;background:#fff}.pantry-item-info{display:flex;align-items:baseline;gap:.5rem}.pantry-item-name{font-weight:600}.pantry-item-category{font-size:.8rem;color:var(--color-muted)}.pantry-levels{display:flex;gap:.4rem}.level-button{flex:1;padding:.4rem .5rem;font-size:.85rem;border:1px solid var(--color-border);border-radius:999px;background:#fff;color:var(--color-muted);cursor:pointer}.level-button--out.is-active{background:var(--color-unreachable);border-color:var(--color-unreachable);color:#fff}.level-button--low.is-active{background:var(--color-checking);border-color:var(--color-checking);color:#1a1a1a}.level-button--stocked.is-active{background:var(--color-connected);border-color:var(--color-connected);color:#fff}.card .nl-intro{margin-bottom:1rem;font-size:.9rem}.nl-preview{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:10px;background:#fff}.card .nl-preview-title{margin:0 0 .6rem;font-weight:600;color:var(--color-text)}.nl-preview-list{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.nl-preview-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.nl-preview-name{font-weight:600}.nl-preview-actions{display:flex;gap:.5rem}.nl-preview-actions .pantry-add{flex:0 0 auto}.nl-cancel{flex:0 0 auto;padding:.6rem 1rem;font-size:1rem;font-weight:600;color:var(--color-muted);background:#fff;border:1px solid var(--color-border);border-radius:8px;cursor:pointer}.nl-cancel:disabled{opacity:.5;cursor:not-allowed}.pantry-mic{flex:0 0 auto;padding:.6rem .85rem;font-size:1rem;background:#fff;border:1px solid var(--color-border);border-radius:8px;cursor:pointer}.pantry-mic[aria-pressed=true]{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.pantry-mic:disabled{opacity:.5;cursor:not-allowed}.pantry-listening{margin:0 0 1rem;color:var(--color-muted);font-size:.9rem}.card .meals-intro{margin-bottom:1rem;font-size:.9rem}.meals-form,.nl-form{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.meals-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.meal-card{padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:8px;background:#fff}.meal-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.meal-name{font-weight:600}.meal-badge{flex:0 0 auto;padding:.15rem .6rem;font-size:.75rem;font-weight:600;border-radius:999px}.meal-badge--ready{background:var(--color-connected);color:#fff}.meal-badge--missing{background:var(--color-checking);color:#1a1a1a}.card .meal-description{margin-top:.4rem;font-size:.9rem}.card .meal-meta{margin-top:.4rem;font-size:.85rem}.card .meal-meta--missing{color:var(--color-unreachable)}.meal-meta-label{font-weight:600}.shopping-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.shopping-header h2{margin:0}.shopping-refresh{flex:0 0 auto;padding:.35rem .8rem;font-size:.85rem;font-weight:600;color:var(--color-primary);background:#fff;border:1px solid var(--color-primary);border-radius:999px;cursor:pointer}.shopping-refresh:disabled{opacity:.5;cursor:not-allowed}.card .shopping-intro{margin:.5rem 0 1rem;font-size:.9rem}.shopping-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.shopping-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;border:1px solid var(--color-border);border-radius:8px;background:#fff}.shopping-item-name{font-weight:600}.level-badge{flex:0 0 auto;padding:.15rem .6rem;font-size:.75rem;font-weight:600;border-radius:999px}.level-badge--out{background:var(--color-unreachable);color:#fff}.level-badge--low{background:var(--color-checking);color:#1a1a1a}.level-badge--stocked{background:var(--color-connected);color:#fff}@media (min-width: 600px){.app{padding:2.5rem 1.5rem}.meals-form .pantry-input,.nl-form .pantry-input{flex:1 1 auto}.meals-form .pantry-add,.nl-form .pantry-add{flex:0 0 auto}.app-header h1{font-size:2rem}.pantry-input{flex:1 1 auto}.pantry-add{flex:0 0 auto}.pantry-item{flex-direction:row;align-items:center;justify-content:space-between}.pantry-levels{flex:0 0 auto}}.auth-intro{margin:.25rem 0 0;color:var(--color-muted);font-size:.95rem}.auth-card{max-width:28rem;margin:0 auto}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-field{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--color-muted)}.auth-household{border:1px solid var(--color-border);border-radius:8px;padding:.75rem;margin:0;display:flex;flex-direction:column;gap:.75rem}.auth-household legend{padding:0 .35rem;font-size:.85rem;color:var(--color-muted)}.auth-toggle{display:flex;gap:.5rem}.auth-toggle-button{flex:1 1 auto;padding:.5rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);cursor:pointer;font-size:.85rem}.auth-toggle-button.is-active{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.auth-switch{margin:1rem 0 0;font-size:.9rem;color:var(--color-muted)}.auth-link{border:none;background:none;padding:0;color:var(--color-primary);font-size:inherit;cursor:pointer;text-decoration:underline}.session-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.5rem;font-size:.85rem;color:var(--color-muted)}.session-invite code{font-size:.85rem}.session-logout{border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text);padding:.35rem .75rem;cursor:pointer;font-size:.85rem}
