/* ═══════════════════════════════════════════════════
   Panchang Darshak — main.css
   Complete design system: dark temple aesthetic
   Three themes: traditional (default), amoled, blue
   ═══════════════════════════════════════════════════ */

/* ─── CSS Variables — Traditional Theme (default) ─── */
:root {
  --bg-base:       #1a0e06;
  --bg-card:       #2a1a0e;
  --bg-card2:      #231508;
  --bg-input:      rgba(26,14,6,0.8);
  --border:        rgba(92,51,24,0.45);
  --border-gold:   rgba(244,161,36,0.4);
  --text-main:     #f5e6c8;
  --text-muted:    #c4a882;
  --text-dim:      #8b6e4e;
  --gold:          #f4a124;
  --gold-light:    #ffd270;
  --saffron:       #e85d04;
  --saffron-deep:  #b5450b;
  --saffron-light: #ff9a3c;
  --cream:         #fff3e0;
  --accent-red:    #ff6b6b;
  --accent-green:  #52c78a;
  --accent-blue:   #64b5f6;
  --accent-purple: #ce93d8;
  --r:             6px;
  --r-lg:          12px;
  --shadow:        0 2px 12px rgba(0,0,0,0.4);
  --shadow-lg:     0 4px 24px rgba(0,0,0,0.6);
  --font-body:     'Inter','Segoe UI',sans-serif;
  --font-head:     'Yatra One',cursive;
  --font-skt:      'Tiro Devanagari Sanskrit','Noto Sans Devanagari',serif;
}

[data-theme="amoled"] {
  --bg-base: #000000;
  --bg-card: #0a0a0a;
  --bg-card2: #111111;
  --bg-input: rgba(0,0,0,0.9);
  --border: rgba(60,60,60,0.6);
}

[data-theme="blue"] {
  --bg-base: #0a0f1e;
  --bg-card: #111827;
  --bg-card2: #0d1420;
  --bg-input: rgba(10,15,30,0.9);
  --border: rgba(30,58,138,0.5);
  --border-gold: rgba(99,161,244,0.4);
  --gold: #60a5fa;
  --gold-light: #93c5fd;
  --saffron: #3b82f6;
  --saffron-deep: #1d4ed8;
  --saffron-light: #7dd3fc;
}

/* Dark mode preference support */
@media (prefers-color-scheme: light) {
  [data-theme="traditional"],
  html[data-theme="traditional"] {
    --bg-base:       #f5f1ed;
    --bg-card:       #ede5dd;
    --bg-card2:      #e5dcd3;
    --bg-input:      rgba(245,241,237,0.8);
    --border:        rgba(210,170,130,0.45);
    --border-gold:   rgba(184,92,20,0.4);
    --text-main:     #2a1a0e;
    --text-muted:    #6b5344;
    --text-dim:      #9b8873;
    --gold:          #b8640f;
    --gold-light:    #d4a574;
    --saffron:       #c7430a;
    --saffron-deep:  #8b340a;
    --saffron-light: #ff7a1f;
    --cream:         #1a0e06;
    --shadow:        0 2px 12px rgba(0,0,0,0.1);
    --shadow-lg:     0 4px 24px rgba(0,0,0,0.15);
  }
}

/* ─── Reset & Base ─── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color: transparent; }
html { font-size:16px; scroll-behavior:smooth; scroll-padding-top: 100px; }
body {
  font-family: var(--font-body);
  background: var(--bg-base);
  color: var(--text-main);
  min-height: 100vh;
  line-height: 1.6;
  overflow-x: hidden;
  padding-bottom: calc(88px + env(safe-area-inset-bottom));
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  background-image: linear-gradient(90deg, var(--bg-base), rgba(92,51,24,0.01));
  background-attachment: fixed;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
}

/* ─── Skip Link ─── */
.skip-link {
  position:absolute; top:-40px; left:0; background:var(--saffron); color:#fff;
  padding:8px 16px; text-decoration:none; z-index:10000; border-radius:0 0 4px 0;
}
.skip-link:focus { top:0; }

/* ─── Typography ─── */
h1,h2,h3 { font-family: var(--font-head); }
.sec-heading {
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--gold);
  margin: 1.5rem 0 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--border);
}
.sec-heading::after { content:''; flex:1; height:1px; background:var(--border); margin-left:0.5rem; }

/* ─── Navigation ─── */
/* ─── Two-row nav: brand+icons top, tabs bottom ─── */
nav {
  position: sticky;
  top: 0;
  z-index: 200;
  background: rgba(26, 14, 6, 0.96);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  padding-top: env(safe-area-inset-top);
  display: flex;
  flex-direction: column;
}
.nav-top-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.4rem 1rem; gap: 0.5rem; height: 48px;
}
.nav-tab-row {
  display: flex; align-items: center; gap: 2px;
  padding: 0 0.5rem 0.35rem;
  overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.nav-tab-row::-webkit-scrollbar { display: none; }
.nav-brand {
  display: flex; align-items: center; gap: 0.5rem;
  background: none; border: none; cursor: pointer; flex-shrink: 0;
}
.nav-brand .om { font-family: var(--font-skt); font-size: 1.6rem; color: var(--gold); line-height:1; }
.nav-brand strong { font-family: var(--font-head); font-size: 1rem; color: var(--cream); }
.nav-brand small { font-size: 0.72rem; color: var(--text-dim); display: block; line-height:1; }
.nav-right { display: flex; align-items: center; gap: 0.35rem; flex-shrink: 0; }
.nav-btn {
  background: none;
  border: none;
  color: var(--text-muted);
  min-width: 44px;
  min-height: 44px;
  padding: 0.4rem 0.8rem;
  border-radius: var(--r);
  cursor: pointer;
  font-size: 0.82rem;
  white-space: nowrap;
  transition: all 0.15s;
  font-family: var(--font-body);
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-tab-btn {
  background: none;
  border: none;
  color: var(--text-muted);
  min-width: 44px;
  min-height: 44px;
  padding: 0.4rem 0.8rem;
  border-radius: var(--r);
  cursor: pointer;
  font-size: 0.82rem;
  white-space: nowrap;
  transition: all 0.15s;
  font-family: var(--font-body);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.nav-btn:hover, .nav-tab-btn:hover { background: rgba(244,161,36,0.08); color: var(--cream); }
.nav-btn.active, .nav-tab-btn.active { background: rgba(244,161,36,0.15); color: var(--gold); border-bottom: 2px solid var(--gold); }
.icon-btn {
  background: none;
  border: 1px solid transparent;
  color: var(--text-muted);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.15s;
}
.icon-btn:hover { border-color: var(--border-gold); color: var(--gold); }

/* More dropdown */
#nav-more-wrap { position: relative; }
#nav-dropdown {
  display: none; position: absolute; top: 100%; right: 0;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 0.5rem;
  min-width: 185px; box-shadow: var(--shadow-lg); z-index: 200;
  flex-direction: column; gap: 2px; margin-top: 4px;
}
#nav-dropdown.open { display: flex; }
#nav-dropdown .nav-btn { text-align: left; width: 100%; }

/* Export dropdown */
#export-dropdown {
  display: none; position: absolute; top: calc(100% + 6px); right: 0;
  background: var(--bg-card); border: 1px solid var(--border-gold);
  border-radius: var(--r-lg); padding: 0.5rem;
  min-width: 230px; box-shadow: var(--shadow-lg); z-index: 201;
  flex-direction: column; gap: 2px;
}
#export-dropdown.open { display: flex; }
.export-item {
  background: none; border: none; color: var(--text-muted);
  padding: 0.5rem 0.85rem; border-radius: var(--r);
  cursor: pointer; font-size: 0.88rem; text-align: left;
  width: 100%; transition: all 0.15s; font-family: var(--font-body);
}
.export-item:hover { background: rgba(244,161,36,0.1); color: var(--cream); }
.export-menu-wrap { position: relative !important; background: none !important; border: none !important; }

/* Mobile nav overrides */
@media(max-width: 600px) {
  .nav-top-row { padding: 0.3rem 0.6rem; height: 50px; }
  .nav-tab-row { padding: 0 0.25rem 0.25rem; gap: 1px; flex-wrap: wrap; }
  .nav-tab-btn { font-size: 0.78rem; min-width: 50px; flex: 0 1 auto; }
  .brand-en { display: none; }
  .brand-skt { font-size: 0.82rem; }
  .nav-lang-select { font-size: 0.72rem; padding: 0.2rem 0.3rem; }
}
@media(max-width: 380px) {
  .nav-tab-btn { font-size: 0.62rem; min-width: 40px; padding: 0.3rem; }
  .nav-top-row { padding: 0.25rem 0.4rem; height: 48px; }
  .nav-tab-row { gap: 0; padding: 0.15rem 0; }
}
@media(max-width: 320px) {
  nav { padding-top: max(0.5rem, env(safe-area-inset-top)); }
  .nav-top-row { height: 44px; padding: 0.2rem 0.3rem; }
  .nav-tab-btn { min-width: 35px; font-size: 0.58rem; }
}
/* ─── Main ─── */
main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 1rem clamp(1rem, 5vw, 3rem) 3rem;
}
.section { display: none; }

/* ─── Form inputs ─── */
.p-label {
  display: block;
  font-size: 0.82rem;
  color: var(--text-main);
  margin-bottom: 0.3rem;
  font-weight: 500;
}

.p-input {
  width: 100%;
  padding: 0.6rem 0.75rem;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: var(--r);
  color: var(--text-main);
  font-family: var(--font-body);
  font-size: 1rem;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.2s;
  min-height: 44px;
}

.p-input:focus {
  border-color: var(--gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(244,161,36,0.1);
}

.p-input::placeholder {
  color: var(--text-dim);
}

/* ─── Hero Card ─── */
.hero-card {
  background: linear-gradient(135deg, rgba(184,92,20,0.25), rgba(244,161,36,0.08));
  border: 1px solid var(--border-gold);
  border-radius: var(--r-lg);
  padding: 2rem 1.5rem;
  margin-bottom: 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.hero-om {
  position: absolute; font-family: var(--font-skt); font-size: 8rem;
  opacity: 0.04; top: 50%; left: 50%; transform: translate(-50%,-50%);
  pointer-events: none; color: var(--gold);
}
.hero-inner { position: relative; z-index: 1; }
.hero-weekday { font-family: var(--font-skt); font-size: 1rem; color: var(--gold); margin-bottom: 0.3rem; }
.hero-date { font-family: var(--font-head); font-size: 1.5rem; color: var(--cream); margin-bottom: 0.3rem; }
.hero-skt { font-family: var(--font-skt); font-size: 0.95rem; color: var(--text-muted); margin-bottom: 0.4rem; }
.hero-meta { font-size: 0.82rem; color: var(--text-dim); display: flex; justify-content: center; gap: 0.5rem; flex-wrap: wrap; }
.today-badge {
  background: rgba(232,93,4,0.25); color: var(--saffron-light);
  font-size: 0.7rem; padding: 0.1rem 0.5rem; border-radius: 10px; font-weight: 600;
}
.hero-fests { margin-top: 0.75rem; display: flex; justify-content: center; gap: 0.4rem; flex-wrap: wrap; }
.hero-fest-tag { font-size: 0.75rem; padding: 0.2rem 0.6rem; border-radius: 12px; font-weight: 600; }
.ft-major { background: rgba(181,69,11,0.35); color: #ffd4a3; border: 1px solid rgba(232,93,4,0.3); }
.ft-recurring { background: rgba(0,105,92,0.3); color: #80cbc4; border: 1px solid rgba(0,121,107,0.3); }
.ft-regional { background: rgba(106,27,154,0.3); color: #e1bee7; border: 1px solid rgba(156,39,176,0.3); }

/* ─── Panchang Grid ─── */
.panchang-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px,1fr));
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.panch-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 1rem;
  text-align: center;
  transition: border-color 0.2s;
  cursor: default;
}
.panch-card:hover { border-color: var(--border-gold); }
.panch-icon { font-size: 1.8rem; margin-bottom: 0.35rem; }
.panch-label { font-size: 0.7rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-dim); margin-bottom: 0.3rem; }
.panch-value { font-family: var(--font-head); font-size: 1.05rem; color: var(--cream); margin-bottom: 0.15rem; }
.panch-skt { font-family: var(--font-skt); font-size: 0.85rem; color: var(--gold); margin-bottom: 0.25rem; }
.panch-sub { font-size: 0.72rem; color: var(--text-muted); }
.p-bar { height: 4px; background: rgba(92,51,24,0.4); border-radius: 2px; margin-top: 0.4rem; overflow: hidden; }
.p-bar-fill { height: 100%; background: linear-gradient(90deg, var(--saffron-deep), var(--gold)); border-radius: 2px; }
.p-tag { display: inline-block; font-size: 0.68rem; padding: 0.15rem 0.5rem; border-radius: 10px; margin-top: 0.3rem; }
.pt-good { background: rgba(39,174,96,0.2); color: var(--accent-green); }
.pt-bad  { background: rgba(192,57,43,0.2); color: #e05a4b; }

/* ─── Timing Grid ─── */
.timing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px,1fr));
  gap: 0.6rem;
  margin-bottom: 1.25rem;
}
.timing-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 0.75rem 0.9rem;
  border-left: 3px solid;
}
.tc-best { border-left-color: #f4a124; }
.tc-good { border-left-color: var(--accent-green); }
.tc-bad  { border-left-color: #e05a4b; }
.tc-icon { font-size: 1.2rem; margin-bottom: 0.2rem; }
.tc-name { font-size: 0.72rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.06em; }
.tc-time { font-family: var(--font-head); font-size: 0.92rem; color: var(--cream); margin: 0.1rem 0; }
.tc-desc { font-size: 0.7rem; color: var(--text-muted); }

/* ─── Choghadiya ─── */
.chog-wrap { display: grid; gap: 1rem; margin-bottom: 1rem; }
.chog-section { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; }
.chog-header { font-size: 0.8rem; color: var(--text-dim); margin-bottom: 0.75rem; font-weight: 600; }
.chog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px,1fr)); gap: 0.5rem; }
.chog-seg {
  background: rgba(26,14,6,0.5);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 0.5rem 0.6rem;
  font-size: 0.75rem;
}
.chog-current { background: rgba(244,161,36,0.1); border-color: var(--border-gold); }
.chog-name { font-weight: 700; font-size: 0.8rem; }
.chog-skt { font-family: var(--font-skt); font-size: 0.7rem; }
.chog-time { color: var(--cream); font-size: 0.72rem; margin: 0.15rem 0; }
.chog-ruler { font-size: 0.65rem; color: var(--text-dim); }
.chog-act { font-size: 0.68rem; color: var(--text-muted); margin-top: 0.2rem; }

/* ─── Navagraha Mini ─── */
.graha-mini-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(110px,1fr));
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.graha-mini {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 0.6rem;
  text-align: center;
}
.gm-emoji { font-size: 1.2rem; }
.gm-name { font-size: 0.72rem; color: var(--cream); font-weight: 600; }
.gm-skt { font-family: var(--font-skt); font-size: 0.65rem; color: var(--text-dim); }
.gm-pos { font-size: 0.7rem; color: var(--gold); margin-top: 0.1rem; }

/* ─── Calendar ─── */
.cal-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.cal-nav {
  background: var(--bg-card); border: 1px solid var(--border); color: var(--text-muted);
  width: 36px; height: 36px; border-radius: 50%; cursor: pointer; font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center; transition: all 0.15s;
}
.cal-nav:hover { border-color: var(--gold); color: var(--gold); }
.cal-month-title { font-family: var(--font-head); font-size: 1.25rem; color: var(--cream); text-align: center; }
.cal-month-sub { font-size: 0.72rem; color: var(--text-dim); text-align: center; }
.cal-grid { display: grid; grid-template-columns: repeat(7,1fr); gap: 3px; margin-bottom: 1rem; }
.cal-day-hdr { text-align: center; padding: 0.4rem 0; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-dim); font-weight: 600; }
.cal-sun { color: #ff7b7b !important; }
.cal-day {
  background: rgba(46,26,15,0.55);
  border: 1px solid rgba(92,51,24,0.4);
  border-radius: var(--r);
  padding: 0.3rem 0.3rem;
  min-height: 88px;
  cursor: pointer;
  transition: all 0.15s;
  position: relative;
  display: flex;
  flex-direction: column;
}
.cal-day:hover { background: rgba(74,44,26,0.85); border-color: var(--border-gold); }
.cal-today { border: 2px solid var(--gold) !important; background: rgba(184,92,20,0.18) !important; }
.cal-selected { border: 2px solid var(--saffron-light) !important; background: rgba(232,93,4,0.12) !important; }
.cal-major { border-color: rgba(232,93,4,0.5) !important; background: rgba(184,92,20,0.12) !important; }
.cal-sunday .cal-dnum { color: #ff7b7b !important; }
.cal-empty { background: transparent; }
.cal-dnum { font-size: 0.88rem; color: var(--cream); font-weight: 700; line-height: 1.2; }
.cal-today .cal-dnum { color: var(--gold); }
.cal-dtithi { font-size: 0.6rem; color: var(--text-dim); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-fests { margin-top: 0.2rem; display: flex; flex-direction: column; gap: 2px; }
.cal-dfest { font-size: 0.63rem; border-radius: 3px; padding: 1px 4px; line-height: 1.4; font-weight: 700; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cf-major    { background: #7c2d12; color: #fed7aa; border-left: 3px solid #ea580c; }
.cf-regional { background: #4a1572; color: #e9d5ff; border-left: 3px solid #a855f7; }
.cf-recurring{ background: #064e3b; color: #a7f3d0; border-left: 3px solid #10b981; }
.cf-more     { background: transparent; color: var(--text-dim); font-weight: 400; border: 1px dashed var(--border); }

/* Calendar detail panel */
.cal-detail-card { background: var(--bg-card); border: 1px solid var(--border-gold); border-radius: var(--r-lg); padding: 1.25rem; margin-top: 1rem; }
.cdc-header { font-family: var(--font-head); font-size: 1rem; color: var(--cream); margin-bottom: 0.75rem; }
.cdc-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(180px,1fr)); gap: 0.35rem; margin-bottom: 0.75rem; }
.cdc-label { font-size: 0.7rem; color: var(--text-dim); margin-right: 0.4rem; }
.cdc-val { font-size: 0.82rem; color: var(--cream); }
.cdc-fests { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.5rem; }
.cdf { font-size: 0.75rem; padding: 0.2rem 0.5rem; border-radius: 10px; font-weight: 600; }
.cdf-major { background: rgba(181,69,11,0.35); color: #ffd4a3; }
.cdf-rec { background: rgba(0,105,92,0.3); color: #80cbc4; }
.cdc-meta { font-size: 0.78rem; color: var(--text-muted); }

/* Monthly events list */
.month-events-list { display: flex; flex-direction: column; gap: 0; }
.month-ev-row { display: flex; align-items: flex-start; gap: 0.75rem; padding: 0.6rem 0.5rem; border-bottom: 1px solid rgba(92,51,24,0.2); border-radius: var(--r); transition: background 0.15s; }
.month-ev-row:hover { background: rgba(46,26,15,0.5); }
.mev-today { background: rgba(184,92,20,0.1); border-left: 3px solid var(--saffron); }
.mev-date { min-width: 44px; text-align: center; flex-shrink: 0; }
.mev-date-empty { min-width: 44px; flex-shrink: 0; }
.mev-dnum { font-family: var(--font-head); font-size: 1.2rem; color: var(--gold); line-height: 1; }
.mev-dow { font-size: 0.62rem; color: var(--text-dim); }
.mev-name { font-size: 0.88rem; color: var(--cream); font-weight: 600; }
.mev-cat { font-size: 0.62rem; padding: 0.1rem 0.4rem; border-radius: 8px; margin-left: 0.3rem; font-weight: 700; vertical-align: middle; }
.ev-major    { background: rgba(181,69,11,0.3); color: #ffd4a3; }
.ev-regional { background: rgba(106,27,154,0.3); color: #e1bee7; }
.ev-recurring{ background: rgba(0,105,92,0.3); color: #80cbc4; }
.mev-vrat { font-size: 0.65rem; padding: 0.1rem 0.35rem; border-radius: 8px; margin-left: 0.2rem; background: rgba(244,161,36,0.15); color: var(--gold); }
.mev-meta { font-size: 0.72rem; color: var(--text-muted); margin-top: 0.1rem; }
.mev-info { flex: 1; min-width: 0; }

/* ─── Festivals Tab ─── */
.fest-upcoming { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 0.75rem; margin-bottom: 1.5rem; }
.fest-upcoming-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; display: flex; align-items: center; gap: 0.75rem; }
.fu-major    { border-left: 3px solid var(--saffron); }
.fu-regional { border-left: 3px solid var(--accent-purple); }
.fu-recurring{ border-left: 3px solid var(--accent-green); }
.fuc-days { font-family: var(--font-head); font-size: 1.8rem; color: var(--gold); min-width: 48px; text-align: center; line-height: 1; }
.fuc-days span { display: block; font-family: var(--font-body); font-size: 0.62rem; color: var(--text-dim); }
.fuc-name { font-size: 0.9rem; color: var(--cream); font-weight: 600; }
.fuc-date { font-size: 0.72rem; color: var(--text-muted); }
.fuc-deity { font-size: 0.7rem; color: var(--text-dim); }
.fest-filter-row { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.filter-btn {
  background: var(--bg-card);
  border: 1px solid var(--border);
  color: var(--text-muted);
  padding: 0.4rem 0.9rem;
  border-radius: 16px;
  cursor: pointer;
  font-size: 0.82rem;
  transition: all 0.15s;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.filter-btn.active { background: rgba(244,161,36,0.15); color: var(--gold); border-color: var(--border-gold); }
.festival-list { display: flex; flex-direction: column; gap: 0.5rem; }
.fest-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.85rem 1rem; display: flex; align-items: flex-start; gap: 0.85rem; transition: border-color 0.15s; position: relative; }
.fest-item:hover { border-color: var(--border-gold); }
.fi-past { opacity: 0.5; }
.fi-major    { border-left: 3px solid var(--saffron); }
.fi-regional { border-left: 3px solid var(--accent-purple); }
.fi-recurring{ border-left: 3px solid var(--accent-green); }
.fi-date { min-width: 46px; text-align: center; flex-shrink: 0; }
.fi-dnum { font-family: var(--font-head); font-size: 1.4rem; color: var(--gold); line-height: 1; }
.fi-mon { font-size: 0.68rem; color: var(--text-dim); text-transform: uppercase; }
.fi-name { font-size: 0.9rem; color: var(--cream); font-weight: 600; }
.fi-skt { font-family: var(--font-skt); font-size: 0.78rem; color: var(--gold); margin-left: 0.3rem; }
.fi-vrat { font-size: 0.62rem; padding: 0.1rem 0.35rem; border-radius: 8px; margin-left: 0.3rem; background: rgba(244,161,36,0.15); color: var(--gold); }
.fi-day { font-size: 0.72rem; color: var(--text-muted); margin: 0.1rem 0; }
.fi-desc { font-size: 0.75rem; color: var(--text-dim); font-style: italic; }
.fi-cat-dot { position: absolute; right: 0.75rem; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 50%; }
.fcd-major    { background: var(--saffron); }
.fcd-regional { background: var(--accent-purple); }
.fcd-recurring{ background: var(--accent-green); }

/* ─── Muhurat ─── */
.muhurat-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 0.65rem; margin-bottom: 1rem; }
.muh-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.9rem; border-left: 3px solid; }
.muh-good { border-left-color: var(--accent-green); }
.muh-bad  { border-left-color: #e05a4b; }
.muh-icon { font-size: 1.4rem; margin-bottom: 0.2rem; }
.muh-name { font-size: 0.82rem; color: var(--cream); font-weight: 600; margin-bottom: 0.2rem; }
.muh-time { font-family: var(--font-head); font-size: 0.95rem; color: var(--gold); }
.muh-desc { font-size: 0.72rem; color: var(--text-muted); margin-top: 0.3rem; line-height: 1.4; }
.muhurta-finder-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.25rem; }
.mf-row { display: flex; gap: 0.75rem; flex-wrap: wrap; align-items: flex-end; margin-bottom: 1rem; }
.mf-row > div { flex: 1; min-width: 140px; }
.mf-result-list { display: flex; flex-direction: column; gap: 0.4rem; margin-top: 0.75rem; }
.mf-result-row { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; background: rgba(26,14,6,0.5); border-radius: var(--r); border: 1px solid var(--border); }
.mfr-quality { font-size: 0.7rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 10px; flex-shrink: 0; }
.mfr-excellent { background: rgba(39,174,96,0.25); color: var(--accent-green); }
.mfr-good { background: rgba(100,181,246,0.2); color: var(--accent-blue); }
.mfr-acceptable { background: rgba(244,161,36,0.2); color: var(--gold); }
.mfr-date { font-size: 0.85rem; color: var(--cream); flex-shrink: 0; }
.mfr-info { font-size: 0.75rem; color: var(--text-muted); flex: 1; }
.mfr-score { font-size: 0.72rem; color: var(--text-dim); }

/* ─── Rashifal ─── */
.rashi-meta { display: flex; gap: 1rem; flex-wrap: wrap; font-size: 0.8rem; color: var(--text-muted); margin-bottom: 1rem; }
.rashi-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 0.65rem; }
.rashi-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.9rem; transition: border-color 0.15s; }
.rashi-card:hover { border-color: var(--border-gold); }
.rc-good { border-left: 3px solid var(--accent-green); }
.rc-moderate { border-left: 3px solid var(--gold); }
.rc-neutral { border-left: 3px solid var(--border); }
.rashi-sign { font-size: 1.5rem; }
.rashi-name { font-family: var(--font-head); font-size: 0.92rem; color: var(--cream); }
.rashi-en { font-size: 0.72rem; color: var(--text-dim); font-family: var(--font-body); }
.rashi-moon { font-size: 0.72rem; color: var(--text-dim); margin: 0.2rem 0; }
.rashi-pred { font-size: 0.8rem; color: var(--text-muted); line-height: 1.5; }
.rashi-lord { font-size: 0.68rem; color: var(--text-dim); margin-top: 0.3rem; }

/* ─── Gochar ─── */
.gochar-meta { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 1rem; font-style: italic; }
.gochar-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(130px,1fr)); gap: 0.5rem; margin-bottom: 1.5rem; }
.gochar-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.75rem; text-align: center; }
.gc-icon { font-size: 1.3rem; }
.gc-planet { font-size: 0.82rem; color: var(--cream); font-weight: 600; }
.gc-retro { color: #e05a4b; }
.gc-rashi { font-size: 0.8rem; color: var(--gold); }
.gc-deg { font-size: 0.68rem; color: var(--text-muted); }
.gc-nak { font-size: 0.65rem; color: var(--text-dim); }
.gochar-rashi-sel { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; margin-bottom: 1rem; }
.rashi-btn-row { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.5rem; }
.rashi-sel-btn { background: var(--bg-input); border: 1px solid var(--border); color: var(--text-muted); padding: 0.3rem 0.6rem; border-radius: 16px; cursor: pointer; font-size: 0.75rem; transition: all 0.15s; }
.rashi-sel-btn.active, .rashi-sel-btn:hover { border-color: var(--gold); color: var(--gold); background: rgba(244,161,36,0.1); }
.gochar-pred-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 0.5rem; }
.gp-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.75rem; }
.gp-good { border-left: 3px solid var(--accent-green); }
.gp-bad  { border-left: 3px solid #e05a4b; }
.gp-neutral { border-left: 3px solid var(--border); }
.gp-planet { font-size: 0.82rem; color: var(--cream); font-weight: 600; margin-bottom: 0.2rem; }
.gp-house { font-size: 0.7rem; color: var(--text-dim); margin-bottom: 0.2rem; }
.gp-effect { font-size: 0.72rem; font-weight: 700; margin-bottom: 0.2rem; }
.gpe-good { color: var(--accent-green); }
.gpe-bad  { color: #e05a4b; }
.gpe-neutral { color: var(--text-dim); }
.gp-desc { font-size: 0.75rem; color: var(--text-muted); line-height: 1.4; }
.sadesati-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: 0.65rem; }
.ss-card { background: var(--bg-card); border: 1px solid; border-radius: var(--r-lg); padding: 1rem; }
.ss-active { border-color: rgba(230,57,70,0.4); background: rgba(192,57,43,0.08); }
.ss-dhaiya { border-color: rgba(244,161,36,0.4); background: rgba(184,92,20,0.08); }
.ss-rashi { font-family: var(--font-head); font-size: 1rem; color: var(--cream); margin-bottom: 0.3rem; }
.ss-type { font-size: 0.82rem; font-weight: 700; margin-bottom: 0.3rem; }
.ss-desc { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.4rem; line-height: 1.5; }
.ss-remedy { font-size: 0.72rem; color: var(--gold); }

/* ─── Nakshatras ─── */
.nak-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(130px,1fr)); gap: 0.5rem; margin-bottom: 1rem; }
.nak-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.75rem; cursor: pointer; transition: border-color 0.15s; }
.nak-card:hover { border-color: var(--border-gold); }
.nak-current { border-color: var(--gold); background: rgba(244,161,36,0.08); }
.nak-num { font-size: 0.65rem; color: var(--text-dim); }
.nak-name { font-size: 0.88rem; color: var(--cream); font-weight: 600; }
.nak-skt { font-family: var(--font-skt); font-size: 0.78rem; color: var(--gold); }
.nak-lord { font-size: 0.68rem; color: var(--text-muted); margin-top: 0.2rem; }
.nak-current-badge { font-size: 0.62rem; color: var(--gold); margin-top: 0.2rem; }
.nak-detail-card { background: var(--bg-card); border: 1px solid var(--border-gold); border-radius: var(--r-lg); padding: 1.25rem; margin-top: 1rem; }
.ndc-header { font-family: var(--font-head); font-size: 1.05rem; color: var(--cream); margin-bottom: 0.75rem; }
.ndc-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 0.3rem; margin-bottom: 0.75rem; }
.ndc-l { font-size: 0.7rem; color: var(--text-dim); margin-right: 0.3rem; }
.ndc-desc { font-size: 0.85rem; color: var(--text-muted); line-height: 1.6; }

/* ─── Seasons ─── */
.ritu-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 0.75rem; }
.ritu-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; }
.ritu-current { border-color: var(--border-gold); background: rgba(244,161,36,0.06); }
.ritu-emoji { font-size: 2rem; margin-bottom: 0.4rem; }
.ritu-name { font-family: var(--font-head); font-size: 1rem; color: var(--cream); }
.ritu-en { font-size: 0.78rem; color: var(--text-muted); font-family: var(--font-body); }
.ritu-months { font-size: 0.72rem; color: var(--text-dim); margin: 0.2rem 0; }
.ritu-desc { font-size: 0.8rem; color: var(--text-muted); line-height: 1.5; margin: 0.4rem 0; }
.ritu-current-badge { font-size: 0.72rem; color: var(--gold); background: rgba(244,161,36,0.15); padding: 0.15rem 0.5rem; border-radius: 10px; display: inline-block; margin-bottom: 0.4rem; }
.ritu-expand { font-size: 0.72rem; color: var(--text-dim); cursor: pointer; padding: 0.25rem 0; border-top: 1px solid var(--border); margin-top: 0.5rem; }
.ritu-expand:hover { color: var(--gold); }
.ritu-detail { margin-top: 0.5rem; }
.rd-section { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.4rem; line-height: 1.5; }

/* ─── Mantras ─── */
.mantra-list { display: flex; flex-direction: column; gap: 0.75rem; }
.mantra-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.1rem; cursor: pointer; transition: border-color 0.15s; }
.mantra-card:hover { border-color: var(--border-gold); }
.mc-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.5rem; }
.mc-deity { font-family: var(--font-head); font-size: 1rem; color: var(--gold); }
.mc-cat { font-size: 0.68rem; padding: 0.15rem 0.5rem; border-radius: 10px; background: rgba(244,161,36,0.1); color: var(--text-muted); }
.mc-skt { font-family: var(--font-skt); font-size: 0.92rem; color: var(--cream); line-height: 1.8; margin-bottom: 0.35rem; white-space: pre-wrap; }
.mc-itrans { font-size: 0.8rem; color: var(--text-muted); font-style: italic; margin-bottom: 0.4rem; }
.mc-detail { margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid var(--border); }
.mcd-meaning, .mcd-benefits, .mcd-count { font-size: 0.8rem; color: var(--text-muted); margin-bottom: 0.3rem; line-height: 1.5; }
.mc-toggle { font-size: 0.68rem; color: var(--text-dim); margin-top: 0.4rem; }

/* ─── Aarti ─── */
.aarti-list { display: flex; flex-direction: column; gap: 0.75rem; }
.aarti-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.1rem; }
.aarti-title { font-family: var(--font-head); font-size: 1rem; color: var(--gold); margin-bottom: 0.5rem; }
.aarti-skt { font-family: var(--font-skt); font-size: 0.9rem; color: var(--cream); line-height: 2; margin-bottom: 0.5rem; white-space: pre-wrap; }
.aarti-translation { font-size: 0.78rem; color: var(--text-muted); font-style: italic; line-height: 1.6; }

/* ─── Fasting ─── */
.fast-list { display: flex; flex-direction: column; gap: 0.75rem; }
.fast-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.1rem; }
.fast-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 0.5rem; }
.fast-name { font-family: var(--font-head); font-size: 1rem; color: var(--cream); }
.fast-skt { font-family: var(--font-skt); font-size: 0.82rem; color: var(--gold); margin-left: 0.3rem; }
.fast-freq { font-size: 0.72rem; color: var(--text-dim); padding: 0.15rem 0.5rem; background: rgba(244,161,36,0.1); border-radius: 10px; }
.fast-deity { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.75rem; }
.fast-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 0.75rem; }
.fast-col-title { font-size: 0.72rem; font-weight: 700; margin-bottom: 0.3rem; }
.fast-item { font-size: 0.78rem; padding: 0.15rem 0; border-bottom: 1px solid rgba(92,51,24,0.15); }
.fast-ok { color: var(--accent-green); }
.fast-no { color: #e05a4b; }
.fast-timing { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.3rem; }
.fast-benefits { font-size: 0.78rem; color: var(--text-muted); margin-bottom: 0.5rem; }
.fast-story-toggle { font-size: 0.75rem; color: var(--gold); cursor: pointer; }
.fast-story { font-size: 0.8rem; color: var(--text-muted); line-height: 1.6; margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid var(--border); }

/* ─── Temples ─── */
.temple-list { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 0.75rem; }
.temple-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; display: flex; gap: 0.75rem; }
.temple-icon { font-size: 2rem; flex-shrink: 0; }
.temple-name { font-family: var(--font-head); font-size: 0.95rem; color: var(--cream); }
.temple-loc,.temple-deity,.temple-darshan,.temple-special,.temple-desc { font-size: 0.75rem; color: var(--text-muted); margin-top: 0.2rem; line-height: 1.4; }
.temple-special { color: var(--gold); }

/* ─── History ─── */
.history-list { display: flex; flex-direction: column; gap: 0; position: relative; padding-left: 1.5rem; }
.history-list::before { content:''; position:absolute; left:0.5rem; top:0; bottom:0; width:1px; background:var(--border); }
.history-card { position: relative; padding: 0.75rem 0 0.75rem 0.75rem; }
.history-card::before { content:''; position:absolute; left:-1.15rem; top:1rem; width:8px; height:8px; border-radius:50%; background:var(--gold); border:2px solid var(--bg-base); }
.history-year { font-family: var(--font-head); font-size: 0.82rem; color: var(--gold); }
.history-title { font-size: 0.88rem; color: var(--cream); font-weight: 600; }
.history-type { font-size: 0.65rem; padding: 0.1rem 0.4rem; border-radius: 8px; background: rgba(244,161,36,0.1); color: var(--text-dim); margin-left: 0.3rem; }
.history-desc { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.2rem; line-height: 1.5; }

/* ─── Scriptures ─── */
.quote-filter-row { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.quote-list { display: flex; flex-direction: column; gap: 0.75rem; }
.quote-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.25rem; border-left: 3px solid var(--border-gold); }
.qc-skt { font-family: var(--font-skt); font-size: 1rem; color: var(--cream); line-height: 2; margin-bottom: 0.5rem; white-space: pre-wrap; }
.qc-trans { font-size: 0.85rem; color: var(--text-muted); font-style: italic; line-height: 1.6; margin-bottom: 0.35rem; }
.qc-source { font-size: 0.72rem; color: var(--gold); }

/* ─── Patrika ─── */
.p-label { font-size: 0.72rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-dim); display: block; margin-bottom: 0.25rem; }
.p-input {
  width: 100%; background: var(--bg-input); border: 1px solid var(--border); border-radius: var(--r);
  color: var(--text-main); padding: 0.5rem 0.75rem; font-family: var(--font-body); font-size: 0.9rem;
  outline: none; transition: border-color 0.15s;
}
.p-input:focus { border-color: var(--gold); }
.p-input option { background: var(--bg-card); }
.pat-tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1.25rem; border-bottom: 1px solid var(--border); padding-bottom: 0.75rem; }
.pat-tab { padding: 0.4rem 0.9rem; border-radius: 16px; border: 1px solid var(--border); background: transparent; color: var(--text-muted); cursor: pointer; font-size: 0.82rem; transition: all 0.15s; font-family: var(--font-body); }
.pat-tab:hover { border-color: var(--border-gold); color: var(--cream); }
.pat-tab.active { background: rgba(244,161,36,0.15); color: var(--gold); border-color: var(--border-gold); }
.lagna-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.9rem; text-align: center; }
.lc-icon { font-size: 1.5rem; }
.lc-title { font-size: 0.7rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.06em; margin: 0.2rem 0; }
.lc-val { font-family: var(--font-head); font-size: 0.95rem; color: var(--cream); }
.lc-sub { font-family: var(--font-skt); font-size: 0.75rem; color: var(--gold); }
.graha-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.graha-table th { text-align: left; padding: 0.45rem 0.7rem; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-dim); border-bottom: 1px solid var(--border); font-weight: 400; }
.graha-table td { padding: 0.5rem 0.7rem; border-bottom: 1px solid rgba(92,51,24,0.25); color: var(--text-muted); vertical-align: middle; }
.graha-table tr:hover td { background: rgba(46,26,15,0.4); }
.graha-table td:first-child { color: var(--cream); font-weight: 600; }
.gp-icon { font-size: 0.9rem; margin-right: 0.3rem; }
.gs-exalt { color: var(--accent-green); font-size: 0.75rem; }
.gs-debil { color: #e05a4b; font-size: 0.75rem; }
.gs-own   { color: var(--accent-blue); font-size: 0.75rem; }
/* Dasha */
.dasha-current-banner { background: rgba(244,161,36,0.1); border: 1px solid var(--border-gold); border-radius: var(--r-lg); padding: 1rem 1.25rem; margin-bottom: 1rem; }
.dcb-label { font-size: 0.7rem; color: var(--text-dim); text-transform: uppercase; }
.dcb-lord { font-family: var(--font-head); font-size: 1.4rem; color: var(--gold); }
.dcb-dates, .dcb-ad, .dcb-pt { font-size: 0.8rem; color: var(--text-muted); margin-top: 0.2rem; }
.dasha-all { display: flex; flex-direction: column; gap: 2px; }
.dasha-row { display: flex; align-items: center; gap: 0.75rem; padding: 0.5rem 0.75rem; border-radius: var(--r); border: 1px solid transparent; }
.dr-current { background: rgba(244,161,36,0.08); border-color: var(--border-gold) !important; }
.dr-past { opacity: 0.45; }
.dr-lord { font-family: var(--font-head); font-size: 0.9rem; min-width: 80px; color: var(--cream); }
.dr-years { font-size: 0.72rem; color: var(--text-dim); min-width: 30px; }
.dr-dates { font-size: 0.72rem; color: var(--text-muted); min-width: 180px; }
.dr-bar-wrap { flex: 1; height: 4px; background: rgba(92,51,24,0.3); border-radius: 2px; overflow: hidden; }
.dr-bar { height: 100%; background: var(--saffron-deep); border-radius: 2px; }
.ad-list { padding-left: 1.5rem; background: rgba(26,14,6,0.3); border-radius: var(--r); margin-bottom: 4px; }
.ad-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.3rem 0.5rem; font-size: 0.78rem; border-radius: 3px; border: 1px solid transparent; }
.adr-current { background: rgba(232,93,4,0.1); border-color: rgba(232,93,4,0.3) !important; }
.adr-past { opacity: 0.4; }
.adr-lord { min-width: 70px; color: var(--cream); font-weight: 600; }
.adr-dates { color: var(--text-muted); flex: 1; }
.adr-bar-wrap { width: 80px; height: 3px; background: rgba(92,51,24,0.3); border-radius: 2px; overflow: hidden; }
.adr-bar { height: 100%; background: var(--saffron); }
.pt-list { padding-left: 1rem; }
.pt-row { display: flex; align-items: center; gap: 0.5rem; padding: 0.15rem 0.3rem; font-size: 0.7rem; }
.ptr-current { background: rgba(244,161,36,0.1); border-radius: 3px; }
.ptr-lord { min-width: 60px; color: var(--cream); }
.ptr-dates { color: var(--text-dim); }
/* Yogas */
.yoga-card { border-radius: var(--r-lg); padding: 0.9rem 1rem; margin-bottom: 0.5rem; }
.yc-great { background: rgba(244,161,36,0.1); border: 1px solid rgba(244,161,36,0.3); }
.yc-good  { background: rgba(39,174,96,0.08); border: 1px solid rgba(39,174,96,0.25); }
.yc-dosha { background: rgba(192,57,43,0.08); border: 1px solid rgba(192,57,43,0.25); }
.yc-moderate { background: rgba(41,128,185,0.08); border: 1px solid rgba(41,128,185,0.25); }
.ycard-name { font-family: var(--font-head); font-size: 0.95rem; color: var(--cream); margin-bottom: 0.3rem; }
.ycard-desc { font-size: 0.82rem; color: var(--text-muted); line-height: 1.5; }
.sev-badge { font-size: 0.62rem; padding: 0.1rem 0.4rem; border-radius: 8px; background: rgba(255,255,255,0.1); color: var(--text-dim); margin-left: 0.4rem; }
/* House analysis */
.house-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 0.65rem; }
.house-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.85rem; cursor: pointer; transition: border-color 0.15s; }
.house-card:hover { border-color: var(--border-gold); }
.hc-good { border-left: 3px solid var(--accent-green); }
.hc-bad  { border-left: 3px solid #e05a4b; }
.hc-num  { font-size: 0.65rem; color: var(--text-dim); }
.hc-name { font-size: 0.88rem; color: var(--cream); font-weight: 600; }
.hc-governs { font-size: 0.72rem; color: var(--text-muted); font-style: italic; margin: 0.15rem 0; }
.hc-lord { font-size: 0.72rem; color: var(--text-dim); }
.hc-planets { display: flex; gap: 0.25rem; flex-wrap: wrap; margin-top: 0.3rem; }
.hc-planet { font-size: 0.65rem; padding: 0.1rem 0.4rem; border-radius: 8px; background: rgba(244,161,36,0.15); color: var(--gold); }
.house-detail-panel { background: var(--bg-card); border: 1px solid var(--border-gold); border-radius: var(--r-lg); padding: 1.1rem; margin-top: 0.75rem; }
.hdp-title { font-family: var(--font-head); font-size: 0.95rem; color: var(--gold); margin-bottom: 0.5rem; }
.hdp-desc { font-size: 0.85rem; color: var(--text-muted); line-height: 1.6; }
/* Reports */
.report-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 0.65rem; }
.report-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.9rem; }
.rc-title { font-family: var(--font-head); font-size: 0.88rem; color: var(--gold); margin-bottom: 0.4rem; }
.rc-body { font-size: 0.8rem; color: var(--text-muted); line-height: 1.6; }
.career-tags { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.4rem; }
.career-tag { font-size: 0.72rem; padding: 0.2rem 0.55rem; border-radius: 12px; background: rgba(100,181,246,0.15); color: var(--accent-blue); border: 1px solid rgba(100,181,246,0.2); }
/* Trait card */
.trait-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1rem; }
.tc-title { font-family: var(--font-head); font-size: 0.95rem; color: var(--gold); margin-bottom: 0.4rem; }
.tc-body { font-size: 0.85rem; color: var(--text-muted); line-height: 1.6; margin-bottom: 0.3rem; }
.tc-weakness { font-size: 0.78rem; color: #e05a4b; margin-bottom: 0.2rem; }
.tc-career { font-size: 0.78rem; color: var(--accent-blue); }
/* Lucky */
.lucky-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(140px,1fr)); gap: 0.5rem; }
.lucky-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.75rem; text-align: center; }
.lk-icon { font-size: 1.3rem; }
.lk-label { font-size: 0.65rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.06em; margin: 0.2rem 0; }
.lk-val { font-size: 0.8rem; color: var(--cream); }
/* Remedy */
.remedy-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 1.1rem; }
.rem-title { font-family: var(--font-head); font-size: 0.92rem; color: var(--gold); margin-bottom: 0.75rem; }
.rem-item { font-size: 0.82rem; color: var(--text-muted); padding: 0.35rem 0; border-bottom: 1px solid rgba(92,51,24,0.2); line-height: 1.5; }

/* ─── Kundali Milan ─── */
.koot-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 0.65rem; margin-bottom: 1.25rem; }
.koot-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.9rem; text-align: center; }
.kc-name { font-size: 0.78rem; color: var(--cream); font-weight: 600; }
.kc-skt { font-family: var(--font-skt); font-size: 0.68rem; color: var(--text-dim); display: block; }
.kc-score { font-family: var(--font-head); font-size: 1.4rem; margin: 0.25rem 0; }
.kc-bar { height: 4px; background: rgba(92,51,24,0.3); border-radius: 2px; margin: 0.3rem 0; overflow: hidden; }
.kc-bar-fill { height: 100%; border-radius: 2px; }
.kc-status { font-size: 0.65rem; padding: 0.15rem 0.45rem; border-radius: 8px; display: inline-block; font-weight: 600; }
.ks-good { background: rgba(39,174,96,0.2); color: var(--accent-green); }
.ks-bad  { background: rgba(192,57,43,0.2); color: #e05a4b; }
.ks-mid  { background: rgba(244,161,36,0.15); color: var(--gold); }
.kc-desc { font-size: 0.68rem; color: var(--text-dim); margin-top: 0.4rem; line-height: 1.4; }
.score-ring { position: relative; width: 120px; height: 120px; flex-shrink: 0; }
.score-ring svg { transform: rotate(-90deg); }
.score-ring-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.score-ring-num { font-family: var(--font-head); font-size: 2rem; line-height: 1; }
.score-ring-den { font-size: 0.72rem; color: var(--text-dim); }
.compat-area-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(160px,1fr)); gap: 0.5rem; }
.ca-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.75rem; }
.ca-label { font-size: 0.75rem; color: var(--cream); font-weight: 600; }
.ca-score { font-family: var(--font-head); font-size: 1.1rem; margin: 0.15rem 0; }
.ca-bar { height: 4px; background: rgba(92,51,24,0.3); border-radius: 2px; overflow: hidden; margin-bottom: 0.2rem; }
.ca-bar-fill { height: 100%; border-radius: 2px; }
.ca-desc { font-size: 0.65rem; color: var(--text-dim); }
.cmp-chart { margin-top: 0.4rem; }
.cc-row { display: flex; gap: 0.4rem; font-size: 0.78rem; margin-bottom: 0.2rem; }
.cc-label { color: var(--text-dim); min-width: 80px; }
.cc-val { color: var(--cream); }

/* ─── Compare / Search ─── */
.cmp-header { font-size: 0.82rem; color: var(--text-muted); margin-bottom: 0.75rem; font-style: italic; }
.cmp-table { width: 100%; border-collapse: collapse; font-size: 0.85rem; }
.cmp-table th { text-align: left; padding: 0.5rem 0.75rem; font-size: 0.7rem; color: var(--text-dim); border-bottom: 1px solid var(--border); font-weight: 400; text-transform: uppercase; }
.cmp-table td { padding: 0.45rem 0.75rem; border-bottom: 1px solid rgba(92,51,24,0.2); color: var(--text-muted); }
.cmp-label { color: var(--text-dim) !important; font-size: 0.8rem; }
.search-bar { display: flex; gap: 0.5rem; margin-bottom: 1rem; }
.search-input { flex: 1; background: var(--bg-input); border: 1px solid var(--border); border-radius: var(--r); color: var(--text-main); padding: 0.55rem 0.85rem; font-family: var(--font-body); font-size: 0.9rem; outline: none; }
.search-input:focus { border-color: var(--gold); }
.search-tag { display: inline-block; font-size: 0.75rem; padding: 0.25rem 0.65rem; border-radius: 12px; background: rgba(244,161,36,0.1); color: var(--text-muted); border: 1px solid var(--border); margin: 0 0.3rem 0.3rem 0; cursor: pointer; transition: all 0.15s; }
.search-tag:hover { border-color: var(--gold); color: var(--gold); }
.search-count { font-size: 0.78rem; color: var(--text-dim); margin-bottom: 0.75rem; }
.search-result-item { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 0.85rem; margin-bottom: 0.5rem; }
.sri-type { font-size: 0.65rem; text-transform: uppercase; color: var(--text-dim); }
.sri-name { font-size: 0.92rem; color: var(--cream); font-weight: 600; }
.sri-date { font-size: 0.75rem; color: var(--gold); }
.sri-desc { font-size: 0.78rem; color: var(--text-muted); margin-top: 0.2rem; }
.text-muted { color: var(--text-muted); font-size: 0.85rem; font-style: italic; }

/* ─── Buttons ─── */
.btn-primary {
  background: linear-gradient(135deg, var(--saffron-deep), var(--saffron));
  color: #fff; border: none; padding: 0.5rem 1.25rem; border-radius: var(--r);
  cursor: pointer; font-size: 0.88rem; font-weight: 600; transition: all 0.15s;
  font-family: var(--font-body);
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 3px 12px rgba(184,92,20,0.4); }
.btn-secondary {
  background: transparent; border: 1px solid var(--border); color: var(--text-muted);
  padding: 0.45rem 1rem; border-radius: var(--r); cursor: pointer; font-size: 0.85rem;
  transition: all 0.15s; font-family: var(--font-body);
}
.btn-secondary:hover { border-color: var(--border-gold); color: var(--cream); }

/* ─── Modals ─── */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.7);
  display: flex; align-items: center; justify-content: center; z-index: 500;
}
.modal-box {
  background: var(--bg-card); border: 1px solid var(--border-gold); border-radius: var(--r-lg);
  padding: 1.5rem; width: 90%; max-width: 480px; max-height: 80vh; overflow-y: auto;
  box-shadow: var(--shadow-lg);
}
.modal-title { font-family: var(--font-head); font-size: 1.1rem; color: var(--gold); margin-bottom: 1rem; }
.city-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(130px,1fr)); gap: 0.4rem; margin-top: 0.75rem; }
.city-btn { background: var(--bg-input); border: 1px solid var(--border); border-radius: var(--r); padding: 0.45rem 0.6rem; cursor: pointer; color: var(--text-muted); font-size: 0.8rem; text-align: left; transition: all 0.15s; }
.city-btn:hover { border-color: var(--gold); color: var(--cream); }
.theme-row { display: flex; gap: 0.5rem; margin: 0.75rem 0; }
.theme-btn { flex: 1; padding: 0.5rem; border: 1px solid var(--border); border-radius: var(--r); cursor: pointer; font-size: 0.8rem; text-align: center; background: var(--bg-input); color: var(--text-muted); transition: all 0.15s; }
.theme-btn:hover,.theme-btn.active { border-color: var(--gold); color: var(--gold); background: rgba(244,161,36,0.1); }

/* ─── Toast ─── */
.toast {
  position: fixed; bottom: 1.5rem; right: 1.5rem; background: var(--bg-card);
  border: 1px solid var(--border-gold); border-radius: var(--r-lg);
  padding: 0.65rem 1.1rem; font-size: 0.85rem; color: var(--cream);
  box-shadow: var(--shadow-lg); z-index: 1000;
  opacity: 0; transform: translateY(10px); transition: all 0.25s;
}
.toast-show { opacity: 1; transform: translateY(0); }

/* ─── Scroll bar ─── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--bg-base); }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

/* ─── Print ─── */
@media print {
  nav,#locationModal,#settingsModal,.toast,footer { display: none !important; }
  body { background: #fff !important; color: #111 !important; }
  .section { display: block !important; }
  .hero-card { background: #fff !important; border: 1px solid #ccc !important; }
}

/* ─── Responsive ─── */
@media(max-width:768px) {
  .panchang-grid { grid-template-columns: repeat(2,1fr); }
  .timing-grid { grid-template-columns: repeat(2,1fr); }
  .cal-day { min-height: 72px; }
  .cal-dfest { font-size: 0.58rem; }
  main { padding: 0.75rem 0.6rem 3rem; }
  .nav-brand small { display: none; }
  #milan-forms { grid-template-columns: 1fr; }
}
@media(max-width:480px) {
  .panchang-grid { grid-template-columns: repeat(2,1fr); }
  .timing-grid { grid-template-columns: 1fr; }
  .cal-grid { gap: 2px; }
  .cal-day { min-height: 60px; padding: 0.2rem; }
  .cal-dfest { font-size: 0.55rem; }
  .cal-day-hdr { font-size: 0.6rem; }
  .cal-dnum { font-size: 0.7rem; }
  nav { padding: 0 0.5rem; gap: 0.25rem; }
  main { padding: 0.6rem 0.5rem 8rem; }
}
@media(max-width:320px) {
  .panchang-grid { grid-template-columns: 1fr; }
  .timing-grid { grid-template-columns: 1fr; }
  .cal-grid { grid-template-columns: repeat(7, 1fr); gap: 1px; }
  .cal-day { min-height: 60px; padding: 0.15rem; font-size: 0.7rem; }
  .cal-dnum { font-size: 0.65rem; }
  .cal-dtithi { font-size: 0.55rem; }
  .cal-dfest { font-size: 0.5rem; padding: 0px 2px; }
  main { padding: 0.5rem 0 8rem; }
  .sec-heading { font-size: 1rem; margin: 1rem 0 0.6rem; }
}

/* Landscape mode on small screens */
@media(orientation: landscape) and (max-height: 500px) {
  body { padding-bottom: 50px; }
  nav { padding-top: 0 !important; }
  .nav-top-row { height: 44px !important; padding: 0.2rem 0.4rem !important; }
  .nav-tab-row { gap: 1px; padding: 0 0.25rem 0.1rem !important; }
  .nav-tab-btn { font-size: 0.65rem; min-width: 38px; padding: 0.25rem; }
  main { padding: 0.5rem 0.5rem 3rem !important; }
  .panchang-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 0.5rem; }
  .timing-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
  .cal-day { min-height: 50px; }
  .hero-card { padding: 1rem 1rem; margin-bottom: 0.75rem; }
  .sec-heading { font-size: 0.95rem; margin: 0.75rem 0 0.5rem; }
  .panch-card { padding: 0.7rem; }
  .panch-icon { font-size: 1.4rem; margin-bottom: 0.2rem; }
  .panch-value { font-size: 0.9rem; }
}

@media(orientation: landscape) and (max-height: 400px) {
  .hero-card { padding: 0.75rem; margin-bottom: 0.5rem; }
  .hero-date { font-size: 1.2rem; margin-bottom: 0.2rem; }
  .hero-skt { font-size: 0.8rem; }
  .panch-card { padding: 0.5rem; }
  .panch-icon { font-size: 1.2rem; }
  .panch-value { font-size: 0.85rem; }
}

@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
@keyframes glow { from { text-shadow: 0 0 8px var(--gold); } to { text-shadow: 0 0 24px var(--gold), 0 0 40px rgba(244,161,36,0.3); } }

/* ═══════════════════════════════════════════════════
   NAV — new structure (brand, dropdown, icon buttons)
   ═══════════════════════════════════════════════════ */
.om-glyph { font-family:'Tiro Devanagari Sanskrit',serif; font-size:1.6rem; color:var(--gold); animation:glow 3s ease-in-out infinite alternate; line-height:1; }
.brand-text { display:flex; flex-direction:column; }
.brand-skt { font-family:'Yatra One',cursive; font-size:0.95rem; color:var(--cream); line-height:1.2; }
.brand-en  { font-family:'Crimson Pro',serif; font-size:0.72rem; color:var(--text-dim); line-height:1; }
.nav-primary { display:flex; align-items:center; gap:0.25rem; flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; }
.nav-primary::-webkit-scrollbar { display:none; }
.nav-more-btn { position:relative; }
.nav-dropdown { display:none; position:absolute; top:calc(100% + 8px); right:0; background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--r-lg); padding:0.4rem; min-width:200px; z-index:1100; box-shadow:0 8px 32px rgba(0,0,0,0.5); }
.nav-dropdown.open { display:flex; flex-direction:column; gap:2px; }
.dropdown-item { background:none; border:none; color:var(--text-muted); font-family:'Crimson Pro',serif; font-size:0.92rem; padding:0.5rem 0.85rem; border-radius:var(--r); cursor:pointer; text-align:left; transition:all 0.15s; width:100%; }
.dropdown-item:hover { background:rgba(244,161,36,0.1); color:var(--cream); }
.dropdown-divider { height:1px; background:var(--border); margin:0.3rem 0; }
.nav-patrika-btn { background:linear-gradient(135deg,rgba(184,92,20,0.25),rgba(244,161,36,0.15)) !important; border-color:var(--border-gold) !important; color:var(--gold) !important; }
.nav-patrika-btn:hover { background:rgba(244,161,36,0.25) !important; }
.nav-icon-btn { background:none; border:1px solid transparent; border-radius:var(--r); color:var(--text-muted); font-size:1.1rem; padding:0.35rem 0.45rem; cursor:pointer; transition:all 0.15s; line-height:1; }
.nav-icon-btn:hover { border-color:var(--border-gold); color:var(--gold); }
.nav-lang-select { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r); color:var(--text-muted); font-size:0.8rem; padding:0.3rem 0.45rem; cursor:pointer; }
.nav-lang-select:hover { border-color:var(--border-gold); }
.skip-link { position:absolute; top:-50px; left:0; background:var(--saffron); color:#fff; padding:0.5rem 1rem; border-radius:0 0 var(--r) 0; z-index:9999; font-size:0.9rem; transition:top 0.2s; }
.skip-link:focus { top:0; }

/* ═══════════════════════════════════════════════════
   PATRIKA FORM
   ═══════════════════════════════════════════════════ */
.patrika-form-card { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--r-lg); padding:1.5rem; margin-bottom:1.5rem; }
.patrika-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0.85rem; }
.disclaimer-box { background:rgba(46,26,15,0.5); border:1px solid var(--border); border-radius:var(--r); padding:1rem; font-size:0.78rem; color:var(--text-dim); font-style:italic; text-align:center; margin-top:1.5rem; }

/* ═══════════════════════════════════════════════════
   KUNDALI MILAN
   ═══════════════════════════════════════════════════ */
.milan-forms-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.5rem; }
.milan-person-card { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:1.25rem; }
.bride-card { border-color:rgba(206,147,216,0.4); }
.groom-card { border-color:rgba(100,181,246,0.4); }
.milan-person-title { font-family:'Yatra One',cursive; font-size:1rem; margin-bottom:1rem; }
.bride-title { color:var(--accent-purple); }
.groom-title { color:var(--accent-blue); }
.milan-fields { display:flex; flex-direction:column; gap:0.6rem; }
.milan-score-banner { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--r-lg); padding:1.5rem; margin-bottom:1.5rem; display:flex; align-items:center; gap:2rem; flex-wrap:wrap; }
.milan-ring-wrap { position:relative; width:120px; height:120px; flex-shrink:0; }
.milan-ring-center { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.milan-score-num { font-family:'Yatra One',cursive; font-size:2.2rem; color:var(--gold); line-height:1; }
.milan-score-den { font-size:0.75rem; color:var(--text-dim); }
.milan-score-title { font-family:'Yatra One',cursive; font-size:1.3rem; color:var(--cream); margin-bottom:0.4rem; }
.milan-score-desc { font-size:0.88rem; color:var(--text-muted); margin-bottom:0.5rem; }
.milan-names-out { font-size:0.82rem; color:var(--text-dim); line-height:1.6; }

/* ═══════════════════════════════════════════════════
   LOCATION MODAL
   ═══════════════════════════════════════════════════ */
.modal { position:fixed; inset:0; background:rgba(0,0,0,0.75); display:flex; align-items:flex-start; justify-content:center; z-index:2000; padding:1rem; overflow-y:auto; }
.modal-box { background:var(--bg-card); border:1px solid var(--border-gold); border-radius:var(--r-lg); padding:1.5rem; width:100%; max-width:640px; margin:auto; }
.modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.modal-header h2 { font-family:'Yatra One',cursive; font-size:1.1rem; color:var(--cream); margin:0; }
.modal-close-btn { background:none; border:1px solid var(--border); border-radius:50%; width:30px; height:30px; color:var(--text-muted); cursor:pointer; font-size:0.9rem; display:flex; align-items:center; justify-content:center; transition:all 0.15s; }
.modal-close-btn:hover { border-color:var(--border-gold); color:var(--gold); }
.detect-btn { width:100%; padding:0.65rem; background:rgba(244,161,36,0.15); border:1px solid var(--border-gold); border-radius:var(--r); color:var(--gold); font-family:'Crimson Pro',serif; font-size:0.95rem; cursor:pointer; transition:all 0.2s; margin-bottom:1rem; }
.detect-btn:hover { background:rgba(244,161,36,0.25); }
.modal-divider { text-align:center; font-size:0.78rem; color:var(--text-dim); margin:0.85rem 0; }
.city-scroll { max-height:340px; overflow-y:auto; padding-right:0.25rem; scrollbar-width:thin; scrollbar-color:var(--border) transparent; }
.city-group-label { font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--text-dim); margin:0.75rem 0 0.35rem; }
.city-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:0.35rem; }
.city-btn { background:rgba(46,26,15,0.6); border:1px solid var(--border); border-radius:var(--r); color:var(--text-muted); font-size:0.82rem; padding:0.35rem 0.5rem; cursor:pointer; transition:all 0.15s; text-align:left; }
.city-btn:hover { border-color:var(--border-gold); color:var(--cream); background:rgba(74,44,26,0.8); }
.loc-custom-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:0.75rem; margin-top:0.75rem; }

/* ═══════════════════════════════════════════════════
   APP-JS GENERATED CLASSES (festival, calendar, etc.)
   ═══════════════════════════════════════════════════ */
.fest-list-mini { display:flex; flex-direction:column; gap:0.35rem; }
.fest-tag-full { display:inline-flex; align-items:center; gap:0.4rem; font-size:0.82rem; color:var(--cream); padding:0.35rem 0.65rem; background:rgba(244,161,36,0.1); border:1px solid var(--border-gold); border-radius:var(--r); }
.ftf-name { color:var(--cream); font-weight:600; }
.ftf-skt  { font-family:'Tiro Devanagari Sanskrit',serif; color:var(--text-muted); font-size:0.78rem; }
.ftf-vrat { font-size:0.7rem; background:rgba(244,161,36,0.2); color:var(--gold); padding:0.1rem 0.4rem; border-radius:10px; }
.ftf-meta { font-size:0.75rem; color:var(--text-dim); }
.fuc-info  { font-size:0.82rem; color:var(--text-muted); line-height:1.5; }
.fi-body   { font-size:0.85rem; color:var(--text-muted); line-height:1.6; padding:0.75rem 0; }
.fast-col  { display:flex; flex-direction:column; gap:0.5rem; }
.temple-info { font-size:0.85rem; color:var(--text-muted); line-height:1.6; margin-top:0.5rem; }
.history-content { font-size:0.9rem; color:var(--text-muted); line-height:1.8; }
.search-list { display:flex; flex-direction:column; gap:0.5rem; margin-top:1rem; }
.rem-list { display:flex; flex-direction:column; gap:0.5rem; }

/* Dasha rows */
.dasha-section { display:flex; flex-direction:column; gap:0.5rem; margin-bottom:1.5rem; }
.dr-current { background:rgba(244,161,36,0.1); border-left:3px solid var(--gold); border-radius:var(--r); }
.dr-past    { opacity:0.45; }
.adr-current { background:rgba(244,161,36,0.08); border-left:2px solid var(--saffron); }
.adr-past   { opacity:0.4; }
.ptr-current { background:rgba(244,161,36,0.06); border-left:2px solid rgba(244,161,36,0.4); }

/* House cards */
.hc-good { border-color:rgba(82,199,138,0.4) !important; }
.hc-bad  { border-color:rgba(224,90,75,0.35) !important; }

/* Choghadiya inline */
.chog-grid   { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:0.4rem; margin-bottom:1rem; }
.chog-seg    { border-radius:var(--r); padding:0.45rem 0.6rem; font-size:0.82rem; border:1px solid transparent; }
.chog-seg.best    { background:rgba(82,199,138,0.12); border-color:rgba(82,199,138,0.3); color:#52c78a; }
.chog-seg.good    { background:rgba(100,181,246,0.1); border-color:rgba(100,181,246,0.25); color:var(--accent-blue); }
.chog-seg.neutral { background:rgba(92,51,24,0.3); border-color:var(--border); color:var(--text-muted); }
.chog-seg.bad     { background:rgba(192,57,43,0.1); border-color:rgba(192,57,43,0.25); color:#e05a4b; }
.chog-seg.current { outline:2px solid var(--gold); outline-offset:1px; }
.chog-name  { font-weight:700; font-size:0.85rem; }
.chog-time  { font-size:0.7rem; color:var(--text-dim); margin-top:0.1rem; }
.chog-ruler { font-size:0.68rem; color:var(--text-dim); }
.chog-header { font-size:0.78rem; color:var(--text-dim); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:0.4rem; padding-top:0.5rem; }

/* Gochar */
.gochar-grid     { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:0.75rem; margin-bottom:1.5rem; }
.gochar-card     { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:0.9rem; }
.gochar-planet   { font-family:'Yatra One',cursive; font-size:0.95rem; color:var(--cream); }
.gochar-pos      { font-size:0.75rem; color:var(--text-dim); margin:0.15rem 0; }
.gochar-badge    { display:inline-block; font-size:0.68rem; padding:0.15rem 0.5rem; border-radius:10px; margin-top:0.3rem; }
.gochar-badge.good { background:rgba(82,199,138,0.15); color:#52c78a; }
.gochar-badge.bad  { background:rgba(192,57,43,0.15); color:#e05a4b; }
.gochar-badge.neutral { background:rgba(92,51,24,0.3); color:var(--text-muted); }
.gochar-desc     { font-size:0.78rem; color:var(--text-muted); margin-top:0.35rem; line-height:1.4; }
.gochar-meta     { font-size:0.78rem; color:var(--text-dim); margin-bottom:1rem; font-style:italic; }
.gochar-rashi-sel { display:flex; flex-wrap:wrap; gap:0.35rem; margin:1rem 0; }
.gochar-pred-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:0.75rem; margin-top:0.75rem; }
.rashi-sel-btn  { background:rgba(46,26,15,0.5); border:1px solid var(--border); border-radius:var(--r); color:var(--text-muted); font-size:0.82rem; padding:0.3rem 0.6rem; cursor:pointer; transition:all 0.15s; }
.rashi-sel-btn:hover, .rashi-sel-btn.active { border-color:var(--border-gold); color:var(--gold); background:rgba(244,161,36,0.1); }

/* Muhurat finder */
.mf-results-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:0.75rem; margin-top:1rem; }
.mfr-card  { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:1rem; }
.mfr-good  { border-color:rgba(82,199,138,0.35); }
.mfr-date  { font-family:'Yatra One',cursive; font-size:1.15rem; color:var(--gold); margin-bottom:0.3rem; }
.mfr-score { font-size:0.72rem; padding:0.15rem 0.5rem; border-radius:10px; display:inline-block; }

/* Navagraha mini grid */
.ng-grid   { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:0.5rem; }
.ng-card   { background:rgba(46,26,15,0.5); border:1px solid var(--border); border-radius:var(--r); padding:0.5rem; text-align:center; }
.ng-planet { font-size:0.7rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--text-dim); }
.ng-pos    { font-size:0.88rem; color:var(--cream); font-weight:600; margin-top:0.15rem; }
.ng-rashi  { font-size:0.7rem; color:var(--text-muted); }

/* Calendar event list */
.mev-today { background:rgba(184,92,20,0.1); border-left:3px solid var(--saffron); }

/* Nakshatra detail */
.nak-current { background:rgba(244,161,36,0.08); border-color:var(--border-gold) !important; }
.ritu-current { background:rgba(244,161,36,0.06); border-left:3px solid var(--gold); }

/* South Indian chart */
.si-chart    { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border-gold); border:1px solid var(--border-gold); border-radius:var(--r); overflow:hidden; }
.si-cell     { background:var(--bg-card); padding:0.45rem; min-height:60px; font-size:0.72rem; position:relative; }
.si-cell.center { background:rgba(244,161,36,0.05); display:flex; align-items:center; justify-content:center; }
.si-rashi    { font-size:0.62rem; color:var(--text-dim); position:absolute; top:3px; left:4px; }
.si-planets  { font-size:0.78rem; color:var(--cream); font-weight:600; }
.gs-exalt    { color:#52c78a; font-size:0.75rem; }
.gs-debil    { color:#e05a4b; font-size:0.75rem; }
.gs-own      { color:var(--accent-blue); font-size:0.75rem; }

/* Koot cards in Milan */
.koot-grid    { display:grid; grid-template-columns:repeat(auto-fill,minmax(195px,1fr)); gap:0.75rem; margin-bottom:1.5rem; }
.koot-card    { background:var(--bg-card); border:1px solid var(--border); border-radius:var(--r-lg); padding:1rem; text-align:center; }
.koot-name    { font-size:0.7rem; letter-spacing:0.07em; text-transform:uppercase; color:var(--text-dim); margin-bottom:0.2rem; }
.koot-score   { font-family:'Yatra One',cursive; font-size:1.6rem; margin:0.2rem 0; }
.koot-max     { font-size:0.7rem; color:var(--text-dim); }
.koot-bar     { height:5px; border-radius:3px; background:rgba(92,51,24,0.4); margin:0.4rem 0; overflow:hidden; }
.koot-bar-fill { height:100%; border-radius:3px; transition:width 0.6s ease; }
.koot-status  { font-size:0.7rem; padding:0.15rem 0.45rem; border-radius:10px; display:inline-block; }
.koot-desc    { font-size:0.7rem; color:var(--text-dim); margin-top:0.5rem; line-height:1.4; text-align:left; }

/* Compatibility areas */
.compat-grid  { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:0.75rem; }
.compat-bar-wrap { height:6px; background:rgba(92,51,24,0.4); border-radius:3px; overflow:hidden; margin:0.3rem 0; }
.compat-bar   { height:100%; border-radius:3px; transition:width 0.8s ease; }

/* Responsive overrides */
@media(max-width:768px) {
  .milan-forms-grid { grid-template-columns:1fr; }
  .patrika-grid { grid-template-columns:1fr 1fr; }
  .nav-primary { gap:0.15rem; }
  .brand-en { display:none; }
  .chog-grid { grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); }
  .koot-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:480px) {
  .nav-dropdown { right:-50px; min-width:175px; }
  .patrika-grid { grid-template-columns:1fr; }
  .milan-score-banner { flex-direction:column; align-items:center; text-align:center; }
  .koot-grid { grid-template-columns:repeat(2,1fr); gap:0.4rem; }
  .city-grid { grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); }
}

/* PDF Print styles */
.pdf-header { text-align:center; margin-bottom:2rem; padding:1.5rem 1rem; border-bottom:2px solid var(--border-gold); }
.pdf-footer  { text-align:center; margin-top:3rem; padding-top:1rem; border-top:1px solid var(--border); font-size:0.78rem; color:var(--text-dim); font-style:italic; }
