@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+Telugu:wght@400;600;700&family=Noto+Sans:wght@400;600;700&display=swap);
:root {
  /* ── DS ASTROai — Emerald & Antique Gold palette ── */
  --emerald: #426B5A;
  --emerald-deep: #203D32;
  --emerald-soft: #5E8570;
  --antique-gold: #B99A45;
  --antique-gold-deep: #8A7326;
  --antique-gold-soft: #EFE7CE;
  --parchment: #F5F5E8;
  --sage-card: #E4EBDD;
  --sage-border: #C9C49A;
  --muted-gold: #B99A45;
  --warm-olive: #BDB76B;
  --soft-cream: #F5F5E8;
  --warm-caramel: #B99A45;

  /* ── DS ASTROai brand palette (mapped to Emerald & Antique Gold) ── */
  --ds-primary: var(--emerald);
  --ds-accent: var(--antique-gold);
  --ds-cream: var(--parchment);
  --ds-dark: var(--emerald-deep);
  --ds-background: var(--parchment);
  --ds-surface: #FFFFFF;
  --ds-surface-soft: var(--antique-gold-soft);
  --ds-text: var(--emerald-deep);
  --ds-text-muted: #5F6F66;
  --ds-border: var(--sage-border);
  --ds-gold: var(--antique-gold);
  --ds-success: #3E7A4E;
  --ds-warning: var(--antique-gold-deep);
  --ds-error: #A94442;
  --ds-info: #5F6F66;
  --ds-heading: var(--emerald-deep);
  --ds-link: var(--emerald);

  /* ── Legacy semantic vars mapped to the Emerald palette ── */
  --orange: var(--emerald);
  --orange-soft: var(--antique-gold-soft);
  --maroon: var(--emerald);
  --maroon-light: var(--emerald-soft);
  --maroon-dark: var(--emerald-deep);
  --gold: var(--antique-gold);
  --gold-light: var(--antique-gold-soft);
  --gold-dark: var(--antique-gold-deep);
  --cream: var(--parchment);
  --lime: #FFFFFF;
  --bg-cream: var(--parchment);
  --bg-orange-light: var(--antique-gold-soft);
  --bg-card: var(--sage-card);
  --bg-card-hover: var(--antique-gold-soft);
  --bg-subtle: rgba(66, 107, 90, 0.06);
  --bg-lime: #FFFFFF;
  --text-primary: var(--emerald-deep);
  --text-secondary: var(--emerald);
  --text-muted: #5F6F66;
  --border-color: #E9DCCB;
  --border-soft: #E9DCCB;
  --card-bg: #FFFFFF;
  --shadow: 0 2px 8px rgba(56, 36, 13, 0.08);
  --shadow-card: 0 4px 12px rgba(113, 54, 0, 0.08);
  --light: #FFFFFF;
  --single: 1px;

  /* ── Backward-compat aliases for legacy --ds-* references ── */
  --ds-orange: var(--emerald);
  --ds-accent-soft: var(--antique-gold-soft);
  --ds-brown: var(--emerald);
  --ds-olive: var(--emerald-soft);
  --ds-ivory: var(--parchment);
  --ds-maroon: #A94442;
  --ds-maroon-dark: var(--emerald-deep);
  --ds-muted: #5F6F66;
  --ds-ink: var(--emerald-deep);
  --ds-ink-soft: #5F6F66;
  --ds-line: var(--sage-border);
  --ds-paper: #FFFFFF;
  --ds-plum: var(--emerald);
  --ds-purple: var(--emerald);
  --ds-surface: #FFFFFF;
}

/* Burnt-orange Header Consistency - Applied to both topbars */
.navbar-topbar--single {
  background: var(--ds-orange) !important;
  color: var(--ds-ivory) !important;
  border-bottom: 2px solid var(--ds-gold) !important;
  position: sticky;
  top: 0;
  z-index: 1050;
  padding: 0.5rem 0 !important;
}

/* Ensure navigation elements are visible */
.hnav-group-btn, .hnav-link {
  color: var(--ds-text, #38240D) !important;
}

/* Ensure font colors in these headers match the new background */
.navbar-topbar .topbar-brand, 
.navbar-topbar .topbar-user,
.navbar-topbar .topbar-brand-sub, 
.navbar-topbar .topbar-icon-btn,
.navbar-topbar .hamburger-btn, 
.navbar-topbar .btn,
.navbar-topbar .topbar-tagline, 
.navbar-topbar .topbar-font-btn,
.navbar-topbar .topbar-theme-btn {
  color: var(--ds-cream, #FDFBD4) !important;
}
/* Header nav items sit on the light .navbar-astro bar — keep them dark */
.hnav-link,
.hnav-group-btn {
  color: var(--ds-text, #38240D) !important;
}
.card-astro .card-header {
  border-radius: 12px 12px 0 0 !important;
  font-weight: 800 !important;
  letter-spacing: 0.5px !important;
}

/* Page backgrounds */
body {
  background-color: #FFFFFF;
  color: var(--text-primary);
}

.card-astro {
  background: var(--sage-card, #E4EBDD);
  border: 1px solid var(--border-soft);
  border-radius: 14px;
  box-shadow: var(--shadow-card);
}

/* Responsive spacing */
@media (max-width: 575.98px) {
  .ds-dashboard { padding: 10px 8px; }
  .card-body { padding: 12px !important; }
}

/* Slightly larger base font on phones (root font-size scales all rem text). */
@media (max-width: 575.98px) {
  html[data-fontsize="small"]  { font-size: 16px; }
  html[data-fontsize="medium"] { font-size: 18px; }
  html[data-fontsize="large"]  { font-size: 20px; }
  html[data-fontsize="xlarge"] { font-size: 22px; }
}

/* Even larger touch-friendly text on very small screens. */
@media (max-width: 399.98px) {
  html[data-fontsize="small"]  { font-size: 17px; }
  html[data-fontsize="medium"] { font-size: 19px; }
  html[data-fontsize="large"]  { font-size: 21px; }
  html[data-fontsize="xlarge"] { font-size: 23px; }
}

/* Normal table view on phones: keep columns at natural width and scroll sideways
   instead of crushing all columns to 100% width and mangling the text wrapping. */
@media (max-width: 767.98px) {
  .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .table-responsive > .table,
  .table-responsive > table {
    width: max-content;
    min-width: 100%;
  }
}

/* Chart scale tokens — tuned down for small screens via the media query below. */
:root {
  --chart-sign-symbol: 1.7rem;
  --chart-sign-text: 0.9rem;
  --chart-sign-small: 0.8rem;
  --chart-planet-symbol: 1.25rem;
  --chart-planet-text: 0.78rem;
  --chart-deg: 0.7rem;
  --chart-nakshatra: 0.66rem;
  --chart-upagraha: 0.58rem;
  --chart-house: 0.9rem;
  --chart-lagna: 0.8rem;
  --chart-min-w4: 460px;
  --chart-min-w3: 400px;
  --chart-cell-h4: 128px;
  --chart-cell-h3: 110px;
}

/* Smaller scale for divisional (D-) charts */
.dchart-small {
  --chart-sign-symbol: 1.2rem;
  --chart-sign-text: 0.72rem;
  --chart-sign-small: 0.66rem;
  --chart-planet-symbol: 1rem;
  --chart-planet-text: 0.66rem;
  --chart-deg: 0.6rem;
  --chart-nakshatra: 0.58rem;
  --chart-upagraha: 0.5rem;
  --chart-house: 0.75rem;
  --chart-lagna: 0.68rem;
  --chart-min-w4: 340px;
  --chart-min-w3: 300px;
  --chart-cell-h4: 84px;
  --chart-cell-h3: 74px;
}

[data-theme="dark"] {
  color-scheme: dark;
  /* ── DS ASTROai — Chocolate Truffle dark theme ── */
  --ds-primary: #F0C38A;
  --ds-accent: #E28A35;
  --ds-cream: #FDFBD4;
  --ds-dark: #24170C;
  --ds-background: #24170C;
  --ds-surface: #38240D;
  --ds-surface-soft: #4D3017;
  --ds-text: #FDFBD4;
  --ds-text-muted: #D6BFA3;
  --ds-border: #684B2E;
  --ds-success: #8FA87A;
  --ds-warning: #D4AF5A;
  --ds-error: #D46B5F;
  --ds-info: #C9B8A1;
  --ds-heading: #FDFBD4;
  --ds-link: #F0C38A;

  --ds-orange: #E28A35;
  --ds-brown: #F0C38A;
  --ds-olive: #24170C;
  --ds-ivory: #38240D;
  --ds-gold: #D6A84F;
  --ds-maroon: #D46B5F;
  --ds-maroon-dark: #F0C38A;
  --ds-muted: #D6BFA3;
  --ds-ink: #FDFBD4;
  --ds-ink-soft: #D6BFA3;
  --ds-line: #684B2E;
  --ds-paper: #38240D;
  --ds-plum: #F0C38A;
  --ds-purple: #F0C38A;
  --ds-surface: #38240D;

  --bg: #24170C;
  --bg-card: #38240D;
  --bg-card-hover: #4D3017;
  --bg-lime: #38240D;
  --bg-subtle: rgba(255,255,255,0.04);
  --bg-cream: #24170C;
  --bg-orange-light: #4D3017;
  --cream: #24170C;
  --lime: #38240D;
  --text-primary: #FDFBD4;
  --text-secondary: #D6BFA3;
  --text-muted: #D6BFA3;
  --border-color: #684B2E;
  --border-soft: #563922;
  --gold: #D6A84F;
  --gold-dark: #F0C38A;
  --gold-light: #4D3017;
  --maroon: #F0C38A;
  --maroon-light: #FDFBD4;
  --maroon-dark: #4D3017;
  --card-bg: #38240D;
  --shadow: 0 2px 6px rgba(0,0,0,0.4);
  --shadow-card: 0 4px 14px rgba(0,0,0,0.5);

  /* Neutralise Bootstrap adaptive vars so its components (tables, cards) follow dark. */
  --bs-body-bg: #1D1208;
  --bs-body-color: #FDFBD4;
  --bs-secondary-color: #D6BFA3;
  --bs-secondary-bg: #2D1D0E;
  --bs-tertiary-bg: #38240D;
  --bs-border-color: #684B2E;
  --bs-table-bg: transparent;
  --bs-table-color: #FDFBD4;
  --bs-table-hover-bg: rgba(255,255,255,0.04);
  --bs-table-striped-bg: rgba(255,255,255,0.02);
  --bs-table-head-color: #F0C38A;
}

/* Dark surfaces for the shared structural components (also beats inline
   light backgrounds via !important) so the app reads correctly on web + mobile. */
[data-theme="dark"] body {
  background: linear-gradient(180deg, #24170C 0%, #1D1208 60%, #140C06 100%);
  background-attachment: fixed;
  color: var(--text-primary);
}
[data-theme="dark"] .card-astro,
[data-theme="dark"] .card,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .list-group-item,
[data-theme="dark"] .popover-body {
  background: var(--bg-card) !important;
  border-color: var(--border-soft) !important;
  color: var(--text-primary) !important;
}
[data-theme="dark"] .card-astro,
[data-theme="dark"] .card { box-shadow: var(--shadow-card) !important; }
[data-theme="dark"] .card-header { background: var(--bg-card-hover) !important; color: var(--text-primary) !important; }
[data-theme="dark"] .card h3,
[data-theme="dark"] .card .card-title,
[data-theme="dark"] .section-label { color: var(--gold-dark) !important; }
[data-theme="dark"] .table,
[data-theme="dark"] .astro-data-table { color: var(--text-primary) !important; border-color: var(--border-soft) !important; }
[data-theme="dark"] .table thead th,
[data-theme="dark"] .astro-data-table thead th,
[data-theme="dark"] .astro-data-table thead tr,
[data-theme="dark"] .astro-table-header {
  background: #2E2117 !important;
  color: var(--gold-dark) !important;
  border-color: var(--border-soft) !important;
}
[data-theme="dark"] .table tbody tr,
[data-theme="dark"] .astro-data-table tbody tr { color: var(--text-primary); }
[data-theme="dark"] .table-hover tbody tr:hover,
[data-theme="dark"] .astro-data-table tbody tr:hover,
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) {
  background: var(--bg-card-hover) !important;
}
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .form-control-astro,
[data-theme="dark"] .form-floating > .form-control,
[data-theme="dark"] input,
[data-theme="dark"] textarea,
[data-theme="dark"] select {
  background-color: #1E160F !important;
  color: var(--text-primary) !important;
  border-color: var(--border-soft) !important;
}
[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: var(--text-muted); }
[data-theme="dark"] .form-label,
[data-theme="dark"] label,
[data-theme="dark"] .section-sub-label { color: var(--text-muted); }
[data-theme="dark"] a { color: var(--gold); }
[data-theme="dark"] .footer-astro { background: #14100B !important; border-top: 1px solid var(--border-soft) !important; }
[data-theme="dark"] .btn-outline-gold,
[data-theme="dark"] .btn-outline-gold:not(:hover):not(:focus) { border-color: var(--gold) !important; color: var(--gold) !important; }
[data-theme="dark"] .navbar-topbar { background: var(--ds-dark) !important; }
[data-theme="dark"] .modal-footer,
[data-theme="dark"] .modal-header { border-color: var(--border-soft) !important; }
[data-theme="dark"] .disclaimer,
[data-theme="dark"] .hint,
[data-theme="dark"] .form-text { color: var(--text-muted) !important; }

/* Readable body copy on dark surfaces (beats inline dark text hexes such as
   #2b1d16 / #4a3f35 / #3a3027 which are otherwise invisible on dark cards). */
[data-theme="dark"] .card-astro div,
[data-theme="dark"] .card-astro span,
[data-theme="dark"] .card-astro p,
[data-theme="dark"] .card-astro li,
[data-theme="dark"] .card-astro td,
[data-theme="dark"] .card-astro th,
[data-theme="dark"] .card div,
[data-theme="dark"] .card span,
[data-theme="dark"] .card p,
[data-theme="dark"] .card li,
[data-theme="dark"] .card td,
[data-theme="dark"] .card th,
[data-theme="dark"] .modal-body div,
[data-theme="dark"] .modal-body span,
[data-theme="dark"] .modal-body p,
[data-theme="dark"] .modal-body li,
[data-theme="dark"] .dropdown-item { color: var(--text-primary) !important; }
[data-theme="dark"] .card-astro b,
[data-theme="dark"] .card-astro strong,
[data-theme="dark"] .card b,
[data-theme="dark"] .card strong,
[data-theme="dark"] .modal-body b,
[data-theme="dark"] .modal-body strong { color: #F2F7F4 !important; }

/* Keep accent headings/labels meaningful on dark. */
[data-theme="dark"] .card h1,
[data-theme="dark"] .card h2,
[data-theme="dark"] .card h3,
[data-theme="dark"] .card h4,
[data-theme="dark"] .card h5,
[data-theme="dark"] .card h6,
[data-theme="dark"] .modal-content h1,
[data-theme="dark"] .modal-content h2,
[data-theme="dark"] .modal-content h3,
[data-theme="dark"] .modal-content h4,
[data-theme="dark"] .modal-content h5,
[data-theme="dark"] .modal-content h6,
[data-theme="dark"] .section-label,
[data-theme="dark"] .section-title { color: var(--gold-dark) !important; }
[data-theme="dark"] .card small,
[data-theme="dark"] .modal-content small { color: var(--text-muted) !important; }
[data-theme="dark"] .footer-astro div,
[data-theme="dark"] .footer-astro span,
[data-theme="dark"] .footer-astro p,
[data-theme="dark"] .footer-astro a { color: var(--text-muted) !important; }

[data-fontsize="small"] { font-size: 14px; }
[data-fontsize="medium"] { font-size: 16px; }
[data-fontsize="large"] { font-size: 18px; }
[data-fontsize="xlarge"] { font-size: 20px; }

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: 'Inter', 'Noto Sans Telugu', -apple-system, sans-serif;
  background: linear-gradient(180deg, #FFFFFF 0%, #F5F5E8 70%, #EDEBD8 100%);
  background-attachment: fixed;
  color: var(--text-primary);
  min-height: 100vh;
  line-height: 1.6;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url('/logo-new-1.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 500px auto;
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
}

@media (min-width: 768px) {
  body::before {
    background-size: 700px auto;
    opacity: 0.035;
  }
}

[data-theme="dark"] body::before { opacity: 0.02; }

#root {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

/* Navbar - Maroon header */
.navbar-astro {
  background: var(--bg-cream) !important;
  border-bottom: 2px solid var(--border-soft);
  padding: 0.5rem 0;
}

.navbar-topbar {
  background: linear-gradient(90deg, var(--maroon-dark) 0%, var(--maroon) 50%, var(--emerald-deep) 100%);
  color: #fff;
  font-size: 0.72rem;
  padding: 0.45rem 0;
  box-shadow: 0 2px 12px rgba(113,54,0,0.25);
  border-bottom: 2px solid var(--gold);
}
.navbar-topbar--single {
  background: var(--maroon) !important;
  color: #FFFDF5 !important;
  padding: 0.5rem 0.75rem !important;
  border-bottom: 2px solid var(--gold) !important;
  position: sticky;
  top: 0;
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  min-height: 60px;
}
.navbar-topbar--single .container {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  width: 100%;
}
.hnav-group-btn, .hnav-link {
  color: var(--soft-cream, #FDFBD4) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
}
.hnav-link:hover, .hnav-group-btn:hover {
  background: rgba(212, 175, 55, .18) !important;
  color: var(--muted-gold, #D4AF37) !important;
}
.profile-dropdown { position: relative; z-index: 1060; }
.profile-dropdown-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 200px;
  background: #FFFEF7;
  border: 1.5px solid #F5D67A;
  border-radius: 14px;
  box-shadow: 0 20px 48px rgba(113,54,0,0.22);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 9999 !important;
}

/* Astro page — straight black lines between tables/divs */
.astro-page .card-astro { border: 1px solid #000 !important; }
.astro-page .rasi-section { border: 1px solid #000 !important; }
.astro-page .astro-pan-table { border: 1px solid #000 !important; }
.astro-page .astro-pan-row { border-bottom: 1px solid #000 !important; }
.astro-page .astro-pan-label { border-right: 1px solid #000 !important; }
.astro-page .astro-data-table th, .astro-page .astro-data-table td { border: 1px solid #000 !important; }
.astro-page .rasi-section-body { border-top: 1px solid #000 !important; }
.astro-page .divider-gold, .astro-page .astro-divider-black { height: 1px; background: #000 !important; margin: 12px 0; }
.astro-page .horizontal-nav, .astro-page .hnav-dropdown { border-color: #000 !important; }
/* Uniform tables inside bhava combined card — nested cards appear as plain sections */
.astro-page .card-astro .card-astro { border: none !important; box-shadow: none !important; background: transparent !important; }
.astro-page .card-astro .card-astro .card-body { padding: 0 !important; background: transparent !important; }

.topbar-tagline {
  color: #F2E5C9;
  letter-spacing: 0.5px;
  opacity: 0.95;
}

.topbar-divider {
  width: 1px;
  height: 18px;
  background: rgba(255,255,255,0.25);
}

.navbar-topbar .btn {
  color: #F2E5C9;
}

.navbar-topbar select {
  background-color: rgba(255,255,255,0.92) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3E%3Cpath fill=%27%23BE5103%27 d=%27M4.5 6 8 9.5 11.5 6z%27/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat;
  background-position: right 0.4rem center;
  background-size: 12px 12px;
  border: 1px solid rgba(255,255,255,0.4);
  color: #6B1010 !important;
  font-weight: 700;
  border-radius: 8px;
}

.navbar-topbar select option {
  color: #1c1a16;
}

.navbar-topbar select:focus {
  border-color: #F2E5C9;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.25);
}

.navbar-topbar .topbar-theme-btn {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 8px;
  color: #F2E5C9;
}

.navbar-topbar .topbar-theme-btn:hover {
  background: rgba(255,255,255,0.22);
}

.navbar-topbar .topbar-font-btn {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 6px;
  color: #F2E5C9;
}

.navbar-topbar .topbar-font-btn.active {
  background: rgba(255,255,255,0.35);
  color: #fff;
  border-color: rgba(255,255,255,0.5);
}

/* Topbar brand + controls (logged-in header) */
.topbar-brand {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  color: #fff !important;
  text-decoration: none;
  min-width: 0;
}
.topbar-brand:hover { color: #F2E5C9 !important; }
.topbar-brand-sub {
  color: #F2E5C9;
  font-size: 0.55rem;
  letter-spacing: 2px;
  font-weight: 600;
}

.topbar-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #F2E5C9;
  font-size: 0.9rem;
  line-height: 1;
  transition: background 0.15s;
}
.topbar-icon-btn:hover {
  background: rgba(255,255,255,0.25);
  color: #fff;
}

.topbar-user {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #fff;
  font-size: 0.78rem;
  font-weight: 700;
}
.topbar-user-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  font-size: 0.9rem;
}

.hamburger-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(255,255,255,0.15);
  border: 1px solid rgba(255,255,255,0.25);
  color: #fff;
  font-size: 1.1rem;
  line-height: 1;
  transition: background 0.15s;
}
.hamburger-btn:hover {
  background: rgba(255,255,255,0.28);
  color: #fff;
}

@media (max-width: 575.98px) {
  .navbar-topbar { padding: 0.3rem 0; }
  .topbar-font-group { display: none !important; }
}

/* Mobile hamburger drawer */
.mobile-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.mobile-drawer-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}
.mobile-drawer {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 84%;
  max-width: 320px;
  background: var(--bg-card);
  border-right: 1px solid var(--border-color);
  box-shadow: 8px 0 34px rgba(0, 0, 0, 0.25);
  transform: translateX(-100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
}
.mobile-drawer-backdrop.open .mobile-drawer {
  transform: translateX(0);
}
.mobile-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.8rem 1rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--bg);
}
.mobile-drawer-user {
  padding: 0.9rem 1rem;
  background: rgba(184, 134, 11, 0.06);
  border-bottom: 1px solid var(--border-color);
}
.mobile-drawer-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(184, 134, 11, 0.12);
  font-size: 1.1rem;
  flex-shrink: 0;
}
.mobile-drawer-links {
  flex: 1;
  overflow-y: auto;
  padding: 0.6rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
}
.mobile-drawer-links .nav-astro-tab {
  justify-content: flex-start;
  text-align: left;
  width: 100%;
}
.mobile-drawer-footer {
  border-top: 1px solid var(--border-color);
  padding: 0.8rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Hide the old mobile horizontal nav strip in favor of the drawer */

.navbar-astro .navbar-brand {
  color: var(--maroon) !important;
  font-weight: 800;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.navbar-astro .navbar-brand:hover { color: var(--maroon-light) !important; }

.nav-try-btn {
  background: linear-gradient(135deg, var(--maroon), var(--maroon-dark));
  color: #fff !important;
  white-space: nowrap;
}

.nav-try-btn:hover {
  background: linear-gradient(135deg, var(--maroon-light), var(--maroon));
  color: #fff !important;
  box-shadow: 0 4px 15px rgba(113,54,0,0.3);
}

/* Nav dropdown */
.nav-dropdown .nav-astro-tab {
  white-space: nowrap;
}

.nav-dropdown-menu {
  min-width: 240px;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,0.15);
  padding: 0.4rem;
  background: var(--bg-card);
}

.nav-dropdown-menu .dropdown-item {
  border-radius: 7px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  padding: 0.55rem 0.8rem;
}

.nav-dropdown-menu .dropdown-item:hover,
.nav-dropdown-menu .dropdown-item:focus {
  background: rgba(186,192,149,0.1);
  color: var(--maroon);
}

.nav-dropdown-menu .dropdown-divider {
  border-top-color: var(--border-color);
  margin: 0.35rem 0.4rem;
}

/* Mega nav */
.mega-nav {
  flex-wrap: nowrap;
}

/* Logged-out nav: only render on wide screens; small/medium widths use the
   hamburger drawer instead so items never zigzag-wrap. */
@media (max-width: 1199.98px) {
  .navbar-astro {
    display: none !important;
  }
}

.mega-item {
  position: relative;
  z-index: 1000;
}

.mega-item .nav-astro-tab {
  white-space: nowrap;
}

.mega-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 230px;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.18);
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
  animation: megaFade 0.16s ease;
  z-index: 2000;
}

.mega-panel::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 18px;
  width: 14px;
  height: 14px;
  background: var(--bg-card);
  border-left: 1px solid var(--border-color);
  border-top: 1px solid var(--border-color);
  transform: rotate(45deg);
}

@keyframes megaFade {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.mega-link {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
  text-decoration: none;
  padding: 0.5rem 0.8rem;
  border-radius: 8px;
}

.mega-link:hover {
  background: rgba(186,192,149,0.1);
  color: var(--maroon);
}

.mega-link-icon {
  font-size: 1rem;
  width: 20px;
  text-align: center;
}

/* Panchang strip */
.panchang-strip-scroll {
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 2px;
}

.panchang-strip-scroll::-webkit-scrollbar { display: none; }

.panchang-chip {
  flex: 0 0 auto;
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-top: 2px solid var(--gold);
  border-radius: 10px;
  padding: 0.5rem 0.8rem;
  min-width: 140px;
}

/* Carousel */
.banner-carousel-wrap .carousel {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
}

.banner-slide {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
}

.banner-img {
  height: 300px;
  object-fit: cover;
}

.banner-caption {
  right: 0;
  left: 0;
  bottom: 18px;
  padding: 0;
}

.banner-cta {
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}

@media (max-width: 767.98px) {
  .banner-img { height: 210px; }
  .banner-carousel-wrap .carousel-caption { bottom: 8px; }
  .banner-cta { font-size: 0.78rem; padding: 0.4rem 0.9rem; }
}

/* About section */
.about-card {
  border-top: 3px solid var(--gold);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.about-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(113,54,0,0.12);
}

.about-card-product { border-top: 3px solid var(--gold); }

.about-card-company { border-top: 3px solid var(--maroon); }

.about-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  font-size: 1.35rem;
  background: linear-gradient(135deg, rgba(186,192,149,0.15), rgba(113,54,0,0.1));
  border: 1px solid rgba(186,192,149,0.25);
}

.about-point {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.6rem;
  border-radius: 8px;
  background: var(--bg-subtle);
  border: 1px solid var(--border-color);
  height: 100%;
}

.about-point span { font-size: 1.05rem; }

.about-point small {
  color: var(--text-primary);
  font-weight: 600;
  line-height: 1.3;
}

/* Readability */
main.container { max-width: 1200px; }

h1, h2, h3, h4, h5, h6 {
  line-height: 1.35;
}

/* Cards - cream/lime yellow/orange theme */
.card-astro {
  background: linear-gradient(135deg, var(--bg-card) 0%, var(--bg-lime) 100%);
  border: 1.5px solid var(--border-soft);
  border-radius: 14px;
}

.card-astro { box-shadow: var(--shadow-card); }

.panchang-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
.panchang-card:hover {
  transform: translateY(-3px);
  border-color: var(--gold);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.table-astro {
  font-size: 0.78rem;
  color: var(--text-primary);
}
.table-astro thead th {
  background: var(--bg-card);
  color: var(--maroon);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  border-bottom: 2px solid var(--border-color);
  white-space: nowrap;
  padding: 0.5rem 0.6rem;
}
.table-astro tbody td {
  border-color: var(--border-color);
  vertical-align: middle;
  padding: 0.45rem 0.6rem;
}
.table-astro tbody tr:hover {
  background: rgba(184, 134, 11, 0.04);
}

/* Footer */
.footer-astro {
  background: var(--bg);
  border-top: 1px solid var(--border-color);
}

main.container.py-4 {
  flex: 1;
}

.card-astro .card-header {
  background: linear-gradient(90deg, rgba(255,243,176,0.5) 0%, rgba(255,224,130,0.35) 100%);
  border-bottom: 2px solid var(--border-soft);
  color: var(--maroon);
  font-weight: 700;
  letter-spacing: 1px;
  padding: 0.75rem 1rem;
}

.card-astro .card-body { padding: 1.25rem; }
.card-astro .card-body,
.card-astro .table td,
.card-astro .table th { font-size: 0.9rem; }

/* Compact data tables inside result cards (rasi planet status, navamsa, etc.) */
.card-astro .astro-data-table td,
.card-astro .astro-data-table th {
  font-size: 0.76rem;
  padding: 0.38rem 0.5rem;
  vertical-align: middle;
  white-space: nowrap;
}
.card-astro .astro-data-table thead th {
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--maroon);
  border-bottom: 1px solid var(--border-color);
  border-top: none;
}
/* Dosha tables (DoshaCard): long effects/reason/nivarana text wraps and fits
   the card width instead of forcing a horizontal scroll. */
.card-astro .astro-data-table.dosha-table {
  table-layout: auto;
  width: 100%;
}
.card-astro .astro-data-table.dosha-table td,
.card-astro .astro-data-table.dosha-table th {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  vertical-align: top;
}
.card-astro .astro-data-table tbody tr:nth-child(even) {
  background: rgba(184, 134, 11, 0.04);
}
.card-astro .astro-data-table tbody tr:hover {
  background: rgba(184, 134, 11, 0.08);
}

/* Rasi chart accordion — chart always visible, tables reveal on expand */
.rasi-accordion {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 14px;
}
.rasi-accordion .rasi-section + .rasi-section {
  margin-top: 4px;
}
.rasi-section {
  border: 1px solid var(--border-color);
  border-radius: 10px;
  background: var(--bg-card);
  overflow: hidden;
}
.rasi-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 10px 14px;
  background: transparent;
  border: 0;
  cursor: pointer;
  color: var(--text-primary);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.3px;
  transition: background 0.15s;
}
.rasi-section-head:hover { background: rgba(184, 134, 11, 0.06); }
.rasi-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.rasi-section-icon { font-size: 1rem; line-height: 1; }
.rasi-section-meta { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.rasi-section-meta .badge {
  background: rgba(184, 134, 11, 0.12);
  color: var(--gold-dark);
  font-size: 0.62rem;
  font-weight: 700;
}
.rasi-section-chevron {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(184, 134, 11, 0.1);
  color: var(--gold-dark);
  font-weight: 800;
  font-size: 0.95rem;
  line-height: 1;
  transition: transform 0.18s ease;
}
.rasi-section.open .rasi-section-chevron { transform: rotate(45deg); }
.rasi-section-body {
  border-top: 1px solid var(--border-color);
  padding: 12px;
  animation: fadeIn 0.2s ease;
}

/* Panchanga definition tables — label/value grid with zebra rows */
.astro-pan-table {
  border: 1px solid var(--border-color);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 6px;
}
.astro-pan-row {
  display: grid;
  grid-template-columns: 180px 1fr;
  align-items: stretch;
  font-size: 0.78rem;
}
.astro-pan-row:nth-child(even) {
  background: rgba(184, 134, 11, 0.04);
}
.astro-pan-label {
  padding: 0.4rem 0.8rem;
  color: var(--text-muted);
  font-weight: 600;
  border-right: 1px solid var(--border-color);
  display: flex;
  align-items: center;
}
.astro-pan-value {
  padding: 0.4rem 0.8rem;
  color: var(--text-primary);
  font-weight: 700;
  text-align: right;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
}
@media (max-width: 575.98px) {
  .astro-pan-row { grid-template-columns: 140px 1fr; }
}
/* 2-column Panchanga layout — two tables side by side with a gap */
.astro-pan-table-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: start;
}
.astro-pan-table-2col .astro-pan-table { margin-bottom: 0; }
@media (max-width: 767.98px) {
  .astro-pan-table-2col { grid-template-columns: 1fr; gap: 10px; }
}
.astro-pan-section-head {
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--maroon);
  margin: 14px 0 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.astro-pan-section-head::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--gold-light, rgba(186,192,149,0.4)), transparent);
  margin-left: 6px;
}
.astro-pan-section {
  margin-top: 6px;
}
.astro-pan-section .astro-pan-section-head { margin-top: 0; }

/* Vimshottari Dasha timeline — traditional almanac/Panchangam style table */
.vim-timeline table {
  background: #fffdf5;
  border-collapse: collapse;
  width: 100%;
}
.vim-timeline th,
.vim-timeline td {
  border: 1px solid #d8d2c4;
}
.vim-timeline thead th {
  background: #f7f0dd;
}
.vim-timeline .vim-active-row {
  background: #fff3c2;
}
/* Fixed per-Mahadasha tables (tables view) — enclosing borders + section dividers */
.vim-fixed-maha {
  border: 1px solid rgba(217,164,65,0.35);
  border-radius: 8px;
  padding: 0 10px 12px;
}
.vim-maha-band {
  background: rgba(217,164,65,0.08);
  border-bottom: 1px solid rgba(217,164,65,0.35);
  border-radius: 8px 8px 0 0;
  padding: 6px 10px;
  margin: 0 -10px 10px;
}
.vim-antar-block {
  margin-left: 14px;
}
.vim-antar-block + .vim-antar-block {
  border-top: 1px dashed rgba(180,150,60,0.55);
  padding-top: 10px;
}
.vim-antar-band {
  background: rgba(217,164,65,0.05);
  border-bottom: 1px solid rgba(217,164,65,0.25);
  padding: 4px 8px;
  width: 100%;
  border-top: none;
  border-left: none;
  border-right: none;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
  border-radius: 4px;
}
@media print {
  .vim-fixed-maha {
    border: 1px solid #000 !important;
  }
  .vim-maha-band {
    border-bottom: 1px solid #000 !important;
    background: #f3ecd8 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .vim-antar-block + .vim-antar-block {
    border-top: 1px dashed #666 !important;
  }
}
@media print {
  .astro-page .vim-timeline th,
  .astro-page .vim-timeline td {
    border: 1px solid #000 !important;
    background: #fff !important;
  }
  .astro-page .vim-timeline .vim-active-row {
    background: #f3ecd8 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

/* Accent bar - maroon/gold/lime */
.accent-bar {
  height: 4px;
  background: linear-gradient(90deg, var(--maroon) 0%, var(--gold) 30%, var(--lime) 60%, var(--orange) 100%);
}

/* AI chat markdown rendering */
.chat-md {
  color: var(--text-primary);
  font-size: 0.82rem;
  line-height: 1.55;
}
.chat-md h1,
.chat-md h2,
.chat-md h3,
.chat-md h4 {
  color: var(--maroon);
  font-weight: 700;
  line-height: 1.3;
  margin: 10px 0 4px;
}
.chat-md h1 { font-size: 0.95rem; }
.chat-md h2 { font-size: 0.9rem; }
.chat-md h3 { font-size: 0.85rem; }
.chat-md h4 { font-size: 0.82rem; }
.chat-md p { margin: 6px 0; }
.chat-md ul,
.chat-md ol { margin: 4px 0 6px; padding-left: 18px; }
.chat-md li { margin: 2px 0; }
.chat-md table {
  border-collapse: collapse;
  width: 100%;
  margin: 8px 0;
  font-size: 0.78rem;
}
.chat-md th,
.chat-md td {
  border: 1px solid var(--border-color);
  padding: 3px 6px;
  text-align: left;
}
.chat-md th { background: rgba(217,164,65,0.12); font-weight: 700; }
.chat-md blockquote {
  border-left: 3px solid var(--gold);
  margin: 6px 0;
  padding: 2px 10px;
  color: var(--text-muted);
}
.chat-md code {
  background: rgba(217,164,65,0.12);
  border-radius: 3px;
  padding: 1px 4px;
  font-size: 0.78rem;
}
.chat-md hr {
  border: none;
  border-top: 1px dashed var(--border-color);
  margin: 8px 0;
}

/* Buttons */
.btn-gold {
  background: linear-gradient(135deg, var(--maroon), var(--maroon-dark));
  border: none;
  color: #fff;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 0.6rem 1.5rem;
  border-radius: 6px;
  transition: all 0.2s;
}

.btn-gold:hover {
  background: linear-gradient(135deg, var(--maroon-light), var(--maroon));
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 15px rgba(113,54,0,0.25);
}

.btn-outline-gold {
  background: transparent;
  border: 1px solid var(--border-color);
  color: var(--text-muted);
  font-weight: 600;
  padding: 0.4rem 1rem;
  border-radius: 6px;
  transition: all 0.2s;
}

.btn-outline-gold:hover {
  border-color: var(--gold);
  color: var(--gold-dark);
  background: rgba(186,192,149,0.08);
}

.btn-icon {
  background: transparent;
  border: none;
  color: var(--text-muted);
  padding: 0.4rem;
  border-radius: 6px;
  transition: all 0.2s;
  line-height: 1;
}

.btn-icon:hover { color: var(--maroon); background: rgba(113,54,0,0.04); }

/* Saved horoscopes table */
.saved-table th {
  font-size: 0.66rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 700;
  white-space: nowrap;
  border-bottom: 2px solid rgba(186,192,149,0.2);
  padding: 0.6rem 0.75rem;
  position: sticky;
  top: 0;
  background: var(--bg-card);
  z-index: 2;
}
.saved-table td {
  border-bottom: 1px solid rgba(205,197,184,0.18);
  padding: 0.5rem 0.75rem;
  vertical-align: middle;
}
.saved-table tbody tr {
  transition: background 0.15s ease;
}
.saved-table tbody tr:hover td {
  background: rgba(186,192,149,0.05);
}
.saved-table .btn-icon {
  font-size: 0.82rem;
  opacity: 0.6;
}
.saved-table .btn-icon:hover {
  opacity: 1;
}
.saved-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, rgba(186,192,149,0.18), rgba(113,54,0,0.12));
  border: 1px solid rgba(186,192,149,0.35);
  color: var(--maroon);
  font-size: 0.7rem;
  font-weight: 800;
}
.moon-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(186,192,149,0.08);
  border: 1px solid rgba(186,192,149,0.18);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}

/* Form controls */
.form-control-astro {
  background: var(--bg-lime);
  border: 1.5px solid var(--border-soft);
  color: var(--text-primary);
  border-radius: 10px;
  padding: 0.6rem 0.8rem;
  transition: all 0.2s;
}

.form-control-astro:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(186,192,149,0.12);
  color: var(--text-primary);
}

.form-control-astro::placeholder { color: var(--text-muted); opacity: 0.6; }

.form-control-astro.is-invalid {
  border-color: #dc3545;
}

.form-label-astro {
  color: var(--text-muted);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 0.3rem;
}

.form-select-astro {
  background: var(--bg);
  border: 1px solid var(--border-color);
  color: var(--text-primary);
  border-radius: 6px;
  padding: 0.3rem 1.5rem 0.3rem 0.5rem;
  font-size: 0.75rem;
}

.form-select-astro:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(186,192,149,0.12);
}

/* Badges */
.badge-astro {
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-weight: 600;
  font-size: 0.65rem;
}

.badge-gold {
  background: rgba(186,192,149,0.1);
  color: var(--gold-dark);
}

.badge-moon {
  background: rgba(186,192,149,0.12);
  color: var(--gold-dark);
}

.badge-sun {
  background: rgba(113,54,0,0.06);
  color: var(--maroon);
}

.badge-asc {
  background: rgba(113,54,0,0.08);
  color: var(--maroon);
}

.badge-nak {
  background: rgba(186,192,149,0.06);
  color: #8a7a40;
}

/* Divider */
.divider-gold {
  height: 1px;
  background: var(--border-color);
  margin: 0.75rem 0;
}

/* Info bar */
.info-bar {
  background: linear-gradient(135deg, var(--bg-lime) 0%, var(--orange-soft) 100%);
  border: 1.5px solid var(--border-soft);
  border-radius: 12px;
  padding: 0.6rem 1rem;
}

/* Nav tabs — vertical sidebar (desktop) */
.nav-astro-tab {
  background: transparent;
  color: var(--text-muted);
  font-weight: 500;
  font-size: 0.85rem;
  transition: all 0.15s;
}
.nav-astro-tab:hover {
  background: rgba(186,192,149,0.06);
  color: var(--text-primary);
}
/* Nav tabs — vertical sidebar active style */
.nav-astro-tab.active {
  background: #EFE7CE !important;
  color: #426B5A !important;
  font-weight: 900 !important;
  border-left: 4px solid var(--maroon) !important;
  box-shadow: 0 2px 10px rgba(66,107,90,0.12) !important;
}

/* Nav tabs — horizontal scroll (mobile) */
.nav-scroll {
  display: flex;
  gap: 0.25rem;
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.25rem;
  scrollbar-width: none;
}
.nav-scroll::-webkit-scrollbar { display: none; }
.nav-scroll .nav-astro-tab {
  flex-shrink: 0;
  font-size: 0.78rem;
  padding: 0.4rem 0.65rem;
}
.nav-scroll .nav-astro-tab.active {
  box-shadow: none;
  border-bottom: 2px solid var(--gold);
  background: var(--ds-accent) !important;
  color: var(--ds-cream) !important;
}

@media (max-width: 767.98px) {
  .sidebar-nav-wrap { display: none !important; }
}
@media (min-width: 768px) {
  .mobile-nav-wrap { display: none !important; }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .sidebar-nav-wrap {
    min-width: 110px !important;
  }
  .sidebar-nav-wrap .nav-astro-tab {
    font-size: 0.75rem;
    padding: 0.3rem 0.5rem;
  }
  .sidebar-nav-wrap .nav-astro-tab span:last-child {
    font-size: 0.7rem;
  }
}

/* Logged-in app shell — horizontal nav mode */
.app-shell-horizontal {
  display: block;
  min-height: 70vh;
}
.app-main-horizontal {
  flex: 1;
  min-width: 0;
}
.app-main-horizontal main.container-fluid {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}
/* legacy vertical shell kept for fallback */
.app-shell {
  display: flex;
  align-items: stretch;
  min-height: 70vh;
}
.app-shell .sidebar-nav-wrap {
  width: 230px;
  flex-shrink: 0;
  position: sticky;
  top: 0;
  align-self: flex-start;
  height: 100vh;
  overflow-y: auto;
  background: var(--bg-card);
  border-right: 1px solid var(--border-color);
  padding: 1rem 0.7rem 1rem 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sidebar-nav-wrap .nav-astro-tab {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  text-align: left;
  padding: 0.55rem 0.7rem;
  font-size: 0.82rem;
  border-radius: 8px;
}
.sidebar-link-icon {
  width: 24px;
  text-align: center;
  font-size: 1rem;
  flex-shrink: 0;
}
.sidebar-group {
  display: flex;
  flex-direction: column;
}
.sidebar-sub {
  display: flex;
  flex-direction: column;
  gap: 1px;
  margin: 2px 0 4px;
  margin-left: 15px;
  padding-left: 10px;
  border-left: 2px solid var(--border-color);
}
.sidebar-sub-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-muted);
  text-decoration: none;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
}
.sidebar-sub-link:hover {
  background: rgba(186,192,149,0.08);
  color: var(--text-primary);
}
.sidebar-logout {
  border-top: 1px solid var(--border-color);
  padding-top: 0.7rem;
}

/* Collapsed icon-only rail */
.sidebar-nav-wrap.sidebar-collapsed {
  width: 60px;
  padding-right: 0.4rem;
  padding-left: 0.4rem;
  align-items: center;
}
.sidebar-collapsed .nav-astro-tab {
  justify-content: center;
  padding: 0.55rem 0;
  gap: 0;
}
.sidebar-collapsed .sidebar-logout {
  width: 100%;
  display: flex;
  justify-content: center;
}
.sidebar-collapsed .sidebar-logout .nav-astro-tab {
  width: auto;
}
.app-shell .app-main {
  flex: 1;
  min-width: 0;
}
.app-shell .app-main main.container-fluid {
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

/* Section labels */
.section-label {
  color: var(--text-muted);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* Footer */
.footer-astro {
  background: var(--bg);
  border-top: 1px solid var(--border-color);
}

main.container.py-4 {
  flex: 1;
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #ccc; }

/* Chart grid */
.chart-grid {
  display: inline-grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--gold);
  border-radius: 6px;
  overflow: hidden;
}

/* Compact chart scaling on phones so kundalis stay fully readable on-screen. */
@media (max-width: 575.98px) {
  :root {
    --chart-sign-symbol: 1.1rem;
    --chart-sign-text: 0.7rem;
    --chart-sign-small: 0.66rem;
    --chart-planet-symbol: 1rem;
    --chart-planet-text: 0.66rem;
    --chart-deg: 0.62rem;
    --chart-nakshatra: 0.56rem;
    --chart-upagraha: 0.52rem;
    --chart-house: 0.8rem;
    --chart-lagna: 0.68rem;
    --chart-min-w4: 280px;
    --chart-min-w3: 250px;
    --chart-cell-h4: 104px;
    --chart-cell-h3: 92px;
  }
  .chart-cell {
    padding: 0.3rem;
  }
}

/* Navamsa (D9) — unified size with Rasi/D-charts/Bhava for consistent feel */
@media (min-width: 576px) {
  .navamsa-chart-big {
    --chart-sign-symbol: 1.7rem;
    --chart-sign-text: 0.9rem;
    --chart-sign-small: 0.8rem;
    --chart-planet-symbol: 1.25rem;
    --chart-planet-text: 0.78rem;
    --chart-deg: 0.7rem;
    --chart-nakshatra: 0.66rem;
    --chart-upagraha: 0.58rem;
    --chart-house: 0.9rem;
    --chart-lagna: 0.8rem;
    --chart-min-w4: 460px;
    --chart-min-w3: 400px;
    --chart-cell-h4: 128px;
    --chart-cell-h3: 110px;
  }
}

/* Table responsiveness on touch — make horizontal scrollbars visible so wide
   tables never force the whole page to pan horizontally. */
.table-responsive {
  -webkit-overflow-scrolling: touch;
}
.table-responsive::-webkit-scrollbar {
  height: 6px;
}
.table-responsive::-webkit-scrollbar-track {
  background: transparent;
}
.table-responsive::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 3px;
}
.table-responsive::-webkit-scrollbar-thumb:hover {
  background: #ccc;
}

/* Bhava (BhavaChakra) chart scroll container — same touch-scroll behaviour as
   table-responsive so the chart scrolls horizontally instead of clipping on phones. */
.bhava-chart-scroll {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}
.bhava-chart-scroll::-webkit-scrollbar {
  height: 6px;
}
.bhava-chart-scroll::-webkit-scrollbar-track {
  background: transparent;
}
.bhava-chart-scroll::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 3px;
}

/* Long bhava sandhi/madhya/antya line wraps gracefully on small cells /
   phones instead of blowing out the grid width. */
.bhava-chart-lines {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
}

.chart-cell {
  background: var(--bg);
  padding: 0.8rem;
  min-height: 112px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

.chart-cell-lagna {
  background: rgba(113,54,0,0.06);
  border: 2px solid var(--maroon);
}

.chart-cell-moon {
  background: rgba(186,192,149,0.06);
  border: 2px solid var(--gold);
}

.chart-cell .house-num {
  position: absolute;
  top: 3px;
  left: 6px;
  font-size: 0.85rem;
  font-weight: 700;
  color: rgba(113,54,0,0.55);
}

.chart-cell .lagna-mark {
  position: absolute;
  bottom: 2px;
  right: 5px;
  font-size: 0.6rem;
  color: var(--maroon);
  font-weight: 500;
}

.chart-cell .moon-mark {
  position: absolute;
  bottom: 2px;
  left: 5px;
  font-size: 0.65rem;
  color: var(--gold-dark);
  font-weight: 700;
}

/* Table inside card */
.card-astro .table {
  color: var(--text-primary);
  margin-bottom: 0;
}

.card-astro .table > :not(caption) > * > * {
  border-bottom-color: var(--border-color);
}

/* Animations */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.animate-in {
  animation: fadeIn 0.3s ease-out;
}

/* Skeleton loading */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.skeleton-line {
  background: linear-gradient(90deg, var(--bg-card) 25%, var(--border-color) 50%, var(--bg-card) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
  opacity: 0.6;
}

.print-watermark { display: none !important; }

/* Print */
@media print {
  @page {
    size: A4 portrait;
    margin: 12mm 8mm 12mm 8mm;
  }
  body { background: #fff !important; }
  body::before { display: none !important; }
  .print-watermark {
    display: none !important;
  }
  .navbar-astro, .navbar-topbar, .accent-bar, footer, .btn-icon, .no-print { display: none !important; }
  .mobile-bottom-nav, .mobile-menu, .chat-widget, .chat-fab, .astro-fab { display: none !important; }
  .print-only { display: block !important; }
.match-cover { display: flex !important; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; text-align: center; page-break-after: always; break-after: page; }
  .match-print-doc .match-cover, .match-print-doc .match-print-page { border: 1.5px solid #6B403C !important; border-radius: 10px !important; padding: 14px 16px !important; }
  .match-print-doc .match-cover { break-after: page; page-break-after: always; }
  .match-print-doc .match-print-page { break-before: auto; page-break-before: auto; }
  .match-print-doc .match-cover + .match-print-page { break-before: page; page-break-before: always; }
  .match-print-doc .match-print-page + .match-print-page { break-before: page; page-break-before: always; }
  .match-print-doc table { font-size: 0.78rem !important; table-layout: fixed !important; width: 100% !important; border-collapse: collapse !important; }
  .match-print-doc th, .match-print-doc td { padding: 5px 7px !important; border: 1px solid #C9C49A !important; overflow-wrap: anywhere !important; word-break: break-word !important; white-space: normal !important; }
  .match-print-doc th { background: #F3EFE2 !important; }
  .match-print-doc ul { font-size: 0.82rem; line-height: 1.7; }
  .match-print-doc p { font-size: 0.8rem; line-height: 1.65; }
  .match-print-doc h5 { font-size: 1rem; font-weight: 800; color: var(--maroon); margin-bottom: 10px; }
  .match-print-scorebox { display: flex; align-items: baseline; gap: 12px; border: 1.5px solid #6B403C; border-radius: 10px; padding: 6px 14px; margin: 6px 0 10px; background: #fff; }
  .match-print-scorenum { font-size: 1.1rem; font-weight: 800; }
  .match-print-scorepct { font-size: 0.78rem; font-weight: 700; }
  .match-print-pts { font-weight: 800; white-space: nowrap; }
  .match-print-doc .match-gunas-page table { font-size: 0.64rem !important; }
  .match-print-doc .match-gunas-page th, .match-print-doc .match-gunas-page td { padding: 3px 4px !important; }
  .match-print-doc .match-gunas-page p { font-size: 0.7rem !important; line-height: 1.45 !important; }
  .match-print-doc .match-gunas-page .match-print-scorebox { padding: 4px 12px !important; margin: 2px 0 6px !important; }
  .match-print-doc .match-gunas-page h5 { margin-bottom: 6px !important; }
  .match-print-doc .match-print-page { break-inside: auto; page-break-inside: auto; }
  .match-print-doc table, .match-print-doc tr { break-inside: auto; page-break-inside: auto; }
  .match-report .card-astro { break-inside: auto; page-break-inside: auto; }
  .match-report .mangalya-print, .match-report .regional-print { break-before: page; page-break-before: always; }
  .match-report .regional-factor-pk { break-inside: avoid; page-break-inside: avoid; }
  .match-report .match-print-page { break-before: page; page-break-before: always; }
  .match-report .match-print-page h5 { font-size: 0.85rem; font-weight: 800; color: var(--maroon); margin-bottom: 8px; }
  .match-report .match-print-navamsa { break-inside: avoid; page-break-inside: avoid; }
  .match-report .match-print-navamsa > div:last-child { max-width: 100%; overflow: visible; }
  .match-report .match-print-navamsa > div:last-child > div { min-width: 0 !important; width: 100% !important; max-width: 170mm !important; margin: 0 auto; zoom: 0.9; }
  .card-astro {
    border: 1px solid #ccc !important;
    background: #fff !important;
    break-inside: avoid;
    page-break-inside: avoid;
    margin-bottom: 5mm !important;
  }
  .info-bar { background: #f5f5f5 !important; border-color: #ddd !important; }
  .section-label { color: #999 !important; }

  /* PDF Report print overrides */
  .pdf-report, .pdf-report * { font-family: 'Noto Sans Telugu', 'Noto Sans', system-ui, sans-serif !important; }
  .pdf-report { max-width: 194mm !important; margin: 0 auto !important; }
  .pdf-page {
    width: 194mm !important;
    max-width: 194mm !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  .pdf-section {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    overflow: hidden !important;
    max-width: 100% !important;
  }
  .pdf-section.flow-section {
    break-inside: auto !important;
    page-break-inside: auto !important;
    overflow: visible !important;
  }
  .pdf-section.flow-section .pdf-table {
    overflow: visible !important;
  }
  .pdf-section.flow-section .pdf-table th,
  .pdf-section.flow-section .pdf-table td {
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
  }
  .pdf-table {
    width: 100% !important;
    table-layout: fixed !important;
    overflow: visible !important;
    word-wrap: break-word !important;
    overflow-wrap: anywhere !important;
    font-size: 0.6rem !important;
  }
  .pdf-table th, .pdf-table td {
    padding: 2px 3px !important;
    font-size: 0.6rem !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: unset !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
  .pdf-bar-chart { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }
  .pdf-bar-row { width: 100% !important; }
  .pdf-dasa-table { width: 100% !important; table-layout: fixed !important; font-size: 0.58rem !important; }
  .pdf-dasa-table th, .pdf-dasa-table td { padding: 1px 2px !important; font-size: 0.58rem !important; }
  .pdf-grid { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }
  .chart-container { width: 100% !important; max-width: 100% !important; overflow: hidden !important; }
  .pdf-rasi-chart, .pdf-navamsa-chart { max-width: 100% !important; }

  /* Override chart dimensions for A4 print */
  :root {
    --chart-min-w4: 280px !important;
    --chart-min-w3: 240px !important;
    --chart-cell-h4: 90px !important;
    --chart-cell-h3: 80px !important;
  }
  .astro-chart { transform: scale(0.75); transform-origin: top left; }
  .bhava-chakra { transform: scale(0.7); transform-origin: top left; }
  .varga-chart { transform: scale(0.7); transform-origin: top left; }
}


/* -------------------------------------------------------------------------
   DattaSri dashboard v2
   ------------------------------------------------------------------------- */
.ds-dashboard {
  --ds-ink: #38240D;
  --ds-muted: #806B58;
  --ds-border: rgba(192, 88, 0, .18);
  --ds-surface: rgba(255,255,255,.85);
  --ds-cream: #FFFDF5;
  --ds-gold: #D6A84F;
  --ds-purple: #713600;
  max-width: 1440px;
  margin: 0 auto;
  padding: 8px 10px 42px;
  color: var(--ds-ink);
}

.ds-dashboard-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin: 4px 0 22px;
}

.ds-dashboard-header h1 {
  margin: 4px 0 3px;
  font-size: clamp(1.55rem, 2.5vw, 2.2rem);
  line-height: 1.15;
  letter-spacing: -.035em;
  color: var(--ds-ink);
}

.ds-dashboard-header p {
  margin: 0;
  color: var(--ds-muted);
  font-size: .84rem;
}

.ds-eyebrow {
  color: var(--ds-gold);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .16em;
}

.ds-header-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ds-premium-pill {
  border: 1px solid rgba(197,141,45,.25);
  background: rgba(197,141,45,.09);
  color: #956514;
  border-radius: 999px;
  padding: 7px 11px;
  font-size: .68rem;
  font-weight: 800;
}

.ds-profile-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: var(--ds-ink);
  background: rgba(255,255,255,.72);
  border: 1px solid var(--ds-border);
  border-radius: 999px;
  padding: 5px 10px 5px 5px;
  box-shadow: 0 6px 22px rgba(31,20,56,.05);
}

.ds-profile-chip img, .ds-profile-chip > span {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: #eadfc9;
  color: var(--ds-purple);
  font-size: .8rem;
}

.ds-profile-chip b { font-size: .74rem; }

.ds-dashboard-grid {
  display: grid;
  gap: 14px;
}
@media (max-width: 900px) {
  .ds-dashboard-grid { grid-template-columns: 1fr !important; }
}

.ds-dashboard-top {
  grid-template-columns: minmax(0, 1.8fr) minmax(210px, .85fr) minmax(230px, .85fr);
}

.ds-guidance-card,
.ds-surface-card,
.ds-ai-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--ds-border);
  border-radius: 18px;
  box-shadow: 0 12px 34px rgba(38,27,65,.055);
}

.ds-guidance-card {
  min-height: 248px;
  padding: 24px;
  color: #fff;
  background:
    radial-gradient(circle at 78% 38%, rgba(255,255,255,.12), transparent 17%),
    radial-gradient(circle at 84% 20%, rgba(197,141,45,.18), transparent 28%),
    linear-gradient(135deg, #100d2a 0%, #25124c 60%, #32205d 100%);
}

.ds-guidance-card .ds-card-kicker { color: #e7bf69; }
.ds-guidance-card h2 {
  position: relative;
  z-index: 2;
  max-width: 66%;
  margin: 14px 0 7px;
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  letter-spacing: -.025em;
}
.ds-guidance-card p {
  position: relative;
  z-index: 2;
  max-width: 67%;
  margin: 12px 0 18px;
  color: rgba(255,255,255,.72);
  font-size: .77rem;
  line-height: 1.65;
}
.ds-guidance-meta {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  color: rgba(255,255,255,.84);
  font-size: .68rem;
}
.ds-guidance-meta span {
  border: 1px solid rgba(255,255,255,.13);
  background: rgba(255,255,255,.07);
  border-radius: 999px;
  padding: 5px 8px;
}
.ds-celestial-orb {
  position: absolute;
  right: 9%;
  top: 30%;
  width: 105px;
  height: 105px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #f6dba0;
  font-size: 4rem;
  background: radial-gradient(circle at 35% 30%, #fff7d7 0 8%, #e9c36d 10% 38%, #9d6d2c 72%, transparent 73%);
  filter: drop-shadow(0 0 24px rgba(231,191,105,.28));
  opacity: .95;
}
.ds-planet-orb {
  position: absolute;
  right: -28px;
  bottom: -32px;
  width: 125px;
  height: 125px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #C05800, #713600);
  color: rgba(255,255,255,.7);
  font-size: 3.3rem;
  box-shadow: inset -18px -14px 25px rgba(0,0,0,.18);
}

.ds-surface-card {
  min-height: 248px;
  padding: 20px;
  background: var(--ds-surface);
  backdrop-filter: blur(14px);
}
.ds-card-kicker {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .13em;
  color: #9a6c24;
}
.ds-surface-card h2 {
  margin: 11px 0 7px;
  font-size: 1.05rem;
  letter-spacing: -.02em;
}
.ds-surface-card p {
  color: var(--ds-muted);
  font-size: .74rem;
  line-height: 1.65;
  max-width: 270px;
}
.ds-inline-link, .ds-text-button {
  position: relative;
  z-index: 2;
  color: #93621e;
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
}
.ds-inline-link:hover, .ds-text-button:hover { text-decoration: underline; }

.ds-data-list {
  margin: 14px 0;
  border-top: 1px solid var(--ds-border);
}
.ds-data-list > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--ds-border);
  font-size: .68rem;
}
.ds-data-list span { color: var(--ds-muted); }
.ds-data-list b { text-align: right; font-size: .68rem; }

.ds-button {
  position: relative;
  z-index: 3;
  border: 0;
  border-radius: 10px;
  padding: 9px 13px;
  font-size: .72rem;
  font-weight: 800;
  cursor: pointer;
}
.ds-button-primary {
  background: var(--ds-purple);
  color: #fff;
}
.ds-button-light {
  background: #f3d58e;
  color: #241531;
}

.ds-section { margin-top: 25px; }
.ds-section-heading h2 {
  margin: 4px 0 12px;
  font-size: 1.15rem;
  letter-spacing: -.025em;
}
.ds-action-grid {
  display: grid;
  grid-template-columns: repeat(8, minmax(90px,1fr));
  gap: 9px;
}
.ds-action-card {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 10px;
  color: var(--ds-ink);
  text-align: center;
  text-decoration: none;
  background: rgba(255,255,255,.72);
  border: 1px solid var(--ds-border);
  border-radius: 14px;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ds-action-card:hover {
  color: var(--ds-ink);
  transform: translateY(-2px);
  border-color: rgba(197,141,45,.38);
  box-shadow: 0 12px 26px rgba(38,27,65,.08);
}
.ds-action-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #f7f0e2;
  color: #a06e25;
  font-size: 1.35rem;
}
.ds-action-card strong { font-size: .72rem; }
.ds-action-card small {
  color: var(--ds-muted);
  font-size: .59rem;
  line-height: 1.3;
}

.ds-lower-grid {
  grid-template-columns: 1.25fr 1fr;
  margin-top: 14px;
}
.ds-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.ds-card-heading h2 { margin-bottom: 0; }
.ds-chart-summary {
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 18px;
  align-items: center;
  margin-top: 18px;
}
.ds-mini-chart {
  position: relative;
  width: 160px;
  height: 160px;
  border: 1px solid rgba(145,99,33,.38);
  background:
    linear-gradient(45deg, transparent 49.4%, rgba(145,99,33,.38) 50%, transparent 50.6%),
    linear-gradient(-45deg, transparent 49.4%, rgba(145,99,33,.38) 50%, transparent 50.6%),
    #fcf8ef;
  clip-path: polygon(50% 0,100% 50%,50% 100%,0 50%);
}
.ds-mini-chart i {
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  border-left: 1px solid rgba(145,99,33,.38);
  transform: rotate(90deg);
}
.ds-mini-chart span {
  position: absolute;
  font-size: .55rem;
  color: #75531f;
}
.ds-mini-chart span:nth-child(1){left:48%;top:12%}.ds-mini-chart span:nth-child(2){right:15%;top:47%}
.ds-mini-chart span:nth-child(3){left:48%;bottom:12%}.ds-mini-chart span:nth-child(4){left:15%;top:47%}
.ds-mini-chart span:nth-child(5){left:31%;top:29%}.ds-mini-chart span:nth-child(6){right:31%;bottom:29%}

.ds-chart-facts { display: grid; gap: 9px; }
.ds-chart-facts div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px dashed var(--ds-border);
  padding-bottom: 7px;
}
.ds-chart-facts span { color: var(--ds-muted); font-size: .66rem; }
.ds-chart-facts b { font-size: .68rem; text-align: right; }

/* Saved-horoscope today's prediction card */
.ds-kundali-carousel { margin-top: 14px; }
.ds-kundali-carousel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}
.ds-kundali-carousel-head b { font-size: .8rem; }
.ds-kundali-carousel-head small { color: var(--ds-muted); display: block; font-size: .6rem; }
.ds-carousel-controls { display: flex; align-items: center; gap: 8px; }
.ds-carousel-controls button {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--ds-border);
  background: #faf6ed;
  color: #75531f;
  cursor: pointer;
  font-size: .85rem;
  line-height: 1;
}
.ds-carousel-controls button:hover { background: rgba(197,141,45,.14); }
.ds-carousel-controls span { font-size: .6rem; color: var(--ds-muted); }

.ds-today-prediction {
  border-top: 1px dashed var(--ds-border);
  padding-top: 12px;
  margin-top: 12px;
}
.ds-tp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.ds-tp-head strong { font-size: .78rem; color: var(--ds-ink); }
.ds-tp-head span {
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #956514;
  background: rgba(197,141,45,.12);
  padding: 3px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.ds-tp-moon {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}
.ds-tp-moon span { color: var(--ds-muted); font-size: .62rem; text-transform: uppercase; letter-spacing: .05em; }
.ds-tp-moon b { font-size: .82rem; color: var(--ds-gold); }
.ds-tp-focus {
  margin: 0 0 10px;
  color: var(--ds-muted);
  font-size: .7rem;
  line-height: 1.55;
}
.ds-tp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.ds-tp-cell {
  background: #faf6ed;
  border: 1px solid var(--ds-border);
  border-radius: 10px;
  padding: 8px 10px;
  min-width: 0;
}
.ds-tp-cell span {
  display: block;
  color: var(--ds-muted);
  font-size: .56rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  margin-bottom: 3px;
}
.ds-tp-cell b { font-size: .72rem; display: block; }
.ds-tp-cell small {
  display: block;
  color: var(--ds-muted);
  font-size: .6rem;
  line-height: 1.4;
  margin-top: 3px;
}
.ds-tp-link {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: .68rem;
  font-weight: 800;
  color: #956514;
  text-decoration: none;
  border: 1px solid rgba(197,141,45,.3);
  border-radius: 999px;
  padding: 8px 10px;
  background: rgba(197,141,45,.07);
}
.ds-tp-link:hover { background: rgba(197,141,45,.15); color: #956514; }
.ds-kundali-basic-details {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--ds-border);
  font-size: .62rem;
  color: var(--ds-muted);
}

.ds-family-stats {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  margin: 18px 0;
  border-block: 1px solid var(--ds-border);
}
.ds-family-stats div {
  padding: 12px 8px;
  text-align: center;
  border-right: 1px solid var(--ds-border);
}
.ds-family-stats div:last-child { border-right: 0; }
.ds-family-stats b { display: block; font-size: 1.15rem; }
.ds-family-stats span { color: var(--ds-muted); font-size: .61rem; }
.ds-recent-family {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.ds-recent-family > div {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 5px 8px 5px 5px;
  background: #faf6ed;
  border: 1px solid var(--ds-border);
  border-radius: 999px;
  font-size: .64rem;
}
.ds-person-avatar {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e9ddc7;
  color: #7d5520;
}

.ds-empty-state {
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 6px;
  text-align: center;
}
.ds-empty-state > span { font-size: 1.8rem; color: var(--ds-gold); }
.ds-empty-state b { font-size: .78rem; }
.ds-empty-state small { color: var(--ds-muted); font-size: .65rem; margin-bottom: 5px; }

.ds-ai-card {
  display: grid;
  grid-template-columns: .95fr 1.2fr;
  gap: 18px;
  margin-top: 14px;
  padding: 22px;
  background: linear-gradient(135deg, #fbf4e5, #fffdf8);
}
.ds-ai-card h2 { margin: 8px 0 6px; font-size: 1.2rem; letter-spacing: -.025em; }
.ds-ai-card p { margin: 0; color: var(--ds-muted); font-size: .73rem; line-height: 1.55; max-width: 450px; }
.ds-ai-input {
  align-self: center;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 9px 0 15px;
  color: var(--ds-muted);
  text-decoration: none;
  background: #fff;
  border: 1px solid var(--ds-border);
  border-radius: 12px;
  box-shadow: 0 8px 22px rgba(40,27,64,.04);
  font-size: .72rem;
}
.ds-ai-input b {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--ds-purple);
  color: #fff;
}
.ds-suggestions {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ds-suggestions button {
  border: 1px solid var(--ds-border);
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  color: #5d4b37;
  padding: 6px 9px;
  font-size: .61rem;
  cursor: pointer;
}
.ds-suggestions button:hover { border-color: rgba(197,141,45,.45); }

.ds-dashboard-loading { max-width: 1100px; }
.ds-skeleton {
  background: linear-gradient(90deg, rgba(0,0,0,.04), rgba(0,0,0,.08), rgba(0,0,0,.04));
  border-radius: 12px;
  animation: dsPulse 1.5s ease-in-out infinite;
}
.ds-skeleton-title { width: 300px; height: 35px; margin: 10px 0 20px; }
.ds-skeleton-hero { height: 245px; }
.ds-skeleton-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 12px; }
.ds-skeleton-card { height: 110px; }
@keyframes dsPulse { 50% { opacity: .45; } }

.ds-error {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 500px;
  margin: 70px auto;
  padding: 22px;
  border: 1px solid rgba(180,40,40,.18);
  border-radius: 16px;
  background: rgba(255,245,245,.85);
}
.ds-error span { color: var(--ds-muted); font-size: .75rem; }

@media (max-width: 1100px) {
  .ds-dashboard-top { grid-template-columns: 1.4fr 1fr; }
  .ds-dashboard-top > :last-child { grid-column: 1 / -1; }
  .ds-action-grid { grid-template-columns: repeat(4,1fr); }
}
@media (max-width: 760px) {
  .ds-dashboard { padding: 4px 2px 30px; }
  .ds-dashboard-header { align-items: flex-start; flex-direction: column; }
  .ds-header-actions { width: 100%; justify-content: space-between; }
  .ds-dashboard-top, .ds-lower-grid, .ds-ai-card { grid-template-columns: 1fr; }
  .ds-guidance-card { min-height: 265px; }
  .ds-guidance-card h2, .ds-guidance-card p { max-width: 72%; }
  .ds-action-grid { grid-template-columns: repeat(2,1fr); }
  .ds-chart-summary { grid-template-columns: 1fr; justify-items: center; }
  .ds-chart-facts { width: 100%; }
  .ds-suggestions { grid-column: auto; }
  .ds-ai-input { margin-top: 4px; }
}
@media (max-width: 430px) {
  .ds-action-card { min-height: 100px; }
  .ds-profile-chip b { display: none; }
  .ds-celestial-orb { right: 2%; width: 82px; height: 82px; font-size: 3rem; }
}

/* -------------------------------------------------------------------------
   Login page v2 — improved UX
   ------------------------------------------------------------------------- */
.login-page { max-width: 400px; margin: 0 auto; }

.login-card {
  position: relative;
  overflow: hidden;
  border-radius: 16px !important;
  box-shadow: 0 18px 44px rgba(60, 30, 20, 0.12) !important;
  border-color: var(--border-color) !important;
}

.login-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px dashed var(--border-color);
}
.login-logo {
  width: auto;
  height: 64px;
  max-width: 88%;
  object-fit: contain;
}
.login-brand-name {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 1px;
  color: var(--maroon);
  line-height: 1.2;
}
.login-brand-tag {
  margin: 3px 0 0;
  font-size: 0.68rem;
  color: var(--text-muted);
}

.login-heading-wrap { margin-bottom: 4px; }
.login-heading {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--text-primary);
}
.login-sub {
  margin: 3px 0 16px;
  font-size: 0.8rem;
  color: var(--text-muted);
}

.login-segmented {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  background: var(--bg);
  border: 1px solid var(--border-color);
  border-radius: 999px;
  padding: 4px;
  margin-bottom: 18px;
}
.login-segmented-indicator {
  position: absolute;
  top: 4px;
  left: 4px;
  width: calc(50% - 4px);
  height: calc(100% - 8px);
  border-radius: 999px;
  background: linear-gradient(135deg, var(--maroon), var(--maroon-dark));
  box-shadow: 0 4px 12px rgba(139, 26, 26, 0.25);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 0;
}
.login-segmented button {
  position: relative;
  z-index: 1;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 9px 12px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-muted);
  border-radius: 999px;
  transition: color 0.2s;
}
.login-segmented button.active { color: #fff; }

.login-google {
  margin-top: 10px;
  padding: 0.6rem 1rem;
  border-radius: 10px;
  font-weight: 600;
}

.login-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0;
}
.login-divider::before,
.login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--border-color);
}
.login-divider span {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text-muted);
}

.login-field { margin-bottom: 14px; }
.login-field-label {
  display: block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text-muted);
  text-transform: uppercase;
  margin-bottom: 6px;
}
.login-field-control { position: relative; }
.login-field-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  display: flex;
  opacity: 0.75;
  pointer-events: none;
}
.login-input {
  width: 100%;
  padding: 11px 12px 11px 38px;
  background: var(--bg);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  color: var(--text-primary);
  font-size: 0.9rem;
  transition: border-color 0.18s, box-shadow 0.18s, background 0.18s;
}
.login-input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(184, 134, 11, 0.14);
  background: var(--bg);
}
.login-input::placeholder { color: var(--text-muted); opacity: 0.55; }
.login-input.invalid {
  border-color: #dc3545;
  box-shadow: 0 0 0 3px rgba(220, 53, 69, 0.12);
}
.login-input[type="password"] { padding-right: 44px; }

.login-password-toggle {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--text-muted);
  padding: 8px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
}
.login-password-toggle:hover {
  color: var(--maroon);
  background: rgba(184, 134, 11, 0.08);
}

.login-field-error {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #dc3545;
  font-size: 0.7rem;
  font-weight: 600;
  margin-top: 5px;
}

.login-row {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin: 0 0 16px;
}
.login-forgot {
  background: none;
  border: 0;
  padding: 0;
  color: var(--maroon);
  font-size: 0.76rem;
  font-weight: 700;
  cursor: pointer;
}
.login-forgot:hover { text-decoration: underline; }

.login-submit {
  width: 100%;
  padding: 12px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--maroon), var(--maroon-dark));
  color: #fff;
  font-weight: 700;
  letter-spacing: 1px;
  font-size: 0.86rem;
  cursor: pointer;
  transition: all 0.2s;
}
.login-submit:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(139, 26, 26, 0.3);
}
.login-submit:disabled { opacity: 0.7; cursor: not-allowed; }

.login-strength { margin: -4px 0 14px; }
.login-strength-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 5px;
}
.login-strength-top span {
  font-size: 0.64rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
}
.login-strength-top b { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.5px; }
.login-strength-bars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.login-strength-bar {
  height: 4px;
  border-radius: 99px;
  background: var(--border-color);
  transition: background 0.2s;
}

.login-switch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding-top: 16px;
  margin-top: 18px;
  border-top: 1px solid var(--border-color);
  font-size: 0.78rem;
  color: var(--text-muted);
}
.login-switch button {
  background: none;
  border: 0;
  padding: 0;
  color: var(--maroon);
  font-weight: 800;
  cursor: pointer;
  font-size: 0.78rem;
}
.login-switch button:hover { text-decoration: underline; }

.login-alert { font-size: 0.78rem; border-radius: 10px; }

/* Global busy overlay */
.login-overlay {
  position: fixed;
  inset: 0;
  z-index: 2030;
  background: rgba(18, 8, 8, 0.45);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.login-overlay-box {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 26px 30px;
  text-align: center;
  max-width: 280px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.3);
}
.login-overlay-box p {
  color: var(--text-muted);
  font-size: 0.8rem;
  margin: 12px 0 0;
}

/* Reset-password panel */
.login-reset-overlay {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: rgba(255, 250, 240, 0.74);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  display: grid;
  place-items: center;
  padding: 1rem;
  z-index: 5;
}
[data-theme="dark"] .login-reset-overlay { background: rgba(26, 12, 12, 0.78); }
.login-reset-panel {
  width: min(100%, 320px);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: 14px;
  padding: 20px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.18);
}
.login-reset-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.login-reset-head h3 { font-size: 1rem; font-weight: 800; margin: 0; }
.login-reset-close {
  background: none;
  border: 0;
  color: var(--text-muted);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 4px 7px;
  border-radius: 6px;
}
.login-reset-close:hover { background: rgba(184, 134, 11, 0.1); color: var(--maroon); }
.login-reset-note {
  color: var(--text-muted);
  font-size: 0.74rem;
  line-height: 1.55;
  margin: 0 0 14px;
}
.login-reset-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}
.login-reset-actions .btn { flex: 1; margin-right: 0; }
.login-reset-actions .login-submit { flex: 1; }
.login-reset-success .login-submit { margin-top: 6px; }

/* ——— Horizontal Nav (after login) — MAROON header ——— */
.horizontal-nav {
  background: var(--maroon) !important;
  color: #FFFDF5 !important;
  border-bottom: 2px solid var(--gold) !important;
  box-shadow: 0 4px 16px rgba(113,54,0,0.25) !important;
  position: sticky;
  top: 0;
  z-index: 900;
}
.horizontal-nav-inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0.4rem 0.75rem;
  overflow: visible;
  flex-wrap: wrap;
}
.hnav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.85rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ds-primary, #713600);
  text-decoration: none;
  white-space: nowrap;
  border: 1.5px solid var(--ds-border, #E9DCCB);
  background: transparent;
  transition: all 0.18s;
}
.hnav-link:hover {
  background: var(--ds-surface-soft, #F5E4D0);
  border-color: var(--ds-accent, #C05800);
  color: var(--ds-accent, #C05800);
}
.hnav-link.active {
  background: var(--ds-accent) !important;
  color: var(--ds-cream) !important;
  border-color: var(--ds-accent);
  box-shadow: 0 2px 10px rgba(192,88,0,0.28);
}
.hnav-link.active small { color: var(--ds-cream) !important; }
.hnav-group {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  position: relative;
}
.hnav-group-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.75rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--ds-primary);
  background: transparent;
  border: 1.5px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.18s;
}
.hnav-group-btn:hover, .hnav-group.open .hnav-group-btn {
  background: var(--ds-accent);
  color: var(--ds-cream);
  border-color: var(--ds-accent);
}
.hnav-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 230px;
  background: #FFFEF7;
  border: 1.5px solid var(--border-soft);
  border-radius: 14px;
  box-shadow: 0 16px 40px rgba(113,54,0,0.22);
  padding: 0.45rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
  z-index: 9999;
  animation: fadeIn 0.16s ease;
}
.hnav-dropdown-link {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.5rem 0.75rem;
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-primary);
  text-decoration: none;
}
.hnav-dropdown-link:hover {
  background: var(--bg-lime);
  color: var(--maroon);
}
.hnav-dropdown-link.active {
  background: var(--maroon);
  color: #FFF8E1;
}

/* ——— Current Dasa highlight — lime/orange pulse ——— */
.dasa-current {
  background: linear-gradient(135deg, #FFF59D 0%, #FFECB3 60%, #FFE0B2 100%) !important;
  border: 2px solid var(--gold) !important;
  box-shadow: 0 4px 18px rgba(232,163,23,0.22), inset 0 1px 0 rgba(255,255,255,0.7) !important;
  position: relative;
  overflow: hidden;
}
.dasa-current::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.45), transparent);
  animation: dasaShimmer 2.2s infinite;
}
@keyframes dasaShimmer { 0%{left:-100%} 100%{left:100%} }
.dasa-current-badge {
  background: var(--maroon) !important;
  color: #FFF59D !important;
  border: 1px solid var(--gold);
  animation: pulseBadge 1.5s ease-in-out infinite;
}
@keyframes pulseBadge { 0%,100%{transform:scale(1)} 50%{transform:scale(1.05)} }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.3} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }

/* Orders & Payment cards */
.order-card {
  background: linear-gradient(135deg, #FFFEF7 0%, #FFF8E1 100%);
  border: 1.5px solid var(--border-soft);
  border-radius: 16px;
  box-shadow: var(--shadow-card);
}

/* ═══════════════════ Dashboard 2.0 (ds2) — spaced & visual ═══════════════════ */
.ds-dashboard.ds2 { padding: 24px 12px; max-width: 1180px; margin: 0 auto; }

.ds2-hero {
  display: flex; flex-direction: column; gap: 16px;
  padding: 22px 26px; border-radius: 20px; margin-bottom: 18px;
  background: linear-gradient(120deg, #203D32 0%, #426B5A 60%, #B99A45 135%);
  color: #fff; box-shadow: 0 10px 30px rgba(32,61,50,0.22);
  border: 1px solid rgba(185, 154, 69, .45);
}
.ds2-hero .ds-eyebrow { color: #B99A45; font-weight: 800; letter-spacing: 1px; font-size: 0.66rem; text-transform: uppercase; }
.ds2-hero h1 { margin: 2px 0 4px; font-size: 1.7rem; font-weight: 800; letter-spacing: 0.5px; color: #F5F5E8; }
.ds2-hero .ds2-hero-tagline { color: #B99A45; }
.ds2-hero-row { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 16px; }
.ds2-hero-main { flex: 1 1 260px; min-width: 0; }
.ds2-hero-side { flex: 0 1 auto; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.ds2-hero-side .ds2-hero-cta { justify-content: flex-end; }
.ds2-hero-chips { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; row-gap: 10px; }
.ds2-hero-date {
  margin: 0;
  color: #f7e7cf;
  font-size: 0.78rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
  word-break: break-word;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 6px;
}
.ds2-hero-date span { display: inline-block; min-width: 0; }
.ds2-hero-loc { margin: 4px 0 0; color: #fbe9c6; font-size: 0.72rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; word-break: break-word; }

.ds2-clock {
  display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-radius: 16px;
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.2); backdrop-filter: blur(4px);
  min-width: 178px; min-height: 62px;
}
.ds2-clock-icon { font-size: 1.6rem; }
.ds2-clock-time { font-size: 1.5rem; font-weight: 800; line-height: 1; }
.ds2-clock-time small { font-size: 0.6rem; opacity: 0.85; }
.ds2-clock-date { font-size: 0.66rem; opacity: 0.9; margin-top: 2px; }

/* Quick-action dock (bottom) — uniform tiles */
.ds2-quicklinks-title { font-size: 0.8rem; font-weight: 800; color: var(--maroon); letter-spacing: 0.5px; margin-bottom: 10px; }
.ds2-dock { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 6px 8px; margin-bottom: 24px; }

/* All-features quick links · section-by-section with small icon chips */
.ds2-quickgrid { display: flex; flex-direction: column; gap: 16px; margin-top: 6px; }
.ds2-quickgroup { background: #fff; border: 1px solid var(--border-soft); border-radius: 16px; padding: 12px 14px; box-shadow: 0 2px 10px rgba(113,54,0,0.04); }
.ds2-quickgroup-title { font-size: 0.7rem; font-weight: 800; color: var(--gold-dark); letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 9px; display: flex; align-items: center; gap: 6px; }
.ds2-quickgroup-title::before { content: ''; width: 4px; height: 12px; border-radius: 2px; background: var(--maroon); }
.ds2-quickchips { display: flex; flex-wrap: wrap; gap: 8px; }
.ds2-quickchip {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 999px;
  background: #FFFDF6; border: 1px solid rgba(186,192,149,0.25); color: var(--text-primary);
  font-size: 0.66rem; font-weight: 700; cursor: pointer; white-space: nowrap;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.ds2-quickchip:hover { background: #FFF9C4; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(113,54,0,0.12); border-color: rgba(186,192,149,0.5); }
.ds2-quickchip-icon { font-size: 0.82rem; line-height: 1; }
@media (max-width: 767.98px) {
  .ds2-quickchip { font-size: 0.6rem; padding: 4px 9px; gap: 5px; }
  .ds2-quickchip-icon { font-size: 0.75rem; }
  .ds2-quickgroup { padding: 10px 11px; }
}
.ds2-tile-btn { border: none; background: transparent; cursor: pointer; padding: 0; text-decoration: none; display: block; }
.ds2-tile-flat {
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  padding: 10px 4px 6px; border-radius: 10px; text-align: center; width: 100%;
  transition: transform .12s ease;
  background: none; border: none; box-shadow: none;
}
.ds2-tile-flat:hover { transform: scale(1.05); }
.ds2-tile-flat > img, .ds2-tile-flat > svg, .ds2-tile-flat > span:first-child { width: 30px; height: 30px; object-fit: contain; }
.ds2-tile-flat > span:last-child {
  font-size: 0.62rem; font-weight: 700; color: var(--text-primary); line-height: 1.25;
  white-space: normal; overflow: visible; max-width: 100%;
}

/* Main grid */
.ds2-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 18px; align-items: start; }
.ds2-col { display: flex; flex-direction: column; gap: 18px; }
.ds2-card { background: #fff; border: 1px solid var(--border-soft); border-radius: 18px; overflow: hidden; box-shadow: 0 2px 12px rgba(113,54,0,0.06); }
.ds2-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 13px 16px; border-bottom: 1px solid var(--border-soft); font-weight: 800; color: var(--maroon); font-size: 0.85rem; letter-spacing: 0.4px; }
.ds2-merged-body { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.ds2-merged-left { border-right: 1px solid var(--border-soft); display: flex; flex-direction: column; justify-content: space-between; }
.ds2-merged-right { min-width: 0; }
@media (max-width: 900px) { .ds2-merged-body { grid-template-columns: 1fr; } .ds2-merged-left { border-right: none; border-bottom: 1px solid var(--border-soft); } }
.ds2-pill { font-size: 0.62rem; font-weight: 700; color: #fff; background: var(--maroon); padding: 2px 9px; border-radius: 999px; }
.ds2-chart-body { padding: 14px 16px; }
.ds2-chart-footer { padding: 0 16px 14px; }

/* Person carousel (slides) */
.ds2-carousel { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 12px; }
.ds2-carousel-arrow {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--border-soft); background: #fff;
  color: var(--maroon); font-size: 1.2rem; line-height: 1; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  display: grid; place-items: center;
}
.ds2-carousel-center { text-align: center; min-width: 120px; }
.ds2-person-name { font-size: 1rem; font-weight: 800; color: var(--maroon); }
.ds2-carousel-dots { display: flex; justify-content: center; gap: 6px; margin-top: 6px; }
.ds2-carousel-dots button { width: 7px; height: 7px; border-radius: 999px; border: none; cursor: pointer; padding: 0; }
.ds2-carousel-dots button:first-child:last-child { display: none; }
.ds2-chart {
  flex: 1 1 320px; min-width: 280px; max-width: 520px; margin: 0 auto;
  background: #FFFEF7; border: 1px solid rgba(186,192,149,0.18); border-radius: 14px; padding: 10px;
  --chart-min-w4: 100%;
  --chart-min-w3: 100%;
  --chart-cell-h4: 78px;
  --chart-cell-h3: 72px;
  --chart-sign-symbol: 1.05rem;
  --chart-sign-text: 0.62rem;
  --chart-sign-small: 0.52rem;
  --chart-planet-symbol: 0.82rem;
  --chart-planet-text: 0.58rem;
  --chart-deg: 0.52rem;
  --chart-nakshatra: 0.48rem;
  --chart-house: 0.62rem;
  --chart-lagna: 0.55rem;
}
.ds2-chart > * { width: 100%; }
.ds2-chart-meta { flex: 1 1 200px; min-width: 180px; display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.ds2-person-name { font-size: 1rem; font-weight: 800; color: var(--maroon); }
.ds2-meta-line { font-size: 0.7rem; color: var(--text-primary); }
.ds2-person-row { display: flex; gap: 6px; flex-wrap: wrap; padding: 10px 16px 0; }
.ds2-person-chip { border: 1px solid var(--border-soft); background: #fff; border-radius: 999px; padding: 4px 12px; font-size: 0.66rem; font-weight: 700; color: var(--text-muted); cursor: pointer; }
.ds2-cta { display: block; text-align: center; margin-top: 10px; padding: 9px 0; border-radius: 10px; background: var(--maroon); color: #fff; font-size: 0.7rem; font-weight: 700; text-decoration: none; }
.ds2-cta-ai { margin-top: 12px; }
.ds2-day { padding: 0 16px 16px; }
.ds2-day-title { font-size: 0.72rem; font-weight: 800; color: var(--gold); margin-bottom: 8px; }
.ds2-strengths { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ds2-strength { border: 1px solid var(--border-soft); border-radius: 10px; padding: 7px 9px; background: #FFFEF9; }
.ds2-strength-top { display: flex; justify-content: space-between; align-items: center; font-size: 0.64rem; color: var(--text-primary); font-weight: 700; margin-bottom: 4px; }
.ds2-bar { height: 4px; background: rgba(0,0,0,0.07); border-radius: 999px; overflow: hidden; }
.ds2-bar > div { height: 100%; border-radius: 999px; }
.ds2-empty { padding: 40px 16px; text-align: center; color: var(--text-muted); font-size: 0.78rem; }
.ds2-luck { padding: 12px 16px; font-size: 0.74rem; color: var(--text-primary); font-weight: 600; }
.ds2-ai-body { padding: 14px 16px; }
.ds2-recent-title { font-size: 0.62rem; font-weight: 800; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; }
.ds2-recent { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }
.ds2-recent-item { font-size: 0.72rem; color: var(--maroon); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 4px 8px; background: rgba(113,54,0,0.05); border-radius: 8px; }
.ds2-sugg { border: 1px solid rgba(186,192,149,0.3); background: #FFFDF6; border-radius: 999px; padding: 5px 11px; font-size: 0.68rem; color: var(--text-primary); cursor: pointer; }
.ds2-fam-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; padding: 14px 16px 6px; }
.ds2-fam-stat { text-align: center; padding: 10px 4px; border-radius: 12px; background: rgba(186,192,149,0.07); }
.ds2-fam-stat b { display: block; font-size: 1.3rem; color: var(--maroon); font-weight: 800; }
.ds2-fam-stat { font-size: 0.6rem; color: var(--text-muted); }
.ds2-link-row { display: block; margin: 10px 16px 14px; font-size: 0.7rem; font-weight: 700; color: var(--maroon); text-decoration: none; }
.ds2-loading { padding: 60px; text-align: center; color: var(--text-muted); }

@media (max-width: 900px) {
  .ds2-grid { grid-template-columns: 1fr; }
  .ds2-dock { display: flex; gap: 6px 10px; overflow-x: auto; padding-bottom: 4px; }
  .ds2-dock > * { flex: 0 0 74px; }
  .ds2-hero { padding: 18px; gap: 10px; }
  .ds2-hero-row { flex-direction: column; align-items: stretch; gap: 10px; }
  .ds2-hero-side { text-align: left; align-items: flex-start; }
  .ds2-hero-side .ds2-hero-cta { justify-content: flex-start; }
  .ds2-hero-chips { gap: 10px; }
  .ds2-hero-chips > .ds2-clock { flex: 1 1 100%; min-width: 0; }
  .ds2-dashlets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

/* Family dashlets (dashboard 2.0) */
.ds2-familyband { margin-bottom: 20px; }
.ds2-familyband-title { font-size: 0.78rem; font-weight: 800; color: var(--maroon); letter-spacing: 0.5px; margin-bottom: 10px; }
.ds2-dashlets { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ds2-dashlet {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 78px;
  padding: 12px 14px; border-radius: 16px; background: #fff;
  border: 1px solid var(--border-soft); box-shadow: 0 2px 10px rgba(113,54,0,0.05);
}
.ds2-dashlet-icon { width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; font-size: 1.15rem; background: rgba(186,192,149,0.10); }
.ds2-dashlet-value { font-size: 1.4rem; font-weight: 800; color: var(--maroon); line-height: 1; }
.ds2-dashlet-label { font-size: 0.62rem; color: var(--text-muted); font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; margin-top: 3px; line-height: 1.3; }
@media (max-width: 767.98px) {
  .ds2-dashlets { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ds2-dashlet { min-height: 72px; padding: 10px 12px; }
}
.ds2-random-members { margin-top: 14px; font-size: 0.7rem; color: var(--text-muted); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ds2-member-chip {
  background: #FFFDF6; border: 1px solid rgba(186,192,149,0.3); color: var(--text-primary);
  border-radius: 999px; padding: 3px 10px; font-size: 0.66rem; font-weight: 600; white-space: nowrap;
}

/* Ask-ASTROai suggestions in the Today's Horoscope card */
.ds2-suggest { padding: 0 16px 14px; }
.ds2-suggest-title { font-size: 0.7rem; font-weight: 800; color: var(--gold); margin-bottom: 8px; }
/* Dashboard "My Saved" rows (saved horoscopes / matches / muhurthams). */
.ds2-savedrow {
  display: flex; flex-direction: column; gap: 3px;
  padding: 8px 10px; border-radius: 10px;
  background: rgba(186,192,149,0.08); border: 1px solid rgba(186,192,149,0.18);
  font-size: 0.74rem; color: var(--text-primary);
  transition: background 0.15s ease, border-color 0.15s ease;
}
.ds2-savedrow:hover { background: rgba(186,192,149,0.16); border-color: rgba(186,192,149,0.3); }
.ds2-savedrow b { font-size: 0.76rem; color: var(--maroon); }
.ds2-savedrow small { color: var(--text-muted); font-size: 0.68rem; }
[data-theme="dark"] .ds2-savedrow { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.1); }
[data-theme="dark"] .ds2-savedrow b { color: var(--gold); }
.ds2-suggest-chips { display: flex; gap: 8px; flex-wrap: wrap; }

/* Saved-horoscope card view (get-horoscope) */
.saved-person-card {
  height: 100%; padding: 14px 12px; border-radius: 14px;
  background: linear-gradient(160deg, #fff 0%, #FFFDF6 100%);
  border: 1px solid var(--border-soft); box-shadow: 0 2px 8px rgba(113,54,0,0.05);
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  transition: transform .15s ease, box-shadow .15s ease;
}
.saved-person-card:hover { transform: translateY(-3px); box-shadow: 0 10px 22px rgba(113,54,0,0.14); border-color: rgba(186,192,149,0.4); }
.saved-person-card .saved-avatar { display: grid; place-items: center; }

/* Floating action buttons — transparent circles that expand/reveal on hover */
.fab-ghost {
  border: none; cursor: pointer; border-radius: 50%;
  display: grid; place-items: center; padding: 0;
  width: 52px; height: 52px;
  background: transparent !important; color: var(--maroon); text-decoration: none;
  font-size: 1.35rem; line-height: 1;
  transition: transform .22s ease, width .22s ease, height .22s ease, background .22s ease, box-shadow .22s ease, border-radius .22s ease;
}
.fab-ghost img { width: 72%; height: 72%; object-fit: contain; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.15)); }
.fab-ghost:hover, .fab-ghost:focus {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, var(--maroon), #38240D) !important;
  color: #fff;
  box-shadow: 0 8px 22px rgba(113,54,0,0.35);
  transform: none;
}
.fab-ghost:hover img { filter: none; }

/* Highlight the entire row (every cell) of the current dasha/stage */
tr.dasa-cur td { background: rgba(186,192,149,0.20) !important; }
tr.dasa-cur td:first-child { box-shadow: inset 3px 0 0 var(--maroon); }

/* Two-factor authentication */
.login-mfa-methods {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}
.login-mfa-method {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 11px 12px;
  border-radius: 12px;
  border: 1px solid var(--border-color);
  background: var(--bg);
  cursor: pointer;
  font-size: 0.76rem;
  color: var(--text-muted);
  transition: border-color .15s, background .15s, color .15s;
}
.login-mfa-method.active {
  border-color: var(--maroon);
  background: rgba(113,54,0,0.05);
  color: var(--maroon);
  font-weight: 700;
}
.login-mfa-method-icon {
  font-size: 1.05rem;
  display: grid;
  place-items: center;
}
.login-mfa-input {
  width: 100%;
  padding: 11px 14px;
  font-size: 1.1rem;
  letter-spacing: 6px;
  text-align: center;
  border: 1px solid var(--border-color);
  border-radius: 10px;
  background: #fff;
  font-weight: 700;
}
.login-sms-send {
  margin-bottom: 10px;
}
.login-back {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 8px;
  background: transparent;
  border: 0;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
}
.login-dev-code {
  margin: 4px 0 12px;
  padding: 9px 12px;
  border-radius: 10px;
  background: rgba(186,192,149,0.08);
  border: 1px dashed rgba(186,192,149,0.45);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
  letter-spacing: 0.4px;
}

/* Tables: avoid compression — comfortable column widths, wrap text, scroll when needed */
.astro-data-table, .upa-varga-table, .saved-table {
  table-layout: auto; width: 100%;
}
.astro-data-table th, .upa-varga-table th, .saved-table th {
  white-space: nowrap; vertical-align: middle;
}
.astro-data-table td, .upa-varga-table td, .saved-table td {
  white-space: normal; word-break: break-word; vertical-align: top;
  min-width: 96px;
}
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ── Pricing & subscriptions (v2) ──────────────────────────────────────── */
.pricing-hero {
  background:
    radial-gradient(circle at 15% 20%, rgba(245,214,122,0.18) 0, transparent 34%),
    linear-gradient(135deg, var(--maroon) 0%, #8e1b1e 55%, var(--maroon-dark) 100%);
  border-radius: 20px;
  padding: 34px 30px 30px;
  color: #fff;
  box-shadow: 0 18px 44px rgba(113,54,0,0.18);
}
.pricing-section-title {
  font-weight: 900;
  color: var(--maroon);
  font-size: clamp(1rem, 2.4vw, 1.3rem);
  letter-spacing: -0.3px;
  margin: 0 0 14px;
}
.pricing-billing {
  display: inline-flex;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 999px;
  padding: 4px;
  gap: 4px;
}
.pricing-billing-btn {
  border: 0;
  background: transparent;
  color: rgba(255,255,255,0.85);
  font-weight: 700;
  font-size: 0.8rem;
  padding: 8px 16px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background .15s, color .15s;
}
.pricing-billing-btn.active {
  background: #fff;
  color: var(--maroon);
}
.pricing-save-badge {
  font-size: 0.6rem;
  background: #FFECB3;
  color: #8b6914;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.pricing-price-line { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.pricing-price { font-size: 2.1rem; font-weight: 900; letter-spacing: -0.5px; }
.pricing-period { font-weight: 700; color: rgba(255,255,255,0.8); }
.pricing-best-value {
  background: linear-gradient(90deg, #FFECB3, #FFD97A);
  color: var(--maroon);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 1px;
  padding: 3px 10px;
  border-radius: 999px;
}
.pricing-feature-card {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 1.4fr;
  gap: 0;
  background: linear-gradient(160deg, #fff, #FFFDF6);
  border: 1.5px solid var(--gold);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(186,192,149,0.14);
}
.pricing-feature-card-main {
  padding: 26px 24px;
  background: linear-gradient(135deg, #FFFDE7, #FFECB3);
  border-right: 1px dashed rgba(186,192,149,0.3);
}
.pricing-popular-badge {
  display: inline-block;
  background: var(--maroon);
  color: #FFF59D;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 1.2px;
  padding: 4px 11px;
  border-radius: 999px;
}
.pricing-feature-grid {
  padding: 20px 22px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 6px 16px;
  align-content: start;
}
.pricing-feature-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-primary);
  padding: 3px 0;
}
.pricing-check {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #22a06b;
  color: #fff;
  font-size: 0.6rem;
  font-weight: 900;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.pricing-compare { position: relative; height: 100%; }
.pricing-compare-free { border: 1.5px solid var(--border-soft); }
.pricing-compare-premium {
  border: 1.8px solid var(--gold);
  box-shadow: 0 12px 32px rgba(186,192,149,0.16);
  background: linear-gradient(160deg, #FFFEF7, #FFF8E1);
}
.pricing-faq-q {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: transparent;
  border: 0;
  padding: 13px 16px;
  text-align: left;
  font-weight: 800;
  font-size: 0.82rem;
  color: var(--text-primary);
  cursor: pointer;
}
.pricing-faq-a {
  padding: 0 16px 14px;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.55;
}
.pricing-final-cta {
  background:
    radial-gradient(circle at 85% 15%, rgba(245,214,122,0.15) 0, transparent 40%),
    linear-gradient(135deg, var(--maroon), #38240D 60%, var(--maroon-dark));
  border-radius: 20px;
  padding: 32px 22px;
}
.checkout-overlay {
  position: fixed;
  inset: 0;
  background: rgba(61,20,20,0.5);
  backdrop-filter: blur(4px);
  z-index: 2400;
  display: grid;
  place-items: center;
  padding: 16px;
}
.upgrade-modal {
  width: min(460px, 100%);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}
.upgrade-includes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px 10px;
  max-height: 190px;
  overflow: hidden;
}
.upgrade-include {
  display: flex;
  gap: 6px;
  font-size: 0.7rem;
  color: var(--text-primary);
  align-items: center;
}
.upgrade-include span {
  color: #22a06b;
  font-weight: 900;
  font-size: 0.68rem;
}
@media (max-width: 768px) {
  .pricing-feature-card { grid-template-columns: 1fr; }
  .pricing-feature-card-main { border-right: none; border-bottom: 1px dashed rgba(186,192,149,0.3); }
  .pricing-hero { padding: 26px 18px; }
}

/* ── Landing (Commura-style) ──────────────────────────────────────────── */
.lx-nav { font-family: var(--font-display, 'Playfair Display', serif); }
.lx-nav-link {
  color: var(--maroon);
  text-decoration: none;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 8px 11px;
  border-radius: 8px;
  transition: color .15s, background .15s;
  white-space: nowrap;
  font-family: 'DM Sans', 'Inter', -apple-system, sans-serif;
}
.lx-nav-link:hover { color: var(--maroon-dark); background: rgba(113,54,0,.08); }
.lx-nav-link span { opacity: .92; }
.lx-nav-cta {
  background: var(--gold-dark);
  color: #fff;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 9px 18px;
  border-radius: 10px;
  margin-left: 6px;
  transition: background .15s, transform .15s;
  white-space: nowrap;
  font-family: 'DM Sans', 'Inter', sans-serif;
}
.lx-nav-cta:hover { background: var(--gold); color: var(--maroon); }
@media (max-width: 767px) { .lx-nav { overflow-x: auto; gap: 2px; } .lx-nav-link { padding: 8px 7px; font-size: .68rem; letter-spacing: .06em; } .lx-nav-cta { padding: 8px 12px; font-size: .72rem; } }

.lx-home {
  background:
    radial-gradient(circle at 12% 6%, rgba(186,192,149,.09) 0, transparent 32%),
    radial-gradient(circle at 88% 12%, rgba(113,54,0,.06) 0, transparent 30%),
    #fdfaf5;
  color: #221f1c;
  border-radius: 18px;
  overflow: hidden;
}
.lx-hero { position: relative; padding: 56px 40px 40px; overflow: hidden; }
.lx-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 32px; align-items: center; max-width: 980px; margin: 0 auto; }
.lx-hero-particles { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.lx-particle { position: absolute; font-size: 1.15rem; opacity: .16; color: var(--maroon); animation: lxFloat 9s ease-in-out infinite; }
.lx-particle-1 { top: 12%; left: 8%; animation-delay: 0s; }
.lx-particle-2 { top: 58%; left: 3%; animation-delay: 1.2s; }
.lx-particle-3 { top: 20%; right: 12%; animation-delay: 2.1s; }
.lx-particle-4 { top: 66%; right: 6%; animation-delay: 3s; }
.lx-particle-5 { bottom: 18%; left: 42%; animation-delay: 1.6s; }
.lx-particle-6 { top: 8%; right: 32%; animation-delay: 2.6s; }
@keyframes lxFloat { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-14px) rotate(10deg); } }
.lx-badge {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
  color: var(--maroon); background: #fff; border: 1px solid rgba(186,192,149,.35); border-radius: 999px;
  padding: 6px 14px;
}
.lx-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-weight: 600;
  line-height: 1.04;
  font-size: clamp(1.9rem, 5vw, 3.1rem);
  color: #221f1c;
  margin: 14px 0 12px;
  text-wrap: balance;
}
.lx-gradient { font-style: italic; background: linear-gradient(90deg, var(--maroon), #b8860b); -webkit-background-clip: text; background-clip: text; color: transparent; }
.lx-lead { font-size: clamp(.9rem, 1.6vw, 1.05rem); color: #4b4440; max-width: 52ch; line-height: 1.6; margin: 0 0 22px; }
.lx-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.lx-cta, .lx-cta-light {
  border: 0; cursor: pointer; font-weight: 800; font-size: .92rem; border-radius: 11px;
  padding: 13px 24px; text-decoration: none; display: inline-flex; align-items: center; gap: 8px;
}
.lx-cta { background: linear-gradient(135deg, var(--maroon), #38240D); color: #fff; box-shadow: 0 10px 24px rgba(113,54,0,.25); transition: transform .15s, box-shadow .15s; }
.lx-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(113,54,0,.32); }
.lx-cta-ghost { color: var(--maroon); font-weight: 700; text-decoration: none; font-size: .88rem; padding: 12px 16px; border-radius: 10px; border: 1.5px solid rgba(186,192,149,.4); background: #fff; transition: border-color .15s, background .15s; }
.lx-cta-ghost:hover { border-color: var(--maroon); background: #fffaf0; }
.lx-hero-note { margin-top: 16px; font-size: .74rem; font-weight: 700; color: #8a8075; letter-spacing: .04em; }
.lx-hero-visual { display: grid; place-items: center; }
.lx-chart-orbit { position: relative; width: 300px; height: 300px; }
.lx-chart-core {
  position: absolute; inset: 50%; transform: translate(-50%, -50%);
  width: 150px; height: 150px; border-radius: 50%;
  background: linear-gradient(135deg, #FFFDF6, #FFECB3);
  border: 1.5px solid rgba(186,192,149,.45);
  box-shadow: 0 18px 40px rgba(113,54,0,.14);
  display: grid; place-items: center; text-align: center; z-index: 3;
}
.lx-chart-core span { font-size: 1.9rem; display: block; }
.lx-chart-core b { display: block; color: var(--maroon); font-size: 1.02rem; font-weight: 900; font-family: 'Playfair Display', serif; }
.lx-chart-core small { color: var(--text-muted); font-size: .6rem; }
.lx-orbit-ring { position: absolute; inset: 0; border-radius: 50%; border: 1px dashed rgba(186,192,149,.4); }
.lx-orbit-1 { inset: 22px; animation: lxSpin 22s linear infinite; }
.lx-orbit-2 { inset: 56px; border-style: solid; border-color: rgba(113,54,0,.18); animation: lxSpin 34s linear infinite reverse; }
@keyframes lxSpin { to { transform: rotate(360deg); } }
.lx-orbit-node {
  position: absolute; width: 42px; height: 42px; border-radius: 50%;
  background: #fff; border: 1.5px solid rgba(186,192,149,.5); color: var(--maroon);
  display: grid; place-items: center; font-size: 1.15rem; font-weight: 800;
  box-shadow: 0 8px 18px rgba(113,54,0,.14); z-index: 2;
}
.lx-node-1 { top: 8px; left: 50%; transform: translateX(-50%); }
.lx-node-2 { bottom: 6px; right: 20px; }
.lx-node-3 { left: 10px; top: 40%; }
.lx-node-4 { right: 4px; top: 16%; }

.lx-marquee-wrap { display: flex; align-items: center; gap: 18px; padding: 14px 40px; border-top: 1px solid rgba(186,192,149,.18); border-bottom: 1px solid rgba(186,192,149,.18); background: rgba(255,255,255,.55); }
.lx-marquee-label { font-size: .64rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #a49a8d; white-space: nowrap; }
.lx-marquee { flex: 1; overflow: hidden; }
.lx-marquee-track { display: flex; gap: 34px; width: max-content; animation: lxMarquee 55s linear infinite; animation-play-state: running; }
.lx-marquee:hover .lx-marquee-track, .lx-today-band:hover .lx-marquee-track { animation-play-state: paused; }
@keyframes lxMarquee { to { transform: translateX(-50%); } }
.lx-marquee-item { font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #6f665c; white-space: nowrap; }

.lx-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; max-width: 980px; margin: 26px auto 0; padding: 0 40px; }
.lx-stat { background: #fff; border: 1px solid rgba(186,192,149,.22); border-radius: 14px; padding: 18px 16px; text-align: center; box-shadow: 0 6px 18px rgba(113,54,0,.05); }
.lx-stat b { display: block; font-size: 1.7rem; font-weight: 900; color: var(--maroon); font-family: 'Playfair Display', Georgia, serif; }
.lx-stat span { font-size: .7rem; font-weight: 700; color: #6f665c; letter-spacing: .08em; text-transform: uppercase; }

.lx-section { max-width: 980px; margin: 0 auto; padding: 52px 40px 10px; }
.lx-section-alt { background: rgba(113,54,0,.035); border-radius: 20px; margin-top: 10px; padding: 46px 40px; }
.lx-tag { font-size: .7rem; font-weight: 800; letter-spacing: .22em; text-transform: uppercase; color: var(--maroon); display: inline-flex; align-items: center; gap: 8px; }
.lx-section .lx-title, .lx-contact .lx-title { margin: 8px 0 6px; }
.lx-section-desc { color: #4b4440; font-size: .92rem; line-height: 1.6; max-width: 58ch; margin: 0 0 22px; }
.lx-grid { display: grid; gap: 16px; }
.lx-grid-4 { grid-template-columns: repeat(4, 1fr); }
.lx-card { background: #fff; border: 1px solid rgba(186,192,149,.2); border-radius: 16px; padding: 20px 18px; box-shadow: 0 8px 24px rgba(113,54,0,.05); transition: transform .16s ease, box-shadow .16s ease; }
.lx-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(113,54,0,.12); }
.lx-card-lux { border-top: 3px solid var(--gold); }
.lx-card-icon { font-size: 1.6rem; display: block; margin-bottom: 8px; }
.lx-card h3 { font-size: .95rem; font-weight: 800; color: var(--maroon); margin: 0 0 6px; font-family: 'Playfair Display', Georgia, serif; }
.lx-card p { font-size: .8rem; color: #5a514b; line-height: 1.55; margin: 0; }

.lx-today { max-width: 980px; margin: 30px auto 0; padding: 14px 24px; background: linear-gradient(90deg, #FFF8E1, #FFECB3); border: 1px solid rgba(186,192,149,.3); border-radius: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.lx-today-label { font-size: .6rem; font-weight: 800; letter-spacing: .18em; color: #8b6914; }
.lx-today strong { color: var(--maroon); font-size: .8rem; font-weight: 800; }
.lx-today a { color: var(--maroon); font-weight: 800; font-size: .78rem; text-decoration: none; }

.lx-faq { max-width: 720px; }
.lx-faq-item { background: #fff; border: 1px solid rgba(186,192,149,.22); border-radius: 12px; margin-bottom: 10px; overflow: hidden; }
.lx-faq-q { width: 100%; display: flex; justify-content: space-between; align-items: center; background: transparent; border: 0; padding: 15px 18px; text-align: left; font-weight: 800; font-size: .85rem; color: #221f1c; cursor: pointer; font-family: 'DM Sans', sans-serif; }
.lx-faq-icon { color: var(--maroon); font-size: 1.1rem; font-weight: 700; }
.lx-faq-a { padding: 0 18px 15px; font-size: .8rem; color: #5a514b; line-height: 1.6; }

.lx-cta-band { max-width: 980px; margin: 46px auto 0; padding: 42px 34px; text-align: center; border-radius: 22px; background: linear-gradient(135deg, var(--maroon) 0%, #38240D 55%, var(--maroon-dark) 100%); color: #fff; }
.lx-cta-band h2 { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.3rem, 3vw, 1.9rem); font-weight: 600; margin: 0 0 6px; }
.lx-cta-band p { color: rgba(255,255,255,.82); font-size: .85rem; margin: 0 0 18px; }
.lx-cta-light { background: #FFF8E1; color: var(--maroon); box-shadow: 0 10px 26px rgba(0,0,0,.22); transition: transform .15s, box-shadow .15s; }
.lx-cta-light:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.3); }

.lx-contact { display: grid; grid-template-columns: 1fr 1.2fr; gap: 28px; align-items: start; padding-bottom: 46px; }
.lx-contact-line { margin: 2px 0; font-size: .82rem; color: #5a514b; }
.lx-contact-form { background: #fff; border: 1px solid rgba(186,192,149,.25); border-radius: 16px; padding: 22px; box-shadow: 0 10px 28px rgba(113,54,0,.06); }
.lx-contact-form h3 { font-family: 'Playfair Display', serif; color: var(--maroon); font-size: 1.05rem; margin: 0 0 12px; }
.lx-contact-form input, .lx-contact-form textarea { width: 100%; padding: 11px 13px; border: 1px solid rgba(186,192,149,.3); border-radius: 9px; font-size: .84rem; margin-bottom: 10px; background: #fffdf7; color: #221f1c; }
.lx-contact-form input:focus, .lx-contact-form textarea:focus { outline: none; border-color: var(--maroon); }
.lx-submit { width: 100%; border: 0; cursor: pointer; background: linear-gradient(135deg, var(--maroon), #38240D); color: #fff; font-weight: 800; font-size: .9rem; padding: 12px; border-radius: 10px; }
.lx-form-success { color: #2e5a2e; font-weight: 700; font-size: .82rem; background: #f3fbe7; border: 1px solid #8bc34a; border-radius: 10px; padding: 26px 18px; text-align: center; }
.lx-form-err { color: #b00020; font-size: .72rem; margin: -4px 0 8px; font-weight: 700; }

.jz { opacity: 0; transform: translateY(22px); animation: lxReveal .7s cubic-bezier(.16,1,.3,1) forwards; }
@keyframes lxReveal { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lx-marquee-track, .lx-particle, .lx-orbit-ring, .lx-orbit-node { animation: none !important; } }

@media (max-width: 860px) {
  .lx-hero-inner { grid-template-columns: 1fr; }
  .lx-chart-orbit { width: 240px; height: 240px; }
  .lx-grid-4 { grid-template-columns: repeat(2, 1fr); }
  .lx-stats { grid-template-columns: repeat(2, 1fr); }
  .lx-contact { grid-template-columns: 1fr; }
  .lx-section, .lx-hero { padding-left: 22px; padding-right: 22px; }
  .lx-marquee-wrap { padding-left: 22px; padding-right: 22px; }
}
@media (max-width: 480px) {
  .lx-grid-4 { grid-template-columns: 1fr; }
  .lx-stats { grid-template-columns: repeat(2, 1fr); gap: 10px; }
}

/* ── Minimal login page (logo only, chrome hidden) ─────────────────────── */
.nav-login-top {
  padding: 18px 0 0;
}
.nav-login-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}

/* ── Today-at-Dattasri animated panchanga ticker ───────────────────────── */
.lx-today-band {
  background: linear-gradient(90deg, #FFF8E1, #FFECB3);
  border-top: 1px solid rgba(186,192,149,.25);
  border-bottom: 1px solid rgba(186,192,149,.25);
}
.lx-today-band .lx-marquee-label {
  background: linear-gradient(135deg, #426B5A, #203D32);
  color: var(--soft-cream, #F5F5E8);
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid rgba(185, 154, 69, .5);
}
.lx-today-item {
  color: #5b4a1e;
  font-weight: 800;
  text-transform: none;
  letter-spacing: .02em;
}
.lx-today-link {
  color: var(--maroon);
  font-weight: 800;
  font-size: .78rem;
  text-decoration: none;
  white-space: nowrap;
}
.lx-today-link:hover { text-decoration: underline; }
@media (max-width: 767px) {
  /* Mobile: heading on its own line, the scrolling ticker below it */
  .lx-today-band { flex-direction: column; align-items: stretch; gap: 6px; padding-top: 8px; }
  .lx-today-band .lx-marquee-label { padding: 2px 2px 0; }
  .lx-today-band .lx-marquee { width: 100%; }
  .lx-today-link { display: none; }
}

/* ── Mobile fixes: keep logged-out header compact; contain today ticker ── */
.navbar-astro > .container { flex-wrap: nowrap !important; }
.lx-nav { min-width: 0; }
.lx-marquee-wrap, .lx-today-band { overflow: hidden; }
@media (max-width: 991px) {
  .lx-nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; justify-content: flex-end; }
  .lx-nav-link, .lx-nav-cta { flex-shrink: 0; }
  .navbar-astro > .container { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}
@media (max-width: 767px) {
  .navbar-astro .navbar-brand img { width: 32px; height: 32px; }
  .lx-marquee-wrap { padding: 10px 14px; gap: 10px; }
  .lx-marquee-label { font-size: 0.56rem; letter-spacing: 0.08em; white-space: nowrap; }
  .lx-today-item { font-size: 0.7rem; }
  .lx-nav-link { padding: 7px 6px; font-size: 0.66rem; letter-spacing: 0.04em; }
  .lx-nav-cta { padding: 7px 10px; font-size: 0.68rem; }
}

/* ── Family tree page: responsive layout ────────────────────────────────── */
.fam-flex { display: flex; gap: 12px; align-items: flex-start; }
.fam-side-nav {
  flex: 0 0 180px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: sticky;
  top: 10;
}
.fam-tree-wrap {
  height: calc(100vh - 210px);
  min-height: 520px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
@media (max-width: 860px) {
  .fam-flex { flex-direction: column; gap: 10px; }
  .fam-side-nav {
    flex: 1 1 auto !important;
    flex-direction: row !important;
    width: 100% !important;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: static !important;
    margin-bottom: 4px !important;
    padding-bottom: 4px;
    top: auto;
  }
  .fam-side-nav .btn {
    white-space: nowrap;
    flex-shrink: 0;
    padding: 7px 12px;
    font-size: 0.74rem;
  }
  .fam-tree-wrap {
    height: calc(100vh - 250px) !important;
    min-height: 340px !important;
  }
}
@media (max-width: 480px) {
  .fam-tree-wrap {
    height: 70vh !important;
    min-height: 300px !important;
  }
  .fam-side-nav {
    gap: 8px;
  }
  .fam-side-nav .btn { padding: 8px 14px; }
}

/* Circular loader ring used by the Muhurtham "Find Muhurtham" progress */
@keyframes dsSpin { to { transform: rotate(360deg); } }

/* Selected Muhurtham detail grid: 2 rows x multi-column on desktop */
.muh-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.muh-tile { background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 8px; padding: 8px 10px; }
.muh-full { grid-column: 1 / -1; }
@media (max-width: 700px) { .muh-grid { grid-template-columns: repeat(2, 1fr); } }
.muh-tile-label { font-size: 0.62rem; font-weight: 800; color: var(--text-muted); margin-bottom: 2px; }
.muh-tile-value { font-size: 0.82rem; font-weight: 700; color: var(--text-primary); line-height: 1.3; }
.muh-tile-sub { font-size: 0.66rem; color: var(--text-muted); line-height: 1.35; margin-top: 2px; }

/* ── Mobile UX polish (muhurtham / saved / family list) ─────────────────── */
@media (max-width: 640px) {
  body { -webkit-text-size-adjust: 100%; }
  .animate-in { padding-left: 4px; padding-right: 4px; }
  .card-astro .card-body { padding: 0.6rem !important; }

  /* Modals fit the phone: full width, near-full height, close enough to top */
  .modal-dialog { margin: 0.35rem auto; max-width: calc(100vw - 14px); }
  .modal-dialog-scrollable .modal-content { max-height: 92vh; border-radius: 14px; }
  .modal-header { padding: 0.6rem 0.75rem; }
  .modal-body { padding: 0.65rem !important; }
  .modal-footer { padding: 0.5rem 0.75rem; flex-wrap: wrap; }

  /* Sticky thead tables scroll inside their responsive container */
  .table-responsive { -webkit-overflow-scrolling: touch; }

  /* Saved & approved muhurtham cards stack on small screens */
  .saved-muh-item { flex-wrap: wrap; }
  .saved-muh-actions { width: 100%; flex-direction: row !important; justify-content: space-between; align-items: center !important; }
  .saved-muh-actions-row { flex-wrap: wrap; justify-content: flex-end; gap: 4px !important; }
  .saved-muh-btns { flex-wrap: wrap; gap: 4px !important; }

  /* Muhurtham day table compresses */
  .astro-data-table { font-size: 0.68rem !important; }
  .astro-data-table th, .astro-data-table td { padding: 3px 5px !important; white-space: normal !important; }

  /* Day popup pushkara / graha tables keep headers visible */
  .card-header { font-size: 0.68rem !important; }
}

@media (max-width: 400px) {
  .muhurtham-chip { font-size: 0.55rem !important; }
  .btn-sm { font-size: 0.7rem; padding: 2px 8px; }
}

/* ── Mobile bottom navigation (icon-only) ─────────────────────────────── */
.mobile-bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1990;
  display: none;
  align-items: stretch;
  justify-content: space-around;
  background: #203D32;
  border-top: 1px solid #B99A45;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.18);
  padding: 4px 6px calc(6px + env(safe-area-inset-bottom, 0px));
}
.mobile-bottom-nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  min-height: 46px;
  color: #F5F5E8;
  text-decoration: none;
  border-radius: 10px;
  font-size: 0.58rem;
  font-weight: 700;
}
.mobile-bottom-nav-icon {
  font-size: 1.25rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.mobile-bottom-nav-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.mobile-bottom-nav-item.active .mobile-bottom-nav-icon img {
  filter: drop-shadow(0 0 3px rgba(255, 133, 122, 0.55));
}
.mobile-bottom-nav-item.active {
  color: #B99A45;
  background: rgba(185, 154, 69, 0.16);
}
@media (max-width: 767.98px) {
  /* Reserve enough room for the fixed footer nav at any zoom/font size so page
     buttons (Muhurtham save, Astro page actions) never hide behind it. */
  :root {
    --mobile-nav-h: calc(58px + env(safe-area-inset-bottom, 0px));
  }
  .mobile-bottom-nav { display: flex; }
  /* Keep page content clear of the fixed bottom nav so nothing is cut off.
     Bootstrap .py-3/.py-4 apply padding-bottom !important — match it so the
     muhurtham/astro action buttons are never hidden behind the footer menu. */
  main.container-fluid, main.container { padding-bottom: calc(var(--mobile-nav-h) + 36px) !important; }
  main.container-fluid.py-3, main.container.py-4 { padding-bottom: calc(var(--mobile-nav-h) + 36px) !important; }
  .site-footer, footer.site-footer, footer.footer, .footer-astro { padding-bottom: calc(var(--mobile-nav-h) + 16px) !important; }
  /* Floating FABs live in the fixed bottom nav on mobile — hide the ghosts. */
  .astro-fab, .chat-fab { display: none !important; }
  /* Chat widget must float above the taller footer nav on small screens. */
  .chat-widget { bottom: calc(var(--mobile-nav-h) + 28px) !important; }
}

/* ────────────────────────────────────────────────────────────────────────────
   Robust dark repaint — guarantees visible fonts on web + mobile by wiping
   inline light/dark background-color (inline styles can't be selectively
   matched), letting the dark surfaces show through, then re-filling the real
   structural surfaces. Media (img/svg) and gradients are untouched.
   ──────────────────────────────────────────────────────────────────────────── */
[data-theme="dark"] body,
[data-theme="dark"] #root { background-color: #14100B !important; }

[data-theme="dark"] *,
[data-theme="dark"] *::before,
[data-theme="dark"] *::after {
  background: transparent !important;
}

[data-theme="dark"] body::before { background: transparent !important; }
[data-theme="dark"] img, [data-theme="dark"] svg, [data-theme="dark"] canvas, [data-theme="dark"] video {
  background-color: transparent !important;
}

/* Re-fill the real surfaces (higher specificity than * wins). */
[data-theme="dark"] .navbar-topbar,
[data-theme="dark"] .topbar,
[data-theme="dark"] .hnav { background-color: #4A0E0E !important; }
[data-theme="dark"] .card-astro,
[data-theme="dark"] .card,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .offcanvas,
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] .popover,
[data-theme="dark"] .list-group-item { background-color: #1E160F !important; }
[data-theme="dark"] .table thead th,
[data-theme="dark"] .astro-data-table thead th { background-color: #2E2117 !important; }
[data-theme="dark"] .footer-astro { background-color: #0B110E !important; }

/* Force readable text everywhere (inline dark hex text can't be targeted). */
[data-theme="dark"] body,
[data-theme="dark"] body *:not(input):not(select):not(textarea) {
  color: #E7EFEA !important;
}
[data-theme="dark"] a { color: #D8B26A !important; }
[data-theme="dark"] a:hover { color: #F0E0B8 !important; }
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3,
[data-theme="dark"] h4, [data-theme="dark"] h5, [data-theme="dark"] h6,
[data-theme="dark"] .section-label,
[data-theme="dark"] .section-title,
[data-theme="dark"] .card-title { color: var(--gold-dark) !important; }
[data-theme="dark"] small, [data-theme="dark"] .muted { color: var(--text-muted) !important; }
[data-theme="dark"] .btn-gold { background-color: var(--gold) !important; }
[data-theme="dark"] .btn-gold,
[data-theme="dark"] .btn-primary { color: #38240D !important; }

/* Bootstrap text utilities carry !important (e.g. .text-dark) and would stay
   dark on dark — force them to the dark palette (ours is loaded after Bootstrap). */
[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black,
[data-theme="dark"] .text-body,
[data-theme="dark"] .text-body-secondary,
[data-theme="dark"] .text-secondary { color: #E7EFEA !important; }
[data-theme="dark"] .text-muted { color: #9FB8AB !important; }
[data-theme="dark"] .text-primary { color: #D8B26A !important; }
[data-theme="dark"] .text-warning { color: #E3C37E !important; }
[data-theme="dark"] .text-danger { color: #EF8B8B !important; }
[data-theme="dark"] .text-success { color: #7BC47F !important; }
[data-theme="dark"] .text-info { color: #7FC4E8 !important; }

/* Explicitly darken every table flavour in dark mode (beats any leftover white). */
[data-theme="dark"] .table,
[data-theme="dark"] .saved-table,
[data-theme="dark"] .astro-data-table,
[data-theme="dark"] .table-astro,
[data-theme="dark"] .saved-table tbody tr,
[data-theme="dark"] .astro-data-table tbody tr,
[data-theme="dark"] .table-astro tbody tr,
[data-theme="dark"] .table td,
[data-theme="dark"] .table th,
[data-theme="dark"] .saved-table td,
[data-theme="dark"] .saved-table th,
[data-theme="dark"] .astro-data-table td,
[data-theme="dark"] .astro-data-table th,
[data-theme="dark"] .table-astro td,
[data-theme="dark"] .table-astro th { background-color: transparent !important; color: #E7EFEA !important; }
[data-theme="dark"] .table thead th,
[data-theme="dark"] .saved-table thead th,
[data-theme="dark"] .astro-data-table thead th,
[data-theme="dark"] .table-astro thead th { background-color: #2E2117 !important; color: #E3C37E !important; }

/* ── Festival Calendar ─────────────────────────────────────────────────── */
.calendar-grid { width: 100%; }
.calendar-header-row { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; margin-bottom: 2px; }
.calendar-day-label { text-align: center; font-size: 0.58rem; font-weight: 700; color: var(--text-muted); padding: 2px 0; text-transform: uppercase; letter-spacing: 0.5px; }
.calendar-body { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; }
.calendar-cell { aspect-ratio: auto; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; border-radius: 4px; cursor: pointer; transition: all 0.12s ease; position: relative; padding: 3px 1px 2px; min-height: 42px; }
.calendar-cell:hover { background: rgba(186,192,149,0.08); }
.calendar-cell.today { outline: 2px solid var(--maroon); outline-offset: -1px; }
.calendar-cell.selected { background: var(--gold-light) !important; outline: 2px solid var(--gold); outline-offset: -1px; }
.calendar-cell.has-festival { background: rgba(186,192,149,0.06); }
.calendar-cell.has-festival:hover { background: rgba(186,192,149,0.14); }
.calendar-cell.empty { cursor: default; }
.calendar-cell.empty:hover { background: transparent; }
.calendar-day-num { font-size: 0.65rem; font-weight: 700; color: var(--text-primary); line-height: 1.1; }
.calendar-panchang { display: flex; flex-direction: column; align-items: center; line-height: 1; margin-top: 1px; }
.cal-tithi { font-size: 0.48rem; font-weight: 600; color: #6A1B9A; line-height: 1.1; }
.cal-nak { font-size: 0.45rem; font-weight: 500; color: #1565C0; line-height: 1.1; }
.calendar-dots { display: flex; gap: 2px; margin-top: 1px; }
.calendar-dot { width: 4px; height: 4px; border-radius: 50%; }
.btn-xs { font-size: 0.65rem; padding: 2px 8px; border-radius: 10px; line-height: 1.4; }
.btn-xs:hover { opacity: 0.85; }
@media (max-width: 480px) {
  .calendar-cell { min-height: 36px; padding: 2px 0; }
  .calendar-day-num { font-size: 0.58rem; }
  .cal-tithi { font-size: 0.42rem; }
  .cal-nak { font-size: 0.4rem; }
  .calendar-dot { width: 3px; height: 3px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   DS ASTROai — Recommended UI palette v2 (Rose & Cocoa)
   bg #FFFFFF · header/nav #6B403C · cards/panels #F0E0D3 · primary #FF857A
   secondary accent #ADEBB3 · borders #6B403C · headings/text #6B403C
   (scoped to the light theme so [data-theme="dark"] stays untouched)
   ══════════════════════════════════════════════════════════════════════════ */
:root:not([data-theme="dark"]) {
  --emerald: #6B403C;
  --emerald-deep: #6B403C;
  --emerald-soft: #96625C;
  --antique-gold: #FF857A;
  --antique-gold-deep: #E8695E;
  --antique-gold-soft: #ADEBB3;
  --parchment: #FFFFFF;
  --sage-card: #F0E0D3;
  --sage-border: #6B403C;
  --muted-gold: #FF857A;
  --warm-olive: #ADEBB3;
  --warm-caramel: #FF857A;
  --soft-cream: #FFFFFF;
  --orange: #6B403C;
  --maroon: #6B403C;
  --maroon-light: #FF857A;
  --maroon-dark: #563330;
  --gold: #FF857A;
  --gold-light: #ADEBB3;
  --gold-dark: #E8695E;
  --cream: #FFFFFF;
  --bg-cream: #FFFFFF;
  --bg-card: #F0E0D3;
  --bg-card-hover: #E0CBB7;
  --bg-subtle: rgba(107, 64, 60, 0.07);
  --border-color: #6B403C;
  --border-soft: #6B403C;
  --text-primary: #6B403C;
  --text-secondary: #6B403C;
  --card-bg: #F0E0D3;
  --ds-orange: #6B403C;
  --ds-accent: #FF857A;
  --ds-background: #FFFFFF;
  --ds-ivory: #F0E0D3;
  --ds-line: #6B403C;
  --ds-ink: #6B403C;
  --ds-text: #6B403C;
  --ds-gold: #FF857A;
  --ds-heading: #6B403C;
  --ds-brown: #6B403C;
}

/* Header / side nav — brown bars with light text */
:root:not([data-theme="dark"]) .navbar-topbar--single { background: #6B403C !important; border-bottom-color: #6B403C !important; }
:root:not([data-theme="dark"]) .navbar-astro { background: #6B403C !important; border-bottom-color: #6B403C !important; }
:root:not([data-theme="dark"]) .navbar-astro .hnav-link,
:root:not([data-theme="dark"]) .navbar-astro .hnav-group-btn { color: #FFF3EA !important; }
:root:not([data-theme="dark"]) .navbar-astro .navbar-brand { color: #FFF3EA !important; }

/* Cards / panels — rose */
:root:not([data-theme="dark"]) .card-astro { background: #F0E0D3 !important; }
:root:not([data-theme="dark"]) .ds2-glance-card { background: #F0E0D3 !important; }

/* Primary buttons — coral */
:root:not([data-theme="dark"]) .btn-gold { background: linear-gradient(135deg, #FF857A, #E8695E) !important; }
:root:not([data-theme="dark"]) .btn-gold:hover { background: linear-gradient(135deg, #FF9E96, #FF857A) !important; }

/* Print stays clean white */
@media print {
  :root:not([data-theme="dark"]) .card-astro,
  :root:not([data-theme="dark"]) .ds2-glance-card { background: #fff !important; }
}

/* ═══ Palette v2 — mobile chrome + remaining hardcoded spots (light theme) ═══ */:root:not([data-theme="dark"]) body { background: #FFFFFF; }

/* Hero banner (dashboard) — brown with coral accent */
:root:not([data-theme="dark"]) .ds2-hero { background: linear-gradient(120deg, #6B403C 0%, #85544E 60%, #FF857A 135%); }
:root:not([data-theme="dark"]) .ds2-hero .ds-eyebrow,
:root:not([data-theme="dark"]) .ds2-hero .ds2-hero-tagline { color: #FFD9C9; }
:root:not([data-theme="dark"]) .ds2-hero h1 { color: #FFF3EA; }

/* Sidebar nav tabs (drawer + desktop side nav) — green accent for active */
:root:not([data-theme="dark"]) .nav-astro-tab.active {
  background: #ADEBB3 !important;
  color: #6B403C !important;
  box-shadow: 0 2px 10px rgba(107, 64, 60, 0.12) !important;
}

/* Today band marquee label */
:root:not([data-theme="dark"]) .lx-today-band .lx-marquee-label {
  background: linear-gradient(135deg, #6B403C, #85544E);
  border-color: rgba(255, 133, 122, 0.5);
}

/* Mobile bottom navigation — brown bar, coral active */
:root:not([data-theme="dark"]) .mobile-bottom-nav { background: #6B403C; border-top: 1px solid #6B403C; }
:root:not([data-theme="dark"]) .mobile-bottom-nav-item { color: #FFF3EA; }
:root:not([data-theme="dark"]) .mobile-bottom-nav-item.active { color: #FF857A; background: rgba(255, 133, 122, 0.18); }

/* Mobile hamburger drawer — themed tints */
:root:not([data-theme="dark"]) .mobile-drawer-header { background: var(--bg-card); }
:root:not([data-theme="dark"]) .mobile-drawer-user { background: rgba(255, 133, 122, 0.08); }
:root:not([data-theme="dark"]) .mobile-drawer-avatar { background: rgba(255, 133, 122, 0.16); }

/* ── Match results: sticky AI prompt bar (fixed top, scrollable chips) ── */
.match-prompt-bar {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--bg-card);
  border: 1px solid var(--border-soft);
  border-radius: 12px;
  padding: 8px 10px;
  margin-bottom: 10px;
}
.match-prompt-chips {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 8px;
}
.match-prompt-chips .ds2-sugg { white-space: normal; text-align: left; }

:root {
  --ds-ink: #203D32;
  --ds-ink-soft: #5F6F66;
  --ds-cream: #F5F5E8;
  --ds-paper: #FFFFFF;
  --ds-surface: #FFFFFF;
  --ds-gold: #B99A45;
  --ds-gold-soft: #EFE7CE;
  --ds-plum: #426B5A;
  --ds-purple: #426B5A;
  --ds-line: #E9DCCB;
  --ds-border: #E9DCCB;
  --ds-muted: #806B58;
  --ds-shadow: 0 16px 42px rgba(113,54,0,.10);
  --ds-radius: 20px;
}
body { font-family: 'DM Sans', Inter, sans-serif; background: var(--ds-cream); color: var(--ds-ink); }
body::before { opacity: .018 !important; background-size: 520px auto !important; }
h1,h2,h3,h4,.ds-home-page h1,.ds-home-page h2,.ds-dashboard h1,.ds-dashboard h2 { font-family: 'Playfair Display', Georgia, serif; }

/* Logged-in application shell — chocolate/espresso header + sidebar */
.sidebar-nav-wrap { background: linear-gradient(180deg, #426B5A 0%, #203D32 100%) !important; color: #F5F5E8; border-right: 1px solid rgba(255,255,255,.12); box-shadow: 8px 0 28px rgba(32,61,50,.16); }
.sidebar-nav-wrap .nav-astro-tab, .sidebar-sub-link { color: #F5E4D0 !important; border-radius: 12px !important; font-size: .84rem !important; min-height: 38px; }
.sidebar-nav-wrap .nav-astro-tab:hover, .sidebar-sub-link:hover { background: rgba(217,168,79,.16) !important; color: #FDFBD4 !important; }
.sidebar-sub { border-left-color: rgba(192,88,0,.5) !important; }
.navbar-topbar { background: var(--ds-primary) !important; border-bottom: 1px solid rgba(255,255,255,.12); padding: .5rem 0 !important; }
.navbar-astro { background: rgba(255,253,245,.92) !important; backdrop-filter: blur(14px); }
.topbar-brand-sub { color: rgba(253,251,212,.85) !important; }
main.container-fluid { padding: 0 !important; }

/* Dashboard */
.ds-dashboard { max-width: 1480px; margin: 0 auto; padding: 30px 34px 70px; }
.ds-dashboard-header { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:24px; }
.ds-eyebrow, .ds-card-kicker, .ds-home-mini-label { color: var(--ds-gold); font-size:.68rem; font-weight:800; letter-spacing:1.8px; text-transform:uppercase; }
.ds-dashboard-header h1 { font-size:clamp(1.9rem,3.2vw,2.7rem); margin:.2rem 0 .2rem; color:var(--ds-ink); letter-spacing:-.03em; }
.ds-dashboard-header p { margin:0; color:#7b7587; font-size:.88rem; }
.ds-header-actions { display:flex; align-items:center; gap:10px; }
.ds-premium-pill { display:none !important; }
.ds-profile-chip { display:flex; align-items:center; gap:9px; padding:8px 12px 8px 8px; background:rgba(255,255,255,.72); backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px); border:1px solid var(--ds-line); border-radius:999px; color:var(--ds-ink); text-decoration:none; box-shadow:0 6px 18px rgba(56,36,13,.06); }
.ds-profile-chip img,.ds-profile-chip>span { width:32px; height:32px; border-radius:50%; object-fit:cover; display:grid; place-items:center; background:#eee4f6; color:var(--ds-purple); }
.ds-dashboard-grid { display:grid; gap:16px; }
.ds-dashboard-top { grid-template-columns: minmax(0,1.6fr) minmax(250px,.8fr) minmax(250px,.8fr); }
.ds-guidance-card { position:relative; min-height:300px; overflow:hidden; border-radius:24px; padding:28px; color:#fff; background:radial-gradient(circle at 78% 18%, rgba(192,88,0,.3), transparent 22%), radial-gradient(circle at 82% 78%, rgba(214,168,79,.24), transparent 26%), linear-gradient(135deg,#38240D,#713600 55%,#C05800); box-shadow:0 16px 48px rgba(56,36,13,.2); }
.ds-guidance-card h2 { font-size:2rem; margin:12px 0 8px; position:relative; z-index:2; }
.ds-guidance-card p { max-width:530px; color:#e8e5f1; line-height:1.7; position:relative; z-index:2; }
.ds-guidance-meta { display:flex; gap:8px; flex-wrap:wrap; position:relative; z-index:2; }
.ds-guidance-meta span { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.12); border-radius:999px; padding:6px 10px; font-size:.73rem; }
.ds-button { border:0; border-radius:12px; padding:11px 16px; font-weight:700; cursor:pointer; text-decoration:none; display:inline-flex; gap:10px; align-items:center; }
.ds-button-light { background:#F5E4D0; color:#38240D; position:relative; z-index:2; }
.ds-button-primary { background:linear-gradient(135deg,var(--ds-gold),#D6A84F); color:#38240D; }
.ds-celestial-orb { position:absolute; right:8%; bottom:-25px; width:180px; height:180px; border-radius:50%; display:grid; place-items:center; font-size:7rem; color:#D6A84F; background:radial-gradient(circle at 35% 35%,#FDF9E8,#C05800 52%,#38240D 53%,transparent 54%); opacity:.7; }
.ds-surface-card { position:relative; overflow:hidden; background:rgba(255,255,255,.72); backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px); border:1px solid var(--ds-line); border-radius:22px; padding:23px; box-shadow:0 10px 32px rgba(56,36,13,.055); }
.ds-surface-card h2 { font-size:1.28rem; margin:9px 0 10px; color:var(--ds-ink); }
.ds-surface-card p { color:#806F61; font-size:.83rem; line-height:1.65; }
.ds-dasha-card { background:linear-gradient(145deg,#fffdf9,#f8f0df); }
.ds-planet-orb { position:absolute; right:-34px; top:24px; width:115px; height:115px; border-radius:50%; background:radial-gradient(circle at 35% 30%,#f7dc9d,#c18a27 58%,#76501e); color:#fff; display:grid; place-items:center; font-size:2rem; opacity:.8; }
.ds-inline-link,.ds-text-button { color:var(--ds-plum); font-size:.78rem; font-weight:800; text-decoration:none; }
.ds-data-list { display:grid; gap:9px; margin:15px 0; }
.ds-data-list div { display:flex; justify-content:space-between; gap:12px; font-size:.75rem; border-bottom:1px dashed #eadfce; padding-bottom:7px; }
.ds-data-list span { color:#806F61; }.ds-data-list b { color:var(--ds-ink); text-align:right; }
.ds-section { margin-top:34px; }.ds-section-heading { margin-bottom:14px; }.ds-section-heading h2 { margin:3px 0 0; font-size:1.65rem; letter-spacing:-.025em; }
.ds-action-grid { display:grid; grid-template-columns:repeat(8,minmax(0,1fr)); gap:10px; }
.ds-action-card { min-height:120px; padding:15px 12px; background:rgba(255,255,255,.72); backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px); border:1px solid var(--ds-line); border-radius:16px; color:var(--ds-ink); text-decoration:none; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; transition:all .25s ease; }
.ds-action-card:hover { transform:translateY(-4px); border-color:#D6A84F; box-shadow:0 16px 36px rgba(113,54,0,.1); color:var(--ds-ink); }
.ds-action-icon { width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#f5ecff;color:var(--ds-purple);font-size:1.25rem; }.ds-action-card strong{font-size:.8rem}.ds-action-card small{font-size:.65rem;color:#806F61;line-height:1.35}
.ds-lower-grid { grid-template-columns:1.25fr 1fr; margin-top:16px; }.ds-card-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.ds-chart-summary { display:flex; gap:20px; align-items:center; margin-top:18px; }.ds-mini-chart { width:170px;height:150px;border:1px solid #d6bf94;background:linear-gradient(135deg,#fffaf0,#f6ebd1); display:grid;grid-template-columns:repeat(3,1fr); position:relative; padding:10px; flex:none; }.ds-mini-chart span { border:1px solid #dfc795; display:grid;place-items:center;font-size:.6rem;color:#866a37; }.ds-mini-chart i { position:absolute; inset:45px; border:1px solid #c99b43; border-radius:50%; }.ds-chart-facts { display:grid; gap:11px; }.ds-chart-facts div{display:flex;flex-direction:column}.ds-chart-facts span{font-size:.66rem;color:#806F61}.ds-chart-facts b{font-size:.82rem;color:var(--ds-ink)}
.ds-family-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.ds-family-stats div{padding:16px 10px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(214,168,79,.2);border-radius:16px;text-align:center}.ds-family-stats b{display:block;font:700 1.35rem 'Playfair Display';color:var(--ds-plum)}.ds-family-stats span{font-size:.64rem;color:var(--ds-ink-soft)}.ds-recent-family{display:flex;flex-wrap:wrap;gap:9px}.ds-recent-family>div{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(214,168,79,.2);border-radius:999px;padding:7px 10px;font-size:.7rem}.ds-person-avatar{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#F5E4D0,#FFFFFF);color:var(--ds-purple);border:1px solid rgba(214,168,79,.2)}
.ds-kundali-carousel { display: grid; gap: 8px; }
.ds-kundali-carousel .astro-chart { max-width: 100%; }
.ds-kundali-carousel-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:8px; border-bottom:1px solid var(--ds-line); }
.ds-kundali-carousel-head b, .ds-kundali-carousel-head small { display:block; }
.ds-kundali-carousel-head b { color:var(--ds-ink); font-size:.82rem; }
.ds-kundali-carousel-head small { color:var(--ds-ink-soft); font-size:.65rem; }
.ds-kundali-thumbnail { display:grid; grid-template-columns:repeat(4, 1fr); width:min(100%, 310px); aspect-ratio:1; margin:4px auto; border:1px solid #d8b36a; background:#fffaf0; }
.ds-kundali-thumbnail-cell, .ds-kundali-thumbnail-empty { min-width:0; min-height:0; border:1px solid #e3c985; }
.ds-kundali-thumbnail-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:#7B2D26; font-size:1.05rem; }
.ds-kundali-thumbnail-cell.lagna { background:#fff0c9; box-shadow:inset 0 0 0 2px rgba(113,54,0,.25); }
.ds-kundali-thumbnail-cell small { max-width:100%; overflow:hidden; padding:0 2px; color:#c96a12; font-size:.58rem; font-weight:700; white-space:nowrap; text-overflow:ellipsis; }
.ds-kundali-basic-details { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 12px; color:var(--ds-ink-soft); font-size:.66rem; }
.ds-carousel-controls { display:flex; align-items:center; gap:6px; color:var(--ds-ink-soft); font-size:.65rem; }
.ds-carousel-controls button { width:25px; height:25px; padding:0; border:1px solid var(--ds-line); border-radius:50%; background:#fff4d5; color:var(--ds-plum); font-size:1.1rem; line-height:1; cursor:pointer; }
.ds-family-soft-link { display:inline-flex; align-items:center; gap:7px; margin-top:16px; color:var(--ds-plum); font-size:.72rem; font-weight:800; text-decoration:none; }
.ds-family-soft-link:hover { color:var(--ds-gold); }
.ds-ai-card{margin-top:16px;padding:28px;border-radius:22px;background:linear-gradient(135deg,rgba(255,253,245,.88),rgba(255,255,255,.95));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #C05800;display:grid;grid-template-columns:1fr 1.3fr;gap:16px;align-items:center;box-shadow:0 12px 36px rgba(113,54,0,.06)}
.ds-ai-card h2{font-size:1.6rem;margin:8px 0;letter-spacing:-.02em}
.ds-ai-card p{color:var(--ds-ink-soft);font-size:.84rem;max-width:600px;line-height:1.65}
.ds-ai-input{background:rgba(255,255,255,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(214,168,79,.3);border-radius:14px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;color:var(--ds-ink-soft);text-decoration:none;font-size:.8rem}
.ds-ai-input b{width:34px;height:34px;border-radius:10px;background:var(--ds-purple);color:#fff;display:grid;place-items:center}
.ds-suggestions{grid-column:2;display:flex;gap:8px;flex-wrap:wrap}
.ds-suggestions button{border:1px solid rgba(214,168,79,.3);background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:7px 11px;font-size:.69rem;color:var(--ds-ink-soft);cursor:pointer;transition:all .2s}
.ds-suggestions button:hover{border-color:var(--ds-gold);background:rgba(255,255,255,.9)}
.ds-dashboard-loading{min-height:70vh}.ds-skeleton{background:linear-gradient(90deg,#eee7dc,#f7f2ea,#eee7dc);background-size:200% 100%;animation:dsShimmer 1.2s infinite;border-radius:18px}.ds-skeleton-title{width:35%;height:38px;margin-bottom:20px}.ds-skeleton-hero{height:300px}.ds-skeleton-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:15px}.ds-skeleton-card{height:150px}.ds-error{padding:35px;background:#fff;border:1px solid #eadbd4;border-radius:18px;display:grid;gap:8px}.ds-error span{color:#806F61;font-size:.85rem}@keyframes dsShimmer{to{background-position:-200% 0}}

/* Public home — lightweight hero (no big banner, no heavy images) */
.ds-home-page{max-width:1280px;margin:0 auto;padding:16px 20px 48px}
.ds-home-hero{min-height:auto;border-radius:20px;padding:28px 24px;display:grid;grid-template-columns:1.35fr .75fr;gap:20px;align-items:center;position:relative;background:linear-gradient(135deg,#FFFEF7 0%,#FFF8E1 60%,#FFFDE7 100%);border:1.5px solid #F5D67A;box-shadow:0 6px 18px rgba(113,54,0,0.06);color:var(--ds-ink)}
.ds-home-hero::before{display:none}
.ds-home-hero--light{padding:22px 20px;gap:16px}
.ds-home-hero-copy{max-width:640px}
.ds-home-badge{display:inline-flex;border:1px solid #F5D67A;background:#FFFDE7;padding:6px 10px;border-radius:999px;color:var(--maroon);font-size:.62rem;font-weight:800;letter-spacing:1.2px}
.ds-home-page h1{font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.05;letter-spacing:-0.8px;margin:12px 0 8px;font-weight:800;color:var(--maroon)}
.ds-home-page h1 em{font-style:normal;color:var(--gold-dark)}
.ds-home-lead{max-width:560px;color:var(--ds-ink-soft);font-size:.88rem;line-height:1.6;font-weight:400}
.ds-home-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 10px}
.ds-home-primary,.ds-home-secondary{border-radius:10px;padding:10px 16px;font-weight:800;cursor:pointer;display:inline-flex;gap:8px;align-items:center;font-size:.82rem;transition:all .15s ease;border:1.5px solid transparent}
.ds-home-primary{background:var(--maroon);color:#FFF8E1;border-color:var(--maroon-dark);box-shadow:0 4px 12px rgba(113,54,0,0.18)}
.ds-home-primary:hover{transform:translateY(-1px);background:var(--maroon-dark)}
.ds-home-secondary{background:#fff;border-color:#F5D67A;color:var(--maroon)}
.ds-home-secondary:hover{background:#FFFDE7}
.ds-home-trust{display:flex;gap:12px;flex-wrap:wrap;color:var(--ds-ink-soft);font-size:.68rem}
.ds-home-hero-card{background:#fff;border:1.5px solid #F5D67A;border-radius:16px;padding:14px;box-shadow:0 4px 12px rgba(113,54,0,0.05)}
.ds-hero-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ds-hero-mini-grid div{background:linear-gradient(135deg,#FFFDE7,#FFF8E1);border:1px solid #FFE082;border-radius:12px;padding:10px;text-align:center}
.ds-hero-mini-grid span{font-size:1.1rem;display:block}
.ds-hero-mini-grid b{font-size:.72rem;color:var(--maroon);display:block;margin-top:2px}
.ds-hero-mini-grid small{font-size:.62rem;color:var(--ds-ink-soft)}
.ds-hero-mini-foot{text-align:center;color:var(--ds-ink-soft);font-size:.60rem;margin-top:8px;letter-spacing:0.3px}
.ds-home-hero-art,.ds-home-logo-orbit,.ds-sun-ring,.ds-orbit-label{display:none !important}

/* Stats bar */
.ds-home-stats-bar{display:flex;gap:0;margin:0 0 16px;border:1px solid var(--ds-line);border-radius:18px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;box-shadow:0 8px 24px rgba(56,36,13,.04)}
.ds-home-stats-bar .ds-home-stat-item{flex:1;padding:18px 12px;text-align:center;border-right:1px solid var(--ds-line)}
.ds-home-stats-bar .ds-home-stat-item:last-child{border-right:0}
.ds-home-stats-bar b{display:block;font:700 1.6rem 'Playfair Display';color:var(--ds-plum);margin-bottom:2px}
.ds-home-stats-bar span{font-size:.63rem;color:var(--ds-ink-soft);letter-spacing:.3px}

/* Today strip — glass card */
.ds-home-today{margin:16px 0 50px;padding:16px 22px;border:1px solid var(--ds-line);background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:0 8px 24px rgba(56,36,13,.04)}
.ds-home-today strong{display:block;color:var(--ds-ink);font-size:.88rem;margin-top:2px}
.ds-home-today-items{display:flex;gap:14px;flex-wrap:wrap;color:#716a7c;font-size:.72rem}
.ds-home-today>a{color:var(--ds-plum);font-weight:800;font-size:.74rem;text-decoration:none;white-space:nowrap}
/* Sections — glass card treatment */
.ds-home-section{padding:28px 0}
.ds-home-section-title{text-align:center;max-width:780px;margin:0 auto 32px}
.ds-home-section-title>span{color:var(--ds-gold);font-size:.7rem;font-weight:800;letter-spacing:2.2px;text-transform:uppercase}
.ds-home-section-title h2{font-size:clamp(1.8rem,3.2vw,2.6rem);margin:10px 0;color:var(--ds-ink);letter-spacing:-.03em}
.ds-home-section-title p{margin:0;color:var(--ds-ink-soft);font-size:.9rem;line-height:1.75}

.ds-feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ds-feature-card{min-height:140px;padding:20px;background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--ds-line);border-radius:18px;display:flex;align-items:flex-start;gap:12px;color:var(--ds-ink);text-decoration:none;transition:all .25s ease}
.ds-feature-card:hover{transform:translateY(-4px);border-color:#D6A84F;box-shadow:0 16px 40px rgba(113,54,0,.1);color:var(--ds-ink)}
.ds-feature-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#F5E4D0,#FFFFFF);font-size:1.3rem;flex:none;border:1px solid rgba(214,168,79,.2)}
.ds-feature-content{display:flex;flex-direction:column;gap:5px;flex:1}
.ds-feature-content strong{font-size:.88rem;letter-spacing:-.01em}
.ds-feature-content small{color:var(--ds-ink-soft);font-size:.7rem;line-height:1.5}
.ds-feature-arrow{color:var(--ds-gold);font-weight:800;transition:transform .2s}
.ds-feature-card:hover .ds-feature-arrow{transform:translateX(4px)}

.ds-home-astro-band{margin:35px 0;padding:48px 52px;border-radius:28px;background:linear-gradient(135deg,rgba(255,253,245,.9),rgba(255,255,255,.95));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #C05800;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:0 12px 36px rgba(113,54,0,.06)}
.ds-home-astro-band h2{font-size:2.2rem;margin:8px 0;letter-spacing:-.03em}
.ds-home-astro-band p{max-width:700px;color:var(--ds-ink-soft);font-size:.9rem;line-height:1.75}
.ds-home-stats{display:flex;gap:10px;flex:none}
.ds-home-stats div{min-width:110px;padding:18px 14px;border-radius:16px;background:rgba(255,255,255,.8);border:1px solid rgba(214,168,79,.25);text-align:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.ds-home-stats b{display:block;font:700 1.6rem 'Playfair Display';color:var(--ds-plum)}
.ds-home-stats span{font-size:.64rem;color:var(--ds-ink-soft);letter-spacing:.3px}

.ds-style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ds-style-card{text-align:left;border:1px solid var(--ds-line);background:rgba(255,255,255,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:20px;padding:28px;cursor:pointer;display:flex;flex-direction:column;gap:10px;transition:all .25s ease}
.ds-style-card:hover{transform:translateY(-4px);border-color:#D6A84F;box-shadow:0 16px 40px rgba(113,54,0,.1)}
.ds-chart-glyph{font-size:2.4rem;color:var(--ds-gold);font-family:serif}
.ds-style-card strong{font-size:.96rem;color:var(--ds-ink);letter-spacing:-.01em}
.ds-style-card small{color:var(--ds-ink-soft);font-size:.74rem;line-height:1.5}
.ds-style-card span{color:var(--ds-plum);font-size:.74rem;font-weight:800;margin-top:7px}

.ds-varga-section{background:linear-gradient(135deg,rgba(255,253,245,.9),rgba(255,255,255,.95));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:28px;padding:42px 36px;margin:35px 0;border:1px solid #C05800}
.ds-varga-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ds-varga-chip{background:rgba(255,255,255,.8);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(214,168,79,.25);border-radius:13px;padding:12px 14px;display:grid;grid-template-columns:40px 1fr 16px;align-items:center;text-decoration:none;color:var(--ds-ink);transition:all .2s ease}
.ds-varga-chip:hover{border-color:#D6A84F;transform:translateY(-2px);box-shadow:0 10px 24px rgba(113,54,0,.08)}
.ds-varga-chip b{font-size:.74rem;color:var(--ds-gold)}
.ds-varga-chip span{font-size:.72rem}
.ds-varga-chip i{font-style:normal;color:var(--ds-gold);font-weight:800}

.ds-home-ai{margin:45px 0;padding:56px 52px;text-align:center;border-radius:30px;background:linear-gradient(135deg,rgba(255,253,245,.92),rgba(255,255,255,.98));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid #C05800;position:relative;overflow:hidden;box-shadow:0 20px 52px rgba(56,36,13,.07)}
.ds-home-ai::before{content:'';position:absolute;width:480px;height:480px;border:1.5px solid rgba(214,168,79,.2);border-radius:50%;left:-140px;top:-260px}
.ds-ai-stars{color:var(--ds-gold);letter-spacing:8px;font-size:1.2rem}
.ds-home-ai .ds-home-mini-label{color:var(--ds-gold)}
.ds-home-ai h2{font-size:2.4rem;max-width:760px;margin:12px auto;letter-spacing:-.03em}
.ds-home-ai p{max-width:700px;margin:0 auto 24px;color:var(--ds-ink-soft);font-size:.9rem;line-height:1.75}
.ds-home-ai-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.ds-home-ai-actions>span{padding:10px 14px;border:1px solid rgba(214,168,79,.3);background:rgba(255,255,255,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;color:var(--ds-ink-soft);font-size:.72rem}

.ds-home-bottom-cta{padding:36px 42px;background:linear-gradient(135deg,#713600,#C05800);border:none;border-radius:24px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#fff;box-shadow:0 16px 44px rgba(56,36,13,.18)}
.ds-home-bottom-cta h2{font-size:1.9rem;margin:6px 0;letter-spacing:-.03em}
.ds-home-bottom-cta p{color:rgba(245,237,224,.72);font-size:.88rem;margin:0}

/* Astro results: all sections available, clearer information architecture */
.sidebar-nav-wrap .nav-astro-tab.active { background:rgba(245,237,224,.22) !important; color:#FDFBD4 !important; }
.sidebar-nav-wrap .nav-astro-tab { padding:9px 11px !important; margin:2px 6px; }
.info-bar { background:#fff !important; border:1px solid var(--ds-line) !important; border-radius:18px !important; padding:12px 15px !important; box-shadow:0 6px 20px rgba(56,36,13,.04); }
.mobile-nav-wrap .nav-scroll { gap:6px !important; padding:4px 0 !important; }
.mobile-nav-wrap .nav-astro-tab { border:1px solid var(--ds-line) !important; background:#fff !important; border-radius:999px !important; padding:8px 11px !important; font-size:.7rem !important; }
.mobile-nav-wrap .nav-astro-tab.active { background:#F5E4D0 !important; color:#C05800 !important; border-color:#C05800 !important; }
.card-astro { border-color:var(--ds-line) !important; border-radius:20px !important; box-shadow:0 7px 24px rgba(56,36,13,.045); }
.section-label { color:#8b7d65 !important; font-size:.65rem !important; letter-spacing:.5px; }

/* Horoscope entry */
#form-section .card-astro { background:#fff !important; }
#form-section .card-header { background:#fffaf1 !important; border-bottom:1px solid var(--ds-line) !important; border-radius:20px 20px 0 0 !important; }

@media (max-width:1100px){.ds-dashboard-top{grid-template-columns:1fr 1fr}.ds-guidance-card{grid-column:1/-1}.ds-action-grid{grid-template-columns:repeat(4,1fr)}.ds-feature-grid{grid-template-columns:repeat(3,1fr)}.ds-varga-grid{grid-template-columns:repeat(4,1fr)}.ds-home-hero{grid-template-columns:1fr;padding:48px}.ds-home-hero-art{display:none}.ds-home-astro-band{flex-direction:column;align-items:flex-start}.ds-home-stats{width:100%}.ds-home-stats div{flex:1}}
@media (max-width:760px){.ds-dashboard{padding:20px 14px 50px}.ds-dashboard-header{align-items:flex-start}.ds-header-actions{display:none}.ds-dashboard-top,.ds-lower-grid{grid-template-columns:1fr}.ds-guidance-card{min-height:280px}.ds-action-grid{grid-template-columns:repeat(2,1fr)}.ds-ai-card{grid-template-columns:1fr}.ds-suggestions{grid-column:auto}.ds-chart-summary{flex-direction:column;align-items:flex-start}.ds-home-page{padding:10px 12px 45px}.ds-home-hero{padding:36px 24px;border-radius:24px;min-height:auto}.ds-home-page h1{font-size:2.7rem;letter-spacing:-1px}.ds-home-lead{font-size:.9rem}.ds-home-today{align-items:flex-start;flex-direction:column}.ds-feature-grid{grid-template-columns:1fr 1fr}.ds-style-grid{grid-template-columns:1fr}.ds-varga-grid{grid-template-columns:repeat(2,1fr)}.ds-home-ai{padding:34px 20px}.ds-home-ai h2{font-size:1.7rem}.ds-home-bottom-cta{flex-direction:column;align-items:flex-start}.ds-home-stats{display:grid;grid-template-columns:repeat(3,1fr)}.ds-home-astro-band{padding:28px 22px}}
@media (max-width:430px){.ds-feature-grid{grid-template-columns:1fr}.ds-action-grid{grid-template-columns:1fr 1fr}.ds-home-page h1{font-size:2.3rem}.ds-home-trust{gap:7px;flex-direction:column}.ds-home-hero-actions>*{width:100%;justify-content:center}.ds-home-stats div{min-width:0}.ds-varga-section{padding:28px 16px}}

/* Warm citrus and botanical theme overrides — glassmorphism */
body { background: var(--ds-cream); }
.sidebar-nav-wrap .nav-astro-tab.active {
  background: rgba(192,88,0,.22) !important;
  color: #FDFBD4 !important;
}
.sidebar-sub { border-left-color: rgba(192,88,0,.45) !important; }
.ds-guidance-card {
  background: radial-gradient(circle at 78% 18%, rgba(192,88,0,.30), transparent 22%),
    radial-gradient(circle at 82% 78%, rgba(255,233,209,.24), transparent 26%),
    linear-gradient(135deg, #38240D, #713600 58%, #C05800);
}
.ds-button-primary, .ds-home-primary {
  background: linear-gradient(135deg, #713600, #C05800);
  color: #FDFBD4;
}
.ds-action-icon, .ds-feature-icon { background: linear-gradient(135deg, #F5E4D0, #FFFFFF); color: #C05800; }
.ds-home-hero {
  background: radial-gradient(circle at 82% 42%, rgba(192,88,0,.35), transparent 28%),
    linear-gradient(135deg, #38240D, #713600 58%, #C05800);
}
.ds-home-page h1 em { color: #D6A84F; }
.ds-home-badge { color: #FDFBD4; border-color: rgba(192,88,0,.45); background: rgba(255,255,255,.08); }
.ds-home-astro-band { background: linear-gradient(135deg, rgba(255,253,245,.9), rgba(255,255,255,.95)); border-color: #C05800; }
.ds-ai-card { background: linear-gradient(135deg, rgba(255,253,245,.88), rgba(255,255,255,.95)); border-color: #C05800; }
.ds-ai-input b { background: #713600; }
.mobile-nav-wrap .nav-astro-tab.active { background: rgba(245,237,224,.22) !important; color: #FDFBD4 !important; border-color: rgba(245,237,224,.4) !important; }
.info-bar, .card-astro { background-color: rgba(255,255,255,.85) !important; backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px); }
#form-section .card-header { background: rgba(255,255,255,.9) !important; }

.family-hierarchy { display: grid; gap: 16px; }
.family-hierarchy-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; padding: 16px; border: 1px solid var(--ds-line); border-radius: 18px; background: linear-gradient(135deg, #F5E4D0, #FFFFFF); }
.family-hierarchy-kicker, .family-hierarchy-label { color: var(--ds-gold); font-size: .65rem; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.family-hierarchy-toolbar h5 { color: var(--ds-ink); font-size: 1.08rem; }
.family-hierarchy-toolbar small, .family-hierarchy-empty { color: var(--ds-ink-soft); font-size: .72rem; }
.family-hierarchy-actions, .family-hierarchy-selected-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.family-hierarchy-selected { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 2px solid var(--ds-gold); border-radius: 18px; background: #FFFFFF; }
.family-hierarchy-selected-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr); gap: 12px; align-items: stretch; }
.family-hierarchy-details { padding: 14px; border: 1px solid var(--ds-line); border-radius: 18px; background: #FFFFFF; }
.family-hierarchy-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; margin-top: 10px; }
.family-hierarchy-detail { display: flex; flex-direction: column; min-width: 0; gap: 2px; }
.family-hierarchy-detail span { color: var(--ds-ink-soft); font-size: .62rem; }
.family-hierarchy-detail strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ds-ink); font-size: .72rem; }
.family-hierarchy-notes { margin-top: 12px; padding-top: 9px; border-top: 1px dashed var(--ds-line); color: var(--ds-ink-soft); font-size: .68rem; line-height: 1.5; }
.family-hierarchy-person { display: flex; align-items: center; gap: 9px; width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid var(--ds-line); border-radius: 13px; background: #FFFFFF; color: var(--ds-ink); text-align: left; cursor: pointer; transition: .18s ease; }
.family-hierarchy-person:hover { transform: translateY(-2px); border-color: var(--ds-gold); box-shadow: 0 8px 18px rgba(113,54,0,.10); }
.family-hierarchy-avatar { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 50%; background: #F5E4D0; font-size: 1.15rem; }
.family-hierarchy-person-copy { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.family-hierarchy-person-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .76rem; }
.family-hierarchy-person-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ds-ink-soft); font-size: .64rem; }
.family-hierarchy-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.family-hierarchy-group { display: grid; align-content: start; gap: 8px; min-height: 118px; padding: 12px; border: 1px solid var(--ds-line); border-radius: 16px; background: rgba(255,255,255,.78); }
.family-hierarchy-list, .family-hierarchy-all-list { display: grid; gap: 7px; }
.family-hierarchy-all { padding: 12px; border-top: 1px solid var(--ds-line); }
.family-hierarchy-all-list { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin-top: 9px; }
@media (max-width: 850px) { .family-hierarchy-toolbar, .family-hierarchy-selected { align-items: stretch; flex-direction: column; } .family-hierarchy-selected-layout { grid-template-columns: 1fr; } .family-hierarchy-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .family-hierarchy-grid { grid-template-columns: 1fr; } .family-hierarchy-actions button { flex: 1 1 calc(50% - 7px); } }

/* Chocolate navigation surfaces */
.navbar-topbar { background: var(--ds-primary) !important; color: #FDFBD4 !important; border-bottom: 2px solid var(--gold) !important; backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px) !important; }
.navbar-astro { background: rgba(255,253,245,.88) !important; border-bottom-color: rgba(233,220,203,.6) !important; backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px) !important; }
.navbar-topbar .topbar-brand, .navbar-topbar .topbar-user,
.navbar-topbar .topbar-brand-sub, .navbar-topbar .topbar-icon-btn,
.navbar-topbar .hamburger-btn, .navbar-topbar .btn,
.navbar-topbar .topbar-tagline, .navbar-topbar .topbar-font-btn,
.navbar-topbar .topbar-theme-btn { color: #FDFBD4 !important; }
.navbar-topbar .topbar-icon-btn, .navbar-topbar .hamburger-btn,
.navbar-topbar .topbar-theme-btn, .navbar-topbar .topbar-font-btn { background: rgba(253,251,212,.14) !important; border-color: rgba(253,251,212,.3) !important; }
.navbar-topbar .topbar-font-btn.active { background: #FDFBD4 !important; border-color: #FDFBD4 !important; color: var(--ds-primary) !important; }
.navbar-topbar select { color: #FDFBD4 !important; background-color: rgba(253,251,212,.14) !important; }
.sidebar-nav-wrap { background: linear-gradient(180deg, #426B5A, #203D32) !important; color: #F5F5E8 !important; border-right: 1px solid rgba(185,154,69,.35) !important; box-shadow: 6px 0 24px rgba(32,61,50,.15) !important; backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px) !important; }
.sidebar-nav-wrap .nav-astro-tab, .sidebar-sub-link { color: #F5E4D0 !important; }
.sidebar-nav-wrap .nav-astro-tab:hover, .sidebar-sub-link:hover { background: rgba(217,168,79,.15) !important; color: #FDFBD4 !important; }
.sidebar-nav-wrap .nav-astro-tab.active { background: rgba(192,88,0,.5) !important; color: #FDFBD4 !important; }
.sidebar-nav-wrap .nav-astro-tab.active .nav-text,
.sidebar-nav-wrap .nav-astro-tab.active span { color: #FDFBD4 !important; }
.sidebar-nav-wrap .nav-astro-tab.active { background:rgba(245,237,224,.22) !important; color:#FDFBD4 !important; }
/* ── App shell: persistent sidebar + content ─────────────────── */
.astro-layout { display: block; }
@media (min-width: 768px) {
  .astro-layout { display: flex; align-items: flex-start; }
  .astro-sidebar-col { position: sticky; top: 0; height: 100vh; flex: none; z-index: 900; }
  .astro-sidebar-col .sidebar-nav-wrap { height: 100vh; overflow-y: auto; width: 264px; border-radius: 0; }
  .astro-sidebar-col .sidebar-collapsed { width: 64px !important; }
  .astro-layout-main { flex: 1 1 auto; min-width: 0; }
}
.sidebar-logo { display: flex; align-items: center; gap: 10px; padding: 14px 12px 10px; text-decoration: none; }
.sidebar-logo img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 1px solid rgba(185,154,69,.6); }
.sidebar-logo-text { display: flex; flex-direction: column; line-height: 1.1; color: #F5F5E8; font-weight: 800; font-size: 0.95rem; }
.sidebar-logo-text small { color: #B99A45; font-size: 0.6rem; letter-spacing: 2px; }
.sidebar-profile { display: flex; align-items: center; gap: 8px; margin: 0 12px 10px; padding: 8px 10px; border-radius: 12px; background: rgba(245,245,232,.08); border: 1px solid rgba(185,154,69,.3); }
.sidebar-profile-avatar { font-size: 1.1rem; }
.sidebar-profile-name { color: #F5F5E8; font-size: 0.74rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-nav-wrap .nav-astro-tab { color: #F5F5E8 !important; width: 100%; text-align: left; }
.sidebar-nav-wrap .nav-astro-tab:hover { background: rgba(185,154,69,.18) !important; color: #F5F5E8 !important; }
.sidebar-group { margin-bottom: 2px; }
.sidebar-sub { padding-left: 8px; }
.sidebar-sub-link { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; color: #EDEBD8 !important; text-decoration: none; font-size: 0.78rem; }
.sidebar-sub-link:hover { background: rgba(185,154,69,.18) !important; color: #F5F5E8 !important; }
/* ── Breadcrumbs + PageHeader (Emerald & Antique Gold) ───────── */
.astro-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: 0.72rem; margin-bottom: 8px; }
.astro-crumb { display: inline-flex; align-items: center; gap: 6px; }
.astro-crumb-sep { color: #B99A45; font-weight: 800; }
.astro-crumb-link { color: #426B5A; font-weight: 700; text-decoration: none; }
.astro-crumb-link:hover { text-decoration: underline; }
.astro-crumb-current { color: #203D32; font-weight: 800; }
.astro-page-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.astro-page-title { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(1.3rem, 3vw, 1.8rem); font-weight: 800; color: #203D32; margin: 0; letter-spacing: -0.01em; }
.astro-page-desc { color: #5F6F66; font-size: 0.82rem; margin: 4px 0 0; }
.astro-page-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.panchang-remedy-sections { margin-top: 18px; }
.panchang-remedy-sections .card { border-top: 3px solid var(--gold) !important; }
.panchang-remedy-result { display: grid; gap: 5px; padding: 11px 13px; border-left: 3px solid var(--maroon); border-radius: 8px; background: #fff8eb; color: var(--text-primary); font-size: .75rem; line-height: 1.55; }
.panchang-remedy-result strong { color: var(--maroon); font-size: .78rem; }
.panchang-remedy-result span { color: var(--text-muted); }
.panchang-submenu-link { border: 1px solid var(--border-color); background: var(--bg-card); color: var(--maroon); font-size: .7rem; }
.panchang-submenu-link:hover, .panchang-submenu-link.active { background: #fff0c9; border-color: var(--gold); color: var(--maroon-dark); }
.astrology-reference-page { max-width: 1440px; margin: 0 auto; padding: 12px 18px 70px; color: var(--ds-ink); }
.reference-breadcrumb { display:flex; gap:8px; color:var(--ds-ink-soft); font-size:.72rem; margin-bottom:14px; }
.reference-breadcrumb a { color:var(--ds-plum); text-decoration:none; }
.reference-hero { display:flex; align-items:center; gap:14px; padding:24px 28px; border:1px solid #dfc98d; border-radius:22px; background:linear-gradient(135deg,#7B2D26,#7B2D26 64%,#a34b19); color:#fff8e8; }
.reference-hero-mark { display:grid; place-items:center; width:48px; height:48px; border:1px solid rgba(255,209,102,.7); border-radius:50%; color:#ffd166; font-size:1.5rem; }
.reference-hero h1 { margin:3px 0 2px; font-size:clamp(1.5rem,3vw,2.5rem); }
.reference-hero p { margin:0; color:#ffe8b0; font-size:.86rem; }
.reference-hero .reference-eyebrow { color:#ffd166; }
.reference-badge { margin-left:auto; padding:7px 10px; border:1px solid rgba(255,209,102,.5); border-radius:999px; color:#ffe8b0; font-size:.68rem; }
.reference-toolbar { display:grid; gap:12px; margin:18px 0 10px; padding:14px; border:1px solid var(--ds-line); border-radius:17px; background:#fffdf7; }
.reference-search { display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid var(--ds-line); border-radius:11px; background:#fffaf0; color:var(--ds-plum); }
.reference-search input { width:100%; padding:11px 0; border:0; outline:0; background:transparent; color:var(--ds-ink); font:inherit; font-size:.82rem; }
.reference-filters { display:flex; flex-wrap:wrap; gap:7px; }
.reference-filters button { border:1px solid var(--ds-line); border-radius:999px; padding:7px 11px; background:#fff; color:var(--ds-plum); font-size:.68rem; cursor:pointer; }
.reference-filters button.active, .reference-filters button:hover { border-color:var(--gold); background:#fff0c9; color:var(--maroon-dark); }
.reference-verification-note { margin:9px 0; color:#9b681c; font-size:.7rem; }
.reference-content-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:16px; align-items:start; }
.reference-section { border:1px solid var(--ds-line); border-radius:19px; background:#fffdf7; overflow:hidden; }
.reference-section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:10px; padding:18px 20px; border-bottom:1px solid var(--ds-line); background:#fff8eb; }
.reference-section-heading h2 { margin:3px 0 0; font-size:1.25rem; }
.reference-section-heading>span { color:var(--ds-ink-soft); font-size:.68rem; }
.reference-table-wrap { overflow:auto; max-height:68vh; }
.reference-table { width:100%; min-width:720px; border-collapse:collapse; font-size:.78rem; }
.reference-table th, .reference-table td { padding:13px 14px; border-bottom:1px solid #eee4d3; text-align:left; vertical-align:top; line-height:1.6; }
.reference-table thead th { position:sticky; top:0; z-index:1; background:#7B2D26; color:#fff3d0; font-weight:700; }
.reference-table tbody tr { cursor:pointer; }
.reference-table tbody tr:hover { background:#fff6df; }
.reference-table tbody th { color:var(--ds-plum); font-weight:800; }
.reference-status { display:inline-block; color:#9b681c; border:1px solid #e7c986; border-radius:999px; padding:3px 7px; font-size:.6rem; white-space:nowrap; }
.reference-mobile-list { display:none; }
.reference-detail-panel { position:sticky; top:16px; padding:20px; border:1px solid #dfc98d; border-radius:19px; background:#fff8eb; }
.reference-detail-close { float:right; border:0; background:transparent; color:var(--ds-plum); font-size:1.4rem; cursor:pointer; }
.reference-detail-panel h2 { margin:5px 0 12px; color:var(--ds-plum); font-size:1.35rem; }
.reference-detail-copy { color:var(--ds-ink-soft); font-size:.78rem; line-height:1.65; }
.reference-detail-pada { display:grid; gap:3px; margin-top:9px; padding:9px; border-radius:10px; background:#fffdf7; font-size:.72rem; }
.reference-detail-pada b { color:var(--ds-plum); }
.reference-detail-pada span, .reference-source-note { color:var(--ds-ink-soft); }
.reference-source-note { display:block; margin-top:14px; font-size:.64rem; line-height:1.5; }
.reference-empty { padding:50px 24px; text-align:center; border:1px dashed #d8bd7f; border-radius:18px; background:#fff8eb; }
.reference-empty h2 { color:var(--ds-plum); }
.reference-empty p { max-width:540px; margin:auto; color:var(--ds-ink-soft); font-size:.8rem; }
@media (max-width: 850px) { .reference-content-layout { grid-template-columns:1fr; } .reference-detail-panel { position:static; } }
@media (max-width: 600px) { .astrology-reference-page { padding:8px 10px 45px; } .reference-hero { padding:20px 16px; } .reference-badge { display:none; } .reference-table-wrap { display:none; } .reference-mobile-list { display:grid; gap:8px; padding:10px; } .reference-mobile-card { display:grid; gap:5px; padding:13px; border:1px solid var(--ds-line); border-radius:12px; background:#fffaf0; color:var(--ds-ink); text-align:left; cursor:pointer; } .reference-mobile-card strong { color:var(--ds-plum); } .reference-mobile-card span { color:var(--ds-ink-soft); font-size:.72rem; } .reference-mobile-card em { color:#9b681c; font-size:.64rem; font-style:normal; } }
.nakshatra-pada-dosha-card { border-top: 3px solid var(--gold) !important; }
.nakshatra-pada-fact { height: 100%; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 12px; background: #fffaf0; }
.nakshatra-pada-fact span, .nakshatra-pada-fact b { display: block; }
.nakshatra-pada-fact span { color: var(--ds-ink-soft); font-size: .65rem; }
.nakshatra-pada-fact b { margin-top: 3px; color: var(--ds-ink); font-size: .78rem; }

/* ── Dashboard hero (DS brand) ─────────────────────────────── */
.ds2-hero-tagline {
  margin: 2px 0 6px;
  color: var(--ds-orange);
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.15rem, 2.4vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.ds2-hero-cta { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.ds2-hero-cta .btn { border-radius: 999px; font-weight: 800; padding: 9px 18px; font-size: .82rem; }
.ds2-hero-cta-primary { background: var(--ds-orange); color: #fff; border: 1px solid var(--ds-orange); box-shadow: 0 6px 16px rgba(113,54,0,.28); }
.ds2-hero-cta-primary:hover { background: var(--ds-maroon-dark); border-color: var(--ds-maroon-dark); color: #fff; }
.ds2-hero-cta-outline { background: #fff; color: var(--ds-orange); border: 1px solid var(--ds-border); }
.ds2-hero-cta-outline:hover { border-color: var(--ds-orange); color: var(--ds-orange); }

/* ── Today at a glance band ───────────────────────────────── */
.ds2-glance {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 6px 0 18px;
}
.ds2-glance-card {
  position: relative;
  overflow: hidden;
  padding: 16px 18px;
  border: 1px solid var(--ds-line);
  border-radius: 18px;
  background: var(--ds-ivory);
  box-shadow: 0 8px 24px rgba(113,54,0,.08);
}
.ds2-glance-kicker {
  color: var(--ds-gold);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.ds2-glance-value { color: var(--ds-ink); font-size: 1.08rem; font-weight: 800; }
.ds2-glance-sub { color: var(--ds-ink-soft); font-size: .7rem; line-height: 1.45; margin-top: 3px; }
.ds2-glance-ai { background: linear-gradient(135deg, #203D32, #426B5A); border-color: #B99A45; }
.ds2-glance-ai .ds2-glance-kicker { color: var(--ds-gold); }
.ds2-glance-ai .ds2-glance-tip { display: flex; flex-wrap: wrap; gap: 6px 12px; color: #F5E4D0; font-size: .76rem; line-height: 1.5; }
.ds2-glance-ai .ds2-glance-tip b { color: #fff; }
/* Merged Moon + Panchang card: full row, multi-column details */
.ds2-glance-panchang { grid-column: 1 / -1; }
.ds2-glance-card { min-width: 0; overflow-wrap: anywhere; }
.ds2-panchang-full { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px 20px; margin-top: 10px; }
.ds2-panchang-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; font-size: .78rem; font-weight: 400; color: var(--ds-ink); line-height: 1.65; padding: 3px 0; border-bottom: 1px dotted rgba(128,107,88,.18); }
.ds2-panchang-row:last-child { border-bottom: none; }
.ds2-panchang-row b { font-weight: 800; font-size: .88rem; }
.ds2-panchang-label { white-space: nowrap; }
.ds2-panchang-value { min-width: 0; overflow-wrap: anywhere; }
.ds2-panchang-year { grid-column: 1 / -1; font-size: .78rem; font-weight: 700; color: var(--ds-ink); background: rgba(212,175,55,.12); border: 1px solid rgba(212,175,55,.3); border-radius: 10px; padding: 8px 12px; margin: 0 0 4px; }
@media (max-width: 960px) { .ds2-panchang-full { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ds2-panchang-full { grid-template-columns: 1fr; } }
/* ── All-rashi today carousel (beside AI Tip card) ─────────────── */
.ds2-rashi-side { grid-column: span 3; display: flex; flex-direction: column; background: linear-gradient(135deg, #FDF6DE, #F9ECC3); border-color: rgba(212,175,55,.5); }
/* Inner rashi cards share the outer card bg */
.ds2-rashi-side .card-astro { background: transparent; border-color: rgba(212,175,55,.4); box-shadow: none; }
.ds2-rashi { margin: 6px 0 18px; }
.ds2-rashi-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.ds2-rashi-head h3 { font-size: 1rem; font-weight: 800; color: var(--ds-ink); margin: 0; }
.ds2-rashi-nav { display: flex; align-items: center; gap: 8px; }
.ds2-rashi-nav button { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--ds-line); background: var(--ds-ivory); color: var(--ds-ink); font-size: 1rem; font-weight: 800; line-height: 1; cursor: pointer; }
.ds2-rashi-nav button:hover { border-color: var(--ds-gold); color: var(--warm-caramel, #CE8946); }
.ds2-rashi-all { font-size: .76rem; font-weight: 700; color: var(--warm-caramel, #CE8946); text-decoration: none; white-space: nowrap; }
.ds2-rashi-rail { display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 12px; scrollbar-width: none; align-items: stretch; }
.ds2-rashi-rail::-webkit-scrollbar { display: none; }
.ds2-rashi-card { flex: 0 0 100%; scroll-snap-align: start; }
.ds2-rashi-card > .card { height: 100%; }
/* Tabbed single-rashi view: left tabs + content */
.ds2-rashi-body { display: flex; gap: 14px; margin-top: 10px; }
.ds2-rashi-tabs { display: flex; flex-direction: column; gap: 8px; flex: none; }
.ds2-rashi-tabs button { text-align: left; font-size: .76rem; font-weight: 800; padding: 9px 14px; border-radius: 12px; border: 1px solid var(--ds-line); background: transparent; color: var(--ds-ink-soft); cursor: pointer; white-space: nowrap; }
.ds2-rashi-tabs button.active { background: var(--warm-caramel, #CE8946); border-color: var(--warm-caramel, #CE8946); color: #fff; }
.ds2-rashi-content { flex: 1 1 auto; min-width: 0; height: 300px; overflow-y: auto; padding-right: 4px; }
.ds2-rashi-top { display: flex; align-items: center; gap: 8px; font-size: .95rem; color: var(--ds-ink); margin-bottom: 8px; }
.ds2-rashi-sym { font-size: 1.5rem; }
.ds2-rashi-ruler-inline { font-size: .72rem; font-weight: 700; color: var(--ds-gold); }
.ds2-rashi-para { font-size: .8rem; line-height: 1.65; color: var(--ds-ink); margin: 0; }
.ds2-rashi-pos { font-size: .72rem; font-weight: 800; color: var(--ds-ink-soft); }
/* ── Match report print cover (screen: hidden) ───────────────── */
.print-only { display: none; }
/* Share-time fresh mount of the match print doc — visible for html2canvas. */
.match-share-mount { display: block !important; }
.match-print-doc { display: none; }
.match-cover-logo { width: 130px; height: 130px; border-radius: 50%; object-fit: cover; margin-bottom: 6px; }
.match-cover-brand { font-size: 1.5rem; font-weight: 800; letter-spacing: 2px; color: var(--emerald-deep, #203D32); margin-top: 10px; }
.match-cover-title { font-size: 1.05rem; font-weight: 700; color: var(--emerald, #426B5A); margin-top: 4px; }
.match-cover-couple { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; width: 100%; margin-top: 22px; text-align: left; }
.match-cover-person { border: 1px solid #C9C49A; border-radius: 12px; padding: 12px 14px; }
.match-cover-emoji { font-size: 1.6rem; }
.match-cover-name { font-size: 1rem; font-weight: 800; margin: 2px 0 8px; }
.match-cover-row { display: flex; justify-content: space-between; gap: 10px; font-size: 0.78rem; padding: 3px 0; border-bottom: 1px dotted #C9C49A; }
.match-cover-row span { color: var(--text-muted); }
.match-cover-row b { text-align: right; overflow-wrap: anywhere; }
/* Day Ruler planetary table: planet | motion | degree | rashi */
.ds2-planet-table { display: flex; flex-direction: column; margin-top: 10px; border-top: 1px solid var(--ds-line); }
.ds2-planet-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto auto; gap: 8px; align-items: baseline; padding: 3px 0; border-bottom: 1px dotted rgba(128,107,88,.25); font-size: .72rem; }
.ds2-planet-name { font-weight: 700; color: var(--ds-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ds2-planet-shubha { color: #2a7d2a; font-weight: 700; white-space: nowrap; }
.ds2-planet-papa { color: #C62828; font-weight: 800; white-space: nowrap; }
.ds2-planet-motion { color: var(--text-muted); white-space: nowrap; }
.ds2-planet-deg { font-weight: 800; color: var(--ds-ink); white-space: nowrap; }
.ds2-planet-sign { color: var(--ds-ink-soft); white-space: nowrap; text-align: right; }
@media (max-width: 640px) { .ds2-rashi-body { flex-direction: column; } .ds2-rashi-tabs { flex-direction: row; flex-wrap: wrap; } }
/* ── Dashboard phone pass (≤640px) ───────────────────────────── */
@media (max-width: 640px) {
  .ds-dashboard.ds2 { padding: 14px 8px; }
  .ds2-hero { padding: 16px; border-radius: 16px; gap: 12px; margin-bottom: 12px; }
  .ds2-hero h1 { font-size: 1.28rem; }
  .ds2-hero .ds2-hero-tagline { font-size: 1.02rem; }
  .ds2-hero .ds-eyebrow { font-size: 0.6rem; }
  .ds2-hero-cta { width: 100%; }
  .ds2-hero-cta .btn { flex: 1 1 auto; text-align: center; }
  .ds2-hero-chips { gap: 8px; }
  .ds2-glance { gap: 10px; }
  .ds2-glance-card { padding: 12px 14px; border-radius: 14px; }
  .ds2-glance-value { font-size: 0.98rem; }
  .ds2-panchang-year { font-size: 0.72rem; padding: 7px 10px; }
  .ds2-panchang-row { font-size: 0.72rem; }
  .ds2-panchang-row b { font-size: 0.8rem; }
  .ds2-planet-row { font-size: 0.64rem; gap: 6px; }
  .rashi-score-table { grid-template-columns: 1fr; }
  .rashi-score-row { font-size: 0.7rem; }
  .ds2-rashi-tabs button { flex: 1 1 auto; font-size: 0.7rem; padding: 8px 10px; }
  .ds2-rashi-head h3 { font-size: 0.88rem; }
  .ds2-rashi-para { font-size: 0.76rem; }
}
/* Symmetric score tables (dashboard text mode) */
.rashi-score-table { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 18px; }
.rashi-score-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: baseline; padding: 3px 0; border-bottom: 1px dotted rgba(128,107,88,.25); font-size: .72rem; }
.rashi-score-label { color: var(--text-muted); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rashi-score-val { white-space: nowrap; }
.rashi-score-val b { color: var(--maroon); }
.rashi-score-val small { color: var(--text-muted); }
@media (max-width: 960px) { .ds2-glance { grid-template-columns: repeat(2, 1fr); } .ds2-rashi-side { grid-column: 1 / -1; } }
@media (max-width: 520px) { .ds2-glance { grid-template-columns: 1fr; } }

/* ── Dark theme for DS surfaces ────────────────────────────── */
[data-theme="dark"] .ds-dashboard,
[data-theme="dark"] .ds-home-page {
  --ds-ink: #FDFBD4;
  --ds-muted: #D6BFA3;
  --ds-cream: #24170C;
  --ds-paper: #38240D;
  --ds-surface: rgba(56,36,13,.85);
  --ds-gold: #D6A84F;
  --ds-gold-soft: #4D3017;
  --ds-plum: #F0C38A;
  --ds-purple: #F0C38A;
  --ds-line: #684B2E;
  --ds-border: #684B2E;
}
[data-theme="dark"] .ds-surface-card,
[data-theme="dark"] .ds-action-card,
[data-theme="dark"] .ds-feature-card,
[data-theme="dark"] .ds2-card,
[data-theme="dark"] .ds2-glance-card {
  background: rgba(56,36,13,.85);
  border-color: var(--ds-line);
}
[data-theme="dark"] .ds-home-hero { border-color: #684B2E; }
[data-theme="dark"] .ds-primary-button,
[data-theme="dark"] .ds2-hero-cta-primary { background: var(--ds-accent); border-color: var(--ds-accent); }
[data-theme="dark"] .ds2-hero-tagline { color: var(--ds-gold); }
[data-theme="dark"] .ds2-glance-ai { background: linear-gradient(135deg,#4D3017,#24170C); }

