/* ═══════════════════════════════════════════════════════════════════════════
   SEARCH VIEW — Friends & Clubs panel
   ═══════════════════════════════════════════════════════════════════════════ */

.sv2-overlay {
  position: fixed;
  inset: 0;
  z-index: 5500;
  background: rgba(0,0,0,0);
  display: flex;
  align-items: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: background 0.3s, opacity 0.3s;
}
.sv2-overlay--visible {
  opacity: 1;
  background: rgba(0,0,0,0.75);
  pointer-events: all;
}
.sv2-sheet {
  width: 100%;
  height: 94vh;
  background: var(--app-bg-card);
  border-radius: 24px 24px 0 0;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  transition: transform 0.38s cubic-bezier(0.32,0.72,0,1);
  overflow: hidden;
}
.sv2-sheet--open { transform: translateY(0); }

.sv2-handle {
  width: 40px; height: 4px;
  background: var(--app-surface-2);
  border-radius: 2px;
  margin: 12px auto 0;
  flex-shrink: 0; cursor: grab;
}

/* Header */
.sv2-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px 8px;
  flex-shrink: 0;
}
.sv2-back {
  background: var(--app-surface-1);
  border: none; color: var(--app-text-primary);
  width: 36px; height: 36px;
  border-radius: 50%;
  font-size: 1.6rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sv2-title {
  font-size: 1.9rem; font-weight: 800; color: var(--app-text-primary); margin: 0;
}

/* Tabs */
.sv2-tabs {
  display: flex;
  border: 1px solid var(--app-border);
  padding: 0 16px;
  flex-shrink: 0;
}
.sv2-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 12px 0;
  border: none; background: none;
  color: var(--app-text-tertiary);
  font-size: 1.35rem; font-weight: 600;
  font-family: inherit; cursor: pointer;
  border-bottom: 2.5px solid transparent;
  transition: color 0.2s, border-color 0.2s;
}
.sv2-tab--active {
  color: var(--color-brand--2, #00c46a);
  border-bottom-color: var(--color-brand--2, #00c46a);
}

/* Content */
.sv2-content {
  flex: 1; overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 40px;
}

/* Search bar */
.sv2-search-wrap {
  padding: 14px 16px 8px;
  position: sticky; top: 0;
  background: var(--app-bg-card);
  z-index: 10;
}
.sv2-search-row {
  display: flex; gap: 10px; align-items: center;
}
.sv2-search-box {
  flex: 1;
  display: flex; align-items: center;
  background: var(--app-surface-1);
  border: 1.5px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  padding: 10px 14px;
  gap: 10px;
  transition: border-color 0.2s;
}
.sv2-search-box:focus-within { border-color: var(--color-brand--2, #00c46a); }
.sv2-search-icon { color: var(--app-text-muted); flex-shrink: 0; }
.sv2-search-input {
  flex: 1; background: none; border: none; outline: none;
  color: var(--app-text-primary); font-size: 1.35rem; font-family: inherit;
}
.sv2-search-input::placeholder { color: var(--app-text-muted); }

.sv2-create-btn {
  background: var(--color-brand--2, #00c46a);
  border: none; color: var(--app-text-primary);
  border-radius: 14px;
  padding: 10px 16px;
  font-size: 1.3rem; font-weight: 700;
  font-family: inherit; cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.sv2-create-btn:active { opacity: 0.8; }

.sv2-location-pill {
  margin-top: 8px;
  font-size: 1.15rem;
  color: var(--app-text-tertiary);
}

/* Section title */
.sv2-section-title {
  font-size: 1.05rem; font-weight: 700;
  color: var(--app-text-muted);
  text-transform: uppercase; letter-spacing: 0.7px;
  padding: 14px 16px 6px;
}

/* List */
.sv2-list { padding: 0 16px; display: flex; flex-direction: column; gap: 8px; }

/* Item */
.sv2-item {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  background: var(--app-surface-1);
  border: 1px solid var(--app-border);
  border-radius: 16px;
  transition: background 0.15s;
}
.sv2-item:active { background: var(--app-surface-1); }
.sv2-item__avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--app-surface-2);
  display: flex; align-items: center; justify-content: center;
  color: var(--app-text-tertiary); flex-shrink: 0;
  overflow: hidden;
}
.sv2-item__avatar--club {
  border-radius: 14px;
  background: rgba(0,196,106,0.12);
}
.sv2-item__info { flex: 1; min-width: 0; }
.sv2-item__name {
  display: block; font-size: 1.35rem; font-weight: 700; color: var(--app-text-primary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sv2-item__sub {
  display: block; font-size: 1.1rem; color: var(--app-text-tertiary); margin-top: 2px;
}
.sv2-item__desc {
  display: block; font-size: 1.1rem; color: var(--app-text-muted);
  margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sv2-item__actions { display: flex; gap: 6px; flex-shrink: 0; }

/* Badges */
.sv2-badge {
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 1.2rem; font-weight: 700;
  border: none; cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.sv2-badge:active { opacity: 0.75; }
.sv2-badge--green { background: rgba(0,196,106,0.15); color: #00c46a; border: 1.5px solid rgba(0,196,106,0.3); }
.sv2-badge--gray  { background: var(--app-surface-1); color: var(--app-text-tertiary); border: 1.5px solid rgba(255,255,255,0.1); }
.sv2-badge--red   { background: rgba(248,113,113,0.12); color: #f87171; border: 1.5px solid rgba(248,113,113,0.25); }

/* Empty state */
.sv2-empty {
  display: flex; flex-direction: column; align-items: center;
  padding: 48px 24px 16px; text-align: center;
}
.sv2-empty__icon { font-size: 3.5rem; opacity: 0.4; margin-bottom: 12px; }
.sv2-empty__title { font-size: 1.5rem; font-weight: 700; color: var(--app-text-tertiary); margin: 0 0 6px; }
.sv2-empty__sub { font-size: 1.2rem; color: var(--app-text-muted); margin: 0; line-height: 1.5; }

/* Backend note */
.sv2-backend-note {
  display: flex; align-items: center; gap: 10px;
  margin: 4px 16px 8px;
  padding: 12px 14px;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--app-border);
  border-radius: 12px;
  font-size: 1.2rem;
  color: var(--app-text-muted);
  line-height: 1.4;
}

/* Invite button */
.sv2-invite-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin: 16px 16px 0;
  width: calc(100% - 32px);
  padding: 15px;
  background: var(--color-brand--2, #00c46a);
  border: none; color: var(--app-text-primary);
  border-radius: 16px;
  font-size: 1.45rem; font-weight: 700;
  font-family: inherit; cursor: pointer;
  transition: opacity 0.2s;
}
.sv2-invite-btn:active { opacity: 0.85; }

/* ── Create Club Modal ── */
.sv2-modal-overlay {
  position: fixed; inset: 0; z-index: 6500;
  background: rgba(0,0,0,0.7);
  display: flex; align-items: flex-end;
  opacity: 0; pointer-events: none;
  transition: opacity 0.25s;
}
.sv2-modal-overlay--visible { opacity: 1; pointer-events: all; }
.sv2-modal {
  width: 100%;
  background: var(--app-bg-card);
  border-radius: 24px 24px 0 0;
  padding-bottom: 32px;
  transform: translateY(20px);
  transition: transform 0.25s;
}
.sv2-modal-overlay--visible .sv2-modal { transform: translateY(0); }
.sv2-modal__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 20px 14px;
  border: 1px solid var(--app-border);
}
.sv2-modal__title { font-size: 1.7rem; font-weight: 700; color: var(--app-text-primary); margin: 0; }
.sv2-modal__close {
  background: var(--app-surface-2); border: none; color: #aaa;
  width: 32px; height: 32px; border-radius: 50%;
  font-size: 1.3rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.sv2-modal__body { padding: 16px 20px; display: flex; flex-direction: column; gap: 14px; }
.sv2-modal__field { display: flex; flex-direction: column; gap: 6px; }
.sv2-modal__label {
  font-size: 1.1rem; font-weight: 700;
  color: var(--app-text-tertiary); text-transform: uppercase; letter-spacing: 0.5px;
}
.sv2-modal__input {
  background: var(--app-surface-1);
  border: 1.5px solid rgba(255,255,255,0.1);
  border-radius: 12px; color: var(--app-text-primary);
  font-size: 1.35rem; padding: 12px 14px;
  outline: none; font-family: inherit;
  transition: border-color 0.2s;
}
.sv2-modal__input:focus { border-color: var(--color-brand--2, #00c46a); }
.sv2-modal__textarea { resize: none; min-height: 80px; }
.sv2-modal__footer {
  display: flex; gap: 10px;
  padding: 0 20px;
}
.sv2-modal__btn {
  flex: 1; padding: 14px;
  border-radius: 14px; border: none;
  font-size: 1.4rem; font-weight: 700;
  font-family: inherit; cursor: pointer;
  transition: opacity 0.2s;
}
.sv2-modal__btn--cancel { background: var(--app-surface-1); color: #aaa; flex: 0 0 auto; padding: 14px 20px; }
.sv2-modal__btn--save   { background: var(--color-brand--2, #00c46a); color: var(--app-text-primary); }


/* ── Club Detail ── */
.sv2-club-detail-overlay {
  position: fixed; inset: 0; z-index: 7000;
  background: var(--app-bg-card);
  opacity: 0; pointer-events: none;
  transition: opacity 0.28s;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.sv2-club-detail-overlay--visible { opacity: 1; pointer-events: all; }

.sv2-club-detail__banner {
  height: 230px;   /* jak u Stravy — zdjęcie ma oddychać */
  position: relative;
  display: flex;
  align-items: flex-end;
  padding: 16px 20px;
  margin-bottom: 6px;
}
/* Przyciemnienie u dołu — logo i strzałka czytelne na każdym zdjęciu */
.sv2-club-detail__banner::after {
  content: ''; position: absolute; inset: auto 0 0 0; height: 60%;
  background: linear-gradient(to top, rgba(0,0,0,0.45), transparent);
  pointer-events: none;
}
.sv2-club-detail__back {
  position: absolute; top: 16px; left: 16px;
  background: rgba(0,0,0,0.45); border: none; color: var(--app-text-primary);
  width: 38px; height: 38px; border-radius: 50%;
  font-size: 1.6rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
}
.sv2-club-detail__logo {
  width: 84px; height: 84px;
  border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  background: var(--app-surface-2);
  box-shadow: 0 6px 18px rgba(0,0,0,0.35);
  outline: 3px solid var(--app-bg-card);   /* karta „wycięta" z tła — jak u Stravy */
  margin-bottom: -26px;                    /* nachodzi na treść pod banerem */
  z-index: 2;
}
.sv2-club-detail__info { padding: 34px 20px 16px; }
.sv2-club-detail__name {
  font-size: 2.4rem; font-weight: 900; letter-spacing: -0.4px;
  color: var(--app-text-primary); margin: 0 0 10px;
}
.sv2-club-detail__meta {
  display: flex; flex-wrap: wrap;
  align-items: center; gap: 6px 16px;
  font-size: 1.3rem; color: var(--app-text-tertiary);
  margin-bottom: 6px;
}
.sv2-cd-meta__item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.sv2-cd-ico { width: 16px; height: 16px; flex: 0 0 16px; opacity: 0.9; }
.sv2-club-detail__desc {
  font-size: 1.35rem; color: var(--app-text-secondary, var(--app-text-tertiary));
  line-height: 1.55; margin: 10px 0 0;
}
.sv2-club-detail__actions { margin-bottom: 4px; }

.sv2-club-action {
  width: 100%;
  padding: 14px;
  border-radius: 16px; border: none;
  font-size: 1.45rem; font-weight: 700;
  font-family: inherit; cursor: pointer;
  transition: opacity 0.2s;
}
.sv2-club-action--join  { background: var(--color-brand--2, #00c46a); color: var(--app-text-primary); }
.sv2-club-action--leave { background: rgba(248,113,113,0.15); color: #f87171; border: 1.5px solid rgba(248,113,113,0.3); }
.sv2-club-action--owner { background: var(--app-surface-1); color: var(--app-text-tertiary); cursor: default; }

.sv2-club-detail__section-title {
  font-size: 1.1rem; font-weight: 800;
  color: var(--app-text-muted);
  text-transform: uppercase; letter-spacing: 0.8px;
  padding: 18px 20px 10px;
  border-top: 1px solid var(--app-border);   /* była pełna ramka dookoła */
}
.sv2-club-detail__feed { padding: 0 16px 16px; }
.sv2-club-detail__feed-empty {
  display: flex; flex-direction: column; align-items: center;
  padding: 32px 0; text-align: center; gap: 6px;
}
.sv2-club-detail__feed-empty span { font-size: 2.5rem; opacity: 0.4; }
.sv2-club-detail__feed-empty p { font-size: 1.3rem; color: var(--app-text-tertiary); margin: 0; }
.sv2-club-detail__feed-sub { font-size: 1.1rem !important; color: var(--app-text-muted) !important; }
.sv2-club-detail__members { padding: 0 0 80px; }


/* ── Club detail — image editing ── */
.sv2-club-detail__edit-banner {
  position: absolute; top: 12px; right: 12px;
  background: rgba(0,0,0,0.5); border-radius: 20px;
  padding: 6px 12px; font-size: 1.2rem; cursor: pointer;
  backdrop-filter: blur(4px); color: var(--app-text-primary);
  transition: background 0.2s;
}
.sv2-club-detail__edit-banner:hover { background: rgba(0,0,0,0.7); }
.sv2-club-detail__edit-logo {
  position: absolute; bottom: -4px; right: -4px;
  background: var(--color-brand--2, #00c46a);
  border-radius: 50%; width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; cursor: pointer;
}
.sv2-club-detail__logo { position: relative; }

/* ── Club feed items ── */
.sv2-club-feed-item {
  background: var(--app-surface-1);
  border: 1px solid var(--app-border);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 8px;
}
.sv2-club-feed-item__top {
  display: flex; justify-content: space-between;
  margin-bottom: 4px;
}
.sv2-club-feed-item__author { font-size: 1.2rem; font-weight: 700; color: var(--app-text-primary); }
.sv2-club-feed-item__date   { font-size: 1.1rem; color: var(--app-text-muted); }
.sv2-club-feed-item__title  { font-size: 1.3rem; font-weight: 600; color: var(--app-text-primary); margin-bottom: 4px; }
.sv2-club-feed-item__body   { font-size: 1.2rem; color: var(--app-text-tertiary); margin-bottom: 6px; }
.sv2-club-feed-item__stats  {
  display: flex; gap: 10px;
  font-size: 1.1rem; color: var(--color-brand--2, #00c46a);
  font-weight: 600;
}

/* ── Club detail actions fix ─────────────────────────────────────────────── */
.sv2-club-detail__actions {
  padding: 0 20px 16px;
}
.sv2-club-action {
  font-size: 1.3rem !important;
  padding: 11px 14px !important;
}
/* Share/Delete icon buttons — smaller */
#cdbShare, #cdbDelete {
  padding: 11px 14px !important;
  font-size: 1.4rem !important;
  min-width: 44px;
}

/* ── Club detail action row ─────────────────────────────────────────────── */
/* ── Club actions — okrągłe ikony z podpisem (układ jak Strava) ─────────────
   Wiersz nie ma już ramki dookoła (były dwa zdublowane `border`), tylko
   delikatną linię u dołu — dzięki temu nagłówek klubu czyta się jako jeden
   ciąg: hero → tytuł → meta → akcje → feed. */
.sv2-club-detail__action-row {
  display: flex;
  gap: 4px;
  padding: 18px 12px 16px;
  overflow-x: auto;
  scrollbar-width: none;
  border-bottom: 1px solid var(--app-border);
}
.sv2-club-detail__action-row::-webkit-scrollbar { display: none; }

.sv2-cd-act {
  flex: 1 0 auto;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  min-width: 68px; padding: 0 4px;
  background: none; border: none; font-family: inherit; cursor: pointer;
  color: var(--app-text-tertiary);
  transition: color 0.15s;
}
.sv2-cd-act__circle {
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--app-surface-1);
  border: 1px solid var(--app-border);
  transition: background 0.15s, border-color 0.15s, transform 0.12s;
}
.sv2-cd-act__circle .sv2-cd-ico { width: 22px; height: 22px; flex: 0 0 22px; opacity: 1; }
.sv2-cd-act__label {
  font-size: 1.15rem; font-weight: 600; white-space: nowrap;
}
.sv2-cd-act:active .sv2-cd-act__circle { transform: scale(0.92); }

/* Primary (Join/Request) — wypełniony zielony akcent MapYou */
.sv2-cd-act--primary { color: var(--color-brand--2, #00c46a); }
.sv2-cd-act--primary .sv2-cd-act__circle {
  background: var(--color-brand--2, #00c46a);
  border-color: var(--color-brand--2, #00c46a);
  color: #06281a;
}
/* Aktywna zakładka (Feed/Members) lub stan Joined */
.sv2-cd-act--active { color: var(--color-brand--2, #00c46a); }
.sv2-cd-act--active .sv2-cd-act__circle {
  background: rgba(0,196,106,0.12);
  border-color: rgba(0,196,106,0.35);
}
/* Delete */
.sv2-cd-act--danger { color: #f87171; }
.sv2-cd-act--danger .sv2-cd-act__circle { border-color: rgba(248,113,113,0.28); }
.sv2-cd-act--danger:active .sv2-cd-act__circle { background: rgba(248,113,113,0.12); }

/* ── Add Post button ─────────────────────────────────────────────────────── */
#cdbAddPost {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: calc(100% - 32px) !important;
  margin: 0 16px 4px !important;
  padding: 14px !important;
  border-radius: 16px !important;
  background: rgba(0,196,106,0.1) !important;
  border: 1.5px solid rgba(0,196,106,0.3) !important;
  color: #00c46a !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  font-family: inherit;
  cursor: pointer;
  letter-spacing: 0.01em;
  transition: background 0.15s, transform 0.1s;
}
#cdbAddPost:active {
  background: rgba(0,196,106,0.18) !important;
  transform: scale(0.98);
}

/* ═══ iOS SAFE AREA — widok szczegółów klubu ═══ */
.sv2-club-detail__back {
  top: calc(16px + env(safe-area-inset-top, 0px));
}
.sv2-club-detail__edit-banner {
  top: calc(12px + env(safe-area-inset-top, 0px));
}

/* ── Pull-to-refresh (widok klubu) ──────────────────────────────────────────
   Używamy wskaźnika z Home (.home-ptr / .home-ptr__spinner — style w style.css),
   żeby gest wyglądał identycznie w całej apce. Tu tylko korekta pozycji:
   overlay klubu sam jest kontenerem scrolla, więc spinner musi startować nad
   banerem i być ponad nim w stosie. */
.sv2-club-detail-overlay .home-ptr.sv2-ptr-pos {
  position: absolute;
  top: 0; left: 50%;
  margin-top: calc(env(safe-area-inset-top, 0px) + 6px);
  z-index: 30;
}

/* ═══ CLUB EVENTS / CHALLENGES ═══════════════════════════════════════════════ */

/* Add Post + rozwijana lista */
.cdb-add { position: relative; display: flex; gap: 6px; padding: 0 16px; }
.cdb-add__main { flex: 1; }
.cdb-add__more {
  width: 46px; border-radius: 16px; cursor: pointer;
  background: rgba(0,196,106,0.1); border: 1.5px solid rgba(0,196,106,0.3);
  color: var(--color-brand--2, #00c46a);
  display: flex; align-items: center; justify-content: center;
}
.cdb-add__more:active { background: rgba(0,196,106,0.18); }
.cdb-add__menu {
  position: absolute; right: 16px; top: calc(100% + 6px); z-index: 20;
  min-width: 220px; padding: 6px;
  background: var(--app-bg-elevated, var(--app-surface-1));
  border: 1px solid var(--app-border); border-radius: 14px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.35);
}
.cdb-add__menu[hidden] { display: none; }
.cdb-add__menu button {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 11px 12px; border: none; border-radius: 10px;
  background: none; color: var(--app-text-primary);
  font-family: inherit; font-size: 1.35rem; text-align: left; cursor: pointer;
}
.cdb-add__menu button:active { background: var(--app-surface-2); }
.cdb-add__menu button[disabled] { opacity: 0.45; cursor: default; }
.cdb-add__menu em { margin-left: auto; font-size: 1rem; opacity: 0.6; font-style: normal; }

/* Lista wyzwań */
.ev-list { padding: 0 16px 20px; }
.ev-new { margin-bottom: 10px; }
.ev-card {
  display: block; width: 100%; text-align: left;
  background: var(--app-surface-1); border: 1px solid var(--app-border);
  border-radius: 16px; padding: 14px; margin-bottom: 10px;
  font-family: inherit; cursor: pointer;
  transition: transform 0.1s;
}
.ev-card:active { transform: scale(0.985); }
.ev-card--past { opacity: 0.62; }
.ev-card__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.ev-card__title { font-size: 1.5rem; font-weight: 800; color: var(--app-text-primary); }
.ev-card__time  { font-size: 1.1rem; color: var(--app-text-muted); white-space: nowrap; }
.ev-card__meta  { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ev-chip {
  font-size: 1.1rem; padding: 4px 9px; border-radius: 999px;
  background: var(--app-surface-2); color: var(--app-text-tertiary);
}
.ev-past-title {
  font-size: 1.05rem; font-weight: 800; letter-spacing: 0.8px;
  color: var(--app-text-muted); text-transform: uppercase;
  margin: 18px 0 8px;
}
.ev-empty { text-align: center; padding: 28px 0; color: var(--app-text-tertiary); }
.ev-empty span { font-size: 2.4rem; opacity: 0.45; display: block; margin-bottom: 4px; }
.ev-empty p { margin: 0; font-size: 1.3rem; }
.ev-loading { padding: 26px; text-align: center; color: var(--app-text-muted); font-size: 1.3rem; }

/* Modal (tworzenie + szczegóły) */
.ev-modal {
  position: fixed; inset: 0; z-index: 8000;
  background: rgba(0,0,0,0.55); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; opacity: 0; pointer-events: none; transition: opacity 0.22s;
  overflow-y: auto;
}
.ev-modal--visible { opacity: 1; pointer-events: all; }
.ev-modal__card {
  width: 100%; max-width: 420px; max-height: 86dvh; overflow-y: auto;
  background: var(--app-bg-card); border-radius: 22px; padding: 22px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.5);
}
.ev-modal__title { font-size: 2rem; font-weight: 900; margin: 0 0 14px; color: var(--app-text-primary); }
.ev-detail__head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.ev-detail__desc { font-size: 1.3rem; color: var(--app-text-secondary, var(--app-text-tertiary)); margin: 0 0 12px; line-height: 1.5; }

.ev-field { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px; flex: 1; }
.ev-field span { font-size: 1.1rem; font-weight: 700; color: var(--app-text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.ev-field input, .ev-field select, .ev-field textarea {
  width: 100%; padding: 11px 12px; font-size: 1.4rem; font-family: inherit;
  background: var(--app-surface-1); border: 1px solid var(--app-border);
  border-radius: 12px; color: var(--app-text-primary);
}
.ev-field textarea { resize: vertical; }
.ev-field--sm { flex: 0 0 110px; }
.ev-row { display: flex; gap: 10px; }
.ev-note { font-size: 1.1rem; color: var(--app-text-muted); line-height: 1.45; margin: 4px 0 14px; }
.ev-err  { font-size: 1.2rem; color: #f87171; min-height: 18px; margin-bottom: 6px; }

.ev-btn {
  width: 100%; padding: 13px; border-radius: 14px; border: none;
  font-family: inherit; font-size: 1.4rem; font-weight: 700; cursor: pointer;
  margin-top: 6px;
}
.ev-btn--primary { background: var(--color-brand--2, #00c46a); color: #06281a; }
.ev-btn--ghost {
  background: rgba(0,196,106,0.1); color: var(--color-brand--2, #00c46a);
  border: 1.5px solid rgba(0,196,106,0.3);
}
.ev-btn:disabled { opacity: 0.6; }

/* Twój postęp */
.ev-mine {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  background: var(--app-surface-1); border: 1px solid var(--app-border);
  border-radius: 14px; padding: 12px 14px; margin: 12px 0 4px;
  font-size: 1.3rem; color: var(--app-text-tertiary);
}
.ev-mine b { color: var(--app-text-primary); }

/* Tabela wyników */
.ev-stands { margin-bottom: 8px; }
.ev-stand { display: flex; align-items: center; gap: 10px; padding: 9px 0; }
.ev-stand--me { background: rgba(0,196,106,0.06); border-radius: 12px; padding: 9px 8px; }
.ev-stand__rank {
  flex: 0 0 22px; text-align: center;
  font-size: 1.2rem; font-weight: 800; color: var(--app-text-muted);
}
.ev-stand__avatar {
  flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%;
  overflow: hidden; background: var(--app-surface-2);
  display: flex; align-items: center; justify-content: center; font-size: 1.4rem;
}
.ev-stand__avatar img { width: 100%; height: 100%; object-fit: cover; }
.ev-stand__body { flex: 1; min-width: 0; }
.ev-stand__top { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.ev-stand__name {
  font-size: 1.3rem; font-weight: 600; color: var(--app-text-primary);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ev-stand__val { font-size: 1.25rem; color: var(--app-text-tertiary); white-space: nowrap; }
.ev-stand__val--done { color: var(--color-brand--2, #00c46a); font-weight: 800; }
.ev-bar { height: 5px; border-radius: 3px; background: var(--app-surface-2); overflow: hidden; }
.ev-bar__fill { height: 100%; background: var(--app-text-muted); border-radius: 3px; transition: width 0.4s; }
.ev-bar__fill--done { background: var(--color-brand--2, #00c46a); }
.ev-btn--danger {
  background: rgba(248,113,113,0.12); color: #f87171;
  border: 1.5px solid rgba(248,113,113,0.3);
}

/* ── Club members — ranking ─────────────────────────────────────────────────── */
.cm-list { padding: 0 16px 24px; }
.cm-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; }
.cm-row--me { background: rgba(0,196,106,0.06); border-radius: 12px; padding: 10px 8px; }
.cm-row__rank {
  flex: 0 0 26px; text-align: center;
  font-size: 1.3rem; font-weight: 800; color: var(--app-text-muted);
}
.cm-row__avatar {
  flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%;
  overflow: hidden; background: var(--app-surface-2);
  border: none; padding: 0; cursor: pointer;
  display: flex; align-items: center; justify-content: center; font-size: 1.6rem;
}
.cm-row__avatar img { width: 100%; height: 100%; object-fit: cover; }
.cm-row__avatar:active { transform: scale(0.94); }
.cm-row__body { flex: 1; min-width: 0; }
.cm-row__top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.cm-row__name {
  background: none; border: none; padding: 0; cursor: pointer;
  font-family: inherit; font-size: 1.35rem; font-weight: 700;
  color: var(--app-text-primary); text-align: left;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.cm-owner {
  font-size: 0.95rem; font-weight: 700; text-transform: uppercase;
  color: var(--color-brand--2, #00c46a); background: rgba(0,196,106,0.12);
  padding: 2px 6px; border-radius: 6px; margin-left: 4px; letter-spacing: 0.4px;
}
.cm-row__km { font-size: 1.3rem; font-weight: 800; color: var(--app-text-primary); white-space: nowrap; }
.cm-bar { height: 4px; border-radius: 2px; background: var(--app-surface-2); overflow: hidden; margin: 5px 0 4px; }
.cm-bar__fill { height: 100%; background: var(--color-brand--2, #00c46a); border-radius: 2px; transition: width 0.4s; }
.cm-row__sub { font-size: 1.1rem; color: var(--app-text-muted); }

/* ═══ CLUB POLLS ═════════════════════════════════════════════════════════════ */
.pl-list { padding: 0 16px; }

.pl-card {
  background: var(--app-surface-1); border: 1px solid var(--app-border);
  border-radius: 16px; padding: 14px; margin-bottom: 10px;
  transition: opacity 0.15s;
}
.pl-card--busy { opacity: 0.55; pointer-events: none; }
.pl-card__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.pl-card__type { font-size: 1.05rem; font-weight: 700; color: var(--app-text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.pl-card__closed { font-size: 1rem; font-weight: 700; color: #f87171; background: rgba(248,113,113,0.12); padding: 2px 7px; border-radius: 6px; }
.pl-card__q { font-size: 1.5rem; font-weight: 700; color: var(--app-text-primary); margin-bottom: 12px; line-height: 1.35; }

.pl-opts { display: flex; flex-direction: column; gap: 7px; }
.pl-opt {
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 9px;
  width: 100%; padding: 11px 12px;
  background: var(--app-surface-2); border: 1.5px solid transparent;
  border-radius: 12px; cursor: pointer;
  font-family: inherit; font-size: 1.3rem; color: var(--app-text-primary);
  text-align: left; transition: border-color 0.15s, background 0.15s;
}
.pl-opt--mine { border-color: var(--color-brand--2, #00c46a); }
.pl-opt--closed { cursor: default; opacity: 0.75; }
.pl-opt:active:not(.pl-opt--closed) { background: var(--app-border); }
.pl-opt__mark { flex: 0 0 auto; font-size: 1.2rem; color: var(--color-brand--2, #00c46a); z-index: 1; }
.pl-opt__label { flex: 1; z-index: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-opt__pct { z-index: 1; font-size: 1.2rem; font-weight: 800; color: var(--app-text-tertiary); }
/* Pasek wyniku rysowany POD tekstem — bez przeskoku layoutu po głosowaniu */
.pl-opt__bar {
  position: absolute; left: 0; top: 0; bottom: 0;
  background: rgba(0,196,106,0.16); z-index: 0;
  transition: width 0.45s cubic-bezier(0.4,0,0.2,1);
}
.pl-card__foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 10px; font-size: 1.1rem; color: var(--app-text-muted);
}
.pl-del { background: none; border: none; color: #f87171; font-family: inherit; font-size: 1.1rem; cursor: pointer; padding: 2px 4px; }

/* Modal tworzenia */
.pl-types { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; }
.pl-type {
  display: grid; grid-template-columns: 28px 1fr; grid-template-rows: auto auto;
  gap: 0 10px; align-items: center; text-align: left;
  padding: 10px 12px; border-radius: 12px; cursor: pointer;
  background: var(--app-surface-1); border: 1.5px solid var(--app-border);
  font-family: inherit;
}
.pl-type--on { border-color: var(--color-brand--2, #00c46a); background: rgba(0,196,106,0.08); }
.pl-type__ico  { grid-row: 1 / 3; font-size: 1.6rem; text-align: center; }
.pl-type__lbl  { font-size: 1.35rem; font-weight: 700; color: var(--app-text-primary); }
.pl-type__hint { font-size: 1.1rem; color: var(--app-text-muted); }

.pl-opts-title { display: block; font-size: 1.1rem; font-weight: 700; color: var(--app-text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 5px; }
#plOpts { display: flex; flex-direction: column; gap: 7px; }
.pl-opt-in {
  width: 100%; padding: 11px 12px; font-size: 1.35rem; font-family: inherit;
  background: var(--app-surface-1); border: 1px solid var(--app-border);
  border-radius: 12px; color: var(--app-text-primary);
}
.pl-add-opt {
  background: none; border: none; cursor: pointer; font-family: inherit;
  color: var(--color-brand--2, #00c46a); font-size: 1.2rem; font-weight: 700;
  padding: 8px 2px; margin-bottom: 6px;
}
.pl-check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; cursor: pointer; }
.pl-check input { margin-top: 3px; width: 18px; height: 18px; accent-color: var(--color-brand--2, #00c46a); }
.pl-check span { font-size: 1.25rem; color: var(--app-text-primary); line-height: 1.35; }
.pl-check em { display: block; font-style: normal; font-size: 1.05rem; color: var(--app-text-muted); margin-top: 1px; }
