:root {
  --bg: #faf6ef; --card: #ffffff; --ink: #2b2118; --muted: #7a6b5d; --line: #e6dccd;
  --accent: #b5541b; --accent-soft: #fbeadf; --gold: #c89b3c; --good: #2f7d4f; --warn: #b23b2e;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--ink);
  font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
h2, h3, .brand { font-family: Georgia, "Times New Roman", serif; font-weight: 600; }
h2 { margin: 0 0 14px; font-size: 20px; }
h3 { margin: 0 0 12px; font-size: 17px; }
.top { background: #2b2118; color: #f6e9d6; padding: 14px 24px; }
.brand { font-size: 20px; letter-spacing: .3px; }
.mark { color: var(--gold); }
.ver { font: 12px -apple-system, sans-serif; color: #c9b79f; margin-left: 10px; }
main { max-width: 1180px; margin: 0 auto; padding: 22px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 18px 20px; margin-bottom: 18px; }
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 16px; }
label { display: flex; flex-direction: column; font-size: 12.5px; color: var(--muted); gap: 4px; position: relative; }
input, select { font: inherit; color: var(--ink); padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: #fffdf9; }
h3 select { font: 600 16px Georgia, serif; padding: 4px 8px; }
.place { grid-column: span 2; }
.actions { display: flex; align-items: flex-end; }
button { font: 600 15px inherit; background: var(--accent); color: #fff; border: 0; border-radius: 8px; padding: 10px 18px; cursor: pointer; width: 100%; }
button:hover { filter: brightness(1.07); }
.hint, .muted { color: var(--muted); font-size: 12.5px; margin: 10px 0 0; }
.sugg { position: absolute; top: 100%; left: 0; right: 0; z-index: 5; list-style: none; margin: 2px 0 0; padding: 4px 0;
  background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.08); }
.sugg li { padding: 6px 10px; cursor: pointer; color: var(--ink); font-size: 14px; }
.sugg li:hover { background: var(--accent-soft); }
.sugg small { color: var(--muted); }
.err { background: #fdecea; color: var(--warn); border: 1px solid #f3c2bc; border-radius: 10px; padding: 12px 16px; margin-bottom: 16px; }
.summary { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.summary div { min-width: 140px; }
.summary b { display: block; font: 600 17px Georgia, serif; }
.summary span { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; }
.charts, .two { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.charts .card { display: flex; flex-direction: column; align-items: center; }
.charts svg { width: 100%; max-width: 440px; height: auto; }
.scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th { text-align: left; font-weight: 600; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .3px; border-bottom: 2px solid var(--line); padding: 8px 10px; }
td { border-bottom: 1px solid var(--line); padding: 7px 10px; white-space: nowrap; }
.tag { display: inline-block; font-size: 11px; padding: 1px 7px; border-radius: 10px; background: var(--accent-soft); color: var(--accent); margin-left: 4px; }
.tag.good { background: #e3f2e8; color: var(--good); }
.tag.bad { background: #fbe4e1; color: var(--warn); }
.dasha-row { cursor: pointer; }
.dasha-row td:first-child::before { content: "▸ "; color: var(--muted); }
.dasha-row.open td:first-child::before { content: "▾ "; }
.lvl2 td:first-child { padding-left: 30px; }
.lvl3 td:first-child { padding-left: 54px; color: var(--muted); }
tr.now td { background: var(--accent-soft); font-weight: 600; }
.kv { display: grid; grid-template-columns: 150px 1fr; gap: 6px 12px; font-size: 14px; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }
.yoga { border-left: 3px solid var(--gold); padding: 6px 12px; margin-bottom: 12px; }
.yoga.dosha { border-color: var(--warn); }
.yoga h4 { margin: 0 0 2px; font: 600 15px Georgia, serif; }
.yoga p { margin: 2px 0; font-size: 14px; }
.yoga .src { color: var(--muted); font-size: 12.5px; }
footer { text-align: center; color: var(--muted); font-size: 12px; padding: 10px 20px 30px; }
@media (max-width: 860px) { .grid { grid-template-columns: 1fr 1fr; } .charts, .two { grid-template-columns: 1fr; } }

/* ---------- v0.5 additions ---------- */
.top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.mainnav { display: flex; gap: 6px; flex-wrap: wrap; }
.mainnav button { width: auto; background: transparent; color: #e9d9c2; border: 1px solid #5a4636; padding: 7px 14px; font-weight: 500; }
.mainnav button.on { background: var(--gold); color: #2b2118; border-color: var(--gold); }
details.form-card > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 14px; }
details.form-card > summary::-webkit-details-marker { display: none; }
details.form-card > summary h2 { margin: 0; }
details.form-card:not([open]) > summary h2::after { content: attr(data-edit); font: 13px -apple-system, sans-serif; color: var(--accent); }
details.form-card[open] form { margin-top: 14px; }
.saved { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }
.saved select { max-width: 260px; }
button.ghost { width: auto; background: transparent; color: var(--accent); border: 1px solid var(--accent); padding: 7px 14px; font-weight: 500; }
.tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; position: sticky; top: 0; z-index: 4; background: var(--bg); padding: 8px 0; }
.tabs button { width: auto; background: #fff; color: var(--ink); border: 1px solid var(--line); padding: 7px 13px; font-weight: 500; font-size: 14px; }
.tabs button.on { background: var(--accent); color: #fff; border-color: var(--accent); }
.tabs .print { margin-left: auto; background: transparent; color: var(--muted); }
.three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.big h3 { font-size: 19px; margin: 4px 0 8px; }
.big p { margin: 0; font-size: 15.5px; }
.kicker { font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; color: var(--accent); font-weight: 600; }
.lead { font-size: 16px; margin: 0; }
.intro { font-size: 15.5px; margin: 0 0 14px; color: var(--ink); }
ul.clean { margin: 0; padding-left: 18px; }
ul.clean li { margin: 4px 0; }
ul.clean.good li::marker { color: var(--good); }
ul.clean.bad li::marker { color: var(--warn); }
.grid-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.grid-cards .card { margin-bottom: 0; }
.hhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.hhead h3 { margin: 2px 0 4px; }
.pill { display: inline-block; font-size: 12.5px; font-weight: 600; padding: 3px 11px; border-radius: 20px; white-space: nowrap; }
.pill.good { background: #e3f2e8; color: var(--good); }
.pill.mid { background: #fdf3dc; color: #946b12; }
.pill.bad { background: #fbe4e1; color: var(--warn); }
.pm { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 8px; }
.pm b { font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }
.pm > div:first-child b { color: var(--good); }
.pm > div:last-child b { color: var(--warn); }
.pm ul { margin: 6px 0 0; padding-left: 16px; font-size: 14px; }
.pm li { margin: 3px 0; }
.pm > div:first-child li::marker { content: "+  "; color: var(--good); font-weight: 700; }
.pm > div:last-child li::marker { content: "–  "; color: var(--warn); font-weight: 700; }
.disclaimer { text-align: center; margin: 8px 0 20px; }
table.center td, table.center th { text-align: center; }
td.hi { background: #e3f2e8; color: var(--good); font-weight: 600; }
td.lo { background: #fbe4e1; color: var(--warn); font-weight: 600; }
.bars { display: grid; gap: 8px; }
.bar { display: grid; grid-template-columns: 70px 1fr 40px; align-items: center; gap: 10px; font-size: 14px; }
.bar div { background: #f1e9dc; border-radius: 6px; height: 12px; overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--gold); }
.bar i.hi { background: var(--good); }
.bar i.lo { background: var(--warn); }
.yoga.card { border-left: 4px solid var(--good); }
.yoga.card.dosha { border-left-color: var(--warn); }
.remhead { display: flex; gap: 16px; align-items: center; }
.yantra { width: 92px; height: 92px; flex: none; }
.rem ol { margin: 10px 0 0; padding-left: 20px; }
.rem li { margin: 5px 0; }
.libcard { border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
.libcard h4 { margin: 0; font: 600 18px Georgia, serif; }
.kv.small { grid-template-columns: 150px 1fr; font-size: 13.5px; margin-top: 10px; }
.card.inner { background: #fffcf7; }
.grid.g2 { grid-template-columns: 1fr 1fr; }
.grid.g2 .place { grid-column: span 2; }
.meter { position: relative; height: 16px; background: #f1e9dc; border-radius: 8px; margin: 8px 0 26px; }
.meter i { display: block; height: 100%; border-radius: 8px; background: linear-gradient(90deg, var(--accent), var(--gold)); }
.meter span { position: absolute; top: 18px; transform: translateX(-50%); font-size: 11.5px; color: var(--muted); }
.meter span::before { content: ""; position: absolute; left: 50%; top: -18px; height: 16px; border-left: 2px dashed var(--ink); }
.askrow { display: flex; gap: 10px; }
.askrow input { flex: 1; }
.askrow button { width: auto; }
.answer { white-space: pre-wrap; margin-top: 14px; font-size: 15px; }
.plan p { font-size: 15px; }
.plan table td { white-space: normal; vertical-align: top; }
.st { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 2px 9px; border-radius: 10px; white-space: nowrap; }
.st.done { background: #e3f2e8; color: var(--good); }
.st.next { background: #fdf3dc; color: #946b12; }
.st.acct { background: #e8eefb; color: #2f4f9b; }
.legend { font-size: 13.5px; color: var(--muted); }
.road li { margin: 8px 0; font-size: 15px; }
@media (max-width: 860px) { .three, .pm, .grid.g2 { grid-template-columns: 1fr; } }
@media print {
  .top, .tabs, footer, #formbox, .mainnav, .askrow { display: none !important; }
  body { background: #fff; }
  .tab[hidden] { display: block !important; }
  #t-ask { display: none !important; }
  .card { break-inside: avoid; border-color: #ccc; }
  main { padding: 0; max-width: none; }
}

/* ---------- v0.6 additions ---------- */
h3.sect { margin: 22px 0 10px; font-size: 18px; }
td.wrap { white-space: normal; min-width: 260px; }
.bar.wide { grid-template-columns: 70px 1fr 90px 80px; }
.bar em { font-style: normal; font-size: 12.5px; color: var(--muted); }
ul.small { font-size: 12.5px; }
.lkchart svg { width: 100%; max-width: 420px; display: block; margin: 0 auto; }
.lkrem { margin-top: 10px; padding: 10px 12px; background: #fdf6ea; border-radius: 8px; font-size: 14px; }
.lkrem ul { margin: 6px 0 0; padding-left: 18px; }
details.rin { border-left: 3px solid var(--gold); padding: 6px 12px; margin-bottom: 12px; background: #fffcf7; border-radius: 0 8px 8px 0; }
details.rin > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 14px; align-items: flex-start; }
details.rin > summary::-webkit-details-marker { display: none; }
details.rin h4 { margin: 4px 0; font: 600 15px Georgia, serif; }
details.rin p { margin: 3px 0; font-size: 14px; }
.more { flex: none; font-size: 13px; color: var(--accent); border: 1px solid var(--accent); border-radius: 14px; padding: 2px 10px; margin-top: 4px; }
details.rin[open] .more::after { content: " ▲"; }
details.rin:not([open]) .more::after { content: " ▼"; }
.rinbody { border-top: 1px dashed var(--line); margin-top: 8px; padding-top: 8px; font-size: 14px; }
.rinbody ol, .rinbody ul { margin: 4px 0 10px; padding-left: 20px; }
.two.tight { gap: 14px; }
.three .card h4 { margin: 12px 0 2px; font: 600 15px Georgia, serif; }
.three .card ul { padding-left: 18px; margin: 4px 0; font-size: 14px; }
@media print { details.rin > .rinbody { display: block; } }
.two > *, .three > *, .charts > * { min-width: 0; }
.guru { background: #fff4e5; border: 1px solid #f0c27b; border-left: 5px solid #d9822b; color: #6b3d0f; border-radius: 8px;
  padding: 10px 14px; margin: 0 0 14px; font-size: 14px; font-weight: 500; }
.guru::before { content: "Important: "; font-weight: 700; }
.guru.big { font-size: 15px; }
details.more-box { margin: -6px 0 18px; }
details.more-box > summary { cursor: pointer; color: var(--accent); font-weight: 600; margin-bottom: 12px; }
@media print { details.more-box > * { display: block; } }
p.lead + p.lead { margin-top: 12px; }
h4.stream { margin: 12px 0 4px; font: 600 14px -apple-system, sans-serif; color: var(--good); text-transform: uppercase; letter-spacing: .4px; }
details.tantra-opt { margin-top: 10px; border-top: 1px dashed var(--line); padding-top: 8px; }
details.tantra-opt > summary { cursor: pointer; color: #b5541b; font-weight: 600; margin-bottom: 8px; }
details.tantra-opt .remhead { align-items: flex-start; }
.predbar { display: flex; gap: 16px; align-items: flex-end; flex-wrap: wrap; }
.predbar .place { flex: 1; min-width: 260px; }
.seg { display: inline-flex; border: 1px solid var(--accent); border-radius: 10px; overflow: hidden; }
.seg button { width: auto; border-radius: 0; background: #fff; color: var(--accent); padding: 9px 16px; font-weight: 600; }
.seg button.on { background: var(--accent); color: #fff; }
.stars { color: var(--gold); letter-spacing: 1px; font-size: 15px; margin: 0 6px; }
.stars span { color: #e3d8c6; }
.week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin: 12px 0 4px; }
.dcell, .mcell { width: auto; background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: 8px; text-align: left; font-weight: 400; display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.dcell:hover, .mcell:hover { border-color: var(--accent); filter: none; }
.dcell .stars, .mcell .stars { margin: 0; font-size: 12px; }
.s5, .s4 { background: #eef7f0; } .s1, .s2 { background: #fcecea; }
.mgrid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin: 12px 0 4px; }
.mhead { text-align: center; font-size: 12px; color: var(--muted); font-weight: 600; }
.mcell { min-height: 74px; }
.mcell.empty { border: 0; background: transparent; }
.mcell em { font-style: normal; font-size: 11px; color: var(--accent); }
.card.member { background: #f6f0ff; border-color: #ddd0f5; }
@media (max-width: 860px) { .week { grid-template-columns: repeat(2, 1fr); } }
.lkread { font-size: 14px; margin: 6px 0; }
.langsw { display: inline-flex; border: 1px solid #5a4636; border-radius: 8px; overflow: hidden; margin-left: auto; margin-right: 10px; }
.langsw button { width: auto; background: transparent; color: #e9d9c2; border-radius: 0; padding: 6px 12px; font-weight: 600; }
.langsw button.on { background: var(--gold); color: #2b2118; }
.say { width: auto; background: #fff; color: var(--accent); border: 1px solid var(--accent); border-radius: 14px; padding: 2px 10px; font-size: 12.5px; font-weight: 600; margin: 2px 0; }
.say:hover { background: var(--accent-soft); filter: none; }
.devrow { font-size: 15px; margin: 8px 0 4px; }
.hinote { background: #eef4ff; border: 1px solid #c9d8f5; color: #2f4f9b; border-radius: 8px; padding: 9px 13px; margin-bottom: 14px; font-size: 14px; }
p.small { font-size: 12px; }

/* Sarvatobhadra chakra */
.sbcform { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.sbcform label { display: flex; flex-direction: column; font-size: 13px; color: var(--muted); gap: 4px; }
.sbcwrap { display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 860px) { .sbcwrap { grid-template-columns: 1fr; } }
.sbc { position: relative; display: grid; grid-template-columns: repeat(9, 1fr); aspect-ratio: 1; border: 2px solid var(--ink); background: #fffdf8; }
.sbc .sc { position: relative; border: 1px solid var(--line); display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; font-size: 10px; line-height: 1.15; padding: 2px; min-width: 0; overflow: hidden; }
.sbc .sc .lab { color: var(--muted); word-break: break-word; }
.sbc .nakshatra { background: #f6efe3; } .sbc .nakshatra .lab { color: var(--ink); font-weight: 600; }
.sbc .vowel .lab, .sbc .consonant .lab { font-size: 15px; color: #6b4a2b; }
.sbc .rashi { background: #fbf4ea; } .sbc .tithi { background: #f1e7d6; } .sbc .tithi .lab { font-weight: 600; color: var(--ink); }
.sbc .hit-bad { background: #f7dcd6; } .sbc .hit-good { background: #dcefe1; } .sbc .hit-mix { background: #f4e6c4; }
.sbc .mine { outline: 3px solid var(--accent); outline-offset: -3px; z-index: 1; }
.sbc .pl { font-size: 11px; padding: 0 3px; border-radius: 4px; color: #fff; margin-top: 1px; }
.sbc .pl.malefic { background: var(--warn); } .sbc .pl.benefic { background: var(--good); }
.sbclines { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 2; }
.sbclines line { stroke-width: 4; opacity: .55; stroke-linecap: round; }
.sbclines line.malefic { stroke: var(--warn); } .sbclines line.benefic { stroke: var(--good); }
.sbclines line.other { stroke-dasharray: 10 8; stroke-width: 3; opacity: .45; }
.sbcp { cursor: pointer; } .sbcp:hover, .sbcp.on { background: var(--accent-soft); }
.dev { font-size: 17px; }

/* Learning academy */
.acwrap { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 900px) { .acwrap { grid-template-columns: 1fr; } }
.acside { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow: auto; padding: 14px 16px; }
.acprog { margin-bottom: 10px; } .acbar { background: #f1e9dc; border-radius: 6px; height: 8px; overflow: hidden; margin-top: 6px; }
.acbar i { display: block; height: 100%; background: var(--good); }
.accourse h4 { margin: 14px 0 2px; font-size: 15px; } .accourse p { margin: 0 0 6px; }
.aclink { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 6px 8px; border-radius: 6px; font: inherit; font-size: 14px; color: var(--ink); cursor: pointer; }
.aclink:hover { background: var(--accent-soft); } .aclink.on { background: var(--accent-soft); font-weight: 600; } .aclink.done { color: var(--good); }
.aclesson p { font-size: 16px; line-height: 1.65; max-width: 72ch; }
.acterms { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; } .acterms span { background: #f6efe3; border-radius: 8px; padding: 5px 10px; font-size: 13.5px; }
.acmine { border-left: 4px solid var(--gold); } .acmine table { margin: 6px 0; }
.acex { background: #f6efe3; border-radius: 8px; padding: 8px 12px; margin: 8px 0; font-size: 14px; }
.acchart { max-width: 360px; }
.acq { border-top: 1px solid var(--line); padding: 10px 0; } .acq:first-child { border-top: 0; } .acq p { margin: 4px 0 8px; }
.acopts { display: flex; flex-wrap: wrap; gap: 8px; }
.acopts button { background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: 8px; padding: 7px 14px; font: inherit; cursor: pointer; }
.acopts button:hover { border-color: var(--accent); } .acopts button.ok { background: #e3f2e8; border-color: var(--good); color: var(--good); font-weight: 600; }
.acopts button.no { background: #fbe4e1; border-color: var(--warn); color: var(--warn); }
.acnav { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.acnav button, .acgo, .linkbtn { font: inherit; cursor: pointer; border-radius: 8px; padding: 8px 14px; border: 1px solid var(--line); background: #fff; color: var(--ink); }
.acdone, .acgo { background: var(--accent) !important; color: #fff !important; border-color: var(--accent) !important; }
.linkbtn { color: var(--accent); }
.acopts button, .acnav button, .linkbtn, .acgo { width: auto; }
.acopts button { min-width: 90px; }
.aclevel { margin: 16px 0 2px; font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; color: var(--accent); font-weight: 700; border-top: 1px solid var(--line); padding-top: 10px; }
.acfacts { display: grid; grid-template-columns: 180px 1fr; gap: 4px 14px; margin: 8px 0; font-size: 14.5px; } .acfacts dt { color: var(--muted); } .acfacts dd { margin: 0; }
.acpm { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } @media (max-width: 700px) { .acpm { grid-template-columns: 1fr; } .acfacts { grid-template-columns: 1fr; } }
.acpm ul { margin: 4px 0; padding-left: 18px; } .acpm .p b { color: var(--good); } .acpm .m b { color: var(--warn); }
.acsteps { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 14px; } .acsteps button { width: auto; padding: 5px 11px; font-size: 13px; background: #fff; color: var(--ink); border: 1px solid var(--line); }
.acsteps button.on { background: var(--accent); color: #fff; border-color: var(--accent); } .acsteps button.done { border-color: var(--good); color: var(--good); }
.acnote { width: 100%; min-height: 90px; border: 1px solid var(--line); border-radius: 8px; padding: 10px; font: inherit; }
.acprompt { background: #fbf3e6; border-left: 4px solid var(--gold); padding: 10px 14px; border-radius: 6px; margin: 12px 0 8px; }
.acreport h3 { margin-top: 18px; } @media print { .mainnav, .langsw, .acside, .acsteps, .acnav, .noprint { display: none !important; } .acwrap { display: block; } }
.exopt { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 8px; padding: 7px 12px; cursor: pointer; background: #fff; }
.exopt input { width: auto; margin: 0; } .acq.wrong { background: #fdf3f1; border-radius: 6px; } .ok { color: var(--good); font-weight: 600; }
.cert { margin: 20px 0; border: 3px double var(--gold); padding: 10px; background: #fffdf7; }
.certin { border: 1px solid var(--gold); padding: 40px 30px; text-align: center; }
.certmark { font-size: 34px; color: var(--gold); } .certkicker { letter-spacing: 2px; text-transform: uppercase; font-size: 12px; color: var(--accent); margin: 6px 0 10px; }
.cert h2 { font-size: 30px; margin: 4px 0 18px; } .certname { font-family: Georgia, serif; font-size: 30px; border-bottom: 1px solid var(--line); display: inline-block; min-width: 60%; padding: 4px 20px; margin: 6px 0 14px; }
.certdate { color: var(--muted); } .certfoot { font-size: 11.5px; color: var(--muted); margin-top: 26px; }
@media print { body.printcert * { visibility: hidden; } body.printcert .cert, body.printcert .cert * { visibility: visible; } body.printcert .cert { position: absolute; left: 0; top: 0; width: 100%; } }

/* Brand */
.top { background: #0D0A08; }
.brand { display: flex; align-items: center; gap: 10px; }
.brand .logo { width: 40px; height: 40px; flex: none; }
.brand .wordmark { font-family: "Cinzel", Georgia, serif; font-weight: 600; letter-spacing: .14em; color: #EFE4CC; font-size: 18px; }
.brand .wordmark b { color: #C8A04C; font-weight: 600; letter-spacing: .3em; margin-left: .2em; }

footer .legal { margin-bottom: 6px; font-size: 13px; }
footer .legal a { color: var(--muted); }

/* Gold header (November 2026): red NAKSHATRA, green PRO, no black */
.top { background: linear-gradient(180deg, #EBC862 0%, #D6AA3E 100%); color: #7A1F16; border-bottom: 2px solid #B48A34; }
.brand .wordmark { color: #A31E16; text-shadow: 0 1px 0 rgba(255, 245, 215, .55); }
.brand .wordmark b { color: #1F6B3A; }
.ver { color: #8A5A1E; }
.mainnav button { background: rgba(255, 248, 228, .35); color: #7A1F16; border: 1px solid #B48A34; }
.mainnav button:hover { background: rgba(255, 248, 228, .7); }
.mainnav button.on { background: #A31E16; color: #FFF4D8; border-color: #A31E16; }
.langsw { border-color: #B48A34; }
.langsw button { color: #7A1F16; background: rgba(255, 248, 228, .35); }
.langsw button.on { background: #1F6B3A; color: #FFF4D8; }

/* Compatibility page */
.ctypes { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 6px; }
.ctypes button { width: auto; background: #fff; color: var(--ink); border: 1px solid var(--line); padding: 8px 16px; font-weight: 500; }
.ctypes button.on { background: #A31E16; color: #FFF4D8; border-color: #A31E16; }
.cform .ctitle { margin-top: 0; }
label.wide { grid-column: 1 / -1; }
.cscore { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-bottom: 8px; }
.cscore .big { font: 600 44px Georgia, serif; color: #A31E16; line-height: 1; }
.cbar { flex: 1 1 260px; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #e9c3bd, #f3e2b4 45%, #cfe6d6); position: relative; }
.cbar i { position: absolute; top: -5px; width: 4px; height: 22px; background: #7A1F16; border-radius: 2px; }
td.sc { font-weight: 600; text-align: center; }
td.sc.good { color: var(--good); } td.sc.bad { color: var(--warn); } td.sc.neutral { color: var(--muted); }
.nums { display: flex; gap: 10px; flex-wrap: wrap; margin: 6px 0 12px; }
.nums div { background: #fbf5e6; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; font-size: 14px; }
.nums b { font: 600 20px Georgia, serif; color: #1F6B3A; margin-right: 4px; }
.decide { background: #eef6f0; border-left: 4px solid #1F6B3A; padding: 10px 14px; border-radius: 6px; margin-top: 12px; }

/* AI explainer citations */
.qchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 4px; }
.qchips button { width: auto; padding: 5px 12px; font-size: 13.5px; }
sup.cite a { font-size: 11px; font-weight: 700; color: #A31E16; text-decoration: none; padding: 0 2px; }
.sources { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 10px; font-size: 13.5px; }
.sources ol { padding-left: 22px; margin: 6px 0 0; } .sources li { margin: 6px 0; color: var(--ink); }
.sources li:target { background: #fdf3dc; }
.srck { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 10px; margin-right: 4px; }
.srck.chart { background: #e3f2e8; color: #1F6B3A; } .srck.rule { background: #fbe4e1; color: #A31E16; }

/* Ask Acharya ji (optional) */
.guide-intro p { font-size: 15px; line-height: 1.6; }
.guide-opts { margin-bottom: 18px; }
.guide-opts .price { font: 600 18px Georgia, serif; color: #7A1F16; margin: 4px 0 8px; }
.guide-opts .price .muted { font: 400 13px inherit; margin: 0; }
ol.steps { padding-left: 22px; } ol.steps li { margin: 5px 0; }
#gf fieldset.gkind { border: 1px solid var(--line); border-radius: 8px; padding: 8px 14px; margin: 0 0 14px; display: flex; gap: 8px 22px; flex-wrap: wrap; }
#gf fieldset.gkind label, #gf label.check { display: flex; flex-direction: row; align-items: flex-start; color: var(--ink); gap: 8px; font-size: 14px; }
#gf input[type=radio], #gf input[type=checkbox] { width: auto; margin-top: 3px; }
#gf label.full { display: block; grid-column: 1 / -1; margin-top: 12px; }
#gf textarea { width: 100%; font: inherit; padding: 8px; border: 1px solid var(--line); border-radius: 8px; box-sizing: border-box; }
#gf label.check { margin-top: 12px; }
#gsess { margin-top: 12px; }
#gout pre { white-space: pre-wrap; background: #fffcf7; border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 13px; }
a.btn { display: inline-block; background: var(--accent); color: #fff; text-decoration: none; padding: 9px 16px; border-radius: 8px; font-weight: 600; }

/* daily forecast sign-up */
#dailybox .check { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--ink); margin-top: 12px; }
#dailybox .check input { width: auto; margin-top: 3px; }
#dailybox .dact { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
#dailybox .dact button { width: auto; }
#dailybox .dmsg { font-size: 14px; color: #1F6B3A; margin: 10px 0 0; min-height: 1em; }
#dailybox .dmsg.bad { color: #A31E16; }

/* accounts, Pro, modals */
.acct { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.acct + .langsw { margin-left: 8px; }
.acbtn { width: auto; padding: 6px 12px; font-size: 13px; border-radius: 8px; background: rgba(255,248,228,.55); color: #7A1F16; border: 1px solid #B48A34; font-weight: 600; cursor: pointer; }
.acbtn.gold { background: #A31E16; color: #FFF4D8; border-color: #A31E16; }
.protag { display: inline-block; font: 700 10px/1 system-ui, sans-serif; letter-spacing: .5px; color: #FFF4D8; background: #1F6B3A; border-radius: 4px; padding: 3px 5px; vertical-align: middle; }
.lockcard { border: 1px solid #D6AA3E; background: linear-gradient(180deg, #fffaf0, #fff); text-align: left; }
.lockcard .protag { margin-bottom: 6px; }
.lockcard button { width: auto; margin-top: 6px; }
.tab.locked > :not(.lockcard) { display: none !important; }
.accourse.locked h4, .card.locked h3 { color: var(--muted); }
.freehint { font-size: 13px; margin-top: 8px; }
.modal { position: fixed; inset: 0; background: rgba(30, 20, 10, .45); display: flex; align-items: flex-start; justify-content: center; z-index: 1000; padding: 6vh 14px; overflow-y: auto; }
.modal[hidden] { display: none; }
.mbox { position: relative; background: #fff; border-radius: 14px; max-width: 640px; width: 100%; padding: 22px 24px; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.mbox h2 { margin: 0 0 8px; font: 600 22px Georgia, serif; color: #7A1F16; }
.mclose { position: absolute; top: 8px; right: 10px; width: auto; background: none; border: 0; font-size: 26px; color: var(--muted); cursor: pointer; }
body.modal-open { overflow: hidden; }
.mform { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.mform input { flex: 1 1 220px; }
.mform button { width: auto; }
.compare { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 12px 0; }
.compare > div { border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; }
.compare .pro { border-color: #1F6B3A; background: #f3faf5; }
.compare h4 { margin: 2px 0 6px; }
.compare ul { padding-left: 18px; margin: 0; font-size: 14px; }
.compare li { margin: 4px 0; }
.plans { display: flex; gap: 12px; flex-wrap: wrap; margin: 8px 0; }
.plan { flex: 1 1 200px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; border-radius: 10px; border: 2px solid #A31E16; background: #fff; color: #2b2118; cursor: pointer; text-align: left; }
.plan b { font-size: 16px; } .plan span { font-size: 15px; }
.plan em { font-style: normal; font-size: 12px; color: #FFF4D8; background: #1F6B3A; border-radius: 4px; padding: 2px 6px; margin-top: 4px; }
.plan.best { background: #A31E16; color: #FFF4D8; }
.dmsg { font-size: 14px; color: #1F6B3A; } .dmsg.bad { color: #A31E16; }
.toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: #2b2118; color: #fff; padding: 10px 18px; border-radius: 10px; z-index: 1100; font-size: 14px; max-width: 90vw; }
.toast[hidden] { display: none; }
@media (max-width: 640px) { .compare { grid-template-columns: 1fr; } }

/* install the app */
.installbtn { margin-left: auto; }
.installbtn + .acct { margin-left: 0; }
.steps { padding-left: 22px; line-height: 1.7; }
.steps .ico { display: inline-block; border: 1px solid #c9b79f; border-radius: 5px; padding: 0 5px; font-size: 13px; }

/* one-off reports */
.onerep { margin: 12px 0 6px; }
.onebox { border-top: 1px solid #eadcc0; margin-top: 16px; padding-top: 12px; }
.onebox h4 { margin: 0 0 4px; color: #7A1F16; }
.reph { font: 600 16px Georgia, serif; color: #7A1F16; margin: 16px 0 6px; }
.replist { list-style: none; padding: 0; margin: 0 0 10px; }
.replist li { padding: 6px 0; border-bottom: 1px solid #f0e6d2; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.replist .openrep { width: auto; margin-left: auto; padding: 4px 12px; }

/* yantras and puja guides */
.shopcard .honest, .printable .honest { background: #fff8e8; border-left: 4px solid var(--gold); padding: 8px 12px; border-radius: 0 8px 8px 0; font-size: 14px; }
.shopgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.shopgrid.guides { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.shopitem { border: 1px solid #eadcc0; border-radius: 10px; padding: 10px; text-align: center; background: #fffdf8; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.shopitem.guide { text-align: left; align-items: stretch; }
.shopitem h4 { margin: 4px 0 0; font: 600 15px Georgia, serif; color: #7A1F16; }
.shopitem button { width: auto; margin-top: auto; padding: 6px 12px; font-size: 13px; }
.ybig { text-align: center; } .ybig svg { max-width: 100%; height: auto; }
.ymantra { text-align: center; font-size: 18px; line-height: 1.7; }
.pujasteps li { margin-bottom: 6px; }
.printfoot { display: none; color: #7a6b5d; font-size: 12px; text-align: center; }
@media print {
  body.printitem * { visibility: hidden; }
  body.printitem .printable, body.printitem .printable * { visibility: visible; }
  body.printitem .printable { position: absolute; left: 0; top: 0; width: 100%; }
  body.printitem .printfoot { display: block; }
  body.printitem .modal, body.printcert .modal { position: static; background: none; padding: 0; overflow: visible; }
  .noprint { display: none !important; }
}
/* practitioner */
.pracbox { border: 1px solid #c9d8f0; background: #f6f9ff; border-radius: 10px; padding: 10px 14px; margin-top: 14px; }
.pracbox h4 { margin: 0 0 4px; color: #2f4f9b; } .pracbox ul { margin: 0 0 8px; padding-left: 20px; font-size: 14px; }
.clientq { margin: 10px 0; }
.clientlist { list-style: none; padding: 0; margin: 0; }
.clientlist li { border-bottom: 1px solid #f0e6d2; padding: 8px 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.clientlist .cmain { flex: 1 1 220px; display: flex; flex-direction: column; }
.clientlist .cbtns { display: flex; gap: 6px; } .clientlist .cbtns button { width: auto; padding: 5px 10px; font-size: 13px; }
.clientlist .cnotebox { flex-basis: 100%; } .clientlist .cnotebox button { width: auto; }
.brandf .wide { grid-column: 1 / -1; }
.logoprev img { max-height: 80px; max-width: 240px; display: block; margin-bottom: 4px; }
.printhead { display: none; }
@media print {
  .printhead { display: block; border-bottom: 2px solid #999; padding-bottom: 8px; margin-bottom: 12px; }
  .printhead .phb { display: flex; gap: 14px; align-items: center; }
  .printhead img { max-height: 70px; max-width: 200px; }
  .printhead .phname { font: 600 22px Georgia, serif; } .printhead .phtag { font-size: 13px; color: #555; }
  .printhead .phcontact { font-size: 12px; color: #555; } .printhead .phfor { margin-top: 6px; font-size: 14px; }
  body.printcert .printhead, body.printitem .printhead { display: none; }
}
/* certificate course and review */
.coursecard { border-color: #D6AA3E; background: linear-gradient(180deg, #fffaf0, #fff); }
.cpath { padding-left: 22px; } .cpath li { margin-bottom: 10px; } .cpath li.done::marker { color: #1F6B3A; }
.cpath button { width: auto; margin-top: 6px; }
.coursecard .fb { background: #fff4e5; border-radius: 8px; padding: 8px 12px; margin: 6px 0; }
.certrev { font: 600 20px Georgia, serif; margin: 4px 0; }
.revitem .reading { white-space: pre-wrap; background: #fffdf7; border: 1px solid #eadcc0; border-radius: 8px; padding: 12px; max-height: 420px; overflow: auto; font-size: 15px; line-height: 1.6; }
.revitem .actions button { width: auto; }

/* home and plans & prices */
.hero { text-align: center; padding: 28px 22px; background: linear-gradient(180deg, #fffaf0, #fff); }
.hero h1 { font: 600 30px Georgia, serif; color: #7A1F16; margin: 4px 0 10px; }
.hero .lead { font-size: 17px; max-width: 620px; margin: 0 auto 18px; }
.heroact { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.heroact button { width: auto; padding: 11px 20px; font-size: 16px; }
.continue { margin-top: 16px; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; align-items: center; }
.continue p { margin: 0; width: 100%; }
.continue button { width: auto; padding: 6px 14px; }
.homeh { margin: 24px 4px 10px; }
.homegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.hcard { display: flex; flex-direction: column; margin: 0; }
.hcard h3 { margin: 0 0 6px; font: 600 17px Georgia, serif; color: #7A1F16; }
.hcard p { margin: 0 0 8px; font-size: 14.5px; }
.hcard button { margin-top: auto; width: auto; align-self: flex-start; padding: 7px 18px; }
.tag { display: inline-block; align-self: flex-start; font-size: 12.5px; font-weight: 600; color: #7a6b5d; background: #f4ecdb; border-radius: 12px; padding: 2px 10px; }
.tag.free { color: #1F6B3A; background: #e3f2e8; }
.homeplans { margin-top: 18px; text-align: center; }
.homeplans button { width: auto; }
#page-pricing h1 { font: 600 26px Georgia, serif; color: #7A1F16; margin: 0 0 8px; }
.tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: start; }
@media (max-width: 860px) { .tiers { grid-template-columns: 1fr; } }
.tier { margin: 0; position: relative; }
.tier.best { border: 2px solid #1F6B3A; }
.tier h3 { margin: 0; font: 600 20px Georgia, serif; }
.tier .price { font-size: 26px; font-weight: 700; margin: 6px 0 4px; } .tier .price small { font-size: 14px; font-weight: 400; color: #7a6b5d; }
.tier ul { padding-left: 18px; font-size: 14px; } .tier > button { width: auto; }
.youare { position: absolute; top: 10px; right: 12px; font-size: 12px; font-weight: 700; color: #fff; background: #1F6B3A; border-radius: 10px; padding: 2px 9px; }
.pricetable { width: 100%; border-collapse: collapse; }
.pricetable td { padding: 10px 6px; border-bottom: 1px solid #f0e6d2; vertical-align: middle; }
.pricetable td.pr { white-space: nowrap; font-weight: 700; text-align: right; }
.pricetable button { width: auto; padding: 5px 12px; font-size: 13px; white-space: nowrap; }
@media (max-width: 560px) { .pricetable tr { display: grid; grid-template-columns: 1fr auto; } .pricetable td:last-child { grid-column: 1 / -1; border-bottom: 1px solid #f0e6d2; } .pricetable td { border-bottom: 0; } }
details.adv { grid-column: 1 / -1; border-top: 1px dashed var(--line); padding-top: 8px; }
details.adv > summary { cursor: pointer; color: var(--accent); font-size: 14px; }
details.adv > .grid { margin-top: 10px; }
.brand { cursor: pointer; }

@media (max-width: 560px) { #f .grid { grid-template-columns: 1fr; } #f .place, #f .adv { grid-column: 1 / -1; } #f input, #f select { min-width: 0; width: 100%; box-sizing: border-box; } }
.pricetable { display: table; table-layout: auto; }
.pricetable td:first-child { width: 100%; white-space: normal; }
.pricetable td:last-child { width: 1%; }
