/* ==========================================================================
   Events · The Club calendar. Built on the Members palette (members.css: --mc-* tokens, .mc-page, .mc-hero,
   .mc-sheet, .mc-btn, .mc-step). Dark stage, the circle's animated world behind, paper cards in front.
   ========================================================================== */
.ev-page { --c: #1d8fc4; min-height: 100vh; }
.ev-bg { background: #050812; }
.ev-backdrop { position: absolute; inset: 0; }
.ev-backdrop .mc-backdrop { opacity: .85; }
.ev-bg .mc-bubbles i { --bubble: color-mix(in srgb, var(--c) 45%, transparent); }
.ev-hero h1 { font-size: clamp(44px, 8vw, 76px); }
.ev-host-btn { background: linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 55%, #1d8fc4)); box-shadow: 0 10px 26px color-mix(in srgb, var(--c) 40%, transparent); }
.mc-plan.is-warn { color: #b45309; background: #fff4e0; }

/* the sheet: filters, tabs, the deposit line */
.ev-sheet { padding-top: 22px; padding-bottom: 22px; }
.ev-filters { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.ev-filter {
  --c: #1d8fc4; appearance: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 14px 9px 10px; border-radius: 10px; border: 1px solid rgba(19, 35, 63, .12); background: rgba(255, 255, 255, .8);
  color: var(--mc-ink); font: 600 14px/1 system-ui, sans-serif; transition: box-shadow .2s ease, transform .15s ease;
}
.ev-filter .mc-icon { width: 22px; height: 22px; color: var(--c); filter: brightness(.88) saturate(1.15); }
.ev-filter:hover { box-shadow: 0 8px 20px rgba(19, 35, 63, .12); }
.ev-filter[aria-pressed="true"] { background: #fff; box-shadow: 0 0 0 2px var(--c), 0 10px 26px color-mix(in srgb, var(--c) 30%, transparent); }
.ev-tabs { display: flex; gap: 4px; justify-content: center; margin-top: 16px; }
.ev-tabs [role="tab"] { appearance: none; border: 0; background: transparent; cursor: pointer; padding: 8px 12px; border-radius: 10px; font: 700 11px/1 var(--mc-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--mc-muted); }
.ev-tabs [role="tab"][aria-selected="true"] { background: var(--mc-ink); color: #fff; }
.ev-deposit-note { margin: 16px auto 0; max-width: 620px; text-align: center; color: var(--mc-muted); font-size: 13.5px; line-height: 1.5; }
.ev-deposit-note b { color: var(--mc-ink); }

/* sections */
.ev-h2 { font: 600 clamp(24px, 3.6vw, 32px)/1.1 var(--mc-serif); color: #fff; margin: 0 0 14px; display: flex; align-items: center; gap: 10px; text-shadow: 0 4px 20px rgba(0, 0, 0, .4); }
.ev-h2-row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.ev-pulse { width: 10px; height: 10px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52, 211, 153, .6); animation: ev-pulse 1.8s ease-out infinite; flex: none; }
@keyframes ev-pulse { to { box-shadow: 0 0 0 12px rgba(52, 211, 153, 0); } }
.ev-live { max-width: 1180px; margin: 0 auto 36px; }
.ev-rail { display: flex; gap: 14px; overflow-x: auto; padding: 6px 2px 14px; scroll-snap-type: x proximity; scrollbar-width: none; }
.ev-rail::-webkit-scrollbar { display: none; }
.ev-rail .ev-card { flex: 0 0 min(320px, 84vw); scroll-snap-align: start; }
.ev-calendar { max-width: 1180px; margin: 0 auto; }
.ev-day { margin-bottom: 34px; }
.ev-day-label { font: 700 11px/1 var(--mc-mono); letter-spacing: .3em; text-transform: uppercase; color: rgba(255, 255, 255, .7); margin: 0 0 12px; padding-left: 2px; }
.ev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.ev-loading, .ev-empty { color: rgba(255, 255, 255, .7); text-align: center; padding: 40px 0; font-size: 15px; }

/* one card: cover on top (the circle's scene or a photo), paper below */
.ev-card {
  --c: #1d8fc4; display: grid; grid-template-rows: 150px auto; text-decoration: none; color: var(--mc-ink);
  border-radius: 22px; overflow: hidden; background: #fff; border: 1px solid rgba(255, 255, 255, .9);
  box-shadow: 0 18px 44px rgba(5, 20, 45, .4); transition: transform .3s var(--mc-ease), box-shadow .3s ease;
  opacity: 0; animation: ev-rise .6s var(--mc-ease) forwards; animation-delay: calc(var(--i, 0) * 50ms);
}
@keyframes ev-rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; } }
.ev-card:hover { transform: translateY(-4px); box-shadow: 0 28px 60px rgba(5, 20, 45, .5), 0 0 0 2px var(--c); }
.ev-card.is-live { box-shadow: 0 18px 44px rgba(5, 20, 45, .4), 0 0 0 2px #34d399; }
.ev-card.is-locked .ev-body { opacity: .78; }
.ev-cover { position: relative; overflow: hidden; background: #0b1020; }
.ev-cover svg, .ev-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .08), rgba(0, 0, 0, .38)); }
.ev-pills { position: absolute; z-index: 1; left: 12px; top: 12px; display: flex; gap: 6px; flex-wrap: wrap; }
.ev-pill { font: 700 10px/1 var(--mc-mono); letter-spacing: .14em; text-transform: uppercase; padding: 7px 10px; border-radius: 10px; background: rgba(255, 255, 255, .92); color: var(--mc-ink); backdrop-filter: blur(6px); }
.ev-kind.is-official { background: linear-gradient(135deg, #ffd166, #f4a300); color: #3b2a00; }
.ev-kind.is-partner { background: linear-gradient(135deg, #4be3ff, #1d8fc4); color: #fff; }
.ev-kind.is-member { background: rgba(255, 255, 255, .92); }
.ev-status.is-confirmed { background: #d9f7e5; color: #166534; }
.ev-status.is-proposed { background: #fff3cd; color: #7a4e00; }
.ev-status.is-cancelled { background: #fee2e2; color: #991b1b; }
.ev-card.is-live .ev-status { background: #34d399; color: #052e1b; }
.ev-pro { background: var(--mc-ink); color: #fff; }
.ev-when { position: absolute; z-index: 1; right: 12px; top: 12px; display: grid; justify-items: center; padding: 8px 10px 7px; border-radius: 14px; background: rgba(255, 255, 255, .94); color: var(--mc-ink); min-width: 44px; }
.ev-when b { font: 700 20px/1 var(--mc-serif); }
.ev-when small { font: 700 9.5px/1 var(--mc-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--mc-muted); margin-top: 3px; }
.ev-body { padding: 14px 16px 16px; display: grid; gap: 8px; }
.ev-meta { margin: 0; display: flex; align-items: center; gap: 7px; font: 700 10.5px/1 var(--mc-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--mc-muted); }
.ev-meta .mc-icon { width: 18px; height: 18px; color: var(--c); filter: brightness(.88) saturate(1.15); flex: none; }
.ev-title { margin: 0; font: 600 20px/1.2 var(--mc-serif); letter-spacing: .005em; }
.ev-venue { margin: 0; color: var(--mc-muted); font-size: 13.5px; }
.ev-who { display: flex; align-items: center; gap: 10px; margin-top: 2px; }
.ev-faces { display: flex; }
.ev-face { width: 28px; height: 28px; border-radius: 50%; border: 2px solid #fff; margin-left: -8px; display: grid; place-items: center; font: 700 11px/1 system-ui; color: #fff; background: linear-gradient(135deg, var(--c), color-mix(in srgb, var(--c) 50%, #1d8fc4)); overflow: hidden; font-style: normal; flex: none; }
.ev-face:first-child { margin-left: 0; }
.ev-face img { width: 100%; height: 100%; object-fit: cover; }
.ev-face.is-anon { background: #c9d2e0; color: #5b6b85; }
.ev-count { font-size: 13px; color: var(--mc-ink); line-height: 1.3; }
.ev-foot { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.ev-spots, .ev-tier, .ev-gate, .ev-mine { font: 700 10px/1 var(--mc-mono); letter-spacing: .1em; text-transform: uppercase; padding: 6px 9px; border-radius: 10px; background: #f3f5f9; color: var(--mc-muted); }
.ev-spots.is-full { background: #fee2e2; color: #991b1b; }
.ev-tier { background: #fff4e0; color: #b45309; }
.ev-gate { background: color-mix(in srgb, var(--c) 14%, #fff); color: color-mix(in srgb, var(--c) 70%, var(--mc-ink)); }
.ev-mine { background: var(--mc-ink); color: #fff; margin-left: auto; }
.ev-card.is-compact { grid-template-rows: 120px auto; }
.ev-card.is-compact .ev-title { font-size: 17px; }

/* one event */
.ev-one { padding-top: 0; }
.ev-detail { max-width: 980px; margin: 0 auto; }
.ev-detail-hero { position: relative; margin: 0 0 18px; }
.ev-detail-cover { --c: inherit; position: relative; height: clamp(240px, 42vh, 420px); border-radius: 30px; overflow: hidden; background: #0b1020; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.ev-detail-cover svg, .ev-detail-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ev-detail-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .05) 30%, rgba(0, 0, 0, .7)); }
.ev-detail-cover .ev-pills { left: 18px; top: 18px; }
.ev-detail-head { position: absolute; z-index: 1; left: 0; right: 0; bottom: 26px; padding: 0 clamp(18px, 4vw, 40px); }
.ev-detail-kicker { color: #fff; display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 8px; text-shadow: 0 2px 12px rgba(0, 0, 0, .6); }
.ev-detail-kicker .mc-icon { width: 20px; height: 20px; }
.ev-detail-title { margin: 0; text-align: center; color: #fff; font: 600 clamp(30px, 5.4vw, 52px)/1.06 var(--mc-serif); text-shadow: 0 6px 30px rgba(0, 0, 0, .6); }
.ev-detail-sheet { margin: 0; border-radius: 30px; padding: 34px clamp(18px, 4vw, 40px) 40px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px 32px; }
.ev-detail-sheet::before, .ev-detail-sheet::after { display: none; }
.ev-facts { grid-column: 1; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.ev-fact { display: grid; gap: 5px; padding: 12px 14px; border-radius: 16px; background: rgba(255, 255, 255, .7); border: 1px solid #fff; }
.ev-fact > span { font: 700 10px/1 var(--mc-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--mc-muted); }
.ev-fact > b { font: 600 15px/1.35 system-ui, sans-serif; color: var(--mc-ink); white-space: pre-line; }
.ev-maplink { font-size: 13px; color: var(--mc-ocean); font-weight: 600; text-decoration: none; }
.ev-desc { grid-column: 1; color: var(--mc-ink); font-size: 16px; line-height: 1.6; }
.ev-desc p { margin: 0 0 12px; }
.ev-going { grid-column: 1; }
.ev-going .ev-h2 { color: var(--mc-ink); text-shadow: none; font-size: 24px; }
.ev-chars { margin: -6px 0 14px; color: var(--mc-muted); font-size: 14px; }
.ev-locked { color: #b45309; font-size: 14px; }
.ev-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; }
.ev-person { display: grid; grid-template-columns: 36px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 8px 10px; border-radius: 14px; background: rgba(255, 255, 255, .75); text-decoration: none; color: var(--mc-ink); }
.ev-person .ev-face { grid-row: 1 / 3; width: 36px; height: 36px; margin: 0; }
.ev-person b { font-size: 14px; }
.ev-person small { color: var(--mc-muted); font-size: 12px; }
.ev-person.is-anon { opacity: .75; }
.ev-panel { grid-column: 2; grid-row: 1 / 5; align-self: start; position: sticky; top: 16px; display: grid; gap: 14px; padding: 18px; border-radius: 22px; background: #fff; box-shadow: 0 18px 44px rgba(19, 35, 63, .16); }
.ev-panel-spots { margin: 0; font: 600 15px/1.35 system-ui, sans-serif; color: var(--mc-ink); }
.ev-panel-actions { display: grid; gap: 10px; }
.ev-act { width: 100%; }
.ev-panel-you { margin: 0; font: 600 20px/1.2 var(--mc-serif); color: var(--mc-green); }
.ev-panel-note, .ev-panel-fine { margin: 0; color: var(--mc-muted); font-size: 13px; line-height: 1.45; }
.ev-anon { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: var(--mc-muted); line-height: 1.4; }
.ev-anon input { margin-top: 2px; accent-color: var(--c); }
.ev-deposit { padding: 12px 14px; border-radius: 16px; background: #f6f8fb; border: 1px solid rgba(19, 35, 63, .08); }
.ev-deposit b { display: block; font: 600 16px/1.2 var(--mc-serif); color: var(--mc-ink); margin-bottom: 4px; }
.ev-deposit p { margin: 0 0 6px; color: var(--mc-muted); font-size: 12.5px; line-height: 1.45; }
.ev-deposit p:last-child { margin-bottom: 0; }
.ev-note { margin: 0; font-size: 13px; color: var(--mc-green); }
.ev-note.is-bad { color: #b91c1c; }
.ev-host-tools { grid-column: 1; padding-top: 10px; border-top: 1px solid var(--mc-line); }
.ev-host-tools .ev-h2 { color: var(--mc-ink); text-shadow: none; font-size: 22px; }
.ev-host-row { display: flex; gap: 8px; flex-wrap: wrap; }
.ev-marks { display: grid; gap: 6px; margin: 10px 0 12px; }
.ev-mark { display: flex; align-items: center; gap: 6px; padding: 6px 6px 6px 12px; border-radius: 12px; background: rgba(255, 255, 255, .75); }
.ev-mark b { flex: 1; font-size: 14px; }
.ev-mark-btn { appearance: none; cursor: pointer; border: 1px solid rgba(19, 35, 63, .14); background: #fff; border-radius: 10px; padding: 7px 11px; font: 600 12.5px/1 system-ui; color: var(--mc-ink); }
.ev-mark-btn[aria-pressed="true"] { background: var(--mc-ink); color: #fff; }
@media (max-width: 860px) {
  .ev-detail-sheet { grid-template-columns: 1fr; }
  .ev-panel { grid-column: 1; grid-row: auto; position: static; }
}

/* the host wizard */
.ev-wizard { padding-bottom: 120px; }
.ev-steps { display: grid; gap: 22px; justify-items: center; padding-top: 70px; }
.ev-step { width: min(640px, 100%); }
.ev-step .mc-option small { display: block; font-weight: 500; color: var(--mc-muted); font-size: 12.5px; margin-top: 3px; }
.ev-next, .ev-publish { margin-top: 18px; }
.ev-publish { width: 100%; font-size: 17px; min-height: 52px; }
.ev-step select { width: 100%; box-sizing: border-box; padding: 14px 16px; border-radius: 16px; border: 1px solid rgba(19, 35, 63, .12); background: #fff; color: var(--mc-ink); font: 16px system-ui, sans-serif; }
.ev-step input[type="datetime-local"] { width: 100%; box-sizing: border-box; padding: 14px 16px; border-radius: 16px; border: 1px solid rgba(19, 35, 63, .12); background: #fff; color: var(--mc-ink); font: 16px system-ui, sans-serif; }
.ev-place-wrap { position: relative; }
.ev-places { position: absolute; z-index: 5; left: 0; right: 0; top: 100%; margin-top: 6px; display: grid; background: #fff; border-radius: 16px; box-shadow: 0 18px 44px rgba(19, 35, 63, .22); overflow: hidden; max-height: 280px; overflow-y: auto; }
.ev-place { appearance: none; cursor: pointer; border: 0; background: transparent; text-align: left; padding: 11px 14px; display: grid; gap: 2px; border-bottom: 1px solid var(--mc-line); }
.ev-place:hover { background: #f3f7fb; }
.ev-place b { font-size: 14px; color: var(--mc-ink); }
.ev-place small { font-size: 12px; color: var(--mc-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ev-cover-preview { height: 170px; border-radius: 18px; }
.ev-summary { display: grid; gap: 8px; margin-top: 18px; }
.ev-error { color: #b91c1c; font-size: 13.5px; margin: 10px 0 0; }
.ev-step .ev-deposit { margin-top: 16px; }
@media (prefers-reduced-motion: reduce) { .ev-card, .ev-pulse { animation: none; opacity: 1; } }

/* members' events, to a guest: blurred, locked, nothing about them on the page */
.ev-card-locked { position: relative; appearance: none; border: 0; padding: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; width: 100%; }
.ev-card-locked { overflow: hidden; background: #0b1020; }
.ev-card-locked .ev-cover { aspect-ratio: 16 / 10; filter: blur(10px) saturate(1.15); transform: scale(1.08); }
.ev-card-locked .ev-body { display: none; }
.ev-blur-line { display: block; height: 12px; border-radius: 6px; background: rgba(255, 255, 255, .28); width: 80%; }
.ev-blur-line.is-short { width: 40%; } .ev-blur-line.is-mid { width: 60%; }
.ev-lock { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 4px; text-align: center; color: #fff; background: rgba(6, 10, 22, .28); }
.ev-lock svg { width: 30px; height: 30px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; margin-bottom: 4px; }
.ev-lock b { font-size: 16px; padding: 7px 16px; border-radius: 10px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); backdrop-filter: blur(6px); }
.ev-lock small { font-size: 12px; opacity: .85; }
.ev-public { font: 700 11px/1 ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; padding: 5px 8px; border-radius: 8px; color: #34d399; border: 1px solid rgba(52, 211, 153, .45); }
