LATEST Join RVA Research for a reading at no-cost. Learn more

Software Updates

Changelog

Day-to-day changes across every RVA software — features, fixes and improvements. 110 updates across 6 softwares.

  1. Panchang Display — now ON by default

    • New visitors see the Panchang bar (tithi, nakshatra, yoga, karana, sunrise/sunset, moonrise/moonset) without flipping a setting.
    • Existing users who turned it off keep their off state.
  2. Show Neptune & Pluto — actually rendered on charts by default

    • Earlier the toggle defaulted ON but the chart-render path still skipped Ne/Pl when localStorage was unset, so new visitors saw blank.
    • Two more chart-render branches now also default ON, so Ne/Pl appear on the charts immediately.
  3. Vimshottari Dasha — 5 levels (Maha → Antar → Pratyantar → Sookshma → Prana)

    • Sookshma rows are now expandable to a 5th Prana level (purple).
    • Show Neptune & Pluto toggle now defaults to ON for new visitors.
  4. Dasha bar — shadcn-style redesign

    • Active antardasha cell: 2px purple top border + subtle tint replaces indigo bottom shadow.
    • Planet row: left-aligned flex with planet symbol + name on left, score on right (replaces centered layout).
    • Planet symbols: per-planet color coding (Sun orange, Moon purple, Mars red, Venus pink, Mercury emerald, etc.).
    • R4 rank badge: clean purple pill replaces superscript span.
    • Header score badge: minimal pill (border + faint bg) replaces 2px bordered box.
    • Nav buttons: 26×26px shadcn style.
    • DI row: CSS class-based (antara-di-row/planet/strong) with separator dot.
    • Current period (not hovered): always shows dates + subtle purple top marker.
    • Full dark mode support for all new styles.
  5. Share chart link — include name field in shared link

  6. Share chart link — short ID (?share=abc1234), 90-day expiry, auto-fills and calculates on open

  7. Print report — restore Planets Analysis & House Analysis headings and footer on last page

  8. Profile name search — any word match restored

    • Typing any word in a name now finds profiles (e.g. typing 'Ravi' finds 'Srikanth Ravi Kumar').
    • Safe to use contains-match here: query is always filtered by user_id so only that user's profiles are scanned.
  9. KP Horary — A4 print report with South Indian chart, dasa summary, ruling planets

    • Completely rewrote kp-print-report.js to generate an A4 KP horary print layout matching the reference design.
    • Left column: panchang info box, sign-based South Indian chart (4×4 grid with all planets/cusps), Dasa Summary (9 mahadasa × 9 bhukti).
    • Right column: Ruling Planets table, Cuspal Positions, Planetary Positions, Significators (A/B/C/D).
    • Chart center shows name, date, time, place, lat/lon, TZ, ayanamsa, nakshatra, lagna, tithi, bal.dasa.
    • Panchang bar CSS updated to match rva-softwares exactly (Tailwind classes, correct SVG icons per item type).
  10. KP Horary — KP tables redesigned to match rva-softwares style

    • Removed merged section-header card; tables now render as standalone rounded cards.
    • Dark mode updated to gray-900/gray-800/gray-700 palette (was near-black).
    • Table header text updated to gray-700/gray-300 for better contrast.
  11. Print Report — fix spurious sub-rows: correct Lord/Karaka like-with-like comparison, tolerance-based inv change detection

  12. Print Report — page 2 space savings: remove Planet/House headings, summary footers, page footer and padding

  13. Print Report — KP tables match screen: SignLord (blue), sssLord (teal), full 5-lord columns, correct significator A/B/C/D columns

    • KP Planets: added SignLord (blue) and sssLord (teal) columns; [R] badge inline in planet name; 10 columns matching screen.
    • KP Houses: added SignLord and sssLord columns; 9 columns matching screen.
    • Significators Planet/House: fixed A/B/C/D column mapping with correct colors (purple/orange/pink/teal).
  14. Print Report — Planet/House Analysis match screen: SL/Inf column, score+planet cells, inverted display, summary footers

  15. Print Report — fix inline progression sub-rows missing in Planet/House tables

    • ps.year = birthYear + dayOffset (days, not years), so filter ps.year<=birthYear+40 only passed first 40 days.
    • Fix: filter by ps.day<=40*365 instead — all sign-change events within first 40 years of life.
    • House Analysis: remove dedicated Sign column, fold abbreviation (Ar/Ta/Ge…) into # cell as small text.
    • Planet Analysis: replace full sign name with short abbr + house number (e.g. Ta H2 instead of Taurus (H2)).
  16. Print Report — reorganize to 3 pages (Alan Leo+Planet/House on p2, Dasha+Varga on p3)

    • Page 2 now: Alan Leo graph + Planet Analysis + House Analysis (with 40-year inline progression rows).
    • Page 3 now: Dasha 9 + Varga Charts (D7/D9/D10).
    • Prevents overflow when Planet/House tables are tall with many progression sub-rows.
  17. House Analysis — redesign table to 5 columns with inline planet names

    • Removed separate Planets and Karaka Planet columns.
    • Occupant cell now shows score + effective planet inline (e.g. 46 Ju°).
    • Karaka cell now shows score + karaka planet inline in purple (e.g. 16 Ve).
    • Yearly period rows updated to match new 5-column layout.
  18. Print Report — fix inline progression scores missing in Planet & House tables

    • When birthYear=0 (Time Chart default), maxProgYear was 0+40=40, filtering out all real progression years (e.g. 1987+n).
    • Fix: only apply 40-year cap when birthYear>1900; otherwise allow all years through.
  19. House Analysis — align year rows across all columns using <tr> sub-rows

    • Previous approach stacked <div>s inside each <td> independently — different column heights made rows misalign.
    • New approach: one unified timeline, each change event rendered as a proper <tr> spanning all columns.
    • Each year now appears on the same horizontal line across Planets/Occupant/Lord/Karaka/Total.
    • Changed values are colored; unchanged values shown in gray so the year row is always complete.
  20. KP Horary — fix Significator Planet View and House View columns

    • Planet View was showing star lord name / sign lord / sub lord (planet names) — now correctly shows house numbers: bhava of star lord (A), planet's own bhava (B), houses owned by star lord (C), houses owned by planet (D).
    • House View had wrong column mapping from old significators object — now computes A/B/C/D using same algorithm as /rva-softwares/: A = planets whose star lord is in house, B = occupants, C = planets whose star lord owns house, D = sign lord.
    • Legend updated to match column semantics.
  21. Print Report — swap page order + Ctrl+P UX fix

    • Page 2 now shows Vimshottari Dasha + Divisional Charts (was page 3).
    • Page 3 now shows Alan Leo Progression + Planet Analysis + House Analysis (was page 2).
    • Ctrl+P now auto-prints the 3-page report (not the 9-page main page) — uses capture-phase listener + autoPrint flag so iframe content prints on load.
    • Added footer to page 3 (Planet/House Analysis page).
  22. Print Report — fix house analysis showing '—' scores (field name mismatch)

    • HouseOccupantResult API only exposes .score (raw effective-planet capacity), not occupantScore/lordScore/karakaScore/totalScore.
    • Print report was reading non-existent fields → all house scores rendered as '—'.
    • Fix: compute occ = score×0.6, lord = cap[signLord]×0.2, kar = cap[houseKaraka]×0.2 — same formula as on-screen renderHouseAnalysis.
    • Added SIGN_OWNER + HOUSE_KARAKAS constants to print-report.js.
    • Same fix applied to per-year progression sub-rows in house analysis table.
  23. Print Report — per-year progression scores in Planet & House Analysis

    • Planet Analysis: each score cell now shows progression sub-rows (light/perf/res/total – year) for solar-arc sign-change years.
    • House Analysis: each occ/lord/kar/total cell shows per-year sub-rows from progScores.
    • rva-engine.js rvaPrintData() now exposes progScores (_progScores) for use in print report.
  24. Print Report v2 — 3-page layout, in-page preview, live SVG charts

    • Page 1: Panchang · Natal + Progression SI charts side-by-side (live DOM SVGs from engine) · Planet Analysis · House Analysis.
    • Page 2: Alan Leo progression bar chart (canvas capture via toDataURL) · Vimshottari Dasha grid with current period highlighted.
    • Page 3: D7/D9/D10 divisional grids · KP planets + cusps · Significators planet/house · Western aspect matrix.
    • Header: clean black — name + meta on left, RVA logo + 'RVA' on right, bottom border. No purple banner.
    • Footer: single line — RVA logo · website URL · report info · practitioner contact.
    • Preview opens as in-page modal (not a popup). User reviews, then clicks Print.
    • Fix: logos in header/footer now use fully inline SVG (presentation attributes) — no external fetch, renders correctly in srcdoc iframe.
  25. Strongest Planet — Mercury now wins Libra when multiple DB planets and DB winner is debilitated

    • Bug: when multiple planets had Dig Bala but none had R1, the code fell through to Sequence Order. planets.sort() mutated the array; debilitation-skip then picked Mars (next in sequence) instead of Mercury (next DB planet).
    • Root cause: missing else-clause for the 'multiple DB, no R1' case — it never resolved within the Dig Bala rule category.
    • Fix: added else-clause that sorts DB planets by sequence and skips debilitated ones, so the winner stays within the Dig Bala category. Applied to strongest-planet.astro, powerful-planet.ts, and dasha-influencer.js.
  26. Print Report — one-click printable Kundali report from live chart data

    • New teal Print FAB button (bottom-right, above AI Prompt) opens a print-optimised window with the full chart data.
    • Page 1: Birth Chart + Progression Chart (SVG, full fidelity) | KP Planets + House Cusps tables.
    • Page 2: KP Significators (Planet View + House View) | Vimshottari Dasha bhukti tables (3 mahashas per row).
    • Page 3: Planet Capacity (Light / Performance / Resource) | House Analysis — both pulled from live in-memory state.
    • Page 4 (optional): Western Aspects matrix, shown only when the Aspects tab has been opened.
    • Charts are captured as SVG (not canvas screenshots) so they print at full vector quality.
    • print-report.js exposes window.printReport(); rva-engine.js exposes window.rvaPrintData() for cross-script data access.
  27. KP Planets & House Cusps tables now appear side-by-side at 150% zoom on Safari Mac

    • At 150% browser zoom on Mac, the CSS viewport shrinks below 1024px so the lg: breakpoint no longer triggered the 2-column layout — both tables stacked vertically.
    • Fix: changed the grid breakpoint from lg (1024px) to md (768px) so the side-by-side layout holds at ~960px viewport (150% of 1440px).
  28. Strongest Planet — Mars now wins Leo when multiple planets have Dig Bala

    • Bug: when multiple planets in a sign all qualified for Dig Bala, the rule was skipped entirely and Sequence Order took over — making Moon win over Mars in Leo (Scorpio ascendant chart).
    • Fix: added R1 tiebreaker — if any planet is physically in its own Dig Bala house (R1), it wins over planets that qualify only via indirect rules (R2–R8).
    • Applied to all 4 copies of the logic: powerful-planet.ts (rva-softwares, planet-capacity), strongest-planet.astro, dasha-influencer.js, and dasha-analysis-calculator.astro.
  29. Rewrote /rva-software/ feature documentation

    • Added Planet Capacity (Light/Performance/Resource), Dasha Influencer, Alan Leo Progression Graph, Ashtakavarga Transit Strength, Panchang bar, KP ayanamsa variants, Verify Birth Time, and Strongest Planet Finder sections.
    • Removed outdated 'Upcoming Features' section (Ashtakavarga is now live).
  30. Progression chart — Venus (and any planet) showing 00:00:00 at sign boundary

    • Root cause: ephemeris-120 API rounded planet lon to 3 decimal places (149.9996→150.000), but stored sign from the unrounded value. The display computed 150%30=0 → 00:00:00 in the wrong sign.
    • Fix: new roundLon() helper caps the rounded value just inside the original sign (149.999) when rounding would cross a sign boundary. Applied to all standard planets, outer planets, and house cusps.
    • Also fixed formatDegree min+1=60 overflow (29:60:00→30:00:00) and added sign-boundary tolerance in adjustChartDataForKP for the D1/progression chart path.
  31. Profile Notes — moved to form bar; date/time narrower; AI Prompt label inside button

    • Notes icon moved from floating bottom-right button into the form bar (between gear and Submit). Shows when a profile is loaded, hidden otherwise. Only one FAB (AI Prompt) remains at bottom right.
    • Date input narrowed: 140px → 120px. Time input narrowed: 110px → 95px. Frees horizontal space in the form bar.
    • AI Prompt label moved inside the button (CSS ::after) so it sits directly below the icon. Button shape changed from circle to rounded rectangle (14px radius, 52×56px).
  32. Profile Notes — icon size, name chip width, resizable textarea; AI Prompt label

    • Trigger button reduced from 40px to 36px to match other icon sizes; drawer header icon constrained to 15px.
    • Profile name chip max-width increased (140px → 200px) so longer names like 'Hari Babu Bonda' show more.
    • Notes textarea: resize:none → resize:vertical with min-height 60px — drag bottom-right corner to expand.
    • Added 'AI Prompt' text label above the AI FAB button so users know what it does.
  33. Profile Notes — Add/Save button text now white in light mode

    • Button text was hardcoded #000 (black), showing as black on purple (#663399) in light mode. Changed to var(--primary-foreground) so it uses white in both light and dark themes.
    • Fixed timing issue: profile-notes.js now polls for an already-loaded profile on init, so the pen icon appears even when ProfileIntegration fires before the deferred script loads.
  34. Profile Notes — add, edit, delete per-profile notes from a desktop drawer

    • A pen icon appears in the bottom-right corner (above the AI FAB) when a profile is loaded. Click it to open a 330px notes drawer.
    • Notes are stored in D1 (profile_notes table) per user + profile. Fetched lazily on drawer open — zero impact on page load.
    • Toolbar: B (bold), I (italic), • List (bullet), — (divider). Select text then click B or I to wrap.
    • Full CRUD: add, inline edit, delete. Newest note shown first. Desktop-only (hidden below 1024px).
  35. Engine moved to deferred external file — HTML now parses before 256KB of JS executes

    • The entire 5250-line RVA Engine IIFE was inlined in the page, forcing the browser to parse and execute ~256KB of JavaScript before it could render anything. It's now in public/js/rva-engine.js loaded with `defer` — same code, just delivered as an external resource so HTML parsing is unblocked.
    • Inline CSS (221 lines, ~5KB) moved to public/css/rva-softwares.css and loaded via a <link> tag. Reduces initial HTML payload and allows the browser to cache the stylesheet independently.
    • Auto-submit timeout replaced: was 500ms outer + 800ms inner (1.3s total). If lat/lon are already in the URL params / storedData they're available immediately, so we submit right away. Otherwise polls every 100ms up to 2s for profile-integration to fill them. Profile auto-load from saved profiles now triggers chart ~1s faster.
    • Translation helpers (_tPlanet, _tSign, _tRetro) no longer query localStorage on every render call. Language is cached at IIFE init and updated via the languageChanged custom event.
  36. Chart-first render: defer capacity chain until Planet Capacity scrolls into view + other loading wins

    • Previously every form submit fired 7+ API calls in parallel or cascaded (ephemeris + retrograde/analyze + 6-step capacity chain: powerful-planet + light + performance + resource + combine + planet). The chart had to wait in line behind all of them. Now retrograde/analyze + the capacity chain only fire when the Planet Capacity section (rva-planet-mount) scrolls into view — users who only want to see the chart save 7 API calls per submit.
    • Deferred head scripts: chart.min.js, config.js, tooltips.js all gained `defer` — they no longer block the HTML parse. Safe because all three are only touched inside function bodies (new Chart, window.AppConfig, window.tooltipUtils) that fire after DOMContentLoaded.
    • Google Fonts: combined Inter + Lato into a single stylesheet request (was two), and added `crossorigin` to the googleapis.com preconnect (was missing — preconnect was wasted without it).
    • sessionStorage cache for /api/auth/me: was fetched on every page load for logged-in users. Now cached for 10 minutes, keyed on the token so logout/login invalidates.
    • Killed the setInterval polling (100ms × 50 tries) that was looking for the profile dropdown wrapper. Replaced with a one-shot MutationObserver + 'ui:initialized' event listener so we attach the moment the component is ready, no polling.
    • IntersectionObserver rootMargin tightened from 200px to 50px — lazy blocks (Alan Leo, KP, Aspects, now Planet Capacity too) no longer pre-fetch when the user is still 200px away.
  37. Panchang is now opt-in (default OFF) — saves one API call per submit for users who don't need it

    • Previously the panchang bar was shown by default and /api/astro-modules/daily-panchang was fetched on every form submit, even for users who never look at it. Now the toggle in Settings defaults to OFF, and the API call is skipped entirely when disabled (Promise.resolve(null) fills its place in the pipeline).
    • Bar also starts with 'hidden' in HTML so there's no skeleton flash on page load. applyPanchangState() reveals it only when the user has opted in AND the data is populated.
    • Users who had explicitly turned the toggle ON (localStorage.panchangEnabled === 'true') keep it ON. Users who never touched the toggle (no localStorage entry) will now see it OFF — this is the intended behaviour change.
  38. Chart planets + house cusps: pink hover effect for a friendlier UI cue (light + dark mode)

    • Mousing over a planet glyph or a house cusp (Roman numeral) in the SVG chart now fades its colour to pink (#ec4899) with a 150ms transition. Tooltips still appear as before — the hover colour is an additional cue that the glyph is interactive.
    • Scoped to 'svg .planet-text', 'svg .house-element', and 'svg .house-text' so it only targets SVG text elements; the div-based South Indian chart styles are unaffected. '!important' is required because charts.js sets each text element's fill via an inline style/fill attribute.
    • Dark mode fix: global.css recolors these glyphs via '[data-theme="dark"] svg text[fill="..."] { fill: #ffffff !important }' at specificity 0,2,2 — the base hover rule tied and cascade-order made the hover lose. Added a matching 'html[data-theme="dark"] svg .planet-text:hover' override at specificity 0,3,2 so the pink colour wins in dark mode too.
  39. Reload button: positioned top-right of KP cards; removed duplicate on Western Aspects

    • KP Planets card: wrapped the heading in a flex/justify-between row so the lazy-block 'Reload' button now lands at the top-right of the card instead of dropping to the bottom (the lazy-block code anchors the button to the heading's flex parent — the card had a bare h4 with no flex wrapper, so 'parentElement' was the card div and the button got appended after the table).
    • House Cusps card: same flex wrapper applied for visual consistency (no Reload button here — the lazy-block only registers one button per container, on the first heading).
    • Western Aspects: removed the duplicate dynamic 'Reload' button. The section already has a static 'Recalculate' button on the right side that does the exact same thing (clears the aspects cache and re-renders). Added a 'skipButton: true' option to registerLazyBlock and pass it for Western Aspects only — so the lazy-block's auto-load-on-scroll behavior is preserved but no extra button is added.
  40. KP tables mobile: remove unwanted gaps between columns (especially House Cusps Star column)

    • Root cause: Tailwind's 'w-full' set table width to 100% of the card, and our 'min-width: 540px' forced it wider than content needed on mobile. With auto table-layout, the browser distributed that extra ~200px across columns — and most of it landed on the Star column, producing the big empty gap between Star and Sign Lord on House Cusps.
    • Fix: on mobile, override the table width to 'auto' (size to content) and drop the min-width. Columns now sit at their natural width with no extra padding distributed. Horizontal scroll still kicks in if natural content exceeds the card (e.g. on the wider KP Planets table).
  41. KP tables mobile: 'Bhava' → 'B' header + tighter cell spacing

    • Mobile (<lg) header abbreviation: Bhava → B (in KP Planets table). Desktop keeps the full word. Done via responsive Tailwind spans.
    • Reduced cell padding from py-2 px-2 (8px) to 6px 4px on mobile, and dropped table min-width from 620px to 540px. The whitespace between columns is now noticeably tighter — same number of columns, less wasted gap.
  42. KP tables: remove sticky-column shadow line + further header abbreviations on mobile

    • Removed the 2px box-shadow that was rendering as a vertical line beside the frozen Planet/House column. Sticky behavior still works (via solid cell background); just no visual divider.
    • More mobile header abbreviations: Planet → PL (capitalized to match style), Sign → SI (both Planets and House Cusps tables). House → H stays. Desktop (≥1024px) still shows the full words.
  43. KP tables mobile: 'Planet' → 'Pl' / 'House' → 'H' header + reliable horizontal scroll

    • First-column header is abbreviated on mobile (<lg): 'Planet' → 'Pl', 'House' → 'H'. Desktop (≥1024px) keeps the full word. Done via responsive spans, no JS.
    • Re-added `min-width: 620px` on `.kp-sticky-table` under the mobile media query. Previous attempt removed it assuming the table would shrink to fit — but at 12px font with nowrap cells the content is ~534px min, which under some browser table-layout heuristics can end up clipping columns without triggering scroll. Forcing min-width > card width guarantees overflow, which guarantees the horizontal scrollbar appears and the sticky first column becomes meaningful.
    • Cleaned up duplicate scrollbar CSS, explicit `overflow-x: auto` on the scroll container.
  44. KP tables: restore default 12px font on mobile (matches Significators table)

    • Previous mobile CSS shrunk KP tables to 10–10.5px to squeeze in all columns. User feedback: that reads smaller than the neighbouring Significators table which stays at text-xs (12px). Removed the font-size and padding overrides — KP tables now use the same 12px / py-2 px-2 as the rest of the page.
    • Kept the width-saving tricks (2-line lord headers, Star cell wrapping, no forced min-width) so all columns still fit the card without horizontal scroll at 12px.
  45. KP tables mobile: drop min-width, keep 2-line 'Sign / Lord' headers, let Star cell wrap — fits a phone screen with no horizontal scroll

    • Earlier mobile CSS was flattening the 2-line 'Sign Lord' / 'Star Lord' / 'Sub Lord' / 'SS Lord' / 'SSS Lord' headers onto one line (via `th br { display: none }`), which made the lord columns eat horizontal space. Restored the 2-line headers on mobile to match the desktop look.
    • Allowed the Star cell to wrap (`white-space: normal`) so 'U. Bhadrapada (4)' breaks into two lines instead of stretching the column. Every other cell stays single-line.
    • Removed the forced `min-width: 520px/560px` on mobile — the table now shrinks to fit the card width, so on a 375–430px phone all 10/9 columns are visible without horizontal scroll. Sticky first column is preserved in case the table still overflows on very narrow screens.
  46. KP Star column: Uttara/Purva prefix abbreviation now actually matches the source names

    • Previous fix used map keys like 'U.Bhadrapada' — but the nakshatra source in kp-sublords.ts uses full Indian names ('Uttara Bhadrapada', 'Purva Phalguni'). So the map never matched and the column still read 'Uttara Bhadrapada (4)'. Updated keys to the actual source names: 'Uttara Bhadrapada' → 'U. Bhadrapada', 'Purva Phalguni' → 'P. Phalguni', etc.
  47. KP tables mobile: horizontal swipe was broken — removed overflow-y:hidden

    • Prior fix set 'overflow-y: hidden' on the scroll container, which on iOS can block horizontal swipe gestures. Removed that rule and added 'touch-action: pan-x pan-y' so the browser explicitly allows both horizontal table scroll and vertical page scroll.
  48. KP tables mobile: actually freeze Planet/House column during horizontal scroll (was silently broken)

    • The sticky first column was intended but not working — Tailwind's Preflight sets 'border-collapse: collapse' on tables by default, and that breaks 'position: sticky' on <td>/<th>. Added 'border-collapse: separate; border-spacing: 0' on .kp-sticky-table to let sticky actually take effect.
    • Hardened the sticky rules: solid backgrounds on the frozen first cell (so scrolled row text never bleeds through), a row-hover override on the frozen cell, and an 'overflow-y: hidden' on the scroll container so the horizontal scroll is clean.
    • Rules are no longer gated behind max-width:1024px — they're always on (desktop fits the card, so there's nothing to stick). Added min-width to the first column (44px / 38px on <480) to keep the Planet/House label from visually collapsing.
  49. KP tables: keep full 'Bhadrapada', only abbreviate the Uttara/Purva prefix with a space (U. Bhadrapada)

    • Previous abbreviation was too aggressive — 'U.Bhadra' lost the distinctive '-pada' ending. New rule: only the prefix is shortened (Uttara → 'U. ', Purva → 'P. ') with a space after the period, and the core name is kept full: 'U. Bhadrapada (4)', 'P. Bhadrapada', 'U. Phalguni', 'P. Phalguni'.
    • Ashadha is kept as the shorter 'Ashada' spelling (P. Ashada / U. Ashada) to match the most common display form. Single-line wrapping preserved via nowrap on mobile.
  50. KP Planets + House Cusps tables: compact mobile layout with 2-letter signs and shortened nakshatra names

    • Sign column now uses 2-letter codes (Ar, Ta, Ge, Cn, Le, Vi, Li, Sc, Sg, Cp, Aq, Pi) instead of 3-letter (Ari, Tau, Gem, …) — Cn disambiguates Cancer from Cp (Capricorn).
    • Nakshatra names shortened in the Star column: Ashwini → Aswini, Mrigashira → Mrigasira, Ardra → Aridra, Pushya → Pushyami, P./U.Ashadha → P./U.Ashada, Shravana → Sravana, Shatabhisha → Satabhisha, P./U.Bhadrapada → P./U.Bhadra. Format changed from 'Name - pada' to 'Name (pada)'.
    • Mobile: reduced table min-width from 680px to 560px (520px on <480px phones), tightened cell padding, added nowrap on cells — less horizontal scroll on phones while all columns remain visible.
  51. Alan Leo year-aspect table: short planet names + mobile-responsive columns

    • Dropped the redundant long planet name from the Natal/Progressed cells (was 'Ju Jupiter', now just 'Ju'; Midheaven stays as 'X') — short codes were already shown and the full name was pure noise.
    • On mobile (<md), hide the R, +/-, and Base columns so the table fits a phone screen — Natal, EffR, Deg, Progressed, EffR, Deg, Aspect, Orb, and Final remain visible. Reduced cell padding to px-1 on mobile for more room.
    • Mobile-only header abbreviations: Natal → Nat, Progressed → Pro, Aspect → Asp. Aspect names also abbreviated on mobile: conjunction → Conj, sextile → Sex, trine → Tri, square → Sqr, opposition → Opp. Full words remain at md+ breakpoint.
  52. North chart: house numbers no longer overlap planets in crowded houses; removed tooltip from house numbers

    • Houses 5, 6, 8, 9 (corner triangles) had their green house number label sitting on top of planet text when multiple planets occupied the same sign — numbers now placed at the outer edge of each triangle, away from the planet text anchor
    • Removed hover tooltip from green house-number labels (1–12) — tooltip was redundant since the sign code is already visible inline
  53. Planet tooltip: 2-letter sign code + HH:MM:SS (Me | Ta 15:23:45 | Krittika-4 (Su))

    • Tooltip now reads e.g. 'Me | Ta 15:23:45 | Krittika-4 (Su)' — 2-letter sign code matching the NI chart house labels (Ar Ta Ge Cn Le Vi Li Sc Sg Cp Aq Pi) and HH:MM:SS for degree within sign (was Tau 15°23'45").
  54. North chart: show sign short code next to each house number (1 Ar, 2 Ta, …)

    • Each of the 12 green house labels now carries the 2-letter sign code for that house based on the current ascendant (Ar Ta Ge Cn Le Vi Li Sc Sg Cp Aq Pi) — e.g. a Virgo ascendant reads '1 Vi', '2 Li', '10 Ge'.
  55. North chart: constant-size labels — drop degrees (to tooltip) when a house is crowded

    • Previously crowded houses either dropped planets or shrank the font; now the label stays at 13px and instead drops the degree suffix — so a busy house shows 'Me Su' side-by-side while a calm one still shows 'Me 19:31'. Full DD:MM remains on the hover tooltip via data-longitude.
  56. North chart: never drop planets, fix house tooltip sign, keep green house numbers in dark mode

    • Crowded houses previously dropped any planet past maxY (e.g. Mercury silently missing next to Sun+cusp) — now compresses through tiers (13px → 11px → 2-per-line → name-only) so every planet renders; full degrees still visible on hover tooltip
    • House-number hover used to always label H1 as Aries regardless of ascendant (buildChartData was falling back to Aries); now populates window.astrologyApp.chartsLoaded.natal with the actual signData + ascendant
    • Dark mode was repainting the green NI house numbers pink (#f68e8e); restored to the light-mode green
  57. Advanced Settings: remove Graha Hiding; House System fixed to Placidus

    • Graha Hiding dropdown removed from the Advanced Settings panel
    • House System dropdown now shows only Placidus (other options removed)
    • Settings grid reflowed from 4 to 3 columns to match the remaining fields
  58. Verify Birth Time popup: correct sunrise (was off by ~2h)

    • The /api/astro-modules/daily-panchang endpoint returns sunrise as an epoch-ms number, not a string — the popup was treating it as a string and sending garbage to /api/btr/verify
    • Now converts the epoch ms to HH:MM:SS using the birth place's timezone offset (matches /btr/ behavior, plus the +4 min Vedic adjustment)
    • Summary strip sunrise, LMT, and LMT & Sunrise values now match the full /btr/ page for the same input
  59. Verify Birth Time popup: global styles + HH:MM:SS + explicit Use button

    • Tatwa pills, dark Nadi header, and match badges weren't rendering because Astro's scoped CSS doesn't cover innerHTML-injected rows — styles made global (vbt-* prefix keeps them isolated)
    • Nadi table now has a 'Use' button column instead of row-click auto-apply — birth time only changes when you explicitly choose a row
    • Use buttons (both Ranked candidates and Nadi table) now write the full HH:MM:SS value, matching the seconds-precision time picker on the form
  60. Verify Birth Time popup: /btr/ look + click-row-to-rectify

    • Added summary strip above the Nadi table — Weekday, Sunrise, LMT, LMT & Sunrise, Star Lord, Nadi Row, Tatwa, Planet 90/V, Gender/Star, Ascendant — same 10 tiles as the full /btr/ page
    • Tatwa cells are now colored pill badges (FemJala / MalePrithvi / MaleAkash / FemVayu / MaleTejo) in both Ranked candidates and the Nadi table, not plain colored text
    • Nadi table has the dark-navy header bar and highlighted active weekday + sign-type columns
    • Click ANY row in the Nadi table to rectify birth time to that row's T2 (HH:MM) — same behavior as /btr/
    • API /api/btr/verify now returns sunrise/LMT/final-time strings so the popup can render the summary without extra calls
  61. Verify Birth Time popup: visual polish

    • Cleaner panel shell — rounded card with soft shadow, gradient header, subtle section dividers
    • Scan controls: uppercase micro-labels, focus ring on inputs and selects, primary-tinted Run button with lift-on-hover
    • Candidate table: sticky column headers, row hover, best/current rows now use a left-edge color bar + subtle tint (no more heavy full-row wash)
    • Match indicators turned into small circular badges (green tick / muted cross) instead of plain characters
    • Use button is now a pill; mobile tightens padding and font-size for narrow viewports
    • Status bar shows as a left-accent info block; error state uses a matching red accent
  62. Verify Birth Time: clock icon button next to the settings gear

    • Moved Verify Birth Time from a standalone button below the form to an icon button inside the form bar, right before the settings gear
    • Keeps the Submit split-menu (Save / Edit / Delete) reserved for profile management — Verify stays a pre-submit data action
    • Same popup and Nadi Tatwa engine; only the toggle location changed
  63. Verify Birth Time popup (Nadi Tatwa) — rectify without leaving the form

    • New 'Verify Time' button below the birth-data form opens an inline popup
    • Set a scan window (default −10 / +5 minutes), pick gender, optionally auto-detect sign type
    • Runs the Nadi Tatwa rectification via a new /api/btr/verify endpoint — same engine as /btr/
    • Shows ranked candidate times with T1 / T2 / row / tatwa / antar / gender / 90-min planet / Vinod planet, plus a visual Nadi table slice centered on your row
    • Click 'Use' on any candidate — writes the bucket-midpoint T2 back into the birth time field, ready to submit
    • Engine extracted to src/lib/rva/nadi-tatwa.ts so the API and /btr/ page share the same math
  64. Planets Analysis progressed capacity uses v4 total (no double-light)

    • Sub-row capacity values in Planets Analysis were recomputed locally with the pre-v4 formula (perf×0.6 + res×0.4)×light — this double-applied light and used stale weights
    • Now reads capacity.total directly from the API response, matching the v4 formula (perf×0.7 + res×0.3) used by the Dasha Bar and natal main row
    • Fixes the Jupiter sub-row showing 49/11 when Dasha Bar showed 64 for the same progressed year
  65. RVA_MASTER: section checkboxes, age range, and presets

    • Age range inputs (0-120) with auto-synced year display — think in ages, not just years
    • Section checkboxes: Chart, D9 Navamsha, Dynamic Natal, Capacity, House Analysis, Dasha/Bhukti, Progression
    • Uncheck any section to trim prompt size for NotebookLM's paste limits
    • Presets: Quick (Chart+Capacity+Dasha), Full (all on), Timing (Dasha+Progression+Dynamic)
    • Preferences saved to localStorage — your selections persist across visits
    • Focus filter (Career/Marriage/Health/Wealth) still narrows house analysis
  66. RVA_MASTER: dasha/bhukti show DI-connected bhavas and houses

    • Each Mahadasha and Bhukti line now includes Dasha Influencer's bhava (whole-sign) and house (Placidus)
    • Shows the sign where the DI planet sits + strongest planet in that sign
    • Gives AI the house connections needed for timing and area-of-life predictions
  67. RVA_MASTER: Dynamic Natal Chart positions in AI prompt

    • Shows progressed positions of Ma/Me/Ju/Ve/Sa at start/end of range when they differ from natal
    • Su/Mo/Ra/Ke and cusps remain frozen per Dynamic Natal Chart Rule 1
    • Lists sign-change years within the selected range
    • Helps AI identify when dynamic planets have moved signs or flipped retro/direct
  68. RVA_MASTER: structured AI prompt with range filter and focus areas

    • RUN RVA_MASTER header signals AI this is a structured data prompt
    • Range picker (From/To year) + quick chips (5y/10y/60y/All) — filters dasha and progression to selected years only
    • Focus filter (Career/Marriage/Health/Wealth) narrows house analysis to relevant houses
    • Pre-computed capacity scores (Light/Perf/Res/Total) inline — AI interprets numbers instead of guessing
    • Dasha timeline range-filtered with capacity + DI scores per Maha/Bhukti period
    • Progression summary: year-by-year +/- score with top positive and negative aspect
    • Compact ~60-80 line format optimized for NotebookLM paste limits
    • House analysis includes Planet/Occ/Lord/Karaka yearly change sub-rows (range-filtered)
  69. KP Tables: consistent planet degrees across all tabs

    • KP Tables API was dropping seconds from birth time during local→UTC conversion
    • Increased planet degree precision from 2 to 6 decimal places in retrograde/analyze API
    • All tabs (Birth Chart, KP Tables, etc.) now show identical planet positions
  70. KP New ayanamsa: fix ~22-second planetary degree offset

    • KP New (NKPA) was using Swiss Ephemeris built-in Krishnamurti (KP Old) instead of the custom NKPA formula
    • Applied custom adjustment (Lahiri - NKPA) to all planet longitudes, house cusps, and outer planets
    • Fixed in birth-chart, retrograde/analyze, alan-leo, capacity/progression, ashtakavarga/transit-strength APIs
    • Degrees now match V1 XE Man reference software within 1-2 arc-seconds
  71. Alan Leo: slow planet star-lord follows raw retro, not degree

    • Ju/Sa/Ur in progression now keep their NATAL nakshatra when raw motion is Direct
    • Switch to progressed nakshatra only when the planet is physically retrograde
    • Degrees always take the progressed value (unchanged)
    • Fixes wrong Ra/Ke flip on Jupiter — e.g. 2029 Ju square Ma now scores -36 (was +36)
  72. AI Prompt: one-click chart export for LLM analysis

    • Floating AI bot button (bottom-right) copies a ready-to-paste chart summary to the clipboard
    • Includes D1 planets with sign, degree, nakshatra, pada, star lord, retrograde and bhava
    • Includes D9 Navamsha with position from the D9 ascendant
    • House Analysis scores with yearly progression changes (Occupant / Lord / Karaka / Total)
    • Full Mahadasha + Bhukti scorings with DI and R4 values
    • Alan Leo yearly progression aspects — choose 60 / 80 / 100 / 120 years on hover
    • Preamble + 7 interpretation prompts included so the LLM knows exactly what to analyse
  73. Dasha Bar: R4 scores + dasha planet scoring

    • Pulled R4 scores from the Rule 4 table in Dasha Bar
    • Score the dasha planet itself (not the star lord) in Dasha Bar
    • Default scores for the Dasha Influencer
  1. Sub Sub Char Dasha — fixed "Failed to load (HTTP 404)"

    • Page was calling a dedicated sub_sub_chardasha/<major>/<sub> upstream endpoint that isn't part of the active AstrologyAPI plan, so the request 404'd every time.
    • current_chardasha already returns the active sub_sub_dasha array, so the page now reads from that response directly — same data, one fewer round trip, and the cache is shared with the Current Char tab.
  2. Vimshottari Praan — page now shows data (was "No Praan periods returned")

    • Renderer was reading p.start_date / p.end_date but the upstream sub_sub_sub_sub_vdasha endpoint returns p.start / p.end, so every row formatted as a blank cell and the table fell back to the empty state.
    • Now reads start_date || start and end_date || end (and unwraps a response envelope if present), and passes capital-cased planet names (Ketu/Venus/...) on the URL to match VedicRishi's case-sensitive routing.
  3. Vimshottari Mahadasha — capped to one 120-year cycle (was repeating 2 extra cycles)

    • The /api/v1/dasha/vimshottari endpoint was returning 1 partial + 18 full mahadashas (~240 years), so /major-vimshottari/ and /vimshottari-all-levels/ both showed each lord 2-3 times.
    • Now returns the conventional 9 periods: balance of birth lord + 8 full mahadashas, covering one complete 120-year Vimshottari cycle from birth.
  4. All dasha pages — full DD Mon YYYY date format

    • Vimshottari (All Levels, Major), Yogini (Current, Major), Praan, Sub-Yogini, and Char Dasha rows previously rendered endpoints as 'Mon YYYY' or 'Mon DD, YYYY'; sub-period dates collapsed when both endpoints fell in the same calendar month (e.g. 'May 2026 → May 2026').
    • Every dasha page now renders 'DD Mon YYYY' consistently so the date range stays distinguishable at every depth.
  5. Console — silenced "Settings button or panel not found!" error

    • Legacy fallback handler in settings-enhancement.js was looking for the old #settings-btn id (still used by the dynamic-natal-chart toolbar) and logging an error on every Janam Kundali page, where BirthDataFormBar uses #rva-settings-btn instead.
    • Now returns silently when the legacy elements aren't on the page — the actual settings toggle is wired by rva-engine.js to the new id and was always working.
  6. Current Vimshottari Dasha — full DD Mon YYYY at every level

    • Mahadasha / Antardasha / Pratyantardasha rows previously formatted endpoints as 'Mon YYYY', so a Pratyantar period that started and ended in the same month showed 'May 2026 → May 2026' with no day visible.
    • All five rows now render 'DD Mon YYYY' (Praan keeps the trailing HH:MM) so the date range stays distinguishable at every depth.
  7. Planet Positions — Rahu and Ketu now show the R (retrograde) tag

    • Rahu and Ketu are mean lunar nodes and always move retrograde, so the R tag is now forced for both regardless of what the API flag returns.
  8. Current Vimshottari Dasha — added 5th level (Praan)

    • Page now shows all five levels: Mahadasha → Antardasha → Pratyantardasha → Sookshma → Praan.
    • Praan is computed client-side from the active Sookshma so the API response stays the same size.
    • Sookshma row now shows 'DD Mon YYYY' and Praan shows 'DD Mon YYYY HH:MM' so the short date ranges are readable.
  9. Dasha bar — DI capacity scores now match /rva-softwares/

    • Mahadasha header shows the colored DI capacity badge (and a second badge for the bukthi when different).
    • Each antardasha box now shows its bukthi DI capacity score with the same color scale (green/amber/orange/red).
    • R4 rule: when the Dasha Influencer comes from Rule 4, the score uses the R4 capacity table and is tagged with a purple R4 badge.
    • Lazy-loaded: the retrograde/analyze + 6-step capacity chain only fires when the Dasha widget actually scrolls into view, so users who don't open the dasha section pay nothing.
  10. Nakshatra pada in table, varga charts show only 1st cusp

    • Planet Positions: Nakshatra column now displays 'Name - Pada' (e.g. 'Rohini - 2') so the pada is visible alongside the nakshatra.
    • Varga (D2–D60) charts now display only the 1st house cusp (ascendant) like /rva-softwares/, not all 12 cusps — other cusps aren't meaningful in divisional charts.
  11. Varga charts client-side, D9 default, dasha cache key fix, reference tables

    • All divisional charts (D2-D60) now computed client-side from natal data — ported rva-softwares vargaCalcs; previously only D9/D10 had formulas, all others returned natal positions unchanged.
    • Right-side chart defaults to D9 Navamsha instead of Transit Chart.
    • Dasha bar cache key validation added — switching to a different birth chart no longer shows the previous person's dasha data.
    • Panchang bar items spread evenly across full width on expanded desktop layout.
    • Reference tables added below Planet Positions (Signs, Houses, Planets) as collapsible accordions to help read the horoscope.
  12. Panchang NaN:NaN times, right chart defaults to Transit, toolbar moved into panchang bar

    • Panchang bar: sunrise/sunset/moonrise/moonset now show correct HH:MM — msToTimeStr rewritten using Date object to handle IANA timezone strings (parseFloat of 'Asia/Kolkata' was NaN causing integer overflow).
    • Right chart now defaults to Transit Chart instead of D9 Navamsha on initial load.
    • Chart type labels ('Natal Chart', 'Transit Chart') update dynamically when the chart select changes.
    • Sidebar toggle button moved inside the panchang bar (eliminates the separate toolbar row that was consuming vertical space).
    • Sidebar toggle uses event delegation so it works after dynamic DOM injection.
  13. Charts page: complete overhaul — dasha widget, progression, transit, share, polish

    • Dasha Timeline — rva-softwares style antardasha widget (nav buttons, expandable bukthi boxes, year timeline) on Charts page.
    • Current bukthi highlighted in green; prev/next mahadasha navigation; correct highlighting when navigating.
    • Alan Leo western progression bar chart replaces Gantt; year-range control (+/- 10yr, All) to zoom any life period.
    • Transit Ashtakavarga line chart from /api/v1/ashtakavarga/transit-strength with year +/- control.
    • D9 Navamsha now renders correctly as default right-side chart (was showing transit despite D9 selected).
    • Left/right chart selects now functional — choosing any divisional chart (D1–D60) loads and draws it.
    • Planet Positions table fully dynamic from API data; nakshatra column fixed (was [object Object]).
    • Sade Sathi status card (Rising/Peak/Setting/Not Running) computed from transit Saturn vs natal Moon.
    • Panchang cards updated to Gatsby accent-border style (4px colored top stripe, white bg, border).
    • Share link button in toolbar — creates 90-day KV link; ?share= auto-fills and submits the form.
    • Removed redundant 'Birth Charts & Divisional Charts' heading; renamed 'Dasha Timeline & Analysis' to 'Dasha Timeline'.
  14. Mobile birth form readability

    • Widened mobile date field so 'dd-mm-yyyy' shows in full
    • Shrunk Name field so Date and Time stay readable side-by-side
  1. Vimshottari Dasha — 5 levels (Maha → Antar → Pratyantar → Sookshma → Prana)

    • Sookshma rows are now expandable to a 5th Prana level (purple), matching /rva-softwares/.
    • Prana periods are derived client-side from each Sookshma's span — no extra API payload.
  2. Move House — chart now reflects rotated ascendant

    • Clicking M·N (Move House) rotated the planet/cusp tables but the chart kept showing the original ascendant. Chart now redraws with the rotated cusps and planet houses so the Roman numerals (I, II, …) move with the selection.
  3. Slug changed from /kp-horary/ to /kp-softwares/

    • Page moved to /kp-softwares/ — old /kp-horary/ URL redirects (301) to the new slug.
  4. Print report, Move House button, panchang restyled to match /rva-softwares/

    • Print Report: new 🖨 Print Report link at bottom of results opens a formatted A4 print modal (chart + 4 KP tables). Ctrl+P shortcut supported.
    • Move House: removed from settings panel; new 'M' button before settings icon opens popup with house 1-12 selection. Button shows M·N when active. Resets to Original.
    • Panchang bar: redesigned to match /rva-softwares/ exactly — bigger icons, label on top (muted), value bold below, violet/blue/yellow/orange icon colors.
    • Sign names use 2-letter abbreviations (Ar/Ta/Cn/Le etc.) in all KP tables.
    • Su, Mo, Ra, Ke no longer show [R] retrograde marker.
  5. All KP tables + aspects restyled to match /rva-softwares/ exactly

    • 4 KP tables (Planets, House Cusps, Significators Planet/House): restyled with white rounded-xl panels, slate-50 thead, hover rows, colored lord columns (blue/purple/orange/pink/teal) matching /rva-softwares/ exactly.
    • Planet Aspects grid: each cell now shows aspect symbol + (A)/(S) status on line 1 and exact orb° on line 2.
    • House Aspects grid: now computes actual western aspects between planet degrees and house-cusp degrees client-side.
    • Western Aspects list: flat list restyled with white panels, slate-50 headers, hard aspects in red.
  1. Marriage Yoga — house analysis scoring (rule4-weighted)

    • Replaced the old 3-rule Venus/7th-lord-kendra/Jupiter+Venus check (max 3) with house analysis scoring driven by /api/v1/capacity/planet houseAnalysis.
    • Per person: H7×0.75 + avg(H2,H5)×0.25 using each house's effective-planet capacity score (rule4-weighted, resolved via powerful-planet/RP/R2/R3/R4 chain).
    • Gate: H7 effective-planet score must be ≥ 40 in BOTH charts; otherwise the yoga score is 0.
    • Combined display 'Marriage Yoga & Retrograde' = marriageYoga (max 10) + 7th-lord retrograde (max 6) = 16.
    • API: /api/v1/capacity/planet now also returns houseAnalysis per requested mode (?modes=rule4 → data.modes.rule4.houseAnalysis), and ?houseAnalysisMode=<mode> overrides the top-level houseAnalysis with that mode's reweighted result.
  2. Balance of Aspects + 7th Uranus — weighted cross-chart aspect scoring

    • Replaced 'Negative Aspects' factor with 'Balance of Aspects': weighted natal + cross-chart aspects for all 8 planets (SU/MO/MA/ME/JU/VE/SA/UR). Benefic-benefic negative aspects score +1 instead of full penalty.
    • G_Result = natal_groom[planet] + compare_groom_to_bride[planet]; threshold ≥ -10 passes. Score = (G_pass + B_pass) / 16 × 20.
    • 7th Uranus factor rewritten with same weighted methodology — Uranus natal + cross-chart strength scored; each side ≥ -10 threshold gives 2.5 pts (max 5).
  3. All 42 Kundali Matching concept pages — complete rule library

    • Created 41 dedicated concept pages covering all Vedic, extended South Indian, and Western synastry matching rules (#1–42).
    • Pages: /dina-kuta, /gana-kuta, /yoni-kuta, /rashi-kuta, /graha-maitri, /rajju, /vedha, /vashya, /mahendra, /stree-deergha, /varna-kuta, /nadi-kuta, /moon-hemmed, /moon-associates, /astakavarga-matching, /kuja-dosha, /malefics-matching, /ascendants-match, /ascendant-lords, /seventh-houses, /seventh-lords, /eighth-lords, /eight-planets-matching, /ascendant-moon, /venus-mars, /venus-position, /attractions-synastry, /exchange-of-views, /bondage, /family-attachment, /bad-aspects, /position-malefics, /five-year-progressions, /transits-rule, /individual-marriage-yoga, /seventh-uranus, /seventh-lord-retrograde, /similar-combinations, /dasha-significance, /male-female-planets, /rahu-ketu-match.
    • Shared CSS (kuta-concept.css) for all pages: meta card, varna badges, compatibility tables, example blocks, callouts.
    • All 42 sidebar entries updated from hash anchors to dedicated page URLs.
    • Old /concepts/kundali-matching/varna-kuta page removed.
  4. Dasha heading colors — groom purple, bride pink to match print design

    • Groom 'Current Dasha' heading now uses brand purple (#7c3aed) matching the print report, was dark navy (#1d4ed8).
    • Bride heading keeps pink (#be185d).
  5. Fix calculation — apiSuccess meta optional + .ok/.success mismatch

    • apiSuccess() meta parameter made optional so section APIs (moon-vedic, other-vedic, western) can call it without chart-level meta.
    • Frontend now checks response.ok instead of response.success to match the ApiResponse envelope schema.
  6. Fix 'Cannot read ayanamsha' crash on chart calculation

    • Removed unused chart.meta.ayanamsha read in calc-service.ts that threw when chart meta was momentarily undefined.
    • Added optional chaining (chart.meta?.julianDay) for defensive safety throughout computeChart.
  7. Fix 500 error on calculate — tz field normalization + real error messages

    • charts.ts API now maps tz → timezone so frontend timezone values are correctly parsed.
    • Frontend now reads the JSON error body before throwing, showing the actual server error instead of a generic HTTP 500 message.
    • Section API calls (moon-vedic, other-vedic, western) isolated — updating one rule cannot affect others.
  8. Birth chart style matched exactly to RVA Software

    • Background color changed from #ffffdc to #fefddc (cream match).
    • Planet text: 13px (was 12px), normal weight, orange house cusps rgb(255,87,34) (was red).
    • Center info block: left-aligned at x=106 with clip-path, 27px line spacing, timezone added.
    • Sort order: ascending for Aries–Virgo signs, descending for Libra–Pisces (matches rva-engine).
    • Compact mode (>6 items): houses 1-per-line, planets 2-per-line at 11px with DD:MM format.
    • North Indian chart: updated colors and positions to match RVA Software layout.
  9. Print report redesign — black badges, Vedic combined, Rasi/Nakshatra/Charan mid-section

    • Score badges changed from purple to black; Final Score badge now blue.
    • Scores section: 3 badges (Astakoot, Vedic combined, Western) + Rasi/Nakshatra/Charan middle + large Final Score.
    • Vedic badge shows combined Moon Vedic + Other Vedic score out of 100.
    • Header table: Nakshatra, Rasi, Charan in separate columns; Marriage Date replaces Manglik.
    • Factor table columns renamed: S.No / Points / Scored (was # / Max / Score).
  10. One-page A4 print report — dynamically built from live chart data

    • Print FAB (bottom-right) generates a compact A4 portrait page on demand.
    • Header table: groom/bride names, birth date, time, nakshatra, manglik status.
    • Score banner: Ashtakoot, Moon Vedic, Other Vedic, Western, Overall, Grade.
    • Three factor tables (Moon Vedic / Other Vedic / Western) in a 3-column grid.
    • Both natal charts cloned as SVG side-by-side; current Dasha (Maha / Antar) below.
    • Life graph captured from live canvas as PNG and included at foot of page.
  11. Share icon disabled until Submit; 60-day Alan Leo graph; charts always one horizontal line

    • Share button now visible but grayed-out before Submit, enabled after calculation.
    • Share button repositioned: after Translate icon, before Gear+Submit.
    • Alan Leo graph reduced to 60 data points (was 120) for faster rendering.
    • Charts always stay on one horizontal line (flex nowrap + SVG scales within container).
  12. Chart.js local, sticky print FAB, charts closer, progression labels cleaned up

    • Chart.js served locally (was CDN — caused 'Chart is not defined' when CDN blocked).
    • Print button moved to sticky FAB at bottom-right corner.
    • Progression tabs: removed 'GROOM/BRIDE NATAL CHART' subtitle text.
    • Charts layout changed to flex-centered — natal and progressed charts closer together.
  13. South/North toggle, centred tab buttons, dasha design, date alignment, Alan Leo auth fix

    • South / North Indian chart style toggle button added to Charts & Dasha header.
    • Print button added (Ctrl+P also works) — all chart panels visible in print.
    • Tab buttons (Birth, Groom Progression, Bride Progression) centred.
    • Dasha Antardasha card now has a distinct purple left-border accent.
    • Marriage date field aligned with Bride row controls (same place-field width).
    • Alan Leo API auth: Referer header accepted as fallback when browser omits Origin.
  14. Marriage date field, nakshatra below names, progression +/− year control, dasha design, closer charts

    • Marriage date picker added to Groom row in the form bar.
    • Nakshatra / moon sign info moved to sit directly below couple names in summary bar.
    • Progression year control replaced with styled − / + buttons (like RVA Software).
    • Current dasha redesigned to single-line 'Mahadasha - Planet date to date' style.
    • Charts gap reduced so natal and progressed charts appear side-by-side more compactly.
    • Alan Leo graph error handling improved; credentials and timezone fallback fixed.
  15. Full report UI: birth charts, Vimshottari dasha bars, Vedic & Western score columns, life graphs

    • Charts & Dasha section placed above score columns.
    • Dasha bars (groom + bride) rendered below birth charts using dasha-timeline component.
    • 3 score columns: Moon Vedic (50pts), Other Vedic (50pts), Western (100pts) with A/B/C/D grade badges.
    • Life graph shows progressed aspect scores age 0–70 for both partners.
    • Planetary Positions section removed.

No updates yet. Check back soon.

No updates yet. Check back soon.

No updates yet. Check back soon.

No updates yet. Check back soon.

  1. Premium glassmorphism redesign across the page

    • Hero now leads with a gradient title, animated 'Live Planetary Transits' badge, and the date underneath.
    • System tabs (Vedic / Western) and timeframe tabs (Daily / Weekly / Monthly) sit on a frosted glass pill with active state filled by a violet→purple gradient.
    • 12 zodiac cards: glass surface, gradient outline ring on hover/active, element-tinted lord chip, soft drop shadow on the icon, lift animation on hover.
    • Transit pills: per-planet color (Sun amber, Moon slate, Mars red, Mercury emerald, Jupiter gold, Venus pink, Saturn navy, Rahu violet, Ketu teal) with a glowing planet dot and tinted house badge.
    • Prediction cards: glass surface with a vertical domain accent bar (overall/career/health/relationships/finance/spiritual), responsive 1–2 column grid, hover lift with domain-tinted glow.
    • Intensity dot row replaced with a gradient-fill bar segmented across 10 steps.
    • Special transit cards (Sade Sati / Rahu-Ketu / Retrograde) get matching glass + accent treatment with a duration chip.
    • Subtle aurora gradient now sits behind the page in both light and dark mode for depth.
  1. Click any Nadi row to rectify the birth time

    • Rows are now clickable — the birth time updates to that row's T2 (bucket midpoint, so recomputation lands back on the same row) and the calc re-runs automatically
    • Hover cursor turns into a pointer; the currently matched row stays non-clickable to avoid no-op re-runs
    • Pairs naturally with the T2 column — scan the table for a row whose planet/tatwa pattern fits known life events and click to lock it in
  2. Nadi table shows T2 (clock time) alongside T1

    • New T2 column next to T1 in the 480-row Nadi table
    • T2 = T1 reversed through the LMT and sunrise adjustments — i.e. the real wall-clock birth time that maps to that row
    • Makes it easier to scan rows and pick a rectified birth time without running the math in your head