:root{
  --bg-dark: #0b0f19;
  --bg-card: #111827;
  --bg-elevated: #1f2937;
  --text-primary: #f8fafc;
  --text-muted: #94a3b8;
  --accent: #fbbf24;
  --accent-hover: #f59e0b;
  --accent-glow: rgba(251,191,36,0.25);
  --danger: #ef4444;
  --success: #22c55e;
  --border: #1f2937;
  --radius: 14px;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-head: 'Playfair Display', Georgia, serif;
  --max-content: 720px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px}
body{
  font-family:var(--font-body);
  background:var(--bg-dark);
  color:var(--text-primary);
  line-height:1.55;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
main{min-height:calc(100vh - 200px)}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;letter-spacing:-0.02em}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}

/* Navbar */
.navbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;height:64px;
  background:rgba(11,15,25,0.85);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:1.25rem;color:var(--text-primary);font-family:var(--font-head)}
.nav-links{display:flex;gap:20px;align-items:center}
.nav-links a{color:var(--text-muted);font-size:0.95rem}
.nav-links a:hover{color:var(--text-primary)}
.nav-toggle{display:none;background:none;border:none;color:var(--text-primary);font-size:1.6rem;cursor:pointer}
.nav-auth,.nav-user{display:flex;align-items:center;gap:10px}

@media (max-width:860px){
  .nav-links{position:fixed;inset:64px 0 auto 0;background:var(--bg-dark);flex-direction:column;padding:20px;border-bottom:1px solid var(--border);display:none}
  .nav-links.open{display:flex}
  .nav-toggle{display:block}
  .nav-auth,.nav-user{flex-direction:column;gap:10px;width:100%;margin-top:10px}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:10px;border:none;font-size:0.95rem;cursor:pointer;transition:.2s all;font-weight:500}
.btn-primary{background:var(--accent);color:#0b0f19}
.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px)}
.btn-glow{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#0b0f19;box-shadow:0 0 20px var(--accent-glow)}
.btn-glow:hover{transform:translateY(-2px);box-shadow:0 0 30px var(--accent-glow)}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}
.btn-outline:hover{border-color:var(--accent);color:var(--accent)}
.btn-ghost{background:transparent;color:var(--text-muted)}
.btn-ghost:hover{color:var(--text-primary)}
.btn-block{width:100%}
.btn-sm{padding:6px 12px;font-size:0.85rem}
.btn-lg{padding:14px 26px;font-size:1.05rem;border-radius:12px}
.btn-danger{background:var(--danger);color:#fff}

/* Hero */
.hero{position:relative;display:flex;align-items:center;justify-content:center;min-height:560px;padding:80px 20px;text-align:center;background:linear-gradient(180deg,#0b0f19 0%,#111827 60%,#0b0f19 100%)}
.hero::before{content:"";position:absolute;inset:0;background-image:url('https://images.unsplash.com/photo-1532693322450-4cb8e2f0b253?w=1920&q=80');background-size:cover;background-position:center;opacity:0.15;pointer-events:none}
.hero-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center, transparent 20%, var(--bg-dark) 90%)}
.hero-content{position:relative;z-index:2;max-width:780px}
.hero h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.15;margin-bottom:18px}
.hero p.lead{font-size:1.15rem;color:var(--text-muted);max-width:560px;margin:0 auto 28px}
.hero-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}
.trust-badges{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;color:var(--text-muted);font-size:0.9rem}
.trust-badges span{display:flex;align-items:center;gap:6px}

/* Sections */
.container{max-width:1000px;margin:0 auto;padding:40px 20px}
.page{padding:30px 20px 60px}
.section-title{font-size:1.8rem;margin-bottom:32px;text-align:center}
.features{background:var(--bg-card);padding:60px 20px}
.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}
.feature-card{background:var(--bg-dark);border:1px solid var(--border);border-radius:var(--radius);padding:28px;transition:.2s transform}
.feature-card:hover{transform:translateY(-4px);border-color:var(--accent)}
.feature-icon{font-size:2.2rem;margin-bottom:12px}
.feature-card h3{font-size:1.15rem;margin-bottom:10px}
.feature-card p{color:var(--text-muted);font-size:0.92rem;margin-bottom:14px}
.link-arrow{font-weight:500;display:inline-flex;align-items:center;gap:6px}

/* How It Works */
.how-it-works{padding:60px 20px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px}
.step{text-align:center;padding:20px}
.step-num{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#0b0f19;display:flex;align-items:center;justify-content:center;font-weight:700;margin:0 auto 14px;font-size:1.1rem}
.step h4{margin-bottom:8px}
.step p{color:var(--text-muted);font-size:0.9rem}

/* CTA */
.cta{text-align:center;padding:80px 20px;background:linear-gradient(180deg,var(--bg-dark),#111827)}
.cta h2{font-size:1.8rem;margin-bottom:14px}
.cta p{color:var(--text-muted);max-width:460px;margin:0 auto 24px}

/* Auth */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:40px 20px}
.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:36px;max-width:420px;width:100%}
.auth-card h1{font-size:1.5rem;margin-bottom:8px}
.auth-card p.muted{margin-bottom:24px}

/* Forms */
.form-group{margin-bottom:18px}
.form-group label{display:block;margin-bottom:6px;font-size:0.9rem;color:var(--text-muted)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 14px;background:var(--bg-dark);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:0.95rem}
.form-group input:focus,.form-group select:focus{border-color:var(--accent);outline:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.checkbox-group{display:flex;align-items:flex-start;gap:10px}
.checkbox-group input{margin-top:4px}
.checkbox-group{color:var(--text-muted);font-size:0.9rem}
.form-error{color:var(--danger);font-size:0.9rem;margin-top:8px;min-height:1.2em}
.form-success{color:var(--success);font-size:0.9rem;margin-top:8px}

/* Dashboard */
.dashboard-page{padding:24px 20px 60px}
.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:24px}
.dash-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.dash-card.wide{grid-column:1/-1}
.daily-card{background:linear-gradient(135deg,#1a2b4a,#111827);border:1px solid #2a3a5a}
.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.action-btn{background:var(--bg-dark);border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center;font-weight:500;font-size:0.95rem}
.action-btn:hover{border-color:var(--accent);color:var(--accent)}
.reading-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}
.reading-row:last-child{border-bottom:none}
.reading-row a{font-weight:500}
.lucky-box{display:flex;gap:24px;flex-wrap:wrap}
.lucky-item{display:flex;flex-direction:column;gap:4px}
.lucky-label{color:var(--text-muted);font-size:0.8rem}

/* Result box */
.result-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-top:20px}
.loader-box{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px}
.spinner{width:44px;height:44px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Reading sections */
.reading-sections{margin-top:20px}
.section{padding:16px 0;border-bottom:1px solid var(--border)}
.section:last-child{border-bottom:none}
.section h4{color:var(--accent);margin-bottom:6px;font-size:1rem}
.section p{color:var(--text-muted);font-size:0.95rem}
.highlights{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}
.highlights h4{margin-bottom:10px}
.highlights ul{padding-left:18px;color:var(--text-muted)}
.highlights li{margin-bottom:6px}
.reading-header{margin-bottom:12px}
.reading-header h2{margin-bottom:10px}
.lucky-strip{display:flex;gap:20px;margin-top:16px;flex-wrap:wrap;color:var(--text-muted);font-size:0.92rem}

/* Footer */
.footer{text-align:center;padding:30px 20px;color:var(--text-muted);font-size:0.9rem;border-top:1px solid var(--border)}
.footer p{margin-bottom:6px}
.footer .fine{font-size:0.8rem;color:#64748b}

/* Misc */
.tag{display:inline-block;background:#1a2a3a;color:var(--accent);padding:3px 10px;border-radius:6px;font-size:0.8rem;font-weight:500}
.alert{padding:14px 18px;border-radius:10px;background:#111827;border:1px solid var(--border);color:var(--text-muted);font-size:0.95rem;margin-top:10px}
.alert-error{border-color:var(--danger);color:#fca5a5;background:#2a0f12}
.alert-warning{border-color:#d97706;color:#fde68a;background:#2a1d0a}
.muted{color:var(--text-muted)}
.fine{font-size:0.82rem;color:#64748b}
.text-center{text-align:center}
.danger-zone{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}
.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.report-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}

/* Mobile tweaks */
@media (max-width:520px){
  .form-row{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .hero{padding:50px 16px}
  .hero h1{font-size:1.8rem}
  .container{padding:20px 14px}
  .dashboard-grid{grid-template-columns:1fr}
}

/* ── Progress Overlay ── */
.progress-overlay{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  background:rgba(11,15,25,0.92);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:fadeIn 0.3s ease;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

.progress-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:40px 32px;
  max-width:380px;width:90%;
  text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
}
.progress-card h3{
  font-size:1.2rem;margin-bottom:24px;
  color:var(--text-primary);
}

/* Multi-segment spinner ring */
.spinner-ring{
  position:relative;width:64px;height:64px;margin:0 auto 24px;
}
.ring-segment{
  position:absolute;inset:0;border-radius:50%;
  border:3px solid transparent;
  border-top-color:var(--accent);
  animation:ringSpin 1.2s cubic-bezier(0.5,0,0.5,1) infinite;
}
.ring-segment:nth-child(1){animation-delay:-0.4s}
.ring-segment:nth-child(2){animation-delay:-0.2s;border-top-color:#f59e0b}
.ring-segment:nth-child(3){border-top-color:#fbbf24}
@keyframes ringSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

/* Progress steps */
.progress-steps{
  display:flex;flex-direction:column;gap:10px;text-align:left;
  margin:0 auto 16px;max-width:260px;
}
.step{
  display:flex;align-items:center;gap:12px;
  color:var(--text-muted);font-size:0.9rem;
  transition:color 0.3s;
}
.step-dot{
  width:10px;height:10px;border-radius:50%;
  background:var(--border);flex-shrink:0;
  transition:background 0.3s,box-shadow 0.3s;
}
.step.active{color:var(--accent)}
.step.active .step-dot{background:var(--accent);box-shadow:0 0 8px var(--accent-glow);animation:pulse 1.5s ease infinite}
.step.done{color:var(--success)}
.step.done .step-dot{background:var(--success)}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}

.progress-eta{
  color:var(--text-muted);font-size:0.85rem;margin-top:4px;
}

/* Cancel button inside overlay */
.progress-overlay .btn-outline:hover{border-color:var(--danger);color:var(--danger)}


/* ── Model Selector ── */
.model-badge{
  padding: 10px 16px;
  border-radius: 8px;
  background: rgba(15,23,42,0.5);
  border: 1px solid var(--border);
  font-weight: 500;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.badge-standard{
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(74,222,128,0.15);
  color: var(--success);
  font-size: 0.8rem;
  font-weight: 600;
}

.badge-advanced{
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  background: linear-gradient(135deg, rgba(251,191,36,0.2), rgba(245,158,11,0.15));
  color: #fbbf24;
  font-size: 0.8rem;
  font-weight: 600;
}

.model-details{
  padding: 12px;
  border-radius: 8px;
  background: rgba(15,23,42,0.4);
  border: 1px solid var(--border);
  font-size: 0.9rem;
  line-height: 1.5;
}

.model-details p{
  margin: 0 0 6px;
}

.model-details p:last-child{
  margin-bottom: 0;
  color: var(--text-muted);
  font-size: 0.85rem;
}

optgroup{
  font-weight: 600;
  color: var(--text);
}

#modelSelect option[data-tier="advanced"]{
  color: #fbbf24;
}

.tag-model{
  background: linear-gradient(135deg, rgba(251,191,36,0.15), rgba(245,158,11,0.1));
  color: #fbbf24;
  border: 1px solid rgba(251,191,36,0.3);
}

/* Reading result display */
.reading-result{
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
  margin-top: 24px;
}
.reading-result h2{
  font-family: var(--font-head);
  font-size: 1.6rem;
  margin-bottom: 12px;
  color: var(--accent);
}
.reading-result .summary{
  font-size: 1.05rem;
  color: var(--text-muted);
  margin-bottom: 20px;
  line-height: 1.6;
}
.reading-section{
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.reading-section:last-child{
  border-bottom: none;
}
.reading-section h3{
  font-family: var(--font-head);
  font-size: 1.15rem;
  color: var(--text-primary);
  margin-bottom: 6px;
}
.reading-section p{
  color: var(--text-muted);
  line-height: 1.6;
}
.highlights, .warnings, .next-steps{
  margin-top: 16px;
  padding: 14px 18px;
  border-radius: 10px;
  background: var(--bg-elevated);
}
.highlights h4, .warnings h4, .next-steps h4{
  margin-bottom: 8px;
  font-size: 1rem;
}
.highlights ul, .warnings ul, .next-steps ul{
  margin-left: 18px;
  color: var(--text-muted);
}
.highlights ul li, .warnings ul li, .next-steps ul li{
  margin-bottom: 4px;
}
.confidence{
  margin-top: 14px;
  font-size: 0.9rem;
  color: var(--text-muted);
}
.disclaimer{
  margin-top: 12px;
  font-size: 0.8rem;
  color: #64748b;
  font-style: italic;
}
.model-tag{
  display: inline-block;
  margin-top: 12px;
  font-size: 0.75rem;
  padding: 4px 10px;
  border-radius: 6px;
  background: var(--bg-elevated);
  color: var(--text-muted);
}

/* Image preview */
.preview{
  max-width: 100%;
  max-height: 220px;
  border-radius: 10px;
  margin-top: 10px;
  border: 1px solid var(--border);
  object-fit: cover;
}

/* ═════════════════ Vedic Kundli Styles ═════════════════ */
.tabs{
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
}
.tab-btn{
  flex: 1;
  padding: 10px 14px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-elevated);
  color: var(--text-muted);
  cursor: pointer;
  font-weight: 500;
  transition: all .2s ease;
}
.tab-btn.active{
  background: linear-gradient(135deg, var(--accent), var(--accent-purple));
  color: #fff;
  border-color: transparent;
  box-shadow: 0 0 15px rgba(167,139,250,.4);
}

.vedic-result{
  margin-top: 28px;
}
.vedic-result h2{
  margin-bottom: 16px;
  font-size: 1.35rem;
}
.vedic-result h3{
  margin-top: 24px;
  margin-bottom: 10px;
  font-size: 1.05rem;
  color: var(--text-primary);
}
.vedic-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}
.vedic-badges .tag{
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  padding: 4px 10px;
  border-radius: 6px;
  font-size: .82rem;
}
.dash-desc{
  color: var(--text-muted);
  font-size: .92rem;
  margin-bottom: 16px;
}

.vedic-table{
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
  margin-bottom: 16px;
}
.vedic-table thead tr{
  background: var(--bg-elevated);
}
.vedic-table th, .vedic-table td{
  padding: 8px 10px;
  border-bottom: 1px solid var(--border);
  text-align: left;
}
.vedic-table th{
  color: var(--text-muted);
  font-weight: 600;
  font-size: .82rem;
  text-transform: uppercase;
  letter-spacing: .4px;
}
.vedic-table tbody tr:hover{
  background: rgba(167,139,250,.06);
}

.alert-success{background: rgba(16,185,129,.12); color: #34d399; border: 1px solid rgba(16,185,129,.3);}
.alert-info{background: rgba(59,130,246,.12); color: #60a5fa; border: 1px solid rgba(59,130,246,.3);}
.alert-warning{background: rgba(245,158,11,.12); color: #fbbf24; border: 1px solid rgba(245,158,11,.3);}

/* ═══════════ Location + Time Picker Styles ═══════════ */
.time-row{
  display: flex;
  align-items: center;
  gap: 8px;
}
.time-row select{
  appearance: none;
  -webkit-appearance: none;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: .95rem;
  color: var(--text-primary);
  cursor: pointer;
}
.time-row .ampm-group{
  display: flex;
  flex-shrink: 0;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.ampm-btn{
  padding: 8px 14px;
  border: none;
  background: var(--bg-elevated);
  color: var(--text-muted);
  cursor: pointer;
  font-size: .85rem;
  min-width: 44px;
}
.ampm-btn.active{
  background: linear-gradient(135deg, var(--accent), var(--accent-purple));
  color: #fff;
}

.location-wrap{
  position: relative;
}
.loc-row{
  display: flex;
  gap: 8px;
  align-items: center;
}
.loc-row input[type="text"]{
  flex: 1;
}
.btn-sm{
  padding: 6px 12px;
  font-size: .85rem;
}

.suggestions{
  list-style: none;
  margin: 4px 0 0 0;
  padding: 0;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: 8px;
  max-height: 180px;
  overflow-y: auto;
  position: absolute;
  z-index: 50;
  width: 100%;
}
.suggestions:empty{ display: none !important; }
.suggestions li{
  padding: 10px 14px;
  cursor: pointer;
  border-bottom: 1px solid var(--border);
}
.suggestions li:last-child{ border-bottom: none; }
.suggestions li:hover{
  background: rgba(167,139,250,.12);
}
.sug-name{
  font-weight: 600;
  font-size: .95rem;
  color: var(--text-primary);
}
.sug-detail{
  font-size: .78rem;
  color: var(--text-muted);
  margin-top: 2px;
}

.loc-meta{
  margin-top: 8px;
}

.person-block{
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 20px;
  background: rgba(15,23,42,.6);
}
.person-block h3{
  margin-bottom: 14px;
  font-size: 1.1rem;
}

