/* ===== Event themes (each sets an accent palette) ===== */
.evt-theme--pawsitive { --evt-accent:#e7ab6a; --evt-soft:#fbe6cf; --evt-ink:#5a3a12; }
.evt-theme--summer    { --evt-accent:#1f9eb0; --evt-soft:#d6f1f4; --evt-ink:#0c4a52; }
.evt-theme--fall      { --evt-accent:#c4622d; --evt-soft:#f6e0d0; --evt-ink:#5a2c12; }
.evt-theme--howloween { --evt-accent:#7c4dff; --evt-soft:#e7defb; --evt-ink:#34206b; }
.evt-theme--holiday   { --evt-accent:#2f8f5b; --evt-soft:#d6efe0; --evt-ink:#11422a; }
.evt-theme--spring    { --evt-accent:#e85f9c; --evt-soft:#fbdcec; --evt-ink:#6b2347; }
.evt-theme--showdown  { --evt-accent:#d23b3b; --evt-soft:#fbdcdc; --evt-ink:#6b1717; }
.evt-theme--glam      { --evt-accent:#a21caf; --evt-soft:#f7daf2; --evt-ink:#5b1457; }
.evt-theme--freshcut  { --evt-accent:#2bb673; --evt-soft:#d6f0e1; --evt-ink:#155239; }
.evt-theme--barkday   { --evt-accent:#2f7fe0; --evt-soft:#dbe9fb; --evt-ink:#173a66; }

/* ===== Public event page ===== */
.evt-hero { background: var(--evt-soft); border-radius: var(--radius-l); padding: var(--space-xl) var(--space-l);
  text-align: center; position: relative; overflow: hidden; }
.evt-hero__motif { font-size: 3rem; line-height: 1; }
.evt-hero__title { font-family: var(--font-display); font-size: var(--step-4); color: var(--evt-ink); margin: var(--space-2xs) 0; }
.evt-hero__dates { display: inline-block; font-weight: 800; color: #fff; background: var(--evt-accent);
  border-radius: var(--radius-pill); padding: .3rem .9rem; font-size: var(--step--1); }
.evt-cover { margin-top: var(--space-l); border-radius: var(--radius-l); overflow: hidden; }
.evt-cover img { width: 100%; display: block; }
.evt-blurb { font-size: var(--step-1); color: var(--ink-soft); max-width: 62ch; margin: var(--space-l) auto 0; line-height: 1.6; white-space: pre-wrap; }
.evt-rsvp { display: flex; flex-direction: column; align-items: center; gap: .5rem; margin-top: var(--space-l); }
.evt-going { color: var(--ink-soft); font-size: var(--step--1); }
.btn--evt { background: var(--evt-accent); color: #fff; border: 0; }
.btn--evt:hover { filter: brightness(1.05); }
.btn--evt.is-going { background: #fff; color: var(--evt-ink); border: 2px solid var(--evt-accent); }
.evt-draftnote { background: #fff4e0; border: 1px solid var(--gold); border-radius: var(--radius-m);
  padding: .6rem .9rem; text-align: center; margin-bottom: var(--space-m); font-weight: 700; color: var(--gold-deep); }

/* ===== Owner builder (admin/events.html) ===== */
.evt-builder { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-l); align-items: start; }
@media (max-width: 880px) { .evt-builder { grid-template-columns: 1fr; } }
.evt-themes { display: flex; flex-wrap: wrap; gap: .45rem; }
.evt-swatch { display: inline-flex; align-items: center; gap: .35rem; border: 2px solid var(--line);
  border-radius: var(--radius-pill); padding: .3rem .6rem; cursor: pointer; background: var(--paper); font: inherit; font-size: .85rem; }
.evt-swatch__dot { width: 14px; height: 14px; border-radius: 50%; }
.evt-swatch.is-on { border-color: var(--ink); }
.evt-preview { border-radius: var(--radius-l); padding: var(--space-l); text-align: center; background: var(--evt-soft); }
.evt-preview__motif { font-size: 2.2rem; }
.evt-preview__title { font-family: var(--font-display); font-size: var(--step-2); color: var(--evt-ink); margin: .2rem 0; }
.evt-preview__dates { display: inline-block; background: var(--evt-accent); color: #fff; border-radius: var(--radius-pill); padding: .2rem .7rem; font-size: .8rem; font-weight: 800; }
.evt-list { display: flex; flex-direction: column; gap: .6rem; }
.evt-row { border: 1px solid var(--line); border-radius: var(--radius-m); padding: .7rem .85rem; }
.evt-row__top { display: flex; align-items: center; gap: .5rem; justify-content: space-between; }
.evt-row__title { font-weight: 800; }
.evt-row__meta { color: var(--ink-soft); font-size: var(--step--1); margin-top: .15rem; }
.evt-status { font-size: .72rem; font-weight: 800; border-radius: var(--radius-pill); padding: .12rem .5rem; }
.evt-status--live { background: #def7e6; color: #1c7a3e; }
.evt-status--upcoming { background: var(--gold-soft); color: var(--gold-deep); }
.evt-status--draft { background: #eee; color: #555; }
.evt-status--past { background: #f3eee6; color: var(--ink-faint); }
.evt-row__actions { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem; }
.evt-signups { margin-top: .5rem; font-size: .85rem; color: var(--ink-soft); }

/* ===== Placements (Drop 2) ===== */
/* Homepage hero image slot */
.evt-herocard { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
  text-align: center; min-height: 320px; height: 100%; padding: var(--space-xl) var(--space-l);
  background: var(--evt-soft); border-radius: var(--radius-l); text-decoration: none;
  box-shadow: var(--shadow-l); transition: transform .15s ease; }
.evt-herocard:hover { transform: translateY(-3px); }
.evt-herocard__eyebrow { font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: .72rem; color: var(--evt-accent); }
.evt-herocard__motif { font-size: 3.4rem; line-height: 1; }
.evt-herocard__title { font-family: var(--font-display); font-size: var(--step-3); color: var(--evt-ink); line-height: 1.1; }
.evt-herocard__dates { display: inline-block; background: var(--evt-accent); color: #fff; font-weight: 800;
  border-radius: var(--radius-pill); padding: .25rem .8rem; font-size: var(--step--1); }
.evt-herocard__cta { margin-top: .35rem; font-weight: 800; color: var(--evt-ink); }

/* Slim strip (dashboard + community) */
.evt-strip { display: flex; align-items: center; gap: .7rem; text-decoration: none;
  background: var(--evt-soft); border: 1px solid color-mix(in srgb, var(--evt-accent) 30%, transparent);
  border-radius: var(--radius-m); padding: .6rem .85rem; margin-bottom: var(--space-m); }
.evt-strip:hover { filter: brightness(.99); }
.evt-strip__motif { font-size: 1.5rem; line-height: 1; }
.evt-strip__text { display: flex; flex-direction: column; line-height: 1.2; flex: 1; min-width: 0; }
.evt-strip__text b { color: var(--evt-ink); }
.evt-strip__text span { color: var(--ink-soft); font-size: var(--step--1); }
.evt-strip__cta { font-weight: 800; color: #fff; background: var(--evt-accent); border-radius: var(--radius-pill);
  padding: .25rem .7rem; font-size: var(--step--1); white-space: nowrap; }

/* Public listing cards */
.evt-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-l); }
.evt-card { display: flex; flex-direction: column; text-decoration: none; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-l); overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.evt-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-l); }
.evt-card__cover { aspect-ratio: 16/9; overflow: hidden; }
.evt-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.evt-card__motif { font-size: 3rem; text-align: center; padding: var(--space-l) 0; background: var(--evt-soft); }
.evt-card__body { padding: var(--space-m); }
.evt-card__live { font-size: .72rem; font-weight: 800; color: #1c7a3e; background: #def7e6; border-radius: var(--radius-pill); padding: .1rem .5rem; }
.evt-card__soon { font-size: .72rem; font-weight: 800; color: var(--evt-ink); background: var(--evt-soft); border-radius: var(--radius-pill); padding: .1rem .5rem; }
.evt-card__title { font-family: var(--font-display); font-size: var(--step-1); color: var(--ink); margin: .35rem 0 .15rem; }
.evt-card__dates { color: var(--evt-accent); font-weight: 700; font-size: var(--step--1); }
.evt-card__blurb { color: var(--ink-soft); font-size: var(--step--1); margin-top: .4rem; }

/* ===== Activity toolkit (builder + event page) ===== */
.evt-preview__act { display: inline-flex; align-items: center; gap: .3rem; margin-top: .5rem;
  background: rgba(255,255,255,.7); color: var(--evt-ink); border-radius: var(--radius-pill);
  padding: .2rem .7rem; font-size: .78rem; font-weight: 800; }

/* one-click templates */
.evt-tpls { margin-bottom: var(--space-m); }
.evt-tpls__lbl { display: block; font-size: .72rem; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; color: var(--ink-faint); margin-bottom: .4rem; }
.evt-tpls__row { display: flex; flex-wrap: wrap; gap: .4rem; }
.evt-tpl { border: 1px solid var(--line); background: var(--surface); border-radius: var(--radius-pill);
  padding: .45rem .85rem; font: inherit; font-weight: 800; font-size: .82rem; color: var(--ink);
  cursor: pointer; transition: border-color .15s ease, transform .12s ease, box-shadow .15s ease; }
.evt-tpl:hover { border-color: var(--gold); transform: translateY(-1px); box-shadow: var(--shadow-s); }

/* activity picker */
.evt-acts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .5rem; }
.evt-act { display: flex; flex-direction: column; align-items: flex-start; gap: .12rem; text-align: left;
  border: 2px solid var(--line); background: var(--surface); border-radius: var(--radius-m);
  padding: .6rem .7rem; font: inherit; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease; }
.evt-act:hover { transform: translateY(-1px); box-shadow: var(--shadow-s); }
.evt-act.is-on { border-color: var(--tang); box-shadow: 0 0 0 3px var(--tang-soft); }
.evt-act__emoji { font-size: 1.35rem; line-height: 1; }
.evt-act__name { font-weight: 800; font-size: .9rem; color: var(--ink); }
.evt-act__tag { font-size: .74rem; color: var(--ink-faint); line-height: 1.25; }
.evt-act__how { margin-top: .5rem; font-size: .82rem; color: var(--ink-soft); line-height: 1.45; }

/* reward editor */
.evt-reward { margin-top: var(--space-s); border: 1px solid var(--gold); background: #fffaf0;
  border-radius: var(--radius-m); padding: .8rem .9rem; }
.evt-reward__head { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem;
  flex-wrap: wrap; margin-bottom: .5rem; }
.evt-reward__head b { font-size: .95rem; }
.evt-reward__head span { font-size: .8rem; color: var(--ink-soft); }

/* public event page: activity explainer */
.evt-activity { margin-top: var(--space-l); border: 1px solid color-mix(in srgb, var(--evt-accent) 30%, transparent);
  background: var(--evt-soft); border-radius: var(--radius-l); padding: var(--space-l); }
.evt-activity__head { display: flex; align-items: center; gap: .7rem; }
.evt-activity__emoji { font-size: 2rem; line-height: 1; }
.evt-activity__name { font-family: var(--font-display); font-size: var(--step-2); color: var(--evt-ink); display: block; }
.evt-activity__tag { color: var(--evt-ink); opacity: .8; font-weight: 700; font-size: .9rem; }
.evt-activity__how { margin-top: .7rem; color: var(--ink-soft); line-height: 1.55; }
.evt-activity__how b { color: var(--evt-ink); }

/* public event page: standings panel (Phase 1 framing) */
.evt-standings { margin-top: var(--space-l); border: 1px solid var(--line); border-radius: var(--radius-l);
  background: var(--surface); padding: var(--space-l); text-align: center; }
.evt-standings__lbl { font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase;
  color: var(--ink-faint); }
.evt-standings__big { font-family: var(--font-display); font-size: var(--step-3); color: var(--evt-ink); margin: .2rem 0; }
.evt-standings__sub { color: var(--ink-soft); font-size: .9rem; }

/* ===== Styled dropdown (premium builder picker) ===== */
.evt-dd { position: relative; }
.evt-dd__btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m);
  padding: .7rem .85rem; font: inherit; cursor: pointer; text-align: left;
  transition: border-color .15s ease, box-shadow .15s ease; }
.evt-dd__btn:hover { border-color: var(--gold); }
.evt-dd__btn[aria-expanded="true"] { border-color: var(--tang); box-shadow: 0 0 0 3px var(--tang-soft); }
.evt-dd__cur { display: flex; align-items: center; gap: .55rem; min-width: 0; }
.evt-dd__emoji { font-size: 1.25rem; line-height: 1; flex: none; }
.evt-dd__lbl { font-weight: 800; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.evt-dd__ph { font-weight: 700; color: var(--ink-faint); }
.evt-dd__chev { color: var(--ink-faint); transition: transform .18s ease; flex: none; }
.evt-dd__btn[aria-expanded="true"] .evt-dd__chev { transform: rotate(180deg); }
.evt-dd__panel { position: absolute; z-index: 40; top: calc(100% + .35rem); left: 0; right: 0;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m);
  box-shadow: var(--shadow-l); padding: .35rem; max-height: 340px; overflow: auto;
  animation: evtDDin .14s ease; }
@keyframes evtDDin { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.evt-dd__opt { width: 100%; display: flex; align-items: center; gap: .6rem; text-align: left;
  background: none; border: 0; border-radius: var(--radius-s); padding: .55rem .6rem; font: inherit;
  cursor: pointer; transition: background .12s ease; }
.evt-dd__opt:hover { background: var(--gold-soft); }
.evt-dd__opt.is-sel { background: var(--tang-soft); }
.evt-dd__ob { display: flex; flex-direction: column; gap: .05rem; min-width: 0; flex: 1; }
.evt-dd__ob .evt-dd__lbl { white-space: normal; }
.evt-dd__desc { font-size: .76rem; color: var(--ink-faint); font-weight: 600; line-height: 1.3; }
.evt-dd__dot { width: 13px; height: 13px; border-radius: 50%; background: var(--evt-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--evt-accent) 25%, transparent); flex: none; }
.evt-dd__check { color: var(--tang); font-weight: 900; flex: none; }

/* ===== Phase 2: live contest (entries · voting · winners) ===== */
.evt-contest { margin-top: var(--space-m); }
.evt-contest__head { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin: var(--space-m) 0 .6rem; }
.evt-contest__head b { font-family: var(--font-display); font-size: var(--step-1); }
.evt-contest__head span { color: var(--ink-faint); font-size: .82rem; font-weight: 700; }
.evt-entry { background: var(--gold-soft); border: 1px solid var(--line); border-radius: var(--radius-l); padding: var(--space-m); display: flex; flex-direction: column; gap: .6rem; }
.evt-entry__head { font-family: var(--font-display); font-weight: 800; }
.evt-entry__file { display: flex; flex-direction: column; gap: .25rem; font-weight: 700; font-size: .82rem; color: var(--ink-soft); }
.evt-entry__file input { font: inherit; }
.evt-entry__cap { width: 100%; padding: .6rem .7rem; border: 1px solid var(--line); border-radius: var(--radius-m); font: inherit; }
.evt-entry__hint { font-size: .8rem; color: var(--ink-faint); min-height: 1em; }
.evt-yourentry { background: var(--tang-soft); color: var(--ink); border-radius: var(--radius-m); padding: .7rem .9rem; font-weight: 800; text-align: center; }
.evt-joinhint { color: var(--ink-soft); padding: .7rem .9rem; text-align: center; font-weight: 600; }
.evt-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--space-s); }
.evt-gallery__empty { color: var(--ink-faint); text-align: center; padding: var(--space-m); font-weight: 600; }
.evt-ecard { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-m); overflow: hidden; display: flex; flex-direction: column; }
.evt-ecard.is-mine { border-color: var(--tang); box-shadow: 0 0 0 2px var(--tang-soft); }
.evt-ecard__rank { position: absolute; top: .4rem; left: .4rem; font-size: 1.4rem; z-index: 2; filter: drop-shadow(0 1px 2px rgba(0,0,0,.3)); }
.evt-ecard__photo { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.evt-ecard__ba { display: grid; grid-template-columns: 1fr 1fr; }
.evt-ecard__ba img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.evt-ecard__ba--zoom { cursor: zoom-in; }
.evt-ecard__ba--zoom:hover { filter: brightness(1.03); }
.evt-ecard__foot { padding: .55rem .6rem; display: flex; flex-direction: column; gap: .35rem; }
.evt-ecard__by { font-weight: 800; font-size: .82rem; }
.evt-ecard__cap { font-size: .8rem; color: var(--ink-soft); line-height: 1.35; }
.evt-ecard__count { font-weight: 800; font-size: .85rem; color: var(--ink-soft); }
.evt-vote { display: inline-flex; align-items: center; gap: .3rem; align-self: flex-start; cursor: pointer;
  background: var(--surface); border: 1.5px solid var(--evt-accent, var(--gold)); color: var(--evt-ink, var(--ink));
  border-radius: 999px; padding: .35rem .7rem; font: inherit; font-weight: 800; font-size: .82rem; transition: background .12s ease, transform .08s ease; }
.evt-vote:hover { background: var(--evt-soft, var(--gold-soft)); }
.evt-vote:active { transform: scale(.96); }
.evt-vote.is-voted { background: var(--evt-accent, var(--gold)); color: #fff; border-color: var(--evt-accent, var(--gold)); }
.evt-vote b { font-weight: 900; }
.evt-winners { margin-top: var(--space-m); background: var(--evt-soft, var(--gold-soft)); border: 1px solid var(--line); border-radius: var(--radius-l); padding: var(--space-m); }
.evt-winners__head { font-family: var(--font-display); font-weight: 800; font-size: var(--step-1); display: flex; align-items: center; gap: .4rem; margin-bottom: .7rem; }
.evt-winners__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: var(--space-s); }
.evt-winner { position: relative; background: var(--surface); border-radius: var(--radius-m); padding: .7rem; text-align: center; display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.evt-winner__medal { font-size: 1.6rem; }
.evt-winner__photo { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; border: 3px solid var(--evt-accent, var(--gold)); }
.evt-winner__motif { font-size: 2.4rem; }
.evt-winner__name { font-weight: 800; font-size: .88rem; }
.evt-winner__votes { font-weight: 700; font-size: .8rem; color: var(--ink-soft); }
.evt-winners__perk { margin-top: .7rem; font-size: .86rem; color: var(--ink-soft); }

.evt-engnote{font-size:.8rem;color:var(--ink-soft);background:var(--gold-soft);border-radius:var(--radius-m);padding:.5rem .7rem;margin:0 0 .6rem}
.evt-engnote a{font-weight:800;color:var(--evt-accent,var(--tang))}

/* #2a: owner quick-start template manager */
.evt-tplbar { display: flex; align-items: center; gap: .75rem; margin-top: .5rem; flex-wrap: wrap; }
.evt-tpllist { display: flex; flex-direction: column; gap: .35rem; margin-top: .5rem; }
.evt-tplrow { display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .45rem .65rem; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); }
.evt-tplrow span { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evt-tpldel { flex: none; border: 0; background: var(--gold-soft); color: var(--ink); width: 26px; height: 26px;
  border-radius: 50%; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.evt-tpldel:hover { background: #f3d4d4; color: #8a1f1f; }

/* #2b: owner theme-colour editor */
.phead__actions { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.evt-themepanel { margin: 0 0 1rem; }
.evt-tc { border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--surface); padding: 1rem 1.1rem; }
.evt-tc__head { margin-bottom: .85rem; }
.evt-tc__head b { display: block; font-size: 1.05rem; }
.evt-tc__head span { display: block; color: var(--ink-faint); font-size: .9rem; margin-top: .15rem; }
.evt-tc__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.25rem; align-items: start; }
@media (max-width: 720px) { .evt-tc__grid { grid-template-columns: 1fr; } }
.evt-tc__controls .field { margin-bottom: .7rem; }
.evt-tc__controls input[type="color"] { width: 100%; height: 42px; border: 1px solid var(--line); border-radius: var(--radius-m); background: var(--surface); cursor: pointer; padding: 3px; }
.evt-tc__hex { font-weight: 400; color: var(--ink-faint); font-variant-numeric: tabular-nums; text-transform: uppercase; margin-left: .35rem; }
.evt-tc__actions { display: flex; gap: .5rem; margin-top: .9rem; flex-wrap: wrap; }
.evt-tc__note { color: var(--ink-faint); font-size: .82rem; margin: .6rem 0 0; }
.evt-tcprev { border-radius: var(--radius-l); overflow: hidden; border: 1px solid var(--line); }
.evt-tcprev__hero { background: var(--evt-accent); color: #fff; padding: 1.1rem 1rem; display: flex; align-items: center; gap: .55rem; font-family: var(--font-display, inherit); }
.evt-tcprev__hero b { font-size: 1.25rem; }
.evt-tcprev__emoji { font-size: 1.5rem; }
.evt-tcprev__body { background: var(--evt-soft); color: var(--evt-ink); padding: 1rem; }
.evt-tcprev__body p { margin: .5rem 0 0; font-size: .9rem; }
.evt-tcprev__pill { display: inline-block; background: var(--evt-ink); color: var(--evt-soft); border-radius: 999px; padding: .2rem .7rem; font-size: .8rem; font-weight: 700; }
.evt-tcprev__btn { display: block; width: 100%; border: 0; background: var(--evt-accent); color: #fff; font-weight: 800; padding: .7rem; cursor: default; font-size: .95rem; }

/* #2 standings clarity: numbered leaderboard ranks + rule line */
.evt-ecard__rank:not(.is-medal) { font-size: .72rem; font-weight: 800; background: var(--evt-ink, #333); color: #fff;
  line-height: 1; padding: .22rem .44rem; border-radius: 999px; filter: none; top: .45rem; left: .45rem; }
.evt-contest__rule { font-size: .82rem; color: var(--ink-soft); margin: 0 0 .7rem; line-height: 1.45; }
.evt-contest__rule a { font-weight: 800; color: var(--evt-accent, var(--tang)); }

/* Flare anchor around an entry photo (keeps the burst over the image) */
.evt-ecard__media { display: block; position: relative; line-height: 0; }
