
.events-toolbar{align-items:center}
.event-card-enhanced{
  display:grid;
  grid-template-columns:94px minmax(0,1fr);
  gap:18px;
  padding:22px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
}
.event-card-enhanced .event-actions{
  grid-column:1/-1;
  display:grid;
  gap:10px;
}
.event-card-enhanced .button{width:100%}
.event-card-enhanced h3{margin-bottom:6px}
.event-card-enhanced p{margin-bottom:0}
.event-rsvp-section{
  grid-column:1/-1;
  margin-top:4px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.event-rsvp-section h4{margin-bottom:12px}
.public-rsvp-list{display:grid;gap:8px}
.public-rsvp-row,
.admin-rsvp-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:#fff;
}
.public-rsvp-row strong,
.admin-rsvp-row strong{
  min-width:0;
  overflow-wrap:anywhere;
}
.payment-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:6px 10px;
  border-radius:999px;
  font-size:.78rem;
  font-weight:900;
  white-space:nowrap;
}
.payment-status.paid{
  color:#0c5b38;
  background:#dff4e8;
}
.payment-status.due{
  color:#9b1c1c;
  background:#fde3e3;
}
.payment-key{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:14px;
}
.admin-rsvp-list{display:grid;gap:10px}
.admin-rsvp-row{
  align-items:center;
}
.payment-toggle{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-width:150px;
  justify-content:flex-end;
  cursor:pointer;
}
.payment-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.toggle-track{
  position:relative;
  width:48px;
  height:28px;
  flex:0 0 48px;
  border-radius:999px;
  background:#d5dcd8;
  transition:background .2s ease;
}
.toggle-track::after{
  content:"";
  position:absolute;
  top:4px;
  left:4px;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.2);
  transition:transform .2s ease;
}
.payment-toggle input:checked + .toggle-track{
  background:var(--green-700);
}
.payment-toggle input:checked + .toggle-track::after{
  transform:translateX(20px);
}
.payment-toggle-text{
  min-width:86px;
  text-align:right;
  color:#9b1c1c;
  font-size:.8rem;
  font-weight:900;
}
.payment-toggle input:checked ~ .payment-toggle-text{
  color:#0c5b38;
}
.admin-card label{
  display:grid;
  gap:7px;
  font-weight:800;
}
@media(min-width:700px){
  .event-card-enhanced{
    grid-template-columns:110px minmax(0,1fr) 180px;
    align-items:center;
  }
  .event-card-enhanced .event-actions{
    grid-column:auto;
  }
}
@media(max-width:540px){
  .event-card-enhanced{
    grid-template-columns:74px minmax(0,1fr);
    padding:16px;
    gap:12px;
  }
  .public-rsvp-row,
  .admin-rsvp-row{
    align-items:flex-start;
    flex-direction:column;
  }
  .payment-toggle{
    width:100%;
    min-width:0;
    justify-content:space-between;
  }
  .payment-toggle-text{
    order:-1;
    min-width:0;
    text-align:left;
  }
}


/* RSVP list is always visible */
.event-card-enhanced .event-actions{
  align-self:stretch;
}
.event-card-enhanced .event-actions .button{
  width:100%;
}
.rsvp-list-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.rsvp-list-heading h4{
  margin:0;
}
.rsvp-list-heading span{
  color:var(--muted);
  font-size:.84rem;
  font-weight:800;
}
.public-rsvp-list{
  max-height:none;
  overflow:visible;
}
@media(max-width:540px){
  .rsvp-list-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}


/* Event status and RSVP row */
.event-card-enhanced{
  grid-template-columns:94px minmax(0,1fr);
}
.event-price-line{
  margin-top:12px;
}
.event-meta-strip{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr)) auto;
  gap:10px;
  align-items:stretch;
  margin-top:16px;
}
.event-meta-item{
  min-width:0;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--green-050);
}
.event-meta-item span{
  display:block;
  color:var(--muted);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.event-meta-item strong{
  display:block;
  margin-top:2px;
  color:var(--green-950);
  font-size:1.05rem;
}
.event-meta-strip .rsvp-event-button{
  width:auto;
  min-width:116px;
  align-self:stretch;
}
@media(min-width:700px){
  .event-card-enhanced{
    grid-template-columns:110px minmax(0,1fr);
    align-items:start;
  }
}
@media(max-width:620px){
  .event-meta-strip{
    grid-template-columns:1fr 1fr;
  }
  .event-meta-strip .rsvp-event-button{
    grid-column:1/-1;
    width:100%;
    min-width:0;
  }
}
@media(max-width:420px){
  .event-meta-strip{
    grid-template-columns:1fr;
  }
  .event-meta-strip .rsvp-event-button{
    grid-column:auto;
  }
}


/* Compact professional event layout */
.compact-event-card{
  display:grid;
  grid-template-columns:82px minmax(0,1fr) minmax(240px,320px);
  gap:18px;
  align-items:start;
  padding:18px;
  border-radius:20px;
}
.event-date-block{
  display:grid;
  justify-items:center;
  align-content:center;
  min-height:96px;
  padding:10px 8px;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(160deg,var(--green-800),var(--green-950));
  box-shadow:0 8px 20px rgba(3,45,34,.14);
}
.event-date-block span,
.event-date-block small{
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.08em;
}
.event-date-block strong{
  font-size:2rem;
  line-height:1;
  margin:4px 0;
}
.event-main{min-width:0}
.event-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.event-title-row h3{
  margin:2px 0 0;
  font-size:1.35rem;
}
.event-price{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  color:var(--green-950);
  background:var(--gold-100);
  font-weight:900;
}
.event-summary-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px 18px;
  margin:12px 0 10px;
}
.event-summary-row span{
  color:var(--muted);
  font-size:.9rem;
}
.event-summary-row b{
  color:var(--ink);
}
.event-description{
  margin:0;
  color:var(--muted);
}
.event-button-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.event-button-row .button{
  width:auto;
  min-height:44px;
}
.event-more-details{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fbf9;
}
.detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.detail-grid span{
  display:grid;
  gap:2px;
  color:var(--muted);
  font-size:.88rem;
}
.detail-grid b{
  color:var(--ink);
}
.compact-event-card .event-rsvp-section{
  grid-column:auto;
  margin:0;
  padding:0 0 0 18px;
  border-top:0;
  border-left:1px solid var(--line);
}
.compact-event-card .public-rsvp-list{
  display:grid;
  gap:6px;
}
.compact-event-card .public-rsvp-row{
  padding:9px 10px;
  border-radius:10px;
}
.compact-event-card .payment-status{
  min-height:28px;
  padding:4px 8px;
  font-size:.72rem;
}
.event-member-state{display:grid;gap:8px;padding:14px;border-radius:14px;background:var(--green-050)}.event-member-state strong{color:var(--green-900);font-size:1.02rem}.event-member-state small{color:var(--muted);line-height:1.4}.event-member-state .button{width:100%;margin-top:2px}.event-member-state.playing{border:1px solid #b7dac7;background:#eef9f2}.event-member-state.cancelled{border:1px solid #efb6b6;background:#fff2f2}.event-member-state.cancelled strong{color:#a51f1f}.rsvp-contact-admin{display:block;padding:8px 10px;border-radius:9px;color:#8b2525;background:#fff1f1;font-size:.8rem;font-weight:900}
.event-cancelled-card{position:relative;border:2px solid #d62f2f!important;background:#fffafa!important}.event-cancelled-banner{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:12px;margin:-18px -18px 0;padding:11px 16px;border-radius:18px 18px 0 0;color:#fff;background:#c52222;font-size:1.25rem;font-weight:1000;letter-spacing:.12em}.event-cancelled-banner small{font-size:.78rem;font-weight:700;letter-spacing:0}.event-cancelled-card .event-date-block{filter:grayscale(.75);opacity:.72}

@media(max-width:900px){
  .compact-event-card{
    grid-template-columns:72px minmax(0,1fr);
  }
  .compact-event-card .event-rsvp-section{
    grid-column:1/-1;
    padding:16px 0 0;
    border-left:0;
    border-top:1px solid var(--line);
  }
}

@media(max-width:560px){
  .compact-event-card{
    grid-template-columns:64px minmax(0,1fr);
    gap:12px;
    padding:14px;
    border-radius:18px;
  }
  .event-date-block{
    min-height:82px;
    padding:8px 6px;
  }
  .event-date-block strong{
    font-size:1.65rem;
  }
  .event-title-row{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .event-price{
    align-self:flex-start;
  }
  .event-summary-row{
    display:grid;
    grid-template-columns:1fr;
    gap:5px;
  }
  .event-description{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .event-button-row{
    display:grid;
    grid-template-columns:1fr;
  }
  .event-button-row .button{
    width:100%;
  }
  .detail-grid{
    grid-template-columns:1fr;
  }
  .compact-event-card .event-rsvp-section{
    padding-top:14px;
  }
  .public-rsvp-row{
    flex-direction:row;
    align-items:center;
  }
  .event-cancelled-banner{margin:-14px -14px 0;flex-direction:column;gap:2px;text-align:center;font-size:1.08rem}
}


/* Mobile-first 2027 example event refinements */
.event-heading-copy h3{
  margin:0;
  color:var(--green-950);
  font-size:1.45rem;
}
.event-venue{
  margin:5px 0 0;
  color:var(--muted);
  font-weight:700;
}
.event-heading-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}
.event-heading-actions .rsvp-event-button{
  min-height:42px;
  padding:9px 18px;
}
.event-summary-row span:last-child{
  color:#0c5b38;
  font-weight:800;
}
@media(max-width:560px){
  .event-title-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:start;
    gap:10px;
  }
  .event-heading-actions{
    display:grid;
    justify-items:end;
    gap:7px;
  }
  .event-heading-actions .rsvp-event-button{
    min-width:84px;
    min-height:40px;
    padding:8px 14px;
  }
  .event-heading-copy h3{
    font-size:1.18rem;
  }
  .event-venue{
    font-size:.86rem;
    line-height:1.35;
  }
  .event-price{
    font-size:.8rem;
  }
  .compact-event-card .public-rsvp-row{
    padding:10px;
  }
}


/* In-page course video */
.course-video-dialog{
  width:min(94vw,760px);
  padding:0;
  border:0;
  border-radius:22px;
  background:#fff;
  box-shadow:0 30px 90px rgba(0,0,0,.38);
}
.course-video-dialog::backdrop{background:rgba(2,20,14,.78);backdrop-filter:blur(4px)}
.course-video-panel{display:grid;gap:16px;padding:22px}
.course-video-heading{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-right:42px}
.course-video-heading h2{margin:.15rem 0 0}
.course-video-heading .dialog-close{position:absolute;top:0;right:0}
.course-video-frame{overflow:hidden;aspect-ratio:16/9;border-radius:16px;background:#061b13}
.course-video-frame iframe{display:block;width:100%;height:100%;border:0}
.course-video-panel>.button{justify-self:end}
@media(max-width:560px){
  .course-video-panel{padding:16px}
  .course-video-dialog{border-radius:18px}
  .course-video-panel>.button{width:100%}
}
