:root{
  --brand-1:#6366f1; --brand-2:#8b5cf6; --dark:#0f1117;
}
body.public-body{
  font-family:'Segoe UI',system-ui,-apple-system,sans-serif;
  color:#1e1e2d;
  background:#fafafe;
}
.public-nav{
  background:rgba(255,255,255,0.85); backdrop-filter:blur(10px);
  border-bottom:1px solid #eee; padding:.75rem 0;
}
.public-nav .brand-icon{
  width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
  color:#fff;display:flex;align-items:center;justify-content:center;
}
.public-nav .nav-link{ font-weight:500; color:#1e1e2d; }
.flash-alert{ position:fixed; top:80px; right:20px; z-index:2000; max-width:360px; box-shadow:0 10px 30px rgba(0,0,0,.15); }

/* Hero */
.hero{
  background:radial-gradient(circle at 30% 20%, #1e1b4b, #0f0c29 70%);
  color:#fff; padding:5rem 0 6rem; position:relative; overflow:hidden;
}
.hero h1{ font-weight:800; font-size:2.6rem; }
.hero .lead{ color:rgba(255,255,255,.75); font-size:1.15rem; }
.btn-brand-solid{ background:linear-gradient(135deg,var(--brand-1),var(--brand-2)); color:#fff; border:none; font-weight:600; padding:.75rem 1.6rem; border-radius:12px; }
.btn-brand-solid:hover{ opacity:.92; color:#fff; }
.btn-brand-outline{ border:1.5px solid rgba(255,255,255,.5); color:#fff; font-weight:600; padding:.75rem 1.6rem; border-radius:12px; }
.btn-brand-outline:hover{ background:rgba(255,255,255,.1); color:#fff; }

/* Section spacing */
section{ padding:4.5rem 0; }
.section-title{ font-weight:800; font-size:1.9rem; margin-bottom:.5rem; }
.section-subtitle{ color:#6b7280; margin-bottom:2.5rem; }

/* Event cards */
.event-card{
  border-radius:18px; overflow:hidden; border:1px solid #eee; background:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.04); transition:.25s; height:100%;
}
.event-card:hover{ transform:translateY(-6px); box-shadow:0 16px 40px rgba(0,0,0,.1); }
.event-card .banner{ height:170px; background-size:cover; background-position:center; position:relative; }
.event-card .banner .status-pill{ position:absolute; top:12px; right:12px; font-size:.7rem; font-weight:700; padding:.3rem .7rem; border-radius:99px; }
.countdown-strip{ display:flex; gap:.5rem; }
.countdown-strip .box{ background:#f4f5fa; border-radius:10px; padding:.5rem .75rem; text-align:center; min-width:56px; }
.countdown-strip .box .num{ font-weight:800; font-size:1.1rem; display:block; }
.countdown-strip .box .lbl{ font-size:.65rem; color:#6b7280; }

/* Contestant cards */
.contestant-card{
  border-radius:16px; overflow:hidden; border:1px solid #eee; background:#fff; text-align:center;
  box-shadow:0 4px 16px rgba(0,0,0,.04); transition:.2s; height:100%;
}
.contestant-card:hover{ transform:translateY(-4px); box-shadow:0 14px 32px rgba(0,0,0,.08); }
.contestant-card .photo{ height:220px; background-size:cover; background-position:top center; }
.progress{ height:6px; border-radius:99px; }
.progress-bar{ background:linear-gradient(135deg,var(--brand-1),var(--brand-2)); }

/* How to vote */
.step-circle{
  width:52px;height:52px;border-radius:50%; background:linear-gradient(135deg,var(--brand-1),var(--brand-2));
  color:#fff; display:flex;align-items:center;justify-content:center; font-weight:700; font-size:1.2rem; margin:0 auto 1rem;
}

/* FAQ */
.accordion-button:not(.collapsed){ background:rgba(99,102,241,.08); color:var(--brand-1); }

/* Footer */
.public-footer{ background:var(--dark); color:#fff; padding:3.5rem 0 1.5rem; margin-top:2rem; }
.footer-link{ color:rgba(255,255,255,.6); text-decoration:none; }
.footer-link:hover{ color:#fff; }
.social-icon{
  width:36px;height:36px;border-radius:10px; background:rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center; color:#fff; text-decoration:none;
}
.social-icon:hover{ background:linear-gradient(135deg,var(--brand-1),var(--brand-2)); }

/* Contestant profile */
.profile-photo{ width:100%; border-radius:20px; object-fit:cover; max-height:480px; }
.share-btn{ width:40px;height:40px;border-radius:10px; display:flex;align-items:center;justify-content:center; border:1px solid #e5e7eb; color:#1e1e2d; }
.share-btn:hover{ background:#f4f5fa; }
.gallery-thumb-public{ width:100%; height:90px; object-fit:cover; border-radius:10px; cursor:pointer; }
