:root{
  --card-bg: var(--sn-card-bg, #0f1115);
  --card-border: var(--sn-card-border, #22262e);
  --chip-bg: var(--sn-chip-bg, #1a1f2b);
  --chip-text: var(--sn-chip-text, #cbd5e1);
  --accent: var(--sn-accent, #0d6efd);
  --red: #dc3545;
  --goa: #00e0a4; --techno:#7c4dff; --dnb:#ffb800; --hard:#ff3d71;
}

/* Layout */
.ev-actions-bar{ display:flex; justify-content:space-between; align-items:center; gap:10px; }
.btn-alt{ background:#1a1f2b; border:1px solid var(--card-border); color:#e2e8f0; }
.ev-grid{ display:grid; grid-template-columns:1fr; gap:16px; }
.col-list{ order:1; } .col-map{ order:2; }
@media (max-width: 768px){
  .ev-grid{ display:grid; grid-template-columns:1fr; }
  .col-map{ order:2; }
  .col-list{ order:1; }
  #map{ height:360px !important; }
}

/* Calendar Header centered with << >> */
.ev-cal-header{ display:grid; grid-template-columns:80px 1fr 80px; align-items:center; }
.ev-cal-title{ text-align:center; font-weight:800; letter-spacing:.2px; }

/* Calendar */
.ev-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:8px; }
.ev-cal-day{ position:relative; padding:.7rem; min-height:52px; border:1px solid var(--card-border); background:var(--card-bg); border-radius:10px; cursor:pointer; color:#e2e8f0; }
.ev-cal-day .num{ position:relative; z-index:1; }
.ev-cal-day .dot{ position:absolute; right:8px; bottom:6px; width:9px; height:9px; border-radius:50%; background:#00e0a4; box-shadow:0 0 10px #00e0a4; }
.ev-cal-day.today{ border-color: var(--accent); box-shadow: 0 0 0 2px rgba(13,110,253,.55) inset; }
.ev-cal-empty{ height:52px; }

/* Genre buttons */
.ev-genre-buttons{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.ev-genre{ background:var(--chip-bg); color:var(--chip-text); border:1px solid var(--card-border); }
.ev-genre.active{ outline:2px solid var(--accent); }
.ev-genre.g-goa{ background:rgba(0,224,164,.15); border-color:rgba(0,224,164,.35); }
.ev-genre.g-techno{ background:rgba(124,77,255,.15); border-color:rgba(124,77,255,.35); }
.ev-genre.g-dnb{ background:rgba(255,184,0,.15); border-color:rgba(255,184,0,.35); }
.ev-genre.g-hard{ background:rgba(255,61,113,.15); border-color:rgba(255,61,113,.35); }

/* RSVP filters */
.ev-filters{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.ev-filters .btn{ background:var(--chip-bg); color:var(--chip-text); border:1px solid var(--card-border); }
.ev-filters .btn.active{ outline:2px solid var(--accent); }
.ev-reset{ margin-left:auto; }
.hidden{ display:none; }

/* Cards */
.ev-card{ display:grid; grid-template-columns:180px 1fr; gap:12px; padding:12px; border:1px solid var(--card-border); border-radius:12px; margin:10px 0; background:var(--card-bg); color:#e2e8f0; }
.ev-cover{ position:relative; width:180px; height:120px; background-size:cover; background-position:center; border-radius:10px; }
.ev-date-badge{ position:absolute; left:8px; top:8px; background:rgba(0,0,0,.72); color:#fff; border-radius:8px; padding:6px 8px; text-align:center; width:54px; }
.ev-date-day{ font-size:20px; font-weight:800; line-height:1; }
.ev-date-month{ font-size:12px; text-transform:uppercase; opacity:.9; }

.ev-body{ display:flex; flex-direction:column; gap:6px; }
.ev-title{ font-weight:800; font-size:1.05rem; }
.ev-title .ev-rsvp-flag{ margin-left:6px; font-size:1rem; }
.ev-meta span{ display:inline-block; font-size:.85rem; color:#cbd5e1; background:var(--chip-bg); border-radius:999px; padding:3px 8px; margin-right:6px; border:1px solid var(--card-border); }
.ev-actions{ display:flex; gap:8px; align-items:center; }
.ev-rsvp{ display:none; margin-top:6px; }
.ev-rsvp.open{ display:block; }
.btn-group .btn{ margin-right:6px; }

.ev-modal{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.7);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:1000;
}
.ev-modal.open{ display:flex; }

/* Große, edle Karte – desktop */
.ev-modal-card{
  position:relative;
  display:flex;
  flex-direction:column;
  max-width: 980px;
  width: 96vw;
  max-height: 92vh;
  border-radius: 22px;
  padding: 0;
  background:
    radial-gradient(circle at 0 0, rgba(129,140,248,0.22), transparent 55%),
    radial-gradient(circle at 100% 0, rgba(236,72,153,0.18), transparent 55%),
    rgba(15,23,42,0.98);
  border:1px solid rgba(148,163,184,0.7);
  box-shadow:
    0 28px 80px rgba(15,23,42,0.98),
    0 0 38px rgba(129,140,248,0.55);
  overflow:hidden;
}

/* Inhalt scrollt, Header bleibt oben */
.ev-modal-card > .p-2,
.ev-modal-card > form {
  padding: 1.2rem 1.4rem 1.35rem;
  overflow-y: auto;
}

/* Close-Button: rotes, pulsierendes X oben rechts */
.ev-close{
  position:absolute;
  right:14px;
  top:14px;
  width: 32px;
  height: 32px;
  border-radius:999px;
  border:none;
  cursor:pointer;
  font-size:18px;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fee2e2;
  background:radial-gradient(circle at 0 0, #ef4444, #7f1d1d);
  box-shadow:
    0 0 10px rgba(239,68,68,0.8),
    0 0 24px rgba(248,113,113,0.55);
  transition: transform .12s ease, box-shadow .12s ease, opacity .1s ease;
}

.ev-close:hover{
  transform: scale(1.06);
  box-shadow:
    0 0 16px rgba(239,68,68,1),
    0 0 30px rgba(248,113,113,0.7);
}

.ev-close:active{
  transform: scale(0.95);
  box-shadow:
    0 0 8px rgba(239,68,68,0.9),
    0 0 18px rgba(248,113,113,0.6);
}


/* Einspaltiges Layout für Events/Karte */
.ev-grid{ grid-template-columns:1fr !important; }

/* Form */
.switch{ display:flex; align-items:center; gap:8px; margin:.4rem 0; }
.switch input[type="checkbox"]{ appearance:none; width:42px; height:24px; border-radius:999px; border:1px solid var(--card-border); background:#3a4253; position:relative; outline:none; cursor:pointer; }
.switch input[type="checkbox"]::after{ content:''; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#cbd5e1; transition:transform .2s ease; }
.switch input[type="checkbox"]:checked{ background:var(--accent); }
.switch input[type="checkbox"]:checked::after{ transform:translateX(18px); }

.ev-cover-prev{ display:flex; align-items:center; }
.ev-cover-prev img{ width:120px; height:80px; object-fit:cover; border:1px solid var(--card-border); border-radius:8px; }

.ev-save-wrap{ display:flex; justify-content:center; }
.ev-save{ font-size:1.05rem; padding:.7rem 1.4rem; }

/* Manage */
.ev-manage-list{ display:flex; flex-direction:column; gap:10px; }
.ev-m-item{ display:grid; grid-template-columns:120px 1fr; gap:12px; border:1px solid var(--card-border); border-radius:12px; padding:10px; background:var(--card-bg); }
.ev-m-cover{ width:120px; height:84px; background-size:cover; background-position:center; border-radius:8px; }
.ev-m-title{ font-weight:800; }
.ev-m-meta{ color:#cbd5e1; font-size:.9rem; }
.ev-m-actions{ margin-top:6px; }


/* PATCH_V37 responsive buttons */
.ev-actions-bar{ flex-wrap: wrap; }
.ev-actions-bar .btn{ white-space: nowrap; }
@media (max-width: 640px){
  .ev-actions-bar .btn{ padding: .35rem .6rem; font-size: .9rem; }
}

/* Extra spacing under calendar header */
.ev-cal-header{ margin-bottom: 12px; }


/* PATCH_V37B nearby */
.ev-radius{ display:flex; align-items:center; gap:10px; margin-top:.5rem; }
.ev-radius label{ display:flex; align-items:center; gap:8px; }
.ev-nearby{ margin-top:.5rem; display:flex; flex-direction:column; gap:8px; }
.ev-near-item{ display:grid; grid-template-columns:56px 1fr auto; gap:10px; align-items:center; padding:6px; border:1px solid var(--card-border); background:var(--card-bg); border-radius:10px; }
.ev-near-item .pic{ width:56px; height:42px; background-size:cover; background-position:center; border-radius:6px; }
.ev-near-item .txt{ font-size:.95rem; }
.ev-near-item .txt .muted{ font-size:.85rem; color:#94a3b8; }

.ev-near-item .act .btn{ padding:.35rem .6rem; }


/* Bigger red reset button with spacing */
.ev-reset.btn.btn-danger{ font-size:1rem; padding:.55rem .9rem; margin-top:.5rem; }
/* Details hero & mobile polish */
.ev-view-hero{ height:180px; background-size:cover; background-position:center; border-bottom:1px solid var(--card-border); }
@media (max-width: 640px){ .ev-modal-card{ width:96vw; padding:0; } .ev-view-card .p-2{ padding:12px; } }
/* Push highlight */
.ev-card.push-5{ box-shadow:0 0 0 3px rgba(234,179,8,.7); animation:pulse5 1.5s infinite; border-radius:12px; }
.ev-card.push-10{ box-shadow:0 0 0 4px rgba(234,179,8,1); animation:pulse10 1.2s infinite; border-radius:12px; }
@keyframes pulse5{0%{box-shadow:0 0 0 0 rgba(234,179,8,.6)}70%{box-shadow:0 0 0 8px rgba(234,179,8,0)}100%{box-shadow:0 0 0 0 rgba(234,179,8,0)}}
@keyframes pulse10{0%{box-shadow:0 0 0 0 rgba(234,179,8,1)}70%{box-shadow:0 0 0 10px rgba(234,179,8,0)}100%{box-shadow:0 0 0 0 rgba(234,179,8,0)}}
