/* BeautyBook Auth Styles - Wave 6B */
.bb-auth-page {
  min-height: calc(100vh - 200px);
  background: #FAF8F5;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
.bb-auth-card {
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 8px 32px rgba(31, 27, 36, 0.08);
  padding: 48px 40px;
  width: 100%;
  max-width: 420px;
  text-align: center;
}
.bb-auth-logo {
  display: block;
  margin: 0 auto 24px;
  max-width: 140px;
  height: auto;
}
.bb-auth-card h2 {
  color: #1F1B24;
  font-size: 26px;
  font-weight: 600;
  margin: 0 0 8px;
  letter-spacing: -0.3px;
}
.bb-auth-intro {
  color: #5a5560;
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 28px;
}
.bb-form-group {
  margin-bottom: 18px;
  text-align: left;
}
.bb-form-group label {
  display: block;
  color: #1F1B24;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 6px;
}
.bb-form-group input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #e0dcd8;
  border-radius: 8px;
  font-size: 15px;
  color: #1F1B24;
  background: #FAF8F5;
  box-sizing: border-box;
  transition: border-color 0.2s, background 0.2s;
}
.bb-form-group input:focus {
  outline: none;
  border-color: #8E4A5B;
  background: #ffffff;
}
.bb-btn {
  display: inline-block;
  padding: 13px 24px;
  border: none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s, transform 0.1s;
  text-decoration: none;
  font-family: inherit;
}
.bb-btn-primary {
  background: #8E4A5B;
  color: #ffffff;
}
.bb-btn-primary:hover {
  background: #7a3e4d;
}
.bb-btn-primary:active {
  transform: translateY(1px);
}
.bb-btn-primary:disabled {
  background: #c9a8b1;
  cursor: not-allowed;
}
.bb-btn-full {
  width: 100%;
  margin-top: 8px;
}
.bb-error {
  background: #fce8ec;
  color: #8E4A5B;
  border: 1px solid #f0c7d0;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 16px;
  text-align: left;
}
.bb-success {
  background: #e8f5ec;
  color: #2d7a3d;
  border: 1px solid #c0e0c8;
  padding: 12px 14px;
  border-radius: 8px;
  font-size: 14px;
  margin-bottom: 16px;
  text-align: left;
  line-height: 1.5;
}
.bb-auth-links {
  margin-top: 20px;
  font-size: 13px;
  color: #5a5560;
}
.bb-auth-links a {
  color: #8E4A5B;
  text-decoration: none;
  font-weight: 500;
}
.bb-auth-links a:hover {
  text-decoration: underline;
}
.bb-forgot-row {
  margin-top: -6px;
  margin-bottom: 18px;
  text-align: right;
}
.bb-forgot-row a {
  color: #8E4A5B;
  font-size: 13px;
  text-decoration: none;
}
.bb-forgot-row a:hover {
  text-decoration: underline;
}
@media (max-width: 480px) {
  .bb-auth-card {
    padding: 32px 24px;
  }
}
/* === Wave 8: Dashboard & Admin Panel === */
.bb-dashboard-container, .bb-admin-container {
  max-width: 960px; margin: 40px auto; padding: 24px;
  background: #FAF8F5; border-radius: 12px; box-shadow: 0 2px 16px rgba(0,0,0,0.05);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #1F1B24;
}
.bb-dash-header, .bb-admin-header {
  display: flex; justify-content: space-between; align-items: center;
  border-bottom: 1px solid #E5DFD6; padding-bottom: 16px; margin-bottom: 20px;
}
.bb-dash-header h1, .bb-admin-header h1 { font-size: 24px; margin: 0; color: #1F1B24; }
.bb-dash-tabs, .bb-admin-tabs {
  display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap;
}
.bb-dash-tab, .bb-admin-tab {
  background: transparent; border: 1px solid #C7B8A8; color: #1F1B24;
  padding: 8px 16px; border-radius: 24px; cursor: pointer; font-size: 14px;
  transition: all .2s ease;
}
.bb-dash-tab:hover, .bb-admin-tab:hover { background: #F1ECE3; }
.bb-dash-tab.active, .bb-admin-tab.active {
  background: #8E4A5B; color: #fff; border-color: #8E4A5B;
}
.bb-dash-list, #bb-admin-content { min-height: 200px; }
.bb-booking-card {
  background: #fff; border: 1px solid #E5DFD6; border-radius: 8px;
  padding: 16px; margin-bottom: 12px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
}
.bb-booking-info { flex: 1; min-width: 200px; }
.bb-booking-info h3 { margin: 0 0 4px 0; font-size: 16px; color: #1F1B24; }
.bb-booking-info p { margin: 2px 0; font-size: 14px; color: #555; }
.bb-booking-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.bb-booking-actions .bb-btn { padding: 6px 14px; font-size: 13px; border-radius: 6px; cursor: pointer; border: none; }
.bb-btn-cancel { background: #C24545; color: #fff; }
.bb-btn-cancel:hover { background: #A63838; }
.bb-btn-reschedule { background: #8E4A5B; color: #fff; }
.bb-btn-reschedule:hover { background: #743A48; }
.bb-dash-empty { text-align: center; color: #888; padding: 40px 16px; }
.bb-status-pill { display: inline-block; padding: 2px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; }
.bb-status-confirmed { background: #DFF1E0; color: #2E6B33; }
.bb-status-cancelled { background: #F8DCDC; color: #A53A3A; }
.bb-status-pending { background: #FFF1D4; color: #8E5A1B; }
.bb-admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px,1fr)); gap: 12px; margin-bottom: 20px; }
.bb-stat-card { background: #fff; border: 1px solid #E5DFD6; border-radius: 8px; padding: 14px; text-align: center; }
.bb-stat-card .num { font-size: 24px; font-weight: 700; color: #8E4A5B; }
.bb-stat-card .label { font-size: 12px; color: #555; text-transform: uppercase; letter-spacing: .5px; }

/* ===== Wave 10: role nav and access denied ===== */
.bb-role-nav { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; padding:12px; background:#FAF8F5; border-radius:8px; border:1px solid #EFE7E2; }
.bb-role-link { display:inline-block; padding:8px 16px; background:#fff; color:#8E4A5B; text-decoration:none; border:1px solid #E0D2D6; border-radius:6px; font-weight:600; font-size:14px; transition:all .15s ease; }
.bb-role-link:hover { background:#8E4A5B; color:#fff; border-color:#8E4A5B; }
.bb-role-deny { position:fixed; inset:0; background:rgba(31,27,36,0.85); display:flex; align-items:center; justify-content:center; z-index:9999; }
.bb-role-deny-inner { background:#fff; border-radius:12px; padding:32px 40px; max-width:420px; text-align:center; }
.bb-role-deny-inner h2 { color:#8E4A5B; margin:0 0 12px; }
.bb-role-deny-inner p { color:#1F1B24; margin:0; }

/* === Wave 11B Step 3: Client dashboard summary cards + loyalty === */
.bb-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 20px}
@media(max-width:680px){.bb-stats-grid{grid-template-columns:repeat(2,1fr)}}
.bb-stat-card{background:#FAF8F5;border:1px solid rgba(31,27,36,.06);border-radius:10px;padding:14px 16px;text-align:left;transition:transform .15s ease,box-shadow .15s ease}
.bb-stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(31,27,36,.06)}
.bb-stat-label{font-size:12px;color:#5A5560;text-transform:uppercase;letter-spacing:.04em;font-weight:600;margin-bottom:4px}
.bb-stat-value{font-size:22px;font-weight:700;color:#1F1B24;line-height:1.2}
.bb-stat-card-rose{background:linear-gradient(135deg,#FAF0F2 0%,#FAF8F5 100%);border-color:rgba(142,74,91,.18)}
.bb-stat-card-rose .bb-stat-value{color:#8E4A5B}

.bb-loyalty-card{background:linear-gradient(135deg,#FAF0F2 0%,#FAF8F5 100%);border:1px solid rgba(142,74,91,.18);border-radius:14px;padding:32px 24px;text-align:center;margin:8px 0}
.bb-loyalty-icon{font-size:42px;margin-bottom:8px}
.bb-loyalty-title{margin:0 0 8px;font-size:22px;font-weight:700;color:#1F1B24}
.bb-loyalty-sub{margin:0 0 20px;color:#5A5560;font-size:14px;line-height:1.5;max-width:480px;margin-left:auto;margin-right:auto}
.bb-loyalty-points-row{display:flex;align-items:center;justify-content:center;gap:8px;margin:16px 0;font-size:16px;color:#1F1B24}
.bb-loyalty-points{font-size:32px;font-weight:800;color:#8E4A5B}
.bb-loyalty-soon{margin:16px 0 0;font-size:13px;color:#5A5560;font-style:italic}

.bb-dash-tabs .bb-dash-tab[data-tab="loyalty"]{border-color:rgba(142,74,91,.3)}
.bb-dash-tabs .bb-dash-tab[data-tab="loyalty"].active{background:#8E4A5B;color:#fff}

/* ===== Wave 12: Plan tier cards ===== */
.bb-plan-wrap { padding: 16px 0; }
.bb-plan-title { font-size: 20px; margin: 0 0 8px; color: #1F1B24; }
.bb-plan-current { color: #1F1B24; margin: 0 0 16px; font-size: 14px; }
.bb-plan-current strong { color: #8E4A5B; font-weight: 700; }
.bb-plans-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 8px;
}
.bb-plan-card {
  background: #FAF8F5;
  border: 1px solid #E8DCD0;
  border-radius: 14px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  text-align: center;
  transition: border-color .2s, box-shadow .2s;
}
.bb-plan-card.active {
  border-color: #8E4A5B;
  box-shadow: 0 6px 20px rgba(142,74,91,.16);
  background: #fff;
}
.bb-plan-name { font-size: 16px; font-weight: 700; color: #1F1B24; letter-spacing: .5px; }
.bb-plan-price { font-size: 22px; font-weight: 800; color: #8E4A5B; margin: 8px 0 12px; }
.bb-plan-price small { font-size: 12px; color: #7a6f6f; font-weight: 500; margin-left: 2px; }
.bb-plan-features { list-style: none; padding: 0; margin: 0 0 16px; text-align: left; flex: 1; }
.bb-plan-features li { padding: 4px 0 4px 18px; position: relative; font-size: 13px; color: #2b2530; }
.bb-plan-features li::before { content: ''; position: absolute; left: 0; color: #8E4A5B; font-weight: 700; }
.bb-plan-card .bb-btn { margin-top: auto; }

/* === Wave 13: Last-minute & Bonus === */
.bb-lm-row { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: 10px; padding: 10px 12px; background: #FAF8F5; border: 1px solid #ecdfe3; border-radius: 8px; font-size: 13px; }
.bb-lm-row label { display: inline-flex; align-items: center; gap: 6px; color: #2b2530; }
.bb-lm-row input[type="number"] { width: 64px; padding: 4px 6px; border: 1px solid #d8c9cf; border-radius: 6px; font-size: 13px; }
.bb-lm-toggle input[type="checkbox"] { accent-color: #8E4A5B; }
.bb-lm-hint { color: #8E4A5B; }
.bb-lm-save { background: #8E4A5B; color: #fff; border: 0; padding: 6px 14px; border-radius: 6px; cursor: pointer; font-weight: 600; }
.bb-lm-save:hover { background: #743b48; }
.bb-lm-status { font-size: 12px; color: #5b6168; }

.bb-bonus-savings { margin-top: 10px; font-size: 14px; color: #1F1B24; }
.bb-bonus-savings strong { color: #8E4A5B; }
.bb-bonus-ledger-title { margin: 18px 0 8px; font-size: 15px; color: #1F1B24; }
.bb-bonus-ledger { display: flex; flex-direction: column; gap: 6px; }
.bb-bonus-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; background: #fff; border: 1px solid #ecdfe3; border-radius: 8px; font-size: 13px; }
.bb-bonus-row-meta { display: flex; flex-direction: column; gap: 2px; }
.bb-bonus-date { color: #8a8d92; font-size: 12px; }
.bb-bonus-svc { color: #2b2530; }
.bb-bonus-pts { font-weight: 700; color: #8E4A5B; }

/* ===== Wave 14: Super-admin dashboard ===== */
.bb-sa-welcome { color:#1F1B24; font-weight:600; margin:8px 0 16px; }
.bb-sa-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; border-bottom:1px solid #e8e2db; padding-bottom:8px; }
.bb-sa-tab { background:transparent; border:1px solid transparent; padding:8px 16px; border-radius:8px 8px 0 0; cursor:pointer; color:#5a4f54; font-weight:500; }
.bb-sa-tab.active { background:#FAF8F5; border-color:#e8e2db; border-bottom-color:#FAF8F5; color:#8E4A5B; margin-bottom:-9px; }
.bb-sa-tab:hover:not(.active){ background:#f7f2ec; }
.bb-sa-pane { background:#fff; border:1px solid #e8e2db; border-radius:8px; padding:16px; min-height:200px; }
.bb-sa-kpi-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-bottom:16px; }
.bb-sa-kpi-card { background:#FAF8F5; border:1px solid #e8e2db; border-radius:8px; padding:12px; }
.bb-sa-kpi-label { font-size:12px; color:#5a4f54; text-transform:uppercase; letter-spacing:0.04em; }
.bb-sa-kpi-value { font-size:22px; font-weight:700; color:#1F1B24; margin-top:4px; }
.bb-sa-h3 { color:#1F1B24; margin:16px 0 8px; font-size:16px; }
.bb-sa-table { width:100%; border-collapse:collapse; font-size:13px; }
.bb-sa-table th, .bb-sa-table td { text-align:left; padding:8px 6px; border-bottom:1px solid #efeae3; vertical-align:middle; }
.bb-sa-table th { background:#FAF8F5; color:#5a4f54; font-weight:600; font-size:12px; text-transform:uppercase; letter-spacing:0.04em; }
.bb-sa-table tr:hover td { background:#fbf8f4; }
.bb-sa-table .bb-sa-tier, .bb-sa-table .bb-sa-until { padding:4px 6px; border:1px solid #d8d0c7; border-radius:6px; background:#fff; font-size:13px; }
.bb-sa-table code { background:#f4ede4; padding:2px 6px; border-radius:4px; font-size:11px; word-break:break-all; }
.bb-sa-table .bb-btn { padding:4px 10px; font-size:12px; }
@media (max-width:640px){ .bb-sa-table { font-size:11px; } .bb-sa-kpi-value { font-size:18px; } }

/* ===== Wave 15: No-show button (owner side bookings) ===== */
.bb-btn-noshow{
  margin-top:8px;
  padding:6px 12px;
  background:transparent;
  color:#8E4A5B;
  border:1px solid #8E4A5B;
  border-radius:4px;
  font-size:13px;
  cursor:pointer;
  transition:all .15s ease;
}
.bb-btn-noshow:hover{ background:#8E4A5B; color:#FAF8F5; }
.bb-btn-noshow:disabled{ opacity:.5; cursor:not-allowed; }
.bb-no-show-mark{
  margin-top:8px;
  padding:4px 10px;
  display:inline-block;
  background:rgba(142,74,91,0.12);
  color:#8E4A5B;
  border-radius:4px;
  font-size:13px;
  font-weight:600;
}

/* Wave 16: Last-Minute offers UI */
.bb-lm-container{max-width:1100px;margin:32px auto;padding:0 16px;color:#1F1B24}
.bb-lm-header{text-align:center;margin-bottom:24px}
.bb-lm-title{font-size:32px;color:#8E4A5B;margin:0 0 8px;font-weight:600}
.bb-lm-subtitle{font-size:15px;color:#1F1B24;opacity:.75;margin:0}
.bb-lm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.bb-lm-empty{grid-column:1/-1;text-align:center;color:#1F1B24;opacity:.6;padding:32px;background:#FAF8F5;border-radius:12px;margin:0}
.bb-lm-card{position:relative;background:#FAF8F5;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(31,27,36,.08);transition:transform .15s ease, box-shadow .15s ease;display:flex;flex-direction:column}
.bb-lm-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(142,74,91,.18)}
.bb-lm-badge{position:absolute;top:12px;right:12px;background:#8E4A5B;color:#FAF8F5;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.4px;box-shadow:0 2px 6px rgba(142,74,91,.3)}
.bb-lm-card-body{padding:18px 18px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.bb-lm-svc{font-size:18px;font-weight:600;margin:0;color:#1F1B24;padding-right:90px;line-height:1.25}
.bb-lm-cat{font-size:12px;color:#1F1B24;opacity:.55;text-transform:uppercase;letter-spacing:.5px}
.bb-lm-salon{font-size:14px;color:#1F1B24;opacity:.85;margin-top:4px}
.bb-lm-price-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:10px;flex-wrap:wrap}
.bb-lm-price{font-size:18px;font-weight:600;color:#1F1B24}
.bb-lm-savings{font-size:14px;font-weight:700;color:#8E4A5B;background:rgba(142,74,91,.08);padding:4px 10px;border-radius:8px;white-space:nowrap}
.bb-lm-window{font-size:12px;color:#1F1B24;opacity:.6;margin-top:2px}
.bb-lm-cta{margin-top:14px;align-self:stretch;text-align:center;text-decoration:none}
@media(max-width:520px){.bb-lm-title{font-size:26px}.bb-lm-grid{grid-template-columns:1fr}}
