/* ── SBAT Matrimony — Custom styles (Bootstrap 5 layer) ── */

/* ─ Plus Jakarta Sans — self-hosted (public/fonts/) ──────────── */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/plusjakartasans-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/plusjakartasans-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/plusjakartasans-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/plusjakartasans-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style:  normal;
  font-weight: 800;
  font-display: swap;
  src: url('../fonts/plusjakartasans-800.woff2') format('woff2');
}

/* ─ Bootstrap variable overrides ─────────────────────────── */
:root {
  --bs-font-sans-serif: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --bs-primary:         #7B1818;
  --bs-primary-rgb:     123, 24, 24;
  --bs-link-color:      #7B1818;
  --bs-link-hover-color:#5e1212;
  --sbat-primary:       #7B1818;
  --sbat-primary-dark:  #5e1212;
  --sbat-gold:          #C9942A;
  --sbat-orange:        #E55A00;
  --sbat-orange-hover:  #C44E00;
  --sbat-bg:            #f7f4f0;
  --sbat-border:        #e8e3dc;
  --sbat-teal:          #0D9488;
  --sbat-text:          #1a1a1a;
  --sbat-muted:         #6b7280;
}

/* ─ Utility ──────────────────────────────────────────────── */
body {
  background: var(--sbat-bg);
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--sbat-text);
}
a { color: var(--sbat-primary); }
a:hover { color: var(--sbat-primary-dark); }

/* ─ Buttons ──────────────────────────────────────────────── */
.btn-sbat-primary {
  background: var(--sbat-orange);
  border-color: var(--sbat-orange);
  color: #fff;
  font-weight: 600;
}
.btn-sbat-primary:hover, .btn-sbat-primary:focus {
  background: var(--sbat-orange-hover);
  border-color: var(--sbat-orange-hover);
  color: #fff;
}
.btn-sbat-maroon {
  background: var(--sbat-primary);
  border-color: var(--sbat-primary);
  color: #fff;
  font-weight: 600;
}
.btn-sbat-maroon:hover, .btn-sbat-maroon:focus {
  background: var(--sbat-primary-dark);
  border-color: var(--sbat-primary-dark);
  color: #fff;
}
.btn-sbat-outline {
  border: 2px solid var(--sbat-primary);
  color: var(--sbat-primary);
  font-weight: 600;
  background: transparent;
}
.btn-sbat-outline:hover {
  background: var(--sbat-primary);
  color: #fff;
}

/* ─ Navbar ───────────────────────────────────────────────── */
.sbat-navbar {
  background: #fff;
  border-bottom: 3px solid var(--sbat-primary);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  padding-top: .5rem;
  padding-bottom: .5rem;
  z-index: 1025;
}
.sbat-navbar .navbar-brand { display: flex; align-items: center; gap: 10px; }
.sbat-logo-img { object-fit: contain; }

/* Temple name + tagline block */
.sbat-brand-block { display: flex; flex-direction: column; gap: 3px; }

.sbat-temple-name {
  font-size: clamp(0.78rem, 3.8vw, 1.05rem);
  font-weight: 800;
  color: var(--sbat-primary);
  letter-spacing: -0.01em;
  line-height: 1.15;
}
@media (min-width: 420px) {
  .sbat-temple-name { white-space: nowrap; }
}

.sbat-brand-tagline {
  font-size: clamp(0.58rem, 1.6vw, 0.68rem);
  font-weight: 700;
  color: var(--sbat-gold);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  line-height: 1;
}
.sbat-navbar .nav-link { color: #444; font-weight: 500; font-size: .9rem; }
.sbat-navbar .nav-link:hover { color: var(--sbat-primary); }
.sbat-navbar .navbar-toggler { border-color: var(--sbat-primary); }
.sbat-navbar .navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%237B1818' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

/* ─ Hero Section ─────────────────────────────────────────── */
.hero-section {
  padding: 4rem 0;
  background: var(--sbat-bg);
}
.hero-title { font-size: clamp(1.6rem, 4vw, 2.4rem); font-weight: 800; color: #1a1a1a; line-height: 1.2; }
.hero-title .highlight { color: var(--sbat-primary); }
.hero-title .highlight-gold { color: var(--sbat-gold); }
.hero-subtitle { font-size: 1rem; color: #555; }
.hero-stat-value { font-size: 1.4rem; font-weight: 700; color: var(--sbat-primary); }
.hero-stat-label { font-size: .7rem; color: #777; text-transform: uppercase; letter-spacing: .5px; }

/* ─ Hero: panigrahana background image ───────────────────── */
.hero-bg {
  position: relative;
  background-image: url('../images/panigrahana.jpg');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  min-height: 560px;
}

.hero-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(22, 8, 8, 0.62);
  z-index: 0;
}

@media (min-width: 768px) {
  .hero-bg::before {
    background: linear-gradient(
      to right,
      rgba(123, 24, 24, 0.93) 0%,
      rgba(123, 24, 24, 0.74) 38%,
      rgba(18, 6, 6, 0.35)    62%,
      rgba(0, 0, 0, 0.08)    100%
    );
  }
}

.hero-bg > .container {
  position: relative;
  z-index: 1;
}

.hero-text-col .hero-title {
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.hero-text-col .hero-title .highlight      { color: var(--sbat-gold); }
.hero-text-col .hero-title .highlight-gold { color: #f7e0a0; }
.hero-text-col .hero-subtitle   { color: rgba(255, 255, 255, 0.88); }
.hero-text-col .hero-stat-value { color: #fff; }
.hero-text-col .hero-stat-label { color: rgba(255, 255, 255, 0.70); }

.hero-bg .register-card {
  box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
}

/* ─ Register Card (hero right) ───────────────────────────── */
.register-card { border: none; border-radius: 16px; overflow: hidden; box-shadow: 0 8px 40px rgba(123,24,24,.15); }
.register-card-header { background: linear-gradient(135deg, #7B1818 0%, #5e1212 100%); color: #fff; padding: 1.25rem 1.5rem; }
.register-card-header h5 { font-weight: 700; margin: 0; font-size: 1.05rem; }
.register-card-header p { font-size: .8rem; opacity: .85; margin: .25rem 0 0; }
.register-card-body { background: #fff; padding: 1.5rem; }
.otp-note { background: #fffbeb; border-left: 3px solid var(--sbat-gold); padding: .5rem .75rem; font-size: .78rem; color: #92400e; border-radius: 4px; }

/* ─ Form Controls ────────────────────────────────────────── */
.form-control:focus, .form-select:focus {
  border-color: var(--sbat-primary);
  box-shadow: 0 0 0 .2rem rgba(123,24,24,.15);
}
.form-label { font-weight: 500; font-size: .875rem; color: #333; }

/* ─ Wizard ───────────────────────────────────────────────── */
.wizard-steps { display: flex; align-items: center; margin-bottom: 2rem; }
.wizard-step-item { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; }
.wizard-step-item:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 16px;
  left: 50%;
  width: 100%;
  height: 2px;
  background: #e0e0e0;
  z-index: 0;
}
.wizard-step-item.done::after, .wizard-step-item.active::after { background: var(--sbat-primary); }
.wizard-step-circle {
  width: 32px; height: 32px; border-radius: 50%;
  border: 2px solid #e0e0e0;
  background: #fff; color: #aaa;
  display: flex; align-items: center; justify-content: center;
  font-size: .8rem; font-weight: 700;
  position: relative; z-index: 1;
  transition: all .2s;
}
.wizard-step-item.active .wizard-step-circle { border-color: var(--sbat-primary); color: var(--sbat-primary); background: #fff0f0; }
.wizard-step-item.done .wizard-step-circle { border-color: var(--sbat-primary); background: var(--sbat-primary); color: #fff; }
.wizard-step-label { font-size: .7rem; margin-top: .4rem; color: #aaa; text-align: center; white-space: nowrap; }
.wizard-step-item.active .wizard-step-label { color: var(--sbat-primary); font-weight: 600; }
.wizard-step-item.done .wizard-step-label { color: var(--sbat-primary); }

.wizard-panel { display: none; }
.wizard-panel.active { display: block; }

/* Gender tiles */
.gender-tile input[type="radio"] { display: none; }
.gender-tile label {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: .4rem; padding: .9rem 1.2rem;
  border: 2px solid #ddd; border-radius: 10px;
  cursor: pointer; font-size: .85rem; font-weight: 600; color: #555;
  transition: all .15s; min-width: 100px;
}
.gender-tile label:hover { border-color: var(--sbat-primary); color: var(--sbat-primary); }
.gender-tile input:checked + label { border-color: var(--sbat-primary); background: #fff0f0; color: var(--sbat-primary); }
.gender-tile label i { font-size: 1.5rem; }
.gender-avatar { width: 3rem; height: 3.75rem; display: block; }

/* Step 2 lock */
.step-lock-notice {
  display: none;
  background: #fffbeb; border: 1px solid #fde68a; border-radius: 8px;
  padding: .6rem 1rem; font-size: .82rem; color: #92400e;
  align-items: center; gap: .5rem; margin-bottom: 1rem;
}
.step-lock-notice.show { display: flex; }

/* Photo drop zone */
.photo-drop-zone {
  border: 2px dashed var(--sbat-border);
  border-radius: 12px; background: #fafafa;
  padding: 2rem; text-align: center;
  cursor: pointer; transition: border-color .2s, background .2s;
  min-height: 180px; display: flex; align-items: center; justify-content: center;
}
.photo-drop-zone:hover, .photo-drop-zone.drag-over { border-color: var(--sbat-orange); background: #fff8ee; }
.photo-drop-zone img.photo-preview { max-height: 200px; border-radius: 8px; display: none; }

/* ─ Profile View ─────────────────────────────────────────── */
.profile-photo-wrap { position: relative; border-radius: 12px; overflow: hidden; }
.profile-photo-wrap img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.profile-photo-placeholder {
  width: 100%; aspect-ratio: 3/4;
  background: #f0e8d8; display: flex; align-items: center; justify-content: center;
  border-radius: 12px;
}
.watermark-overlay {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(123,24,24,.04) 0, rgba(123,24,24,.04) 20px, transparent 20px, transparent 40px);
  display: flex; align-items: flex-end; padding: .75rem;
}
.watermark-text { font-size: .65rem; color: rgba(123,24,24,.5); font-weight: 600; word-break: break-all; }
.profile-id-badge { background: var(--sbat-primary); color: #fff; font-size: .7rem; font-weight: 700; padding: 2px 10px; border-radius: 10px; letter-spacing: .4px; }
.profile-meta-item { font-size: .85rem; color: #555; display: flex; align-items: center; gap: .35rem; }
.profile-info-label { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #aaa; margin-bottom: .15rem; }
.profile-info-val { font-size: .9rem; color: #222; }
.contact-locked { font-size: .85rem; color: #888; font-style: italic; }
.nav-tabs .nav-link { color: #666; font-size: .875rem; }
.nav-tabs .nav-link.active { color: var(--sbat-primary); font-weight: 600; border-bottom-color: var(--sbat-primary); }
.tab-section-title { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--sbat-primary); border-bottom: 2px solid var(--sbat-border); padding-bottom: .35rem; margin-bottom: 1rem; }

/* ─ Discovery ────────────────────────────────────────────── */
.filter-sidebar-title { font-size: .95rem; font-weight: 700; color: var(--sbat-primary); }
.filter-group-label { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: #999; margin-bottom: .5rem; }
.filter-check-label { display: flex; align-items: center; gap: .4rem; font-size: .85rem; cursor: pointer; padding: .15rem 0; }
.filter-check-label:hover { color: var(--sbat-primary); }
.filter-check-label input { accent-color: var(--sbat-primary); }

/* Legacy profile card — kept for backward compat */
.profile-card { background: #fff; border: 1px solid var(--sbat-border); border-radius: 14px; overflow: hidden; transition: box-shadow .2s, transform .2s; height: 100%; }
.profile-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,.12); transform: translateY(-3px); }
.profile-card-photo { position: relative; aspect-ratio: 3/4; overflow: hidden; background: #f0e8d8; }
.profile-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.profile-card:hover .profile-card-photo img { transform: scale(1.04); }
.profile-card-photo-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.profile-card-badge { position: absolute; top: 8px; font-size: .65rem; font-weight: 700; padding: 2px 7px; border-radius: 10px; text-transform: uppercase; letter-spacing: .4px; }
.badge-premium { left: 8px; background: var(--sbat-gold); color: #fff; }
.badge-new { right: 8px; background: #10b981; color: #fff; }
.profile-card-body { padding: .75rem; }
.profile-card-id { font-size: .65rem; color: #999; font-family: monospace; }
.profile-card-name { font-size: .9rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profile-card-meta { font-size: .75rem; color: #666; }
.profile-card-location { font-size: .75rem; color: #888; display: flex; align-items: center; gap: 3px; }
.btn-interest { background: var(--sbat-orange); color: #fff; border: none; font-size: .75rem; font-weight: 700; padding: .35rem .5rem; border-radius: 6px; flex: 1; transition: background .15s; cursor: pointer; }
.btn-interest:hover { background: var(--sbat-orange-hover); color: #fff; }
.btn-shortlist {
  width: 32px; height: 32px; border-radius: 6px;
  border: 1px solid #ddd; background: #f5f5f5;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all .15s; color: #999; font-size: .9rem;
}
.btn-shortlist:hover, .btn-shortlist.active { background: #fff3cd; border-color: var(--sbat-gold); color: var(--sbat-gold); }

.active-filter-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .65rem; background: #fff; border: 1px solid #ddd; border-radius: 20px; font-size: .75rem; }

/* ─ New Profile Card (overlay style) ─────────────────────── */
.pc-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 2px 12px rgba(0,0,0,.08); transition:transform .2s,box-shadow .2s; height:100%; }
.pc-card:hover { transform:translateY(-4px); box-shadow:0 8px 28px rgba(0,0,0,.14); }
.pc-photo-wrap { position:relative; aspect-ratio:3/4; overflow:hidden; }
.pc-photo-wrap img { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.pc-card:hover .pc-photo-wrap img { transform:scale(1.05); }
.pc-overlay { position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(to top,rgba(0,0,0,.75) 0%,rgba(0,0,0,.3) 60%,transparent 100%); }
.pc-name { color:#fff;font-weight:700;font-size:.95rem;line-height:1.2; }
.pc-meta { color:rgba(255,255,255,.85);font-size:.75rem;margin-top:.15rem; }
.pc-verified { position:absolute;top:10px;right:10px;background:#0D9488;color:#fff;border-radius:20px;padding:3px 8px;font-size:.65rem;font-weight:700;display:flex;align-items:center;gap:3px; }
.pc-body { padding:.75rem; }
.pc-edu { font-size:.8rem;color:#555;display:flex;align-items:center;gap:5px;margin-bottom:.2rem; }
.pc-loc { font-size:.78rem;color:#888;display:flex;align-items:center;gap:4px;margin-bottom:.5rem; }
.pc-tags { display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem; }
.pc-tag { display:inline-block;font-size:.68rem;padding:2px 8px;border-radius:12px;font-weight:500; }
.pc-tag-lang { border:1.5px solid #E55A00;color:#E55A00; }
.pc-tag-plain { border:1.5px solid #ccc;color:#666; }
.pc-tag-dosham { border:1.5px solid #ef4444;color:#ef4444;display:flex;align-items:center;gap:3px; }
.pc-tag-dosham::before { content:'';width:6px;height:6px;border-radius:50%;background:#ef4444;flex-shrink:0; }
.pc-actions { display:flex;gap:.5rem; }
.pc-btn-shortlist { flex:1;padding:.45rem;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;color:#444;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:4px; }
.pc-btn-shortlist:hover { border-color:#E55A00;color:#E55A00; }
.pc-btn-interest { flex:1;padding:.45rem;border-radius:8px;background:#E55A00;border:none;color:#fff;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:4px; }
.pc-btn-interest:hover { background:#C44E00; }

/* ─ New Filter Panel ─────────────────────────────────────── */
.filter-panel { background:#fff;border-radius:14px;padding:1.25rem;box-shadow:0 2px 12px rgba(0,0,0,.07); }
.filter-panel-title { font-size:1rem;font-weight:700;color:#1a1a1a;display:flex;align-items:center;gap:.4rem; }
.filter-clear-btn { font-size:.78rem;color:#E55A00;font-weight:600;text-decoration:none;margin-left:auto; }
.filter-clear-btn:hover { color:#C44E00; }
.filter-section-label { font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#aaa;margin-bottom:.4rem;margin-top:1rem; }
.filter-apply-btn { width:100%;padding:.65rem;background:#E55A00;border:none;color:#fff;border-radius:10px;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .15s;margin-top:1.25rem; }
.filter-apply-btn:hover { background:#C44E00; }

/* ─ Sort Toolbar ─────────────────────────────────────────── */
.sort-toolbar { display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem; }
.sort-toolbar-title { font-size:1.2rem;font-weight:800;color:#1a1a1a; }
.sort-toolbar-sub { font-size:.82rem;color:#888;margin-top:.15rem; }
.sort-select-wrap { display:flex;align-items:center;gap:.5rem; }
.sort-select-wrap label { font-size:.8rem;color:#888; }
.sort-select { font-size:.82rem;border-radius:8px;border:1.5px solid #e0dbd3;padding:.35rem .9rem .35rem .6rem;background:#fff;color:#333; }

/* ─ Profile Detail Page ──────────────────────────────────── */
.pd-container { max-width:900px;margin:0 auto; }
.pd-back-link { display:inline-flex;align-items:center;gap:.4rem;color:#888;font-size:.85rem;text-decoration:none;margin-bottom:1.25rem; }
.pd-back-link:hover { color:#1a1a1a; }
.pd-card { background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.1); }
.pd-photo-col { width:240px;flex-shrink:0; }
.pd-photo-circle-wrap { position:relative;width:160px;height:160px;margin:0 auto 1rem; }
.pd-photo-circle { width:160px;height:160px;border-radius:50%;object-fit:cover;border:3px solid #f0ece6; }
.pd-verified-badge { position:absolute;bottom:8px;right:8px;width:36px;height:36px;background:#0D9488;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff; }
.pd-sba-id { font-size:.78rem;color:#999;text-align:center; }
.pd-sba-id strong { color:#444; }
.pd-name { font-size:1.2rem;font-weight:700;text-align:center;color:#1a1a1a;margin-bottom:.15rem; }
.pd-profile-section { padding:1.5rem; }
.pd-section-title { font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#E55A00;margin-bottom:1rem;border-bottom:1px solid #f0ece6;padding-bottom:.4rem; }
.pd-details-grid { display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2rem; }
.pd-detail-label { font-size:.78rem;color:#888; }
.pd-detail-val { font-size:.88rem;font-weight:600;color:#1a1a1a; }
.pd-action-btn-primary { width:100%;padding:.65rem;background:#E55A00;border:none;color:#fff;border-radius:10px;font-weight:600;font-size:.88rem;cursor:pointer;transition:background .15s; }
.pd-action-btn-primary:hover { background:#C44E00; }
.pd-action-btn-outline { width:100%;padding:.65rem;background:#fff;border:1.5px solid #d1d5db;color:#333;border-radius:10px;font-weight:600;font-size:.88rem;cursor:pointer;transition:all .15s;margin-bottom:.5rem; }
.pd-action-btn-outline:hover { border-color:#E55A00;color:#E55A00; }
.pd-action-btn-success { width:100%;padding:.65rem;background:#0D9488;border:none;color:#fff;border-radius:10px;font-weight:600;font-size:.88rem;cursor:pointer;margin-bottom:.5rem; }
.pd-contact-unlocked { background:#f0fdf4;border:1.5px solid #86efac;border-radius:12px;padding:1rem;text-align:center; }
.pd-contact-unlocked-title { color:#16a34a;font-weight:700;font-size:.88rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem;justify-content:center; }
.pd-contact-line { font-size:.85rem;color:#444;display:flex;align-items:center;gap:.4rem;justify-content:center; }
.pd-quota { font-size:.72rem;color:#999;text-align:center;margin-top:.4rem; }
.pd-about-text { font-size:.9rem;color:#444;line-height:1.7; }
.pd-two-col { display:grid;grid-template-columns:1fr 1fr;gap:2rem; }
@media(max-width:640px) { .pd-two-col { grid-template-columns:1fr; gap:1rem; } }
.pd-col-title { font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#aaa;margin-bottom:.75rem;border-bottom:1px solid #f0ece6;padding-bottom:.3rem; }
.pd-row { display:flex;justify-content:space-between;align-items:baseline;padding:.25rem 0;border-bottom:1px solid #f9f7f4; }
.pd-row-label { font-size:.82rem;color:#888; }
.pd-row-val { font-size:.82rem;font-weight:600;color:#1a1a1a;text-align:right; }
.pd-relig-grid { display:grid;grid-template-columns:1fr 1fr;gap:.4rem 2rem; }

/* ─ Interested / Contacted Pages ─────────────────────────── */
.ic-page-header { margin-bottom:1.5rem; }
.ic-page-title { font-size:1.3rem;font-weight:800;color:#1a1a1a; }
.ic-page-sub { font-size:.85rem;color:#888; }
.ic-quota-badge { background:#fff;border:1.5px solid #e0dbd3;border-radius:12px;padding:.75rem 1.25rem;display:inline-flex;align-items:center;gap:.75rem; }
.ic-quota-num { font-size:1.8rem;font-weight:800;color:#E55A00;line-height:1; }
.ic-quota-label { font-size:.72rem;color:#888;font-weight:600;text-transform:uppercase; }
.ic-empty { background:#fff;border-radius:16px;padding:3rem 2rem;text-align:center;box-shadow:0 2px 12px rgba(0,0,0,.06); }
.ic-empty-icon { width:72px;height:72px;background:#fff5f0;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:2rem;color:#E55A00; }

/* ─ Divine Matches Section ───────────────────────────────── */
.divine-section { position:relative;background:#6B1111;overflow:hidden;padding:3.5rem 0; }
.divine-bg-pattern { position:absolute;inset:0;opacity:.12;background-image:radial-gradient(circle,#fff 1px,transparent 1px);background-size:28px 28px; }
.divine-title { font-size:clamp(1.6rem,4vw,2.4rem);font-weight:800;color:#fff;text-align:center;line-height:1.2; }
.divine-title-accent { color:#E87722; }
.divine-search-bar { background:#fff;border-radius:12px;padding:.5rem;display:flex;gap:.5rem;flex-wrap:wrap;max-width:680px;margin:1.5rem auto 0;box-shadow:0 4px 24px rgba(0,0,0,.25); }
.divine-search-select { flex:1;min-width:130px;border:none;padding:.5rem .75rem;font-size:.88rem;color:#444;background:transparent;outline:none;border-right:1px solid #e5e7eb; }
.divine-search-select:last-of-type { border-right:none; }
.divine-search-btn { background:#E55A00;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:8px;font-weight:700;font-size:.88rem;cursor:pointer;white-space:nowrap;transition:background .15s; }
.divine-search-btn:hover { background:#C44E00; }
.rec-section { padding:2.5rem 0; }
.rec-title { font-size:1.1rem;font-weight:700;color:#1a1a1a;margin-bottom:.25rem; }
.rec-sub { font-size:.82rem;color:#888;margin-bottom:1.25rem; }
.rec-card { background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 2px 12px rgba(0,0,0,.08);height:100%; }
.rec-photo-wrap { position:relative;aspect-ratio:3/4;overflow:hidden; }
.rec-photo-wrap img { width:100%;height:100%;object-fit:cover;transition:transform .4s; }
.rec-card:hover .rec-photo-wrap img { transform:scale(1.05); }
.rec-photo-overlay { position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(to top,rgba(0,0,0,.72),transparent); }
.rec-name { color:#fff;font-weight:700;font-size:.9rem; }
.rec-meta { color:rgba(255,255,255,.85);font-size:.72rem; }
.rec-verified { position:absolute;top:10px;right:10px;background:#0D9488;color:#fff;border-radius:20px;padding:3px 8px;font-size:.6rem;font-weight:700; }
.rec-body { padding:.75rem; }
.rec-tags { display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.65rem; }
.rec-tag { font-size:.65rem;padding:2px 7px;border-radius:10px;font-weight:500; }
.rec-tag-plain { border:1px solid #d1d5db;color:#666; }
.rec-tag-dosham { border:1px solid #ef4444;color:#ef4444; }
.rec-actions { display:flex;gap:.4rem; }
.rec-btn-pass { flex:1;padding:.4rem;border:1.5px solid #d1d5db;border-radius:8px;background:#fff;color:#666;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:3px; }
.rec-btn-pass:hover { border-color:#ef4444;color:#ef4444; }
.rec-btn-interest { flex:1;padding:.4rem;border-radius:8px;background:#E55A00;border:none;color:#fff;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:3px; }
.rec-btn-interest:hover { background:#C44E00; }

/* View contact info button (contacted page) */
.btn-view-contact { width:100%;padding:.5rem;background:#f0fdf4;border:1.5px solid #86efac;color:#16a34a;border-radius:8px;font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s; }
.btn-view-contact:hover { background:#dcfce7; }

/* ─ Messages ─────────────────────────────────────────────── */
.messages-layout { height: calc(100dvh - 70px); display: flex; overflow: hidden; }
.conv-sidebar { width: 320px; flex-shrink: 0; border-right: 1px solid #eee; display: flex; flex-direction: column; background: #fff; }
.conv-sidebar-header { padding: .75rem 1rem; border-bottom: 1px solid #eee; display: flex; align-items: center; gap: .5rem; }
.conv-sidebar-title { font-weight: 700; color: var(--sbat-primary); font-size: .95rem; }
.conv-list { flex: 1; overflow-y: auto; }
.conv-item { display: flex; align-items: center; gap: .75rem; padding: .75rem 1rem; cursor: pointer; border-bottom: 1px solid #f8f8f8; transition: background .15s; }
.conv-item:hover { background: #fdf5e6; }
.conv-item.active { background: #fff8ee; border-left: 3px solid var(--sbat-primary); padding-left: calc(1rem - 3px); }
.conv-item.unread .conv-name { font-weight: 700; }
.conv-avatar { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: #f0e8d8; flex-shrink: 0; position: relative; display: flex; align-items: center; justify-content: center; }
.conv-avatar img { width: 100%; height: 100%; object-fit: cover; }
.conv-online-dot { position: absolute; bottom: 1px; right: 1px; width: 10px; height: 10px; background: #10b981; border-radius: 50%; border: 2px solid #fff; }
.conv-name { font-size: .875rem; }
.conv-last-msg { font-size: .75rem; color: #888; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conv-time { font-size: .7rem; color: #aaa; }

.chat-area { flex: 1; display: flex; flex-direction: column; overflow: hidden; background: var(--sbat-bg); }
.chat-header { background: #fff; border-bottom: 1px solid #eee; padding: .65rem 1rem; flex-shrink: 0; }
.chat-header-name { font-weight: 700; font-size: .9rem; }
.chat-header-sub { font-size: .75rem; color: #888; }
.chat-safety-banner { background: #fffbeb; border-bottom: 1px solid #fde68a; padding: .5rem 1rem; font-size: .78rem; color: #78350f; flex-shrink: 0; }
.chat-gate-notice { background: var(--sbat-bg); border-bottom: 1px solid #fde68a; padding: .75rem 1rem; text-align: center; flex-shrink: 0; }
.chat-messages { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .35rem; }
.chat-date-divider { text-align: center; margin: .5rem 0; font-size: .72rem; color: #aaa; }
.chat-date-divider span { background: rgba(255,255,255,.7); padding: 2px 10px; border-radius: 10px; }
.chat-bubble-wrap { display: flex; }
.chat-bubble-wrap.sent { justify-content: flex-end; }
.chat-bubble { max-width: 65%; padding: .6rem .85rem; border-radius: 12px; font-size: .875rem; line-height: 1.5; }
.chat-bubble-wrap.sent .chat-bubble { background: var(--sbat-primary); color: #fff; border-bottom-right-radius: 3px; }
.chat-bubble-wrap.received .chat-bubble { background: #fff; color: #222; border: 1px solid #e8e8e8; border-bottom-left-radius: 3px; }
.chat-bubble-text { margin: 0; word-break: break-word; }
.chat-time { font-size: .65rem; opacity: .7; }
.chat-composer { background: #fff; border-top: 1px solid #eee; padding: .65rem 1rem; flex-shrink: 0; }
.chat-input { resize: none; max-height: 100px; overflow-y: auto; border-color: #ddd; font-size: .9rem; }
.chat-input:focus { border-color: var(--sbat-primary); box-shadow: 0 0 0 .2rem rgba(123,24,24,.1); }
.chat-send-btn { width: 40px; height: 40px; border-radius: 50%; background: var(--sbat-orange); color: #fff; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; transition: background .15s; }
.chat-send-btn:hover { background: var(--sbat-orange-hover); }
.chat-send-btn:disabled { background: #ccc; cursor: not-allowed; }
.chat-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #aaa; text-align: center; padding: 2rem; }

@media (max-width: 767.98px) {
  .conv-sidebar { position: absolute; width: 100%; z-index: 10; height: 100%; transition: transform .25s; }
  .chat-area { position: absolute; width: 100%; height: 100%; transform: translateX(100%); transition: transform .25s; }
  .messages-layout { position: relative; }
  .messages-layout.chat-open .chat-area { transform: translateX(0); }
  .messages-layout.chat-open .conv-sidebar { transform: translateX(-100%); }
}

/* ─ Admin ────────────────────────────────────────────────── */
.admin-body { background: #f4f6f9; }
.admin-sidebar { width: 240px; background: var(--sbat-primary); min-height: 100vh; flex-shrink: 0; position: fixed; top: 0; left: 0; bottom: 0; z-index: 400; transition: transform .25s; overflow-y: auto; }
.admin-sidebar-brand { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.admin-brand-text { color: #fff; font-weight: 700; font-size: .95rem; }
.admin-logo { width: 36px; height: 36px; object-fit: contain; }
.admin-nav-section { padding: .85rem 1rem .25rem; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,.4); }
.admin-nav-link { display: flex; align-items: center; gap: .6rem; padding: .6rem 1rem; color: rgba(255,255,255,.8); text-decoration: none; font-size: .875rem; transition: background .15s, color .15s; }
.admin-nav-link:hover, .admin-nav-link.active { background: rgba(255,255,255,.12); color: #fff; }
.admin-nav-link.active { border-left: 3px solid var(--sbat-gold); padding-left: calc(1rem - 3px); }
.admin-nav-badge { margin-left: auto; background: var(--sbat-gold); color: #fff; font-size: .65rem; font-weight: 700; border-radius: 10px; padding: 1px 6px; }
.admin-content-wrap { margin-left: 240px; min-height: 100vh; display: flex; flex-direction: column; }
.admin-topbar { background: #fff; border-bottom: 1px solid #e5e7eb; padding: .75rem 1.5rem; position: sticky; top: 0; z-index: 300; }
.admin-page-content { padding: 1.5rem; flex: 1; }
.stat-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; }
.stat-card-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.stat-card-value { font-size: 1.5rem; font-weight: 700; }
.stat-card-label { font-size: .75rem; color: #666; }
.stat-card-trend { font-size: .7rem; color: #888; }
.stat-card-trend.up { color: #10b981; }
.admin-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .5px; color: #999; white-space: nowrap; background: #fafafa; }
.admin-profile-thumb { width: 38px; height: 38px; border-radius: 8px; overflow: hidden; background: #f0f0f0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.admin-profile-thumb img { width: 100%; height: 100%; object-fit: cover; }
.photo-mod-item { position: relative; aspect-ratio: 3/4; border-radius: 8px; overflow: hidden; background: #f0f0f0; }
.photo-mod-item img { width: 100%; height: 100%; object-fit: cover; }
.photo-mod-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.7), transparent 50%); display: flex; flex-direction: column; justify-content: flex-end; padding: .5rem; opacity: 0; transition: opacity .2s; }
.photo-mod-item:hover .photo-mod-overlay { opacity: 1; }
.photo-mod-id { font-size: .65rem; color: rgba(255,255,255,.8); margin-bottom: .35rem; }
.admin-sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 399; }
.admin-sidebar-overlay.visible { display: block; }

@media (max-width: 991.98px) {
  .admin-sidebar { transform: translateX(-100%); }
  .admin-sidebar.open { transform: translateX(0); }
  .admin-content-wrap { margin-left: 0; }
  .admin-topbar .admin-menu-toggle { display: flex !important; }
}

/* ─ Footer ───────────────────────────────────────────────── */
.sbat-footer { background: var(--sbat-primary); color: rgba(255,255,255,.85); }
.sbat-footer a { color: rgba(255,255,255,.7); text-decoration: none; font-size: .875rem; }
.sbat-footer a:hover { color: #fff; }
.footer-heading { color: var(--sbat-gold); font-size: .75rem; text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); font-size: .8rem; color: rgba(255,255,255,.5); }

/* ─ Status badges ────────────────────────────────────────── */
.badge-approved { background: #d1fae5; color: #065f46; }
.badge-pending  { background: #fef3c7; color: #92400e; }
.badge-rejected { background: #fee2e2; color: #991b1b; }
.badge-inactive { background: #f3f4f6; color: #6b7280; }

/* ─ Country-code select (compact width in input-groups) ──── */
.sbat-country-select {
  width: 130px !important;
  flex: 0 0 130px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ─ Color utilities (referenced throughout views) ─────────── */
.text-sbat-maroon  { color: var(--sbat-primary) !important; }
.text-sbat-orange  { color: var(--sbat-orange)  !important; }
.bg-sbat-maroon    { background-color: var(--sbat-primary) !important; color: #fff !important; }
.bg-sbat-orange    { background-color: var(--sbat-orange)  !important; color: #fff !important; }
.border-sbat-maroon{ border-color: var(--sbat-primary) !important; }

/* ─ Misc ─────────────────────────────────────────────────── */
.wizard-error { display: none; }
.wizard-error.show { display: flex; }

/* ─ intl-tel-input Bootstrap integration ─────────────────── */
.iti-group .iti { width: 100%; display: block; }

.was-validated .iti-group .iti input.form-control:valid   { border-color: #198754; box-shadow: 0 0 0 .25rem rgba(25,135,84,.25); }
.was-validated .iti-group .iti input.form-control:invalid { border-color: #dc3545; box-shadow: 0 0 0 .25rem rgba(220,53,69,.25); }

.iti--container { z-index: 1100; }

/* ─ Tom Select — Bootstrap 5 integration tweaks ──────────── */
.ts-wrapper.form-select { padding: 0; }
.ts-wrapper .ts-control {
    min-height: calc(1.5em + .75rem + 2px);
    padding: .375rem .75rem;
    border-radius: .375rem;
    border: 1px solid #ced4da;
    background-color: #fff;
    font-size: 1rem;
    line-height: 1.5;
    cursor: pointer;
}
.ts-wrapper.form-select.focus .ts-control,
.ts-wrapper .ts-control:focus { border-color: #86b7fe; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); outline: 0; }
.ts-dropdown .ts-dropdown-content { max-height: 220px; overflow-y: auto; }
.ts-dropdown input.dropdown-input {
    width: 100%;
    padding: .375rem .75rem;
    border: 0;
    border-bottom: 1px solid #dee2e6;
    outline: 0;
    font-size: .9rem;
}
.ts-dropdown { z-index: 1030; }

/* ─ Utility ──────────────────────────────────────────────── */
.cursor-pointer { cursor: pointer; }

/* ─ Registration wizard (new flow) ──────────────────────── */
.wizard-success { display: none; }
.wizard-success.show { display: flex; }

/* Payment plan cards */
.plan-card {
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s;
  background: #fff;
}
.plan-card:hover { border-color: var(--sbat-primary) !important; }
.plan-card label { cursor: pointer; width: 100%; }

/* Profile tab nav within step 3 */
#profileTabs .nav-link {
  color: #555;
  font-size: .82rem;
  padding: .45rem .75rem;
  white-space: nowrap;
}
#profileTabs .nav-link.active {
  color: var(--sbat-primary);
  font-weight: 600;
  border-bottom: 2px solid var(--sbat-primary);
}

/* OTP input */
#otpInput { font-size: 1.8rem; letter-spacing: .4em; text-align: center; }

/* Gender tile */
.gender-tile { cursor: pointer; }
.gender-tile label { cursor: pointer; padding: 1rem; border: 2px solid #e0e0e0; border-radius: 12px; width: 100%; transition: border-color .2s, background .2s; }
.gender-tile input:checked + label { border-color: var(--sbat-primary); background: #fff0f0; color: var(--sbat-primary); }
.gender-avatar { width: 48px; height: 60px; color: #ccc; transition: color .2s; }
.gender-tile input:checked + label .gender-avatar { color: var(--sbat-primary); }

/* Registration sub-step dots */
.ss-dot { width: 10px; height: 10px; border-radius: 50%; background: #dee2e6; flex-shrink: 0; transition: background .15s, transform .15s; cursor: default; }
.ss-dot.active { background: var(--sbat-primary); transform: scale(1.3); }
.ss-dot.done { background: var(--sbat-teal); }

/* ── Name lock icon (masked last name indicator) ──────────────── */
.name-lock {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    opacity: .55;
    font-size: .72em;
    color: var(--sbat-primary, #7b1818);
    vertical-align: middle;
    margin-left: .2em;
    transition: opacity .15s;
}
.name-lock:hover { opacity: 1; }
