/* ══════════════════════════════════════════
   FEATURES — Leaderboard, meal planner, converter, quiz, challenge,
              budget, wine, notes, tags, similar, voice search, print
   ══════════════════════════════════════════ */

/* ── LEADERBOARD ── */
.leaderboard-section{padding:72px 48px;background:var(--warm-white)}
.leaderboard-inner{max-width:1280px;margin:0 auto}
.lb-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:32px}
.lb-card{background:var(--cream);padding:20px 16px;cursor:pointer;text-align:center;transition:transform .25s,box-shadow .25s;border-top:4px solid var(--border)}
.lb-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(30,26,22,.12)}
.lb-card:nth-child(1){border-color:var(--gold)}
.lb-card:nth-child(2){border-color:#B0B0B0}
.lb-card:nth-child(3){border-color:#CD7F32}
.lb-rank{font-family:'Playfair Display',serif;font-size:28px;font-weight:900;color:rgba(30,26,22,.12);line-height:1}
.lb-icon{font-size:34px;margin:8px 0}
.lb-title{font-family:'Playfair Display',serif;font-size:13px;font-weight:700;color:var(--ink);line-height:1.3;margin-bottom:6px}
.lb-stars{color:var(--gold);font-size:12px}
.lb-count{font-size:10px;color:var(--ink-light);margin-top:3px}
@media(max-width:900px){.lb-grid{grid-template-columns:repeat(3,1fr)}.leaderboard-section{padding:52px 24px}}
@media(max-width:600px){.lb-grid{grid-template-columns:1fr 1fr}}

/* ── MEAL PLANNER PANEL ── */
.meal-planner-panel{position:fixed;inset:0;z-index:400;display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;background:var(--overlay-bg)}
.meal-planner-panel.open{display:flex}
.meal-planner-inner{background:var(--warm-white);width:100%;max-width:1100px;position:relative}
.planner-header{background:var(--dark-green);padding:22px 28px;display:flex;justify-content:space-between;align-items:center}
.planner-header h3{font-family:'Playfair Display',serif;font-size:22px;color:#F5F0E8;font-weight:700}
.planner-body{padding:24px}
.planner-grid{display:grid;grid-template-columns:80px repeat(7,1fr);gap:0;margin-bottom:24px;border:1px solid var(--border);overflow-x:auto}
.planner-col-header{background:var(--dark-green);color:#F5F0E8;text-align:center;padding:10px 6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}
.planner-col-header.meal-label-col{background:var(--cream);color:var(--ink-light)}
.planner-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px;min-height:64px;position:relative;background:var(--warm-white)}
.planner-cell.meal-label-cell{background:var(--cream);display:flex;align-items:center;padding:8px 10px;border-right:2px solid var(--border)}
.planner-meal-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--ink-light);white-space:nowrap}
.planner-meal-label span{display:block;font-size:16px;margin-bottom:3px}
.planner-slot{background:var(--terracotta);color:white;padding:6px 8px;margin-bottom:4px;position:relative;cursor:default}
.planner-slot.breakfast-slot{background:#7A9E7E}
.planner-slot.lunch-slot{background:#C49A3C}
.planner-slot.dinner-slot{background:var(--terracotta)}
.planner-slot.snack-slot{background:#4A443C}
.planner-slot-title{font-family:'Playfair Display',serif;font-size:11px;font-weight:700;line-height:1.3;padding-right:14px}
.planner-slot-remove{position:absolute;top:3px;right:3px;background:none;border:none;color:rgba(255,255,255,.7);font-size:11px;cursor:pointer;padding:0;line-height:1}
.planner-slot-remove:hover{color:white}
.planner-add-btn{width:100%;padding:5px;border:1.5px dashed var(--border);background:transparent;font-size:10px;color:var(--ink-light);cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.planner-add-btn:hover{border-color:var(--terracotta);color:var(--terracotta)}
.planner-picker{background:var(--warm-white);border:1.5px solid var(--border);padding:16px;margin-top:16px;display:none}
.planner-picker.open{display:block}
.planner-picker h4{font-family:'Playfair Display',serif;font-size:16px;margin-bottom:12px}
.planner-picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-height:280px;overflow-y:auto}
.planner-pick-item{padding:10px;background:var(--cream);cursor:pointer;transition:background .2s;display:flex;align-items:center;gap:9px;border:1px solid transparent}
.planner-pick-item:hover{background:var(--input-bg);border-color:var(--terracotta)}
.planner-pick-icon{font-size:22px;flex-shrink:0}
.planner-pick-name{font-family:'Playfair Display',serif;font-size:12px;font-weight:700;color:var(--ink)}
.planner-pick-time{font-size:10px;color:var(--ink-light)}
.planner-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:16px;border-top:1px solid var(--border)}

/* ── CONVERTER ── */
.conv-group{margin-bottom:20px}
.conv-group-title{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--terracotta);font-weight:500;margin-bottom:10px}
.conv-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.conv-input{width:80px;padding:8px 10px;background:var(--input-bg);border:1.5px solid var(--border);font-family:'DM Sans',sans-serif;font-size:14px;color:var(--ink);outline:none;text-align:center}
.conv-input:focus{border-color:var(--terracotta)}
.conv-label{font-size:13px;color:var(--ink-light);min-width:58px}
.conv-equals{font-size:16px;color:var(--ink-light)}
.conv-result{font-family:'Playfair Display',serif;font-size:16px;font-weight:700;color:var(--ink);min-width:70px}

/* ── SUBSTITUTION ── */
.sub-result{background:var(--cream);border:1.5px solid var(--border);padding:16px;margin-top:14px;font-size:14px;color:var(--ink-light);line-height:1.75;display:none}
.sub-result.visible{display:block;animation:fadeUp .4s ease forwards}
.sub-btn{background:transparent;border:1.5px solid var(--border);color:var(--ink-light);padding:9px 16px;font-family:'DM Sans',sans-serif;font-size:12px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}
.sub-btn:hover{border-color:var(--sage);color:var(--sage)}

/* ── QUIZ ── */
.quiz-opt{width:100%;padding:13px 18px;border:1.5px solid var(--border);background:transparent;font-family:'DM Sans',sans-serif;font-size:14px;cursor:pointer;text-align:left;margin-bottom:8px;color:var(--ink);transition:all .2s}
.quiz-opt:hover{border-color:var(--terracotta);color:var(--terracotta)}

/* ── CHALLENGE ── */
.challenge-ing{padding:12px 18px;background:rgba(245,240,232,.1);border:1px solid rgba(245,240,232,.2);color:#F5F0E8;font-family:'Playfair Display',serif;font-size:16px;font-weight:700;text-align:center}

/* ── BUDGET ── */
.budget-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.budget-total{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;color:var(--terracotta)}

/* ── WINE ── */
.wine-result{background:var(--cream);border:1.5px solid var(--border);padding:16px;margin-top:14px;display:none}
.wine-result.visible{display:block;animation:fadeUp .4s ease forwards}

/* ── NOTES ── */
.recipe-notes{background:var(--cream);border:1.5px solid var(--border);padding:16px;margin-top:18px}
.recipe-notes textarea{width:100%;background:transparent;border:none;border-bottom:1.5px solid var(--border);padding:8px 0;font-family:'DM Sans',sans-serif;font-size:13px;color:var(--ink);outline:none;resize:none;min-height:60px;line-height:1.65}
.recipe-notes textarea:focus{border-color:var(--terracotta)}
.recipe-notes textarea::placeholder{color:var(--ink-light)}
.notes-saved{font-size:11px;color:var(--sage);margin-top:6px;display:none}

/* ── CUSTOM TAGS ── */
.recipe-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;background:var(--cream);border:1px solid var(--border);font-size:11px;color:var(--ink-light);margin:3px}
.recipe-tag button{background:none;border:none;cursor:pointer;color:var(--ink-light);font-size:12px;padding:0;line-height:1}
.recipe-tag button:hover{color:var(--terracotta)}

/* ── SIMILAR RECIPES ── */
.similar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.similar-card{background:var(--cream);padding:12px;cursor:pointer;border:1.5px solid var(--border);text-align:center;transition:border-color .2s}
.similar-card:hover{border-color:var(--terracotta)}
.similar-icon{font-size:28px;margin-bottom:5px}
.similar-title{font-family:'Playfair Display',serif;font-size:12px;font-weight:700;color:var(--ink);line-height:1.3}

/* ── VOICE SEARCH ── */
.voice-btn{background:none;border:none;cursor:pointer;font-size:18px;padding:0 8px;color:var(--ink-light);transition:color .2s;position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.voice-btn:hover{color:var(--terracotta)}
.voice-btn.listening{color:var(--terracotta);animation:pulse 1s infinite}

/* ── PRINT ── */
@media print{
  header,footer,.modal-actions,.close-btn,.search-section,.generator-section,
  .categories-section,.tips-section,.side-panel,.hero,.modal-overlay,
  .cook-mode,.meal-planner-panel,#panel-overlay{display:none!important}
  body{background:white}
  .modal{box-shadow:none;max-height:none;overflow:visible;position:static;animation:none}
  .modal-overlay{display:block!important;background:none;position:static;padding:0}
}
@media print{
  body > *:not(#modal-overlay){display:none!important}
  .modal-overlay{display:block!important;position:static!important;background:none!important;padding:0!important}
  .modal{box-shadow:none!important;max-height:none!important;overflow:visible!important;border:2px solid #333;max-width:100%!important}
  .close-btn,.modal-actions,.reviews-section{display:none!important}
  .modal-art{height:140px!important}
}
