/* ══════════════════════════════════════════
   PANELS — Side panel, favorites, pantry, shopping list, collections,
            profile, seasonal, expiry, recently viewed, macro goals, history
   ══════════════════════════════════════════ */

/* ── SIDE PANEL BASE ── */
.side-panel{position:fixed;top:0;right:-440px;width:420px;height:100vh;background:var(--warm-white);z-index:300;box-shadow:-8px 0 40px rgba(30,26,22,.18);transition:right .35s ease;display:flex;flex-direction:column}
.side-panel.open{right:0}
.panel-header{background:var(--dark-green);padding:20px 26px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.panel-header h3{font-family:'Playfair Display',serif;font-size:20px;color:#F5F0E8;font-weight:700}
.panel-close{background:none;border:none;color:#F5F0E8;font-size:20px;cursor:pointer;opacity:.7;transition:opacity .2s}
.panel-close:hover{opacity:1}
.panel-body{flex:1;overflow-y:auto;padding:14px}

/* ── FAVORITES PANEL ── */
.fav-empty{text-align:center;padding:50px 20px;color:var(--ink-light)}
.fav-empty span{font-size:40px;display:block;margin-bottom:10px}
.fav-item{display:flex;gap:12px;padding:12px;background:var(--cream);margin-bottom:6px;cursor:pointer;transition:background .2s;align-items:center}
.fav-item:hover{background:var(--input-bg)}
.fav-item-thumb{width:48px;height:48px;object-fit:cover;flex-shrink:0}
.fav-cat{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--terracotta);margin-bottom:2px}
.fav-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:var(--ink)}
.fav-item-remove{background:none;border:none;font-size:15px;cursor:pointer;opacity:.35;margin-left:auto;padding:4px;color:var(--ink)}
.fav-item-remove:hover{opacity:1}

/* ── PANTRY PANEL ── */
.pantry-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pantry-tag{background:var(--cream);border:1px solid var(--border);padding:5px 10px;font-size:13px;display:flex;align-items:center;gap:6px;color:var(--ink)}
.pantry-tag button{background:none;border:none;cursor:pointer;color:var(--ink-light);font-size:14px;padding:0;line-height:1}
.pantry-input-row{display:flex;gap:8px;margin-top:14px}
.pantry-input-row input{flex:1;padding:9px 12px;background:var(--input-bg);border:1.5px solid var(--border);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--ink);outline:none}
.pantry-input-row input:focus{border-color:var(--sage)}
.pantry-input-row button{background:var(--sage);border:none;color:white;padding:9px 16px;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:13px;white-space:nowrap}
.pantry-info{font-size:13px;color:var(--ink-light);margin-top:10px;line-height:1.6}

/* ── SHOPPING LIST PANEL ── */
.shop-list{list-style:none;padding:0}
.shop-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px;color:var(--ink)}
.shop-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--terracotta);cursor:pointer;flex-shrink:0}
.shop-item.checked span{text-decoration:line-through;color:var(--ink-light)}
.shop-item-remove{background:none;border:none;cursor:pointer;color:var(--ink-light);margin-left:auto;font-size:13px}
.shop-item-remove:hover{color:var(--terracotta)}
.shop-aisle-header{display:flex;align-items:center;gap:8px;padding:14px 0 6px;margin-top:6px;border-bottom:2px solid var(--border)}
.shop-aisle-icon{font-size:18px}
.shop-aisle-name{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:var(--ink)}
.shop-aisle-count{font-size:11px;color:var(--ink-light);margin-left:auto}
.shop-actions{display:flex;gap:8px;padding:14px 0;border-top:1px solid var(--border);margin-top:10px}
.shop-actions button{flex:1;padding:9px;border:1.5px solid var(--border);background:transparent;font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;color:var(--ink-light);transition:all .2s}
.shop-actions button:hover{border-color:var(--terracotta);color:var(--terracotta)}

/* ── COLLECTIONS ── */
.coll-item{background:var(--cream);padding:14px 16px;margin-bottom:8px;cursor:pointer;border:1.5px solid var(--border);transition:border-color .2s}
.coll-item:hover{border-color:var(--terracotta)}
.coll-header-row{display:flex;align-items:center;gap:10px}
.coll-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.coll-name{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;flex:1;color:var(--ink)}
.coll-count{font-size:11px;color:var(--ink-light)}
.coll-delete{background:none;border:none;cursor:pointer;opacity:.3;font-size:14px;color:var(--ink);padding:2px 6px}
.coll-delete:hover{opacity:1;color:var(--terracotta)}
.coll-picker-item{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--cream);margin-bottom:6px;cursor:pointer;border:1.5px solid var(--border);transition:all .2s}
.coll-picker-item:hover{border-color:var(--sage)}
.coll-picker-item.in-coll{border-color:var(--sage);background:rgba(122,158,126,.1)}

/* ── PROFILE ── */
.profile-avatar{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:36px;margin:0 auto 12px;cursor:pointer;border:3px solid var(--border);transition:border-color .2s}
.profile-avatar:hover{border-color:var(--terracotta)}
.profile-stat{text-align:center;padding:16px}
.profile-stat-num{font-family:'Playfair Display',serif;font-size:28px;font-weight:900;color:var(--terracotta)}
.profile-stat-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light)}

/* ── SEASONAL ── */
.season-chip{padding:6px 14px;font-size:12px;cursor:pointer;border:1.5px solid var(--border);background:transparent;font-family:'DM Sans',sans-serif;color:var(--ink-light);transition:all .2s}
.season-chip.active{background:var(--sage);border-color:var(--sage);color:white}
.season-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:14px;color:var(--ink)}

/* ── EXPIRY ── */
.exp-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.exp-badge{padding:3px 8px;font-size:10px;font-weight:600;letter-spacing:.08em}
.exp-fresh{background:#d4edda;color:#155724}
.exp-soon{background:#fff3cd;color:#856404}
.exp-urgent{background:#f8d7da;color:#721c24}

/* ── STREAK ── */
.streak-banner{background:linear-gradient(135deg,var(--terracotta),var(--gold));padding:14px 20px;display:flex;align-items:center;gap:14px;cursor:pointer}
.streak-flame{font-size:32px}
.streak-text{color:white}
.streak-num{font-family:'Playfair Display',serif;font-size:22px;font-weight:900}
.streak-label{font-size:12px;opacity:.85}

/* ── MACRO GOALS ── */
.goal-row{margin-bottom:14px}
.goal-row label{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-light);margin-bottom:6px}
.goal-row input{width:100%;padding:9px 12px;background:var(--input-bg);border:1.5px solid var(--border);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--ink);outline:none}
.goal-row input:focus{border-color:var(--terracotta)}
.goal-bar-wrap{height:8px;background:var(--border);border-radius:4px;margin-top:4px;overflow:hidden}
.goal-bar{height:100%;border-radius:4px;transition:width .5s ease}

/* ── HISTORY ── */
.history-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);align-items:center;cursor:pointer}
.history-item:hover .history-title{color:var(--terracotta)}
.history-icon{font-size:28px;flex-shrink:0}
.history-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;color:var(--ink)}
.history-date{font-size:11px;color:var(--ink-light)}
