.portal-main{padding:70px 0 110px}
.portal-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:28px}
.auth-card{max-width:650px;margin:30px auto}
.portal-title{font-size:clamp(42px,6vw,72px)}
.auth-tabs{display:flex;gap:8px;margin:25px 0}
.auth-form{display:grid;gap:14px}.hidden{display:none!important}
.portal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}
.booking-list,.admin-list{display:grid;gap:12px}
.booking-row,.admin-row{background:#101410;border:1px solid var(--line);border-radius:15px;padding:18px}
.booking-row-top,.admin-row-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.status-pill{display:inline-block;border-radius:999px;padding:6px 10px;background:rgba(155,234,60,.12);color:var(--lime);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.meta{color:var(--muted);font-size:13px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.stat{background:linear-gradient(180deg,#171c16,#10130f);border:1px solid var(--line);border-radius:16px;padding:20px}
.stat span,.stat strong{display:block}.stat span{color:var(--muted);font-size:12px}.stat strong{font-family:Oswald;font-size:42px;color:var(--lime)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.admin-actions select{width:auto;margin:0;padding:8px}
.empty{padding:24px;border:1px dashed #394136;border-radius:14px;color:var(--muted);text-align:center}
@media(max-width:800px){.stat-grid,.admin-grid{grid-template-columns:1fr 1fr}.portal-head{flex-direction:column}}
@media(max-width:540px){.stat-grid,.admin-grid{grid-template-columns:1fr}.portal-card{padding:20px}}
/* Forgot password */
.forgot-password-row {
  margin-top: -4px;
  margin-bottom: 14px;
  text-align: right;
}

.forgot-password-link {
  background: none;
  border: 0;
  padding: 0;
  color: var(--green, #9cff00);
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
}

.forgot-password-link:hover {
  opacity: 0.8;
}
/* Force hidden account forms to actually disappear */
.auth-form.hidden {
  display: none !important;
}
/* ========================================
   CUSTOMER PORTAL - CANCEL BOOKING BUTTON
   ======================================== */

.cancel-booking-btn {
  margin-top: 14px;
  padding: 11px 18px;

  background: transparent;
  color: #9cff2e;

  border: 1px solid rgba(156, 255, 46, 0.45);
  border-radius: 10px;

  font: inherit;
  font-size: 14px;
  font-weight: 700;

  cursor: pointer;

  transition:
    background 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.cancel-booking-btn:hover {
  background: #9cff2e;
  color: #071006;
  border-color: #9cff2e;

  box-shadow:
    0 0 18px rgba(156, 255, 46, 0.18);

  transform: translateY(-1px);
}

.cancel-booking-btn:active {
  transform: translateY(0);
}

.cancel-booking-btn:focus-visible {
  outline: 2px solid #9cff2e;
  outline-offset: 3px;
}

.cancel-booking-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
/* ========================================
   GIMME CLUBCARE CANCELLATION MODAL
   ======================================== */

.cancel-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;

  display: flex;
  align-items: center;
  justify-content: center;

  padding: 24px;

  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(8px);
}

.cancel-modal {
  width: 100%;
  max-width: 520px;

  padding: 32px;

  background: #0c100d;

  border: 1px solid rgba(156, 255, 46, 0.22);
  border-radius: 20px;

  box-shadow:
    0 24px 80px rgba(0, 0, 0, 0.55),
    0 0 30px rgba(156, 255, 46, 0.06);
}

.cancel-modal-kicker {
  margin-bottom: 8px;

  color: #9cff2e;

  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.cancel-modal h2 {
  margin: 0 0 22px;

  color: #ffffff;

  font-size: 34px;
  line-height: 1;
}

.cancel-modal-booking {
  display: flex;
  flex-direction: column;
  gap: 5px;

  margin-bottom: 20px;
  padding: 16px;

  background: rgba(255, 255, 255, 0.025);

  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;

  color: #ffffff;
}

.cancel-modal-booking strong {
  font-size: 18px;
}

.cancel-modal-booking span {
  color: #b7beb8;
  font-size: 14px;
}

.cancel-modal-text {
  margin: 0 0 14px;

  color: #e4e7e4;
  line-height: 1.6;
}

.cancel-modal-warning {
  margin-bottom: 20px;
  padding: 14px 16px;

  background: rgba(156, 255, 46, 0.06);

  border: 1px solid rgba(156, 255, 46, 0.18);
  border-radius: 12px;

  color: #cfd5cf;

  font-size: 14px;
  line-height: 1.5;
}

.cancel-modal-error {
  min-height: 0;
  margin-bottom: 12px;

  color: #ff7777;

  font-size: 14px;
  font-weight: 700;
}

.cancel-modal-error:empty {
  display: none;
}

.cancel-modal-actions {
  display: flex;
  gap: 12px;
}

.cancel-modal-actions button {
  flex: 1;

  padding: 13px 18px;

  border-radius: 10px;

  font: inherit;
  font-weight: 800;

  cursor: pointer;

  transition:
    transform 0.2s ease,
    opacity 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}

.cancel-modal-keep {
  background: transparent;
  color: #ffffff;

  border: 1px solid rgba(255, 255, 255, 0.18);
}

.cancel-modal-keep:hover {
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-1px);
}

.cancel-modal-confirm {
  background: #9cff2e;
  color: #071006;

  border: 1px solid #9cff2e;
}

.cancel-modal-confirm:hover {
  transform: translateY(-1px);
}

.cancel-modal-actions button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 600px) {

  .cancel-modal {
    padding: 24px;
  }

  .cancel-modal h2 {
    font-size: 28px;
  }

  .cancel-modal-actions {
    flex-direction: column;
  }

}
