/* ================================================================
   EasyKundli — kundali-focused design
   Deep indigo night · antique gold · serif patrika typography
   ================================================================ */
:root {
  --bg: #070b09;
  --bg2: #0a120d;
  --panel: rgba(13, 21, 16, .85);
  --panel-solid: #0d1712;
  --line: rgba(143, 214, 172, .28);
  --line-strong: rgba(143, 214, 172, .55);
  --gold: #8fd6ac;
  --gold-bright: #c4eed4;
  --cream: #eef4ee;
  --text: #e2ece4;
  --muted: #93ab9c;
  --good: #8fe3ae;
  --bad: #ff9d9d;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'Mulish', 'Segoe UI', sans-serif;
  --display: 'Rozha One', 'Cormorant Garamond', Georgia, serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: hidden; }
body {
  font-family: var(--sans);
  font-weight: 300;
  background:
    radial-gradient(ellipse 90% 55% at 50% -5%, #0d1a12 0%, transparent 60%),
    radial-gradient(ellipse 40% 35% at 85% 15%, #0a150e 0%, transparent 70%),
    var(--bg);
  color: var(--text);
  line-height: 1.65;
  min-height: 100vh;
  overflow-x: hidden;
}

/* subtle star field */
.stars {
  position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background-image:
    radial-gradient(1px 1px at 12% 22%, #fff8 0%, transparent 100%),
    radial-gradient(1px 1px at 78% 12%, #fff6 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 34% 64%, #bfe8cf55 0%, transparent 100%),
    radial-gradient(1px 1px at 62% 42%, #fff5 0%, transparent 100%),
    radial-gradient(1px 1px at 88% 72%, #fff7 0%, transparent 100%),
    radial-gradient(1.5px 1.5px at 22% 86%, #fff4 0%, transparent 100%),
    radial-gradient(1px 1px at 50% 8%, #bfe8cf66 0%, transparent 100%),
    radial-gradient(1px 1px at 8% 52%, #fff5 0%, transparent 100%);
}

/* ---------- Masthead ---------- */
.masthead { text-align: center; padding: 44px 16px 8px; }
.masthead .om {
  font-size: 2.2em; color: var(--gold);
  text-shadow: 0 0 24px rgba(143, 214, 172, .55);
}
.masthead h1 {
  font-family: var(--display);
  font-size: clamp(2.7em, 6.5vw, 4.1em);
  font-weight: 400; letter-spacing: 1px; color: var(--cream); line-height: 1.05;
}
.masthead h1 span { color: var(--gold); }
.tagline {
  color: var(--muted); letter-spacing: 3px; font-size: .82em;
  text-transform: uppercase; margin-top: 2px;
}

/* gold rule with centred glyph */
.rule {
  display: flex; align-items: center; gap: 14px;
  max-width: 420px; margin: 18px auto 0; color: var(--gold);
}
.rule::before, .rule::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--line-strong));
}
.rule::after { background: linear-gradient(90deg, var(--line-strong), transparent); }

main { max-width: 1180px; margin: 0 auto; padding: 26px 4vw 10px; }

/* ---------- Calculator ---------- */
.calc-grid { display: grid; grid-template-columns: 5fr 6fr; gap: 22px; align-items: stretch; }
@media (max-width: 860px) { .calc-grid { grid-template-columns: 1fr; } }

.card, .map-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 26px 28px;
  backdrop-filter: blur(6px);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .45);
  position: relative;
}
.card::before, .map-card::before {
  content: ""; position: absolute; inset: 6px;
  border: 1px solid rgba(143, 214, 172, .12); border-radius: 10px;
  pointer-events: none;
}
.card-title {
  font-family: var(--display); font-weight: 400; font-size: 1.6em;
  color: var(--gold-bright); margin-bottom: 8px; letter-spacing: .5px;
}
.card-title small { color: var(--muted); font-size: .55em; letter-spacing: 2px; }

.card label {
  display: block; font-size: .72em; letter-spacing: 1.6px; text-transform: uppercase;
  color: var(--muted); margin: 15px 0 5px;
}
.card input {
  width: 100%; padding: 11px 13px; border-radius: 8px;
  border: 1px solid var(--line);
  background: rgba(4, 8, 6, .75); color: var(--cream);
  font-size: 1em; font-family: var(--sans);
  transition: border-color .2s, box-shadow .2s;
  color-scheme: dark;
}
.card input:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(143, 214, 172, .15); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

/* Contact form */
.card textarea {
  width: 100%; padding: 11px 13px; border-radius: 8px;
  border: 1px solid var(--line); background: rgba(4, 8, 6, .75); color: var(--cream);
  font-size: 1em; font-family: var(--sans); resize: vertical; color-scheme: dark;
}
.card textarea:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(143, 214, 172, .15); }
.contact-card { max-width: 640px; margin: 0 auto; }
.contact-intro { color: var(--muted); font-size: .92em; margin: 4px 0 6px; }
.contact-msg { margin-top: 12px; font-size: .92em; color: var(--gold-bright); min-height: 1.2em; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* Time of birth — hh:mm with AM/PM + 12h/24h toggle, styled as one control */
.time-input {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 6px 4px 12px; border-radius: 8px;
  border: 1px solid var(--line); background: rgba(4, 8, 6, .75);
  transition: border-color .2s, box-shadow .2s;
}
.time-input:focus-within { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(143, 214, 172, .15); }
.time-input input.ti-h, .time-input input.ti-m, .time-input input.ti-y {
  width: 2.4ch; padding: 7px 0; border: none; background: none; border-radius: 0;
  color: var(--cream); font-size: 1.05em; text-align: center; -moz-appearance: textfield;
}
.time-input input.ti-y { width: 4.6ch; }
.time-input input:focus { outline: none; box-shadow: none; border: none; }
.time-input input::-webkit-outer-spin-button,
.time-input input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.time-input .ti-sep { color: var(--muted); font-weight: 700; }
.ti-ampm, .ti-fmt {
  cursor: pointer; font-family: var(--sans); border-radius: 6px;
  border: 1px solid var(--line); background: rgba(143, 214, 172, .08);
  color: var(--cream); transition: background .15s, border-color .15s, color .15s;
}
.ti-ampm { min-width: 46px; padding: 6px 10px; font-size: .8em; font-weight: 700; letter-spacing: 1px; color: var(--gold-bright); }
.ti-ampm:hover, .ti-fmt:hover { border-color: var(--line-strong); background: rgba(143, 214, 172, .18); }
.ti-fmt { margin-left: auto; padding: 6px 9px; font-size: .68em; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); }
.ti-fmt[aria-pressed="true"] { color: var(--gold-bright); border-color: var(--line-strong); }
.time-input.is-24 .ti-ampm { display: none; }
html[data-theme="light"] .time-input { background: #fff; }

.btn-gold {
  margin-top: 24px; width: 100%;
  background: linear-gradient(160deg, var(--gold-bright), var(--gold) 55%, #4a8a67);
  color: #07130c; font-weight: 700; font-family: var(--sans); font-size: 1.02em;
  letter-spacing: 1.5px; padding: 14px; border: none; border-radius: 10px;
  cursor: pointer; box-shadow: 0 8px 28px rgba(143, 214, 172, .3);
  transition: transform .15s, box-shadow .15s;
}
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 12px 34px rgba(143, 214, 172, .42); }

.form-msg { margin-top: 12px; font-size: .85em; color: var(--gold-bright); }
.form-msg:empty { display: none; }

.search-wrap { position: relative; }
#search-results {
  display: none; position: absolute; z-index: 1200; left: 0; right: 0; top: calc(100% + 4px);
  background: var(--panel-solid); border: 1px solid var(--gold);
  border-radius: 10px; max-height: 230px; overflow-y: auto;
  box-shadow: 0 16px 40px rgba(0, 0, 0, .6);
}
.search-item { padding: 10px 14px; cursor: pointer; font-size: .88em; border-bottom: 1px solid rgba(143,214,172,.12); }
.search-item:last-child { border-bottom: none; }
.search-item:hover { background: rgba(143, 214, 172, .12); color: var(--gold-bright); }

#map { height: 100%; min-height: 330px; border-radius: 10px; filter: saturate(.7) brightness(.9); }
.map-card { display: flex; flex-direction: column; gap: 10px; }
#coords-note { color: var(--muted); font-size: .8em; }

/* ---------- Report ---------- */
#report { display: none; padding-top: 46px; }
.patrika-head { text-align: center; margin-bottom: 26px; }
.patrika-head h2 {
  font-family: var(--display); font-size: clamp(1.9em, 4.2vw, 2.8em);
  font-weight: 400; color: var(--cream); letter-spacing: 1px; margin-top: 14px;
}
.patrika-head p { color: var(--muted); letter-spacing: 1px; font-size: .9em; }

.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; margin: 26px 0; }
.sum-card {
  background: linear-gradient(165deg, rgba(143,214,172,.10), var(--panel) 45%);
  border: 1px solid var(--line); border-radius: 14px; padding: 20px 22px;
}
.sum-card h4 {
  color: var(--gold); font-weight: 600; font-size: .7em;
  letter-spacing: 2.4px; text-transform: uppercase;
}
.sum-card .big {
  font-family: var(--serif); font-size: 1.9em; font-weight: 600;
  color: var(--cream); margin: 4px 0 2px;
}
.sum-card .big small { color: var(--muted); font-size: .5em; font-weight: 500; letter-spacing: 1px; }
.sum-card p { font-size: .88em; }
.expl { color: var(--muted); font-size: .85em; margin-top: 8px; }

/* ---------- Charts ---------- */
.charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 28px 0; }
@media (max-width: 860px) { .charts-grid { grid-template-columns: 1fr; } }
.chart-box {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; padding: 18px 18px 12px; position: relative;
}
.chart-box h3 {
  text-align: center; font-family: var(--serif); font-weight: 600;
  color: var(--gold-bright); font-size: 1.25em; letter-spacing: 1px; margin-bottom: 10px;
}
.chart-box h3 small { display: block; font-family: var(--sans); color: var(--muted); font-size: .55em; letter-spacing: 2px; text-transform: uppercase; }

svg.kundali { width: 100%; height: auto; display: block; }
.k-line { stroke: var(--gold); stroke-width: 1.2; fill: none; opacity: .8; }
.k-num { fill: var(--muted); font-size: 12px; text-anchor: middle; font-family: var(--sans); }
.k-planet { fill: var(--cream); font-size: 15.5px; font-weight: 600; text-anchor: middle; font-family: var(--sans); }
.k-lagna { fill: var(--gold-bright); font-size: 15.5px; font-weight: 700; text-anchor: middle; font-family: var(--sans); }
.k-center { fill: var(--gold); font-size: 17px; font-weight: 600; text-anchor: middle; font-family: var(--serif); }
.k-center-sub { fill: var(--muted); font-size: 11px; text-anchor: middle; font-family: var(--sans); letter-spacing: 1px; }

/* ---------- Blocks & tables ---------- */
.block {
  background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; padding: 24px 26px; margin: 22px 0;
}
.block h3 {
  font-family: var(--serif); color: var(--gold-bright); font-weight: 600;
  font-size: 1.35em; letter-spacing: 1px; margin-bottom: 14px;
  border-bottom: 1px solid var(--line); padding-bottom: 8px;
}
.block table { width: 100%; border-collapse: collapse; font-size: .9em; }
.block th {
  color: var(--gold); text-align: left; padding: 8px 9px;
  font-size: .78em; letter-spacing: 1.6px; text-transform: uppercase;
  border-bottom: 1px solid var(--line-strong);
}
.block td { padding: 9px; border-bottom: 1px solid rgba(143, 214, 172, .1); vertical-align: top; }
.block tr:last-child td { border-bottom: none; }
.block tr.current td { background: rgba(143, 214, 172, .09); color: var(--gold-bright); }
.retro { color: var(--bad); font-weight: 700; }
.dig { font-size: .82em; padding: 2px 9px; border-radius: 10px; white-space: nowrap; }
.dig-exalted { background: rgba(143, 227, 174, .13); color: var(--good); }
.dig-own { background: rgba(143, 214, 172, .16); color: var(--gold-bright); }
.dig-debilitated { background: rgba(255, 157, 157, .12); color: var(--bad); }
.dig-neutral { color: var(--muted); }
#reading p { margin: 11px 0; font-size: .95em; }
#reading b { color: var(--gold-bright); font-weight: 600; }
.balance-line {
  font-family: var(--serif); font-size: 1.15em; color: var(--cream);
  margin-bottom: 12px;
}
.balance-line b { color: var(--gold-bright); }

/* ---------- Footer ---------- */
footer { text-align: center; padding: 30px 6vw 44px; color: var(--muted); font-size: .82em; }
footer .rule { margin-bottom: 20px; }
footer b { color: var(--gold); }
.disclaimer { max-width: 720px; margin: 8px auto 0; font-size: .88em; opacity: .75; }
.owner { margin-top: 12px; font-size: .82em; opacity: .7; }
.owner b { color: var(--gold); }
.ver { display: inline-block; margin-left: 6px; padding: 1px 8px; border: 1px solid var(--line); border-radius: 999px; font-family: var(--sans); font-size: .82em; letter-spacing: 1px; color: var(--muted); }

/* ---------- Lucky elements & persona ---------- */
.lucky-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 12px; }
.lucky-cell {
  background: rgba(143, 214, 172, .07); border: 1px solid var(--line);
  border-radius: 10px; padding: 14px 10px; text-align: center;
}
.lucky-cell h5 { color: var(--gold); font-size: .66em; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; margin-bottom: 5px; }
.lucky-cell .val { font-family: var(--serif); font-size: 1.12em; color: var(--cream); line-height: 1.35; }
.lucky-cell small { color: var(--muted); font-size: .72em; display: block; margin-top: 3px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.chip { border: 1px solid var(--line-strong); color: var(--gold-bright); border-radius: 16px; padding: 4px 13px; font-size: .82em; }
.avakhada { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-bottom: 12px; }
.avakhada span { color: var(--muted); font-size: .85em; }
.avakhada b { color: var(--cream); font-weight: 600; }
#persona-text p, #career-text p { margin: 10px 0; font-size: .95em; }
#persona-text b, #career-text b { color: var(--gold-bright); font-weight: 600; }

/* ---------- Manglik ---------- */
.manglik-verdict {
  display: inline-block; font-family: var(--serif); font-size: 1.25em; font-weight: 600;
  padding: 6px 18px; border-radius: 20px; margin-bottom: 12px;
}
.mv-no   { background: rgba(143, 227, 174, .14); color: var(--good); border: 1px solid rgba(143,227,174,.4); }
.mv-part { background: rgba(143, 214, 172, .14); color: var(--gold-bright); border: 1px solid var(--line-strong); }
.mv-yes  { background: rgba(255, 157, 157, .13); color: var(--bad); border: 1px solid rgba(255,157,157,.4); }
#manglik-text p { margin: 9px 0; font-size: .95em; }
#manglik-text b { color: var(--gold-bright); font-weight: 600; }

/* ---------- Share ---------- */
.share-btn {
  margin-top: 14px; background: none; border: 1px solid var(--line-strong);
  color: var(--gold-bright); border-radius: 20px; padding: 8px 20px;
  font-family: var(--sans); font-size: .85em; letter-spacing: 1px; cursor: pointer;
  transition: background .15s;
}
.share-btn:hover { background: rgba(143, 214, 172, .12); }

/* ---------- Do & Avoid ---------- */
.dodont-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 760px) { .dodont-grid { grid-template-columns: 1fr; } }
.dodont-col h4 { font-family: var(--serif); font-size: 1.1em; letter-spacing: 1px; margin-bottom: 8px; }
.dodont-col.do h4 { color: var(--good); }
.dodont-col.avoid h4 { color: var(--bad); }
.dodont-col ul { list-style: none; }
.dodont-col li { padding: 8px 0 8px 26px; position: relative; font-size: .93em; border-bottom: 1px solid rgba(143,214,172,.08); }
.dodont-col li:last-child { border-bottom: none; }
.dodont-col.do li::before { content: "✓"; position: absolute; left: 2px; color: var(--good); font-weight: 700; }
.dodont-col.avoid li::before { content: "✕"; position: absolute; left: 2px; color: var(--bad); font-weight: 700; }
.dodont-col li small { color: var(--muted); display: block; font-size: .85em; }

/* ---------- Greenish petals accents ---------- */
.lotus { width: 130px; display: block; margin: 12px auto 0; filter: drop-shadow(0 0 10px rgba(154, 223, 184, .25)); }
.chip { border-color: rgba(143, 227, 174, .45); color: #b9ecd0; }
.avakhada b { color: #b9ecd0; }
.lucky-cell { border-color: rgba(143, 227, 174, .22); }
.lucky-cell h5 { color: #9adfb8; }

/* ---------- Live nakshatra banner ---------- */
.live-nak {
  display: flex; align-items: center; justify-content: center; flex-wrap: wrap;
  gap: 8px 18px; margin: 0 auto 24px; max-width: 900px;
  background: linear-gradient(150deg, rgba(143,227,174,.08), var(--panel) 60%);
  border: 1px solid rgba(143, 227, 174, .3); border-radius: 40px;
  padding: 12px 26px; text-align: center;
}
.ln-left { color: #9adfb8; font-size: .72em; letter-spacing: 2.5px; font-weight: 700; display: flex; align-items: center; gap: 7px; }
.ln-dot { width: 8px; height: 8px; border-radius: 50%; background: #9adfb8; box-shadow: 0 0 8px #9adfb8; animation: lnpulse 1.6s infinite; }
@keyframes lnpulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
.ln-main { font-family: var(--serif); font-size: 1.3em; color: var(--cream); }
.ln-sig { font-family: var(--sans); font-size: .56em; font-weight: 600; letter-spacing: .4px; color: var(--gold); opacity: .92; margin-top: 4px; }
.ln-main b { color: var(--gold-bright); }
.ln-main .syl { color: #b9ecd0; font-weight: 700; }
.ln-sub { color: var(--muted); font-size: .78em; }

/* ---------- Minimal greenish refinements ---------- */
.stars { opacity: .3; }
body { letter-spacing: .01em; }
.block, .chart-box, .card, .map-card, .sum-card { border-radius: 18px; box-shadow: none; }
.block { padding: 30px 34px; }
.card::before, .map-card::before { display: none; }
.masthead h1 span { color: var(--gold); }
.block h3 { border-bottom: none; padding-bottom: 0; }
.block table { font-size: .88em; }
.expl { line-height: 1.7; }

/* ---------- True dark refinements ---------- */
.block, .chart-box, .card, .map-card, .sum-card, .live-nak { background: rgba(13, 21, 16, .85); }
.sum-card { background: linear-gradient(165deg, rgba(143,214,172,.07), rgba(13,21,16,.85) 45%); }
.live-nak { background: linear-gradient(150deg, rgba(143,227,174,.07), rgba(13,21,16,.85) 60%); }
#map { filter: saturate(.6) brightness(.75); }

/* ================= Light theme ================= */
html[data-theme="light"] {
  color-scheme: light;
}
html[data-theme="light"] body {
  background:
    radial-gradient(ellipse 90% 55% at 50% -5%, #e4f1e8 0%, transparent 60%),
    radial-gradient(ellipse 40% 35% at 85% 15%, #ddeee3 0%, transparent 70%),
    #f5faf6;
  color: #1f2d25;
}
html[data-theme="light"] :root, html[data-theme="light"] {
  --bg: #f5faf6; --bg2: #eaf4ed;
  --panel: rgba(255, 255, 255, .85); --panel-solid: #ffffff;
  --line: rgba(31, 92, 62, .22); --line-strong: rgba(31, 92, 62, .45);
  --gold: #1f5c3e; --gold-bright: #14472f;
  --cream: #10231a; --text: #1f2d25; --muted: #49604f;
  --good: #14603a; --bad: #a03030;
}
html[data-theme="light"] .stars { display: none; }
html[data-theme="light"] .card input { background: #ffffff; color: #10231a; }
html[data-theme="light"] .btn-gold {
  background: linear-gradient(160deg, #2c7a52, #1f5c3e 60%, #174a31);
  color: #ffffff; box-shadow: 0 8px 24px rgba(31, 92, 62, .25);
}
html[data-theme="light"] #map { filter: none; }
html[data-theme="light"] .block, html[data-theme="light"] .chart-box,
html[data-theme="light"] .card, html[data-theme="light"] .map-card,
html[data-theme="light"] .sum-card, html[data-theme="light"] .live-nak {
  background: rgba(255, 255, 255, .88);
  box-shadow: 0 4px 22px rgba(24, 52, 38, .08);
}
html[data-theme="light"] .sum-card { background: linear-gradient(165deg, rgba(31,92,62,.06), #ffffff 45%); }
html[data-theme="light"] .masthead .om { text-shadow: none; }
html[data-theme="light"] .ln-left { color: #14603a; }
html[data-theme="light"] .ln-dot { background: #14603a; box-shadow: none; }
html[data-theme="light"] .ln-main .syl, html[data-theme="light"] .chip, html[data-theme="light"] .avakhada b { color: #14603a; }
html[data-theme="light"] .chip { border-color: rgba(20, 96, 58, .4); }
html[data-theme="light"] .lucky-cell { background: rgba(31, 92, 62, .05); }
html[data-theme="light"] .lucky-cell h5 { color: #1f5c3e; }
html[data-theme="light"] .dig-own { background: rgba(31, 92, 62, .1); color: #14472f; }
html[data-theme="light"] .mv-part { background: rgba(31, 92, 62, .08); color: #14472f; border-color: rgba(31,92,62,.35); }

/* ================= Accessibility ================= */
.theme-toggle {
  position: fixed; top: 16px; right: 16px; z-index: 2000;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--panel-solid); border: 1px solid var(--line-strong);
  color: var(--gold-bright); font-size: 1.2em; cursor: pointer;
}
.theme-toggle:hover { border-color: var(--gold); }
.skip-link {
  position: absolute; left: -9999px; top: 10px; z-index: 3000;
  background: var(--gold); color: #07130c; padding: 10px 18px; border-radius: 8px;
  font-weight: 700; text-decoration: none;
}
.skip-link:focus { left: 10px; }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; border-radius: 4px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* ---------- Single minimal ad slot ---------- */
.ad-slot {
  max-width: 728px; margin: 30px auto 6px; padding: 14px;
  border: 1px dashed var(--line); border-radius: 12px;
  text-align: center; min-height: 60px; position: relative;
}
.ad-tag {
  position: absolute; top: -9px; left: 16px; background: var(--bg);
  color: var(--muted); font-size: .62em; letter-spacing: 2px; text-transform: uppercase; padding: 0 8px;
}
.ad-slot:not(:has(ins)) { display: none; } /* hidden until real ad code is added */

/* ---------- Language selector ---------- */
.lang-select {
  position: fixed; top: 16px; right: 70px; z-index: 2000;
  background: var(--panel-solid); border: 1px solid var(--line-strong);
  color: var(--gold-bright); border-radius: 22px; padding: 9px 14px;
  font-family: var(--sans); font-size: .85em; cursor: pointer; max-width: 130px;
}
.lang-select:hover, .lang-select:focus-visible { border-color: var(--gold); }
/* hide Google Translate chrome, keep translations */
.goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame, .skiptranslate iframe { display: none !important; }
body { top: 0 !important; }
font { background: transparent !important; box-shadow: none !important; }

/* ---------- Live banner: stacked lines ---------- */
.live-nak { flex-direction: column; gap: 5px; border-radius: 18px; padding: 22px 38px; }
.ln-main { font-size: 1.45em; }
.ln-name { color: var(--text); font-size: .95em; }
.ln-name .syl { color: #b9ecd0; font-weight: 700; font-size: 1.15em; }
html[data-theme="light"] .ln-name .syl { color: #14603a; }

/* ---------- Map pin & pointer ---------- */
#map { cursor: crosshair; }
#map, html[data-theme="light"] #map { filter: none; }
.map-pin { position: relative; width: 30px; height: 42px; }
.map-pin svg { position: relative; z-index: 2; filter: drop-shadow(0 3px 6px rgba(0,0,0,.5)); }
.map-pin-pulse {
  position: absolute; left: 50%; bottom: -2px; width: 26px; height: 10px;
  transform: translateX(-50%); border-radius: 50%;
  background: rgba(143, 214, 172, .45); z-index: 1;
  animation: pinpulse 1.8s ease-out infinite;
}
@keyframes pinpulse {
  0% { transform: translateX(-50%) scale(.6); opacity: .9; }
  70% { transform: translateX(-50%) scale(1.9); opacity: 0; }
  100% { opacity: 0; }
}
.leaflet-control-attribution { background: rgba(0,0,0,.4) !important; color: #9db7a6 !important; font-size: 9px !important; }
html[data-theme="light"] .leaflet-control-attribution { background: rgba(255,255,255,.6) !important; color: #51695c !important; }

/* ---------- LIVE banner highlight (soft, not flashy) ---------- */
.live-nak {
  border: 1px solid rgba(143, 227, 174, .5);
  animation: lnbreathe 4.5s ease-in-out infinite;
}
@keyframes lnbreathe {
  0%, 100% { box-shadow: 0 0 14px rgba(143, 227, 174, .08); border-color: rgba(143, 227, 174, .35); }
  50%      { box-shadow: 0 0 30px rgba(143, 227, 174, .22); border-color: rgba(143, 227, 174, .65); }
}
.ln-left {
  background: rgba(143, 227, 174, .13);
  padding: 4px 14px; border-radius: 16px;
}
html[data-theme="light"] .live-nak { border-color: rgba(20, 96, 58, .45); }
html[data-theme="light"] .live-nak { animation-name: lnbreathe-light; }
@keyframes lnbreathe-light {
  0%, 100% { box-shadow: 0 2px 14px rgba(20, 96, 58, .10); }
  50%      { box-shadow: 0 2px 26px rgba(20, 96, 58, .22); }
}
html[data-theme="light"] .ln-left { background: rgba(20, 96, 58, .1); }

/* ---------- Pada chips in live banner ---------- */
.ln-label { color: var(--muted); font-size: .78em; letter-spacing: 2px; text-transform: uppercase; margin-top: 4px; }
.ln-padas { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.pada-chip {
  display: inline-flex; flex-direction: column; align-items: center;
  border: 1px solid var(--line); border-radius: 10px; padding: 5px 14px; min-width: 64px;
}
.pada-chip .pc-label { font-size: .6em; letter-spacing: 1.5px; text-transform: uppercase; color: var(--muted); }
.pada-chip .pc-syl { font-family: var(--serif); font-size: 1.15em; font-weight: 600; color: var(--cream); }
.pada-chip.active {
  background: rgba(143, 227, 174, .2);
  border-color: var(--gold);
  box-shadow: 0 0 0 1px rgba(143, 214, 172, .45), 0 6px 20px rgba(143, 214, 172, .22);
}
.pada-chip.active .pc-syl { color: #cdf5dc; }
.pada-chip.active .pc-label { color: #9adfb8; }
.pada-chip .pc-now {
  font-size: .55em; font-weight: 800; letter-spacing: 1px; text-transform: uppercase;
  color: #08110b; background: var(--gold); border-radius: 999px;
  padding: 1px 8px; margin-bottom: 3px; line-height: 1.6;
}
.ln-now { font-size: .95em; margin-top: 2px; }
.ln-place { color: var(--muted); font-size: .85em; }
.ln-place b { color: var(--text); }
html[data-theme="light"] .pada-chip.active { background: rgba(20, 96, 58, .1); border-color: rgba(20, 96, 58, .5); }
html[data-theme="light"] .pada-chip.active .pc-syl, html[data-theme="light"] .pada-chip.active .pc-label { color: #14603a; }
html[data-theme="light"] .pada-chip .pc-now { color: #f3faf5; }
/* Phone: keep all 4 padas on one row */
/* Wide report tables scroll inside their own card, never the whole page */
.block { overflow-x: auto; }
@media (max-width: 560px) {
  .ln-padas { gap: 5px; width: 100%; flex-wrap: nowrap; }
  .pada-chip { flex: 1 1 0; min-width: 0; padding: 5px 4px; }
  .pada-chip .pc-syl { font-size: 1em; }
  .pada-chip .pc-till { font-size: .52em; }
  .pada-chip .pc-now { font-size: .5em; padding: 1px 5px; letter-spacing: .5px; }
  main { padding: 22px 4vw 10px; }
  .summary-cards { grid-template-columns: 1fr; gap: 12px; }
  .charts-grid { grid-template-columns: 1fr; }
  .block table { font-size: .82em; }
}

/* ================= Print / Save-as-PDF ================= */
@media print {
  .stars, .masthead, .live-nak, .calc, .theme-toggle, .lang-select,
  .skip-link, .share-btn, #pdf-btn, .ad-slot, footer, #google_translate_element,
  .leaflet-container { display: none !important; }
  body { background: #ffffff !important; color: #1a231d !important; font-size: 11px; }
  main { max-width: 100%; padding: 0; }
  #report { display: block !important; padding-top: 0; }
  .patrika-head h2, .block h3, .chart-box h3, .sum-card .big { color: #14472f !important; }
  .patrika-head p, .expl, .k-num, .ln-label { color: #51695c !important; }
  .block, .chart-box, .sum-card {
    background: #ffffff !important; border: 1px solid #b9d4c3 !important;
    box-shadow: none !important; break-inside: avoid; page-break-inside: avoid;
  }
  .summary-cards, .charts-grid { break-inside: avoid; }
  .charts-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .k-line { stroke: #2a5d42 !important; opacity: 1 !important; }
  .k-planet { fill: #10231a !important; }
  .k-lagna, .k-center { fill: #14472f !important; }
  .k-center-sub, .k-num { fill: #51695c !important; }
  .block td, .block th { color: #1a231d !important; border-color: #cfe2d6 !important; }
  .block th { color: #14472f !important; }
  #reading b, #career-text b, #persona-text b, #manglik-text b, #ishta-text b,
  .balance-line b, .avakhada b { color: #14472f !important; }
  .dig, .chip, .pada-chip, .manglik-verdict { border: 1px solid #9dbfab !important; background: none !important; color: #1a231d !important; }
  .dig-exalted { color: #14603a !important; }
  .dig-debilitated, .retro { color: #8c2f2f !important; }
  .lucky-cell { background: #f2f8f4 !important; border-color: #b9d4c3 !important; }
  .lucky-cell h5 { color: #14603a !important; }
  .lucky-cell .val { color: #10231a !important; }
  .dodont-col.do h4 { color: #14603a !important; }
  .dodont-col.avoid h4 { color: #8c2f2f !important; }
  .block tr.current td { background: #eef6f1 !important; color: #14472f !important; }
  a { color: #14472f !important; text-decoration: none; }
}
@page { margin: 14mm 12mm; }
