:root{
  --accent:#22c55e;          /* green */
  --accent-2:#16a34a;
  --soft:#f7faf7;
  --dark:#0f172a;
}
*{font-family: 'Poppins', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;}
.bg-soft{ background: var(--soft); }
.text-accent{ color: var(--accent)!important; }
.btn-accent-outline{ border:2px solid var(--accent); color: var(--accent); }
.btn-accent-outline:hover{ background: var(--accent); color:#fff; }
.btn-accent-gradient{
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  color: #fff;
  border: 0;
  box-shadow: 0 6px 20px rgba(34,197,94,.25);
}
.btn-accent-gradient:hover{ filter: brightness(1.03); color: #fff; }
.navbar-blur{
  backdrop-filter: saturate(140%) blur(8px);
  background: rgba(255,255,255,.85);
}
.hover-raise{
  transition: transform .15s ease, box-shadow .15s ease;
}
.hover-raise:hover{
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0,0,0,.08);
}
.card-foody{
  border: none;
  border-radius: 1rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 20px rgba(0,0,0,.05);
}
.badge-soft{
  background: #e8f8ee;
  color: var(--accent-2);
}
.section-hero{
  background: radial-gradient(1000px 400px at 10% -10%, rgba(34,197,94,.15), transparent 60%),
              radial-gradient(800px 500px at 100% 0%, rgba(25,146,89,.10), transparent 60%),
              linear-gradient(180deg, #ffffff, #f6fff8);
}
.footer-wave{
  background: linear-gradient(180deg, #0b1220, #101a33);
}
.footer-link{ color: rgba(255,255,255,.8); text-decoration: none; display:block; padding:.25rem 0; }
.footer-link:hover{ color: #fff; }
.opacity-75{ opacity: .75;}
.hover-accent:hover{ color: var(--accent)!important; }
.img-cover{ object-fit: cover; }
.rounded-xxl{ border-radius: 1.25rem; }


/* Ad Slots */
.ad-slot{ background: repeating-linear-gradient(45deg, #e9ecef, #e9ecef 10px, #f8f9fa 10px, #f8f9fa 20px);
          border: 1px dashed rgba(0,0,0,.15); }
.ad-leaderboard{ height: 90px; }
.ad-mrec{ height: 250px; }


/* Admin live preview image sizing */
.admin-recipe-img{ object-fit: cover; width: 100%; height: 100%; }
@media (max-width: 767.98px){
  .admin-recipe-img{ height: 240px; }
}

.phase-badge{
  display:inline-block;
  padding:.45rem .8rem;
  border-radius:999px;
  font-size:.8rem;
  font-weight:600;
}
.phase-submission{ background:#e8f8ee; color:#15803d; }
.phase-voting{ background:#fff7ed; color:#c2410c; }
.upload-preview{
  display:block;
  max-width:100%;
  max-height:320px;
  object-fit:cover;
  border-radius:1rem;
}
.submission-card-image{ width:100%; height:260px; object-fit:cover; }
.archive-thumb{ width:64px; height:64px; border-radius:.6rem; object-fit:cover; }
.image-button{ display:block; width:100%; padding:0; border:0; background:transparent; }
.image-button:focus-visible{ outline:3px solid var(--accent); outline-offset:3px; }
.empty-state{
  padding:3rem 1.5rem;
  border:1px dashed rgba(15,23,42,.2);
  border-radius:1.25rem;
  background:#fff;
  text-align:center;
}
.empty-state > i{ color:var(--accent); font-size:2rem; }
.nav-pills .nav-link{ color:#475569; }
.nav-pills .nav-link.active{ background:var(--accent-2); }
.leader-rank{
  display:inline-grid;
  place-items:center;
  min-width:2rem;
  height:2rem;
  border-radius:50%;
  background:#e2e8f0;
  font-weight:700;
}
.leader-rank-top{ background:#dcfce7; color:#15803d; }
.chef-crown{
  display:inline-block;
  padding:.5rem .8rem;
  border-radius:999px;
  background:#fef3c7;
  color:#92400e;
  font-weight:700;
}
.winner-card{
  padding:1rem;
  border:1px solid #fde68a;
  border-radius:1rem;
  background:#fffbeb;
}
.winner-thumb{ width:88px; height:88px; border-radius:.8rem; object-fit:cover; }
.navbar .nav-link.active{ color:var(--accent-2); font-weight:700; }
.notification-button{
  display:grid;
  place-items:center;
  width:2.5rem;
  height:2.5rem;
  border-radius:50%;
  color:#334155;
}
.notification-button:hover,.notification-button:focus{ background:#e8f8ee; color:var(--accent-2); }
.notification-badge{
  position:absolute;
  top:-.1rem;
  right:-.15rem;
  display:grid;
  place-items:center;
  min-width:1.15rem;
  height:1.15rem;
  padding:0 .25rem;
  border:2px solid #fff;
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:.62rem;
  font-weight:700;
}
.notification-menu{ width:min(24rem,calc(100vw - 2rem)); overflow:hidden; border-radius:1rem; }
.notification-header{ padding:.9rem 1rem; background:#f8fafc; border-bottom:1px solid #e2e8f0; }
.notification-item{ padding:1rem; white-space:normal; border-bottom:1px solid #f1f5f9; }
.notification-item:last-child{ border-bottom:0; }
.notification-item:hover{ background:#f7faf7; }
.notification-icon{
  display:grid;
  flex:0 0 2.25rem;
  place-items:center;
  width:2.25rem;
  height:2.25rem;
  border-radius:.75rem;
  background:#f1f5f9;
}
.admin-action-card{
  display:flex;
  align-items:center;
  gap:.8rem;
  height:100%;
  padding:1rem;
  border:1px solid #e2e8f0;
  border-radius:1rem;
  color:inherit;
  text-decoration:none;
}
.admin-action-card:hover{ border-color:var(--accent); background:#f7faf7; color:inherit; }
.admin-stat{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:1rem 1.15rem;
  border:1px solid rgba(15,23,42,.1);
  border-radius:1rem;
  background:#fff;
  color:inherit;
  text-decoration:none;
}
.admin-stat span{ color:#64748b; font-size:.82rem; }
.admin-stat strong{ margin-top:.2rem; font-size:1.25rem; }
.admin-stat-link:hover{ border-color:var(--accent); color:var(--accent-2); }
.live-vote-count{
  padding:.3rem .55rem;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-size:.78rem;
  font-weight:700;
  white-space:nowrap;
}
.image-modal-content{
  min-height:240px;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.96);
  border-radius:1.25rem;
  overflow:hidden;
}
.image-modal-content img{
  width:auto;
  max-width:100%;
  max-height:88vh;
  object-fit:contain;
}
.image-loading{ color:#fff; padding:3rem; text-align:center; }
.auth-divider{
  display:flex;
  align-items:center;
  gap:.75rem;
  margin:1.25rem 0;
  color:#94a3b8;
  font-size:.85rem;
}
.auth-divider::before,.auth-divider::after{ content:""; height:1px; flex:1; background:#e2e8f0; }
.btn-google{ border:1px solid #cbd5e1; background:#fff; color:#1e293b; font-weight:600; }
.btn-google:hover{ border-color:#94a3b8; background:#f8fafc; color:#0f172a; }
.profile-avatar{
  display:inline-grid;
  place-items:center;
  flex:0 0 40px;
  width:40px;
  height:40px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid #dcfce7;
}
.profile-avatar-sm{ flex-basis:30px; width:30px; height:30px; font-size:.75rem; }
.profile-avatar-xl{ flex-basis:144px; width:144px; height:144px; font-size:2.5rem; }
.profile-avatar-fallback{
  background:linear-gradient(135deg, #dcfce7, #bbf7d0);
  color:#166534;
  font-weight:700;
}
.verification-code{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.7rem .85rem;
  border:1px dashed #16a34a;
  border-radius:.75rem;
  background:#f0fdf4;
}
.verification-code span{ color:#475569; font-size:.78rem; }
.verification-code strong{ color:#166534; font-size:1.05rem; letter-spacing:.08em; }
.verification-review-image{
  width:100%;
  height:320px;
  border-radius:1rem;
  object-fit:cover;
  background:#e2e8f0;
}
