:root {
  --dark: #1a1a1a;
  --dark-mid: #2a2824;
  --dark-warm: #332f28;
  --cream: #e8dcc8;
  --cream-light: #f2ece0;
  --cream-pale: #f8f5ef;
  --gold: #c9a84c;
  --gold-light: #dfc577;
  --gold-dark: #a68b3a;
  --rust: #8b4513;
  --rust-light: #a0522d;
  --red-accent: #b83230;
  --red-light: #f8e0df;
  --green-accent: #4a6b3a;
  --green-light: #e4eddf;
  --stone: #8a8078;
  --stone-light: #b5aca2;
  --info-bg: #e6edf5;
  --info: #3a5f8a;
}
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family:'Outfit',sans-serif; background:var(--cream-pale); color:var(--dark); overflow-x:hidden; }

.title-font {
  font-family:'Oswald',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.06em;
  font-weight:700;
}

/* NAV */
nav {
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(26,26,26,0.97);backdrop-filter:blur(12px);
  padding:0 2rem;height:64px;
  display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 2px 20px rgba(0,0,0,0.3);
  border-bottom:2px solid var(--gold-dark);
}
.nav-brand {
  font-family:'Oswald',sans-serif;font-weight:800;font-size:1.3rem;color:var(--gold);
  letter-spacing:0.08em;text-transform:uppercase;display:flex;align-items:center;gap:.6rem;
  text-decoration:none;
}
.nav-brand img { width:38px;height:38px;border-radius:50%;object-fit:cover; }
.nav-links { display:flex;gap:.25rem; }
.nav-links a {
  background:none;border:none;color:var(--cream);
  font-family:'Outfit',sans-serif;font-size:.9rem;font-weight:500;
  padding:.5rem 1rem;border-radius:8px;cursor:pointer;transition:all .2s;
  text-decoration:none;display:inline-flex;align-items:center;
}
.nav-links a:hover { color:#fff;background:rgba(255,255,255,0.08); }
.nav-links a.active { color:var(--gold);background:rgba(201,168,76,0.12); }
.nav-links a.locked { opacity:.4;pointer-events:none;position:relative; }
.nav-links a.locked::after { content:'🔒';font-size:.65rem;position:absolute;top:4px;right:4px; }
.nav-user { display:flex;align-items:center;gap:.75rem; }
.nav-user .avatar {
  width:34px;height:34px;border-radius:50%;background:var(--gold);color:var(--dark);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;
}
.nav-user .user-name { color:var(--cream);font-size:.85rem;font-weight:500; }
.nav-user .badge {
  font-size:.65rem;background:var(--gold);color:var(--dark);
  padding:2px 8px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
}
.nav-user-menu { position:relative;cursor:pointer; }
.user-dropdown {
  position:absolute;top:50px;right:0;background:#fff;border-radius:12px;
  box-shadow:0 8px 30px rgba(0,0,0,0.15);padding:.5rem 0;min-width:200px;
  display:none;z-index:110;border:1px solid rgba(0,0,0,0.08);
}
.user-dropdown.open { display:block; }
.user-dropdown button {
  display:block;width:100%;text-align:left;padding:.65rem 1.2rem;
  font-family:'Outfit',sans-serif;font-size:.88rem;color:var(--dark);
  background:none;border:none;cursor:pointer;transition:background .15s;
}
.user-dropdown button:hover { background:var(--cream); }
.user-dropdown hr { border:none;border-top:1px solid rgba(0,0,0,0.06);margin:.3rem 0; }

/* PAGE WRAPPER */
.page-wrapper { min-height:100vh; padding-top:64px; }

/* HERO */
.hero {
  min-height:calc(100vh - 64px);
  background:#0d0d0b;
  display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;
}

/* Image de fond à ~50% d'opacité */
.hero-bg {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  opacity:0.48;
  z-index:0;
}

/* Superposition gradient pour lisibilité — assombrit les bords et le centre légèrement */
.hero-overlay {
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(ellipse at center, rgba(10,9,8,0.45) 0%, rgba(10,9,8,0.15) 50%, rgba(10,9,8,0.65) 100%),
    linear-gradient(to bottom, rgba(10,9,8,0.5) 0%, transparent 30%, transparent 70%, rgba(10,9,8,0.7) 100%);
}
.hero-mountains {
  position:absolute;bottom:0;left:0;right:0;height:40%;opacity:.06;z-index:2;
}
.hero-content {
  position:relative;z-index:3;text-align:center;padding:2rem;max-width:800px;
  animation:heroIn 1.2s cubic-bezier(.16,1,.3,1) both;
}
@keyframes heroIn { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} }
.hero-tag {
  display:inline-block;font-family:'Oswald',sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold);background:rgba(10,9,8,0.55);
  padding:.4rem 1.4rem;border-radius:30px;margin-bottom:2rem;
  border:1px solid rgba(201,168,76,0.5);
  backdrop-filter:blur(4px);
  text-shadow:0 1px 4px rgba(0,0,0,0.8);
}
.hero h1 {
  font-family:'Oswald',sans-serif;font-size:clamp(3.2rem,9vw,6rem);
  font-weight:900;color:#fff;line-height:1;margin-bottom:.5rem;letter-spacing:0.05em;
  text-transform:uppercase;
  text-shadow:0 2px 8px rgba(0,0,0,0.9), 0 8px 32px rgba(0,0,0,0.7);
}
.hero h1 span {
  display:block;color:var(--gold-light);font-family:'Oswald',sans-serif;font-style:normal;
  font-size:.32em;font-weight:500;margin-top:.5em;letter-spacing:.12em;
  text-shadow:0 2px 10px rgba(0,0,0,0.8);
}
.hero p {
  font-size:1.1rem;color:rgba(242,236,224,0.9);max-width:520px;margin:1.5rem auto 2.5rem;
  line-height:1.7;font-weight:400;
  text-shadow:0 1px 6px rgba(0,0,0,0.9);
}
.btn-primary {
  display:inline-flex;align-items:center;gap:.6rem;
  background:var(--gold);color:var(--dark);font-family:'Oswald',sans-serif;
  font-size:1.05rem;font-weight:700;padding:1rem 2.5rem;border-radius:60px;
  border:none;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);
  box-shadow:0 4px 20px rgba(201,168,76,0.3);letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;
}
.btn-primary:hover { transform:translateY(-2px) scale(1.03);box-shadow:0 8px 30px rgba(201,168,76,0.4);background:var(--gold-light); }
.btn-primary svg { width:20px;height:20px; }
.hero-stats {
  display:flex;justify-content:center;gap:3rem;margin-top:3.5rem;
  padding-top:2.5rem;border-top:1px solid rgba(255,255,255,0.15);
}
.hero-stat { text-align:center; }
.hero-stat .num { font-family:'Oswald',sans-serif;font-size:2rem;font-weight:800;color:var(--gold-light);letter-spacing:.02em;text-shadow:0 2px 10px rgba(0,0,0,0.8); }
.hero-stat .label { font-size:.78rem;color:rgba(232,220,200,0.75);font-weight:400;margin-top:.2rem;text-shadow:0 1px 4px rgba(0,0,0,0.8); }
.scroll-hint {
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  color:rgba(232,220,200,0.55);font-size:.75rem;text-align:center;
  animation:bob 2s ease-in-out infinite;
  z-index:3;
}
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }
.scroll-hint svg { width:20px;height:20px;display:block;margin:.4rem auto 0; }

/* PAGE LE CLUB */
.page-club { background:var(--cream-pale); }
.section-header { padding:5rem 2rem 3rem;text-align:center;max-width:700px;margin:0 auto; }
.section-header .overline {
  font-family:'Oswald',sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--rust);margin-bottom:.75rem;
}
.section-header h2 {
  font-family:'Oswald',sans-serif;font-size:clamp(2rem,5vw,3rem);color:var(--dark);
  margin-bottom:1rem;line-height:1.1;text-transform:uppercase;letter-spacing:.04em;
}
.section-header p { font-size:1.05rem;color:var(--stone);line-height:1.8;font-weight:300; }
.values-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;padding:0 2rem 4rem;max-width:1000px;margin:0 auto; }
.value-card {
  background:#fff;border-radius:16px;padding:2rem;
  border:1px solid rgba(0,0,0,0.06);transition:all .3s;
  box-shadow:0 2px 10px rgba(0,0,0,0.03);
}
.value-card:hover { transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.08); }
.value-icon { width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:1.2rem; }
.value-icon.green { background:rgba(74,107,58,0.12); }
.value-icon.gold { background:rgba(201,168,76,0.15); }
.value-icon.brown { background:rgba(139,69,19,0.1); }
.value-card h3 { font-family:'Oswald',sans-serif;font-size:1.1rem;font-weight:700;color:var(--dark);margin-bottom:.6rem;text-transform:uppercase;letter-spacing:.03em; }
.value-card p { font-size:.9rem;color:var(--stone);line-height:1.7; }
.expectations { background:var(--dark);padding:4rem 2rem;position:relative; }
.expectations::before {
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:.3;
}
.expectations-inner { max-width:800px;margin:0 auto;position:relative;z-index:1; }
.expectations h3 { font-family:'Oswald',sans-serif;font-size:1.8rem;color:var(--cream);margin-bottom:2rem;text-align:center;text-transform:uppercase;letter-spacing:.06em; }
.expect-list { display:flex;flex-direction:column;gap:1rem; }
.expect-item { display:flex;align-items:flex-start;gap:1rem;background:rgba(255,255,255,0.04);padding:1.25rem 1.5rem;border-radius:12px;border:1px solid rgba(255,255,255,0.05); }
.expect-item .check { width:24px;height:24px;border-radius:50%;background:var(--gold);color:var(--dark);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;flex-shrink:0;margin-top:2px; }
.expect-item p { color:rgba(232,220,200,0.7);font-size:.95rem;line-height:1.6; }
.join-cta { text-align:center;padding:4rem 2rem; }

/* PAGE AUTH */
.page-auth { background:var(--cream); }
.auth-container { max-width:520px;margin:0 auto;padding:3rem 2rem 4rem; }
.auth-toggle { display:flex;background:#fff;border-radius:12px;padding:4px;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0,0,0,0.04); }
.auth-toggle button { flex:1;padding:.75rem;font-family:'Oswald',sans-serif;font-size:.95rem;font-weight:600;border:none;border-radius:9px;cursor:pointer;transition:all .2s;background:transparent;color:var(--stone);text-transform:uppercase;letter-spacing:.04em; }
.auth-toggle button.active { background:var(--dark);color:var(--cream);box-shadow:0 2px 8px rgba(0,0,0,0.15); }
.auth-form { background:#fff;border-radius:20px;padding:2.5rem;box-shadow:0 4px 24px rgba(0,0,0,0.05); }
.auth-form.hidden { display:none; }
.form-group { margin-bottom:1.25rem; }
.form-group label { display:block;font-size:.82rem;font-weight:600;color:var(--dark);margin-bottom:.4rem; }
.form-group input,.form-group select,.form-group textarea {
  width:100%;padding:.8rem 1rem;border:1.5px solid rgba(0,0,0,0.1);border-radius:10px;
  font-family:'Outfit',sans-serif;font-size:.92rem;color:var(--dark);transition:border-color .2s;background:var(--cream-pale);
}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus { outline:none;border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(201,168,76,0.15); }
.form-group textarea { resize:vertical;min-height:80px; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.pdf-box { display:flex;align-items:center;gap:1rem;background:var(--cream-pale);border:1.5px dashed rgba(0,0,0,0.12);border-radius:12px;padding:1rem 1.25rem;margin-bottom:.75rem;cursor:pointer;transition:all .2s; }
.pdf-box:hover { border-color:var(--gold-dark);background:rgba(201,168,76,0.06); }
.pdf-icon { width:40px;height:40px;border-radius:8px;background:var(--red-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.7rem;flex-shrink:0; }
.pdf-box .pdf-info { flex:1; }
.pdf-box .pdf-name { font-weight:600;font-size:.88rem;color:var(--dark); }
.pdf-box .pdf-desc { font-size:.75rem;color:var(--stone);margin-top:2px; }
.pdf-box .pdf-dl { color:var(--rust);font-size:.8rem;font-weight:600; }
.checkbox-row { display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.75rem; }
.checkbox-row input[type="checkbox"] { width:18px;height:18px;margin-top:2px;accent-color:var(--dark); }
.checkbox-row label { font-size:.85rem;color:var(--stone);line-height:1.5;cursor:pointer; }
.btn-submit { width:100%;padding:1rem;background:var(--dark);color:var(--cream);font-family:'Oswald',sans-serif;font-size:1rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s;margin-top:.5rem;text-transform:uppercase;letter-spacing:.04em; }
.btn-submit:hover { background:var(--dark-warm); }
.pending-banner { background:var(--info-bg);border:1px solid rgba(58,95,138,0.2);border-radius:12px;padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;margin-top:1.5rem; }
.pending-banner .icon { font-size:1.5rem;flex-shrink:0; }
.pending-banner h4 { font-size:.95rem;color:var(--info);margin-bottom:.3rem; }
.pending-banner p { font-size:.85rem;color:var(--stone);line-height:1.6; }
.link-btn { background:none;border:none;color:var(--rust);font-family:'Outfit',sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:0;margin-top:1rem;display:inline-block; }
.link-btn:hover { color:var(--rust-light); }

/* PASSWORD RESET */
.reset-form { background:#fff;border-radius:20px;padding:2.5rem;box-shadow:0 4px 24px rgba(0,0,0,0.05); }
.reset-form.hidden { display:none; }
.back-link { display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--rust);cursor:pointer;margin-bottom:1.5rem;background:none;border:none;font-family:'Outfit',sans-serif; }
.back-link:hover { color:var(--rust-light); }
.reset-form h3 { font-size:1.15rem;color:var(--dark);margin-bottom:.5rem; }
.reset-form .desc { font-size:.88rem;color:var(--stone);line-height:1.6;margin-bottom:1.5rem; }
.success-msg { background:var(--green-light);border:1px solid rgba(74,107,58,0.2);border-radius:12px;padding:1.25rem;display:flex;align-items:flex-start;gap:.75rem;margin-top:1rem; }
.success-msg .icon { font-size:1.2rem; }
.success-msg p { font-size:.88rem;color:var(--green-accent);line-height:1.5; }

/* PAGE ACTIVITÉS */
.page-activities { background:var(--cream-pale); }
.activities-header {
  background:var(--dark);padding:3rem 2rem 2.5rem;
  position:relative;
  border-bottom:3px solid var(--gold-dark);
}
.activities-header::before {
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:.3;
}
.activities-header-inner { max-width:1000px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;position:relative;z-index:1; }
.activities-header h2 { font-family:'Oswald',sans-serif;font-size:2rem;color:var(--cream);text-transform:uppercase;letter-spacing:.06em; }
.activities-header .user-welcome { color:rgba(232,220,200,0.5);font-size:.9rem; }
.activities-header .user-welcome strong { color:var(--gold); }
.btn-admin { display:inline-flex;align-items:center;gap:.5rem;background:var(--gold);color:var(--dark);padding:.6rem 1.2rem;border-radius:10px;font-family:'Oswald',sans-serif;font-size:.85rem;font-weight:700;border:none;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.04em; }
.btn-admin:hover { background:var(--gold-light); }
.activities-content { max-width:1000px;margin:0 auto;padding:2rem; }

/* ACTIVITY CARDS */
.activity-card { background:#fff;border-radius:20px;overflow:hidden;margin-bottom:1.5rem;box-shadow:0 2px 16px rgba(0,0,0,0.05);border:1px solid rgba(0,0,0,0.05); }
.activity-top { display:grid;grid-template-columns:1fr 1fr;min-height:260px; }
.activity-map { background:#dde2d0;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;min-height:260px; }
.activity-map .map-placeholder { width:100%;height:100%;background:linear-gradient(135deg,#c8d4b8 0%,#a8c098 50%,#b8c4a0 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--green-accent);font-size:.85rem;font-weight:500; }
.map-placeholder svg { width:48px;height:48px;opacity:.5;margin-bottom:.5rem; }
.map-pin { position:absolute;width:28px;height:28px;background:var(--red-accent);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 8px rgba(184,50,48,0.3); }
.map-pin::after { content:'';position:absolute;top:6px;left:6px;width:16px;height:16px;background:#fff;border-radius:50%; }
.map-pin.pin1 { top:35%;left:30%; }
.map-pin.pin2 { top:55%;left:60%; }
.activity-map img.event-img { width:100%;height:100%;object-fit:cover; }

/* Bouton "Voir sur Google Maps" superposé sur une image */
.map-open-btn {
  position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(255,255,255,0.92);backdrop-filter:blur(4px);
  color:#1a1a1a;font-size:.8rem;font-weight:600;
  padding:.45rem .9rem;border-radius:20px;
  text-decoration:none;white-space:nowrap;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  transition:background .2s,transform .2s;
}
.map-open-btn:hover { background:#fff;transform:translateX(-50%) translateY(-2px); }
.map-open-btn svg  { width:14px;height:14px;flex-shrink:0; }

/* Illustration outdoor cliquable (lien Google Maps) */
.map-trail-card {
  display:block;width:100%;height:100%;min-height:260px;
  text-decoration:none;position:relative;overflow:hidden;
  cursor:pointer;
}
.map-trail-svg {
  width:100%;height:100%;min-height:260px;
  display:block;
  transition:transform .35s ease;
}
.map-trail-card:hover .map-trail-svg { transform:scale(1.04); }
.map-trail-footer {
  position:absolute;bottom:0;left:0;right:0;
  display:flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.65rem 1rem;
  background:rgba(30,50,30,.62);backdrop-filter:blur(6px);
  color:#e8f0e0;font-size:.8rem;font-weight:600;
  letter-spacing:.02em;
  transition:background .25s;
}
.map-trail-card:hover .map-trail-footer { background:rgba(30,50,30,.82); }

.activity-info { padding:2rem;display:flex;flex-direction:column; }
.activity-date { display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;color:var(--green-accent);background:var(--green-light);padding:.3rem .8rem;border-radius:20px;width:fit-content;margin-bottom:.75rem; }
.activity-info h3 { font-family:'Oswald',sans-serif;font-size:1.35rem;font-weight:700;color:var(--dark);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.02em; }
.activity-desc { font-size:.9rem;color:var(--stone);line-height:1.7;margin-bottom:1.25rem;flex:1; }
.activity-meta { display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.25rem; }
.meta-item { font-size:.82rem;color:var(--stone);display:flex;align-items:center;gap:.4rem; }
.meta-item svg { width:16px;height:16px;opacity:.5; }
.activity-footer { padding:1.25rem 2rem;border-top:1px solid rgba(0,0,0,0.05);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem; }
.participants-bar { display:flex;align-items:center;gap:.75rem; }
.participant-avatars { display:flex; }
.participant-avatars .p-avatar { width:32px;height:32px;border-radius:50%;border:2px solid #fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;margin-left:-8px; }
.participant-avatars .p-avatar:first-child { margin-left:0; }
.participants-count { font-size:.82rem;color:var(--stone); }
.participants-count strong { color:var(--dark); }
.progress-bar { width:120px;height:6px;background:var(--cream);border-radius:3px;overflow:hidden; }
.progress-bar .fill { height:100%;border-radius:3px;background:var(--green-accent);transition:width .4s; }
.progress-bar .fill.warning { background:var(--gold); }
.progress-bar .fill.full { background:var(--red-accent); }
.btn-join { display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.5rem;border-radius:10px;font-family:'Oswald',sans-serif;font-size:.88rem;font-weight:700;border:none;cursor:pointer;transition:all .2s;background:var(--dark);color:var(--cream);text-transform:uppercase;letter-spacing:.03em; }
.btn-join:hover { background:var(--dark-warm); }
.btn-join.joined { background:var(--green-light);color:var(--green-accent);border:1.5px solid rgba(74,107,58,0.2); }
.btn-join.full { background:var(--cream);color:var(--stone-light);cursor:not-allowed; }
.deadline-warning { display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--red-accent);font-weight:500;background:var(--red-light);padding:.3rem .7rem;border-radius:6px; }

/* ADMIN PANEL */
.admin-panel {
  background:rgba(201,168,76,0.06);border:1.5px solid rgba(201,168,76,0.25);border-radius:16px;padding:2rem;margin-bottom:2rem;
}
.admin-panel h3 {
  font-family:'Oswald',sans-serif;font-size:1.1rem;color:var(--dark);margin-bottom:1.5rem;
  display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.04em;
}
.admin-panel h3 .tag { font-size:.65rem;background:var(--gold);color:var(--dark);padding:3px 8px;border-radius:20px;font-weight:700;text-transform:uppercase; }
.admin-form { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.admin-form .full { grid-column:1/-1; }
.admin-form input,.admin-form textarea,.admin-form select {
  width:100%;padding:.7rem .9rem;border:1.5px solid rgba(0,0,0,0.1);border-radius:8px;
  font-family:'Outfit',sans-serif;font-size:.88rem;background:#fff;
}
.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus { outline:none;border-color:var(--gold-dark);box-shadow:0 0 0 3px rgba(201,168,76,0.15); }
.admin-form textarea { resize:vertical;min-height:70px; }
.btn-create { padding:.7rem 1.5rem;background:var(--gold);color:var(--dark);font-family:'Oswald',sans-serif;font-weight:700;font-size:.88rem;border:none;border-radius:8px;cursor:pointer;transition:all .2s;text-transform:uppercase;letter-spacing:.03em; }
.btn-create:hover { background:var(--gold-light); }

.img-upload-area {
  border:2px dashed rgba(0,0,0,0.12);border-radius:12px;padding:1.5rem;text-align:center;
  cursor:pointer;transition:all .2s;background:rgba(255,255,255,0.5);
  position:relative;overflow:hidden;
}
.img-upload-area:hover { border-color:var(--gold-dark);background:rgba(201,168,76,0.04); }
.img-upload-area input[type="file"] { position:absolute;inset:0;opacity:0;cursor:pointer; }
.img-upload-area .upload-icon { font-size:2rem;margin-bottom:.5rem;opacity:.4; }
.img-upload-area .upload-text { font-size:.85rem;color:var(--stone);line-height:1.5; }
.img-upload-area .upload-text strong { color:var(--dark); }
.img-upload-area .upload-hint { font-size:.72rem;color:var(--stone-light);margin-top:.3rem; }
.img-upload-preview { max-width:100%;max-height:180px;border-radius:8px;margin-top:.75rem;display:none; }

.admin-section { margin-top:2rem;padding-top:1.5rem;border-top:1px dashed rgba(201,168,76,0.3); }
.member-row { display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,0.04);flex-wrap:wrap;gap:.5rem; }
.member-info { display:flex;align-items:center;gap:.75rem; }
.member-avatar { width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#fff; }
.member-name { font-weight:600;font-size:.9rem; }
.member-email { font-size:.78rem;color:var(--stone); }
.member-status { font-size:.72rem;padding:.25rem .65rem;border-radius:20px;font-weight:600; }
.member-status.pending { background:#FEF3CD;color:#856404; }
.member-status.approved { background:var(--green-light);color:var(--green-accent); }
.btn-approve { padding:.4rem .8rem;background:var(--green-accent);color:#fff;font-family:'Outfit',sans-serif;font-size:.78rem;font-weight:600;border:none;border-radius:6px;cursor:pointer; }
.btn-approve:hover { opacity:.85; }

.event-participants { margin-top:1rem; }
.event-header { display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;background:var(--cream-pale);border-radius:10px;cursor:pointer;transition:background .15s;margin-bottom:.25rem; }
.event-header:hover { background:var(--cream); }
.event-header h4 { font-size:.92rem;color:var(--dark);font-weight:600;display:flex;align-items:center;gap:.5rem; }
.event-header .count-badge { font-size:.7rem;background:var(--green-accent);color:#fff;padding:2px 8px;border-radius:12px;font-weight:600; }
.event-header .chevron { transition:transform .2s;color:var(--stone);font-size:.8rem; }
.event-header.open .chevron { transform:rotate(180deg); }
.participant-list { display:none;padding:.5rem 0 .5rem 1rem; }
.participant-list.open { display:block; }
.p-row { display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:8px;transition:background .1s; }
.p-row:hover { background:rgba(0,0,0,0.02); }
.p-row .p-info { display:flex;align-items:center;gap:.6rem; }
.p-row .p-mini-avatar { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff; }
.p-row .p-name { font-size:.85rem;font-weight:500; }
.p-row .p-dog { font-size:.78rem;color:var(--stone); }
.p-row .p-date { font-size:.72rem;color:var(--stone); }

.btn-delete-event {
  padding:.35rem .7rem;background:var(--red-accent);color:#fff;font-family:'Outfit',sans-serif;
  font-size:.72rem;font-weight:600;border:none;border-radius:6px;cursor:pointer;
  margin-left:.5rem;transition:opacity .2s;
}
.btn-delete-event:hover { opacity:.8; }

.users-table-wrap { overflow-x:auto;margin-top:1rem; }
.users-table {
  width:100%;border-collapse:collapse;font-size:.85rem;
}
.users-table th {
  font-family:'Oswald',sans-serif;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em;color:var(--stone);
  padding:.75rem .6rem;text-align:left;border-bottom:2px solid rgba(0,0,0,0.08);
  white-space:nowrap;
}
.users-table td {
  padding:.7rem .6rem;border-bottom:1px solid rgba(0,0,0,0.04);vertical-align:middle;
}
.users-table tr:hover td { background:rgba(0,0,0,0.015); }
.users-table .user-cell { display:flex;align-items:center;gap:.6rem; }
.users-table .u-avatar { width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;flex-shrink:0; }
.users-table .u-name { font-weight:600; }
.users-table .u-email { font-size:.75rem;color:var(--stone); }
.users-table select {
  padding:.3rem .5rem;border:1.5px solid rgba(0,0,0,0.1);border-radius:6px;
  font-family:'Outfit',sans-serif;font-size:.78rem;background:#fff;cursor:pointer;
}
.users-table select:focus { outline:none;border-color:var(--gold-dark); }
.btn-ban {
  padding:.3rem .6rem;background:#FEF3CD;color:#856404;font-family:'Outfit',sans-serif;
  font-size:.72rem;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:all .15s;
}
.btn-ban:hover { background:#fde68a; }
.btn-ban.banned { background:var(--red-light);color:var(--red-accent); }
.btn-del-user {
  padding:.3rem .6rem;background:var(--red-accent);color:#fff;font-family:'Outfit',sans-serif;
  font-size:.72rem;font-weight:600;border:none;border-radius:5px;cursor:pointer;transition:opacity .15s;
}
.btn-del-user:hover { opacity:.8; }
.status-badge {
  display:inline-block;font-size:.7rem;padding:.2rem .5rem;border-radius:12px;font-weight:600;
}
.status-badge.active { background:var(--green-light);color:var(--green-accent); }
.status-badge.banned { background:var(--red-light);color:var(--red-accent); }
.status-badge.pending { background:#FEF3CD;color:#856404; }

.password-panel { background:#fff;border-radius:16px;padding:2rem;box-shadow:0 4px 24px rgba(0,0,0,0.05);margin-top:1.5rem; }
.password-panel.hidden { display:none; }
.password-panel h3 { font-family:'Oswald',sans-serif;font-size:1.1rem;color:var(--dark);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.03em; }
.password-panel .form-group { margin-bottom:1rem; }
.btn-save-pw { padding:.7rem 1.5rem;background:var(--dark);color:var(--cream);font-family:'Oswald',sans-serif;font-weight:700;font-size:.88rem;border:none;border-radius:8px;cursor:pointer;text-transform:uppercase;letter-spacing:.03em; }
.btn-save-pw:hover { background:var(--dark-warm); }

/* ADMIN TABS */
.admin-tabs { display:flex;gap:.5rem;margin-bottom:1.5rem;flex-wrap:wrap; }
.admin-tab {
  padding:.5rem 1rem;font-family:'Oswald',sans-serif;font-size:.82rem;font-weight:600;
  border:1.5px solid rgba(201,168,76,0.3);border-radius:8px;cursor:pointer;
  background:transparent;color:var(--dark);transition:all .2s;text-transform:uppercase;letter-spacing:.04em;
}
.admin-tab.active { background:var(--gold);color:var(--dark);border-color:var(--gold); }
.admin-tab:hover:not(.active) { background:rgba(201,168,76,0.1); }
.admin-tab-content { display:none; }
.admin-tab-content.active { display:block; }

/* MODAL */
.modal-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;opacity:0;pointer-events:none;transition:opacity .3s; }
.modal-overlay.open { opacity:1;pointer-events:all; }
.modal { background:#fff;border-radius:20px;padding:2rem;max-width:440px;width:100%;transform:scale(.95);transition:transform .3s; }
.modal-overlay.open .modal { transform:scale(1); }
.modal h3 { font-family:'Oswald',sans-serif;font-size:1.15rem;color:var(--dark);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.03em; }
.modal p { font-size:.9rem;color:var(--stone);line-height:1.6;margin-bottom:1.5rem; }
.modal-actions { display:flex;gap:.75rem;justify-content:flex-end; }
.btn-cancel { padding:.6rem 1.2rem;background:var(--cream);color:var(--stone);font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:600;border:none;border-radius:8px;cursor:pointer; }
.btn-confirm { padding:.6rem 1.2rem;background:var(--red-accent);color:#fff;font-family:'Outfit',sans-serif;font-size:.88rem;font-weight:700;border:none;border-radius:8px;cursor:pointer; }

footer {
  background:var(--dark);padding:2rem;text-align:center;
  color:rgba(232,220,200,0.25);font-size:.8rem;
  border-top:2px solid var(--gold-dark);
}

.toast { position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(80px);background:var(--dark);color:var(--cream);padding:.8rem 1.5rem;border-radius:12px;font-size:.88rem;font-weight:500;box-shadow:0 8px 30px rgba(0,0,0,0.25);z-index:300;opacity:0;transition:all .4s cubic-bezier(.16,1,.3,1);border:1px solid rgba(201,168,76,0.2); }
.toast.show { opacity:1;transform:translateX(-50%) translateY(0); }

@media(max-width:768px) {
  .activity-top { grid-template-columns:1fr; }
  .activity-map { min-height:200px; }
  .admin-form { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
  .hero-stats { gap:1.5rem; }
  .activities-header-inner { flex-direction:column;align-items:flex-start; }
  .nav-links a { font-size:.78rem;padding:.5rem .6rem; }
  .users-table { font-size:.78rem; }
  .users-table th, .users-table td { padding:.5rem .4rem; }
}
