
:root{--primary:#0ea5e9;--accent:#22c55e;--bg:#0b1220;--card:#111827;--text:#e5e7eb;--muted:#9ca3af}
*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif}
a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}
.container{max-width:1100px;margin:0 auto;padding:16px}
.card{background:var(--card);border:1px solid #1f2937;border-radius:14px;padding:16px}
.grid{display:grid;gap:16px}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}
.badge{font-size:12px;padding:4px 8px;border-radius:999px;border:1px solid #243041;color:#cbd5e1}
.input{width:100%;padding:12px 14px;border-radius:10px;border:1px solid #1f2937;background:#0f172a;color:var(--text)}.input:focus{border-color:#334155;outline:none}
.small{font-size:12px;color:#a1a1aa}
footer{margin-top:32px;padding:24px;border-top:1px solid #1f2937;color:#a1a1aa}
.recipe-card{display:flex;flex-direction:column;gap:8px}.recipe-card h3{margin:6px 0}
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid #1f2937;border-radius:10px;background:#0f172a;color:var(--text);cursor:pointer;transition:.2s}
.btn:hover{transform:translateY(-1px);border-color:#243041}.btn.primary{background:linear-gradient(135deg,var(--primary),#60a5fa);border:0;color:white;font-weight:700}
.fav-header{position:sticky; top:0; z-index:60; padding:16px; border-bottom:1px solid #1f2937; background:linear-gradient(135deg,#ffb86b,#ff7eb3)}
.fav-brand{ display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.fav-brand img{ width:32px; height:32px; border-radius:8px; }
.fav-title{ font-weight:800; font-size:22px; color:#0b1220; text-shadow:0 1px 0 rgba(255,255,255,.5); }
.fav-search{ display:flex; justify-content:center; }
.fav-input{ width:100%; max-width:760px; padding:14px 18px; border-radius:999px; border:1px solid rgba(0,0,0,.08); background:rgba(255,255,255,.9); color:#0b1220; font-size:16px;}
.fav-input::placeholder{ color:#6b7280; }
.infinite-wrap{ display:flex; justify-content:center; padding:20px 0; }
.loader-dot{ width:12px; height:12px; border-radius:50%; background:#22c55e; animation:pulse 1s infinite ease-in-out; }
@keyframes pulse { 0%{opacity:.2; transform:scale(.9)} 50%{opacity:1; transform:scale(1)} 100%{opacity:.2; transform:scale(.9)} }

/* Dark header (preferred) */
.dark-header{position:sticky;top:0;z-index:70;background:#0b1220;border-bottom:1px solid #1f2937;padding:14px 16px}
.dark-header .brand{display:flex;align-items:center;gap:10px}
.dark-header .brand img{width:28px;height:28px;border-radius:8px}
.dark-header .brand .title{font-weight:800;font-size:18px;color:#e5e7eb}
.dark-header nav{display:flex;gap:10px;margin-left:auto}
.dark-header a.nav{padding:8px 12px;border:1px solid #1f2937;border-radius:10px;background:#0f172a;color:#e5e7eb;text-decoration:none}
.dark-header a.nav:hover{border-color:#243041}

/* Dynamic cards */
.card.recipe-card{transition:transform .18s ease, box-shadow .18s ease}
.card.recipe-card:hover{transform:translateY(-4px); box-shadow:0 8px 20px rgba(0,0,0,.28)}
.card .quick-toggle{display:inline-flex;gap:6px;align-items:center;cursor:pointer;font-size:13px;opacity:.9}
.card .quick{display:none;margin-top:8px;border-top:1px dashed #283244;padding-top:8px}
.card.open .quick{display:block}

/* Pills active state */
.btn.active{outline:2px solid var(--primary); background:#0b2138;}
/* Hero search band */
.hero-search{background:linear-gradient(135deg,#ffb86b33,#ff7eb333); padding:18px 0; border-bottom:1px solid #1f2937}
.hero-search .wrap{max-width:1100px; margin:0 auto; padding:0 16px}
.hero-input{width:100%; max-width:820px; display:block; margin:0 auto; padding:14px 18px; border-radius:999px; border:1px solid #1f2937; background:#0f172a; color:var(--text); font-size:16px}
.hero-input::placeholder{color:#9ca3af}

/* Inline pill search inside filter row */
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.pill-input{
  flex:1 1 280px; max-width:600px;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid #1f2937;
  background:#0f172a; color:var(--text);
  font-size:14px;
  box-shadow: inset 0 0 0 1px transparent;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.pill-input::placeholder{color:#9ca3af}
.pill-input:focus{outline:none;border-color:#2a3b52; box-shadow:0 0 0 2px rgba(14,165,233,.25)}
@media (max-width:640px){
  .pill-input{flex-basis:100%; max-width:100%}
}

/* Typeahead suggestions */
.filter-row{position:relative}
.suggestions{
  position:absolute; top:100%; left:0; right:0;
  max-width:600px;
  background:#0f172a; border:1px solid #1f2937; border-radius:10px;
  margin-top:6px; padding:6px; display:none; z-index:50;
}
.suggestions.visible{display:block}
.suggest-item{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.suggest-item:hover{background:#111f33}
.suggest-item .small{opacity:.8}
mark{background:transparent;color:#93c5fd;border-bottom:1px dashed #93c5fd}
@media (max-width:640px){ .suggestions{left:0; right:0; max-width:none} }

/* Top utility links (small) */
.util-links{display:flex;gap:10px;align-items:center;margin-left:12px;font-size:12px;opacity:.8}
.util-links a{color:#93c5fd;text-decoration:none}
.util-links a:hover{text-decoration:underline;opacity:1}
@media (max-width:640px){ .util-links{display:none} }

/* Utility links & hamburger behavior */
.util-links{display:flex;gap:10px;align-items:center;margin-left:12px;font-size:12px;opacity:.85}
.util-links a{color:#93c5fd;text-decoration:none}
.util-links a:hover{text-decoration:underline}
.hamburger{display:none;margin-left:8px;border:1px solid #1f2937;background:#0f172a;color:#e5e7eb;border-radius:8px;padding:6px 10px;cursor:pointer}
.util-drawer{display:none;border-top:1px solid #1f2937;background:#0f172a}
.util-drawer a{display:block;padding:12px 16px;color:#93c5fd;text-decoration:none;border-bottom:1px solid #132238}
.util-drawer a:last-child{border-bottom:0}
@media (max-width:640px){
  .util-links{display:none}
  .hamburger{display:inline-flex}
  body.show-util .util-drawer{display:block}
}

@media (max-width:640px){ .pill-input{flex-basis:100%; max-width:100%} }
