/* Janma Patrikā — one A4 sheet, three vector frames.
   Everything is sized in mm so screen and print agree; public/patrika.js only
   scales the whole sheet down on a narrow screen. */
* { box-sizing: border-box; }
html { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body.pt-body { margin: 0; background: #2a2622; color: var(--ink); font: 400 8.4pt/1.35 'Inter', 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', 'Noto Sans', system-ui, sans-serif; }
.dv { font-family: 'Tiro Devanagari Sanskrit', 'Noto Serif Devanagari', 'Noto Sans Devanagari', serif; font-style: normal; }
i.dv { opacity: .78; margin-left: .25em; }

/* ── palettes ─────────────────────────────────────────────────────────── */
.pt-torana { --paper: #fbf3e2; --paper2: #f6e7c8; --ink: #3a1d12; --main: #8a1c1c; --main2: #b5452a; --gold: #b8892b; --gold2: #e2c26a; --soft: #f3e2c0; --line: #d9bd85; }
.pt-padma  { --paper: #fdf6f1; --paper2: #f8e6e4; --ink: #2b2140; --main: #6a2a5b; --main2: #b04a7a; --gold: #b58a3c; --gold2: #e6c98a; --soft: #f7e3ea; --line: #e0bccb; }
.pt-mayura { --paper: #f7f6ec; --paper2: #e6efe6; --ink: #10303a; --main: #0f5c73; --main2: #1d8a7a; --gold: #b38a2e; --gold2: #e3c878; --soft: #dcecea; --line: #a9cfc9; }

/* ── toolbar (screen only) ────────────────────────────────────────────── */
.pt-bar { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; padding: 10px 16px; background: #1b1815; color: #f3e9d6; font-size: 13px; }
.pt-bar a { color: #e9c877; text-decoration: none; }
.pt-bar-tpl { display: flex; gap: 6px; align-items: center; margin: 0; }
.pt-bar-lab { opacity: .7; margin-right: 4px; }
.pt-bar-t { font: inherit; padding: 6px 12px; border-radius: 999px; border: 1px solid #5c5040; background: transparent; color: #f3e9d6; cursor: pointer; }
.pt-bar-t.on { background: #e9c877; color: #1b1815; border-color: #e9c877; font-weight: 600; }
.pt-bar-note { opacity: .85; }
.pt-bar-save { margin-left: auto; font: 600 14px 'Inter', 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; padding: 9px 20px; border-radius: 999px; border: 0; background: linear-gradient(180deg, #f0d48a, #c99a3a); color: #2a1a08; cursor: pointer; box-shadow: 0 2px 10px rgba(0,0,0,.35); }
.pt-hint { margin: 0; padding: 8px 16px; background: #332d26; color: #d8ccb6; font-size: 12px; text-align: center; }
.pt-stage { padding: 22px 12px 60px; display: flex; justify-content: center; overflow: hidden; }

/* ── the sheet ────────────────────────────────────────────────────────── */
.pt-sheet { position: relative; flex: none; width: 210mm; height: 297mm; overflow: hidden; transform-origin: top center;
  background: radial-gradient(ellipse at 50% 30%, var(--paper) 0%, var(--paper) 55%, var(--paper2) 100%);
  box-shadow: 0 10px 40px rgba(0,0,0,.55); padding: 12mm 14mm 9mm;
  display: grid; gap: 1.9mm 3.5mm; grid-template-columns: 1fr 55mm 1fr;
  grid-template-areas: "head head head" "names names names" "panch chart details" "ptop chart pkey" "grahas grahas dasha" "verses verses verses" "foot foot foot";
  grid-template-rows: auto auto auto auto auto 1fr auto; }
.pt-landscape .pt-sheet { width: 297mm; height: 210mm; padding: 11mm 15mm 8mm;
  grid-template-columns: 75mm 1.5fr 1.12fr 58mm;
  grid-template-areas: "head head head head" "names names ptop ptop" "chart panch details verses" "chart pkey pkey verses" "chart grahas dasha verses" "foot foot foot foot";
  grid-template-rows: auto auto auto auto 1fr auto; }
.pt-head { grid-area: head; } .pt-names { grid-area: names; } .pt-pills-top { grid-area: ptop; } .pt-panch { grid-area: panch; }
.pt-chart { grid-area: chart; } .pt-details { grid-area: details; } .pt-pills-key { grid-area: pkey; } .pt-grahas { grid-area: grahas; }
.pt-dasha { grid-area: dasha; } .pt-verses { grid-area: verses; } .pt-foot { grid-area: foot; }
.pt-sheet > *:not(.pt-frame):not(.pt-wm) { position: relative; z-index: 2; min-width: 0; }

/* ── frame ────────────────────────────────────────────────────────────── */
.pt-frame { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.fr { position: absolute; display: block; }
.fr1 { inset: 5mm; border: 1.1mm solid var(--main); border-radius: 2mm; }
.fr2 { inset: 7.4mm; border: .35mm solid var(--gold); border-radius: 1mm; box-shadow: inset 0 0 0 1.1mm var(--paper), inset 0 0 0 1.4mm var(--gold2); }
.cm { position: absolute; width: 30mm; height: 30mm; }
.cm .mp { fill: var(--main); opacity: .16; } .cm .mp2 { fill: var(--gold); opacity: .4; } .cm .mc { fill: var(--gold2); opacity: .5; } .cm .mc2 { fill: var(--main); opacity: .45; }
.cm-tl { top: -7mm; left: -7mm; } .cm-tr { top: -7mm; right: -7mm; } .cm-bl { bottom: -7mm; left: -7mm; } .cm-br { bottom: -7mm; right: -7mm; }
.pt-sheet { clip-path: inset(0); }

/* Toraṇa: scalloped gateway arch + pillars */
.pt-arch { position: absolute; top: 7.4mm; left: 7.4mm; width: calc(100% - 14.8mm); height: 30mm; }
.pt-arch .ar1 { fill: none; stroke: var(--main); stroke-width: 5; vector-effect: non-scaling-stroke; }
.pt-arch .ar2 { fill: none; stroke: var(--gold); stroke-width: 1.6; vector-effect: non-scaling-stroke; }
.pt-arch path { stroke-linejoin: round; }
.pil { position: absolute; top: 36mm; bottom: 30mm; width: 2.2mm; border-radius: 1mm; background: repeating-linear-gradient(180deg, var(--main) 0 5mm, var(--gold) 5mm 5.6mm, var(--main2) 5.6mm 10.6mm, var(--gold) 10.6mm 11.2mm); opacity: .8; }
.pil-l { left: 9.6mm; } .pil-r { right: 9.6mm; }
.pt-torana .pt-head { padding-top: 3.5mm; }

/* Padma: bigger corner lotus-mandalas, soft ring round the chart */
.pt-padma .cm { width: 46mm; height: 46mm; } .pt-padma .cm-tl, .pt-padma .cm-tr { top: -13mm; } .pt-padma .cm-bl, .pt-padma .cm-br { bottom: -13mm; }
.pt-padma .cm-tl, .pt-padma .cm-bl { left: -13mm; } .pt-padma .cm-tr, .pt-padma .cm-br { right: -13mm; }
.pt-padma .fr1 { border-radius: 9mm; border-width: .9mm; } .pt-padma .fr2 { border-radius: 7mm; }
.pt-padma .pt-sheet { grid-template-columns: 1fr 55mm 1fr; gap: 1.9mm 2.5mm; }
.pt-padma .pt-card dl { gap: .8mm 1.6mm; } .pt-padma .pt-card dt { letter-spacing: .02em; } .pt-padma .pt-card dd { font-size: 7.6pt; } .pt-padma .pt-card dd .dv { font-size: 7.4pt; margin-left: .1em; }
.pt-padma .pt-chart-ring { border-radius: 50%; padding: 10.6mm; margin-top: 1mm; background: radial-gradient(circle closest-side, var(--paper) 90%, var(--soft) 91%, var(--soft) 99%, transparent 100%); box-shadow: 0 0 0 .4mm var(--gold), 0 0 0 1.6mm var(--paper), 0 0 0 1.9mm var(--main2); }

/* Mayūra: peacock feathers fanning beside the title */
.pt-feathers { position: absolute; top: 8mm; display: flex; gap: 0; }
.pf-l { left: 12mm; } .pf-r { right: 12mm; transform: scaleX(-1); }
.fe { width: 11mm; height: 19mm; } .fe1 { transform: rotate(-24deg) translateY(2mm); } .fe3 { transform: rotate(24deg) translateY(2mm); }
.fe .fq { stroke: var(--gold); stroke-width: 1; } .fe .fb path { stroke: var(--main2); stroke-width: .7; fill: none; opacity: .7; }
.fe .f1 { fill: #c9a23f; } .fe .f2 { fill: #1d8a7a; } .fe .f3 { fill: #1a63b0; } .fe .f4 { fill: #14213f; }
.pt-mayura .fr1 { border-color: var(--main); }

/* ── watermark ────────────────────────────────────────────────────────── */
.pt-wm { position: absolute; z-index: 3; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(-32deg); font: 700 30mm/1 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main); opacity: .1; white-space: nowrap; letter-spacing: .08em; pointer-events: none; }
.pt-landscape .pt-wm { font-size: 26mm; transform: translate(-50%, -50%) rotate(-24deg); }

/* ── header ───────────────────────────────────────────────────────────── */
.pt-head { text-align: center; }
.pt-medal { width: 17mm; height: 17mm; margin: 0 auto .6mm; border-radius: 50%; overflow: hidden; border: .7mm solid var(--gold); box-shadow: 0 0 0 .5mm var(--paper), 0 0 0 .9mm var(--main), 0 1mm 3mm rgba(90,50,10,.25); background: #faf2e4; }
.pt-medal img { width: 118%; height: 118%; margin: -9% 0 0 -9%; display: block; object-fit: cover; }
.pt-om { margin: 0; color: var(--main); font-size: 9.5pt; letter-spacing: .04em; }
.pt-title { margin: .4mm 0 .6mm; font: 700 21pt/1.05 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main); display: flex; gap: 4mm; justify-content: center; align-items: baseline; }
.pt-title .dv { font-size: 18pt; font-weight: 400; }
.pt-title em { font-style: italic; font-weight: 500; color: var(--gold); font-size: 15pt; }
.pt-mangala { margin: 0 auto; max-width: 160mm; font-size: 9pt; line-height: 1.4; color: var(--ink); }
.pt-landscape .pt-head { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "medal om" "medal title" "medal mang"; column-gap: 5mm; justify-content: center; width: fit-content; margin: 0 auto; text-align: left; align-items: center; }
.pt-landscape .pt-medal { grid-area: medal; width: 23mm; height: 23mm; margin: 0; } .pt-landscape .pt-om { grid-area: om; } .pt-landscape .pt-title { grid-area: title; justify-content: flex-start; font-size: 22pt; } .pt-landscape .pt-mangala { grid-area: mang; max-width: none; font-size: 8.8pt; }

/* ── names ────────────────────────────────────────────────────────────── */
.pt-names { text-align: center; padding: 1.2mm 0 .4mm; border-top: .3mm solid var(--line); border-bottom: .3mm solid var(--line); background: linear-gradient(90deg, transparent, var(--soft) 30%, var(--soft) 70%, transparent); }
.pt-name { margin: 0; font: 700 17pt/1.1 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--ink); }
.pt-parents { margin: .2mm 0 .6mm; font: 500 10pt/1.25 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; }
.pt-parents b { color: var(--gold); font-weight: 600; } .pt-rel { color: var(--main); font-style: italic; margin-right: 1.5mm; }
.pt-landscape .pt-names { align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.pt-landscape .pt-name { font-size: 16pt; } .pt-landscape .pt-parents { font-size: 9.5pt; }

/* ── pills ────────────────────────────────────────────────────────────── */
.pt-pills { display: grid; gap: 3mm; }
.pt-pills-top { grid-template-columns: 1fr .8fr 1.5fr; } .pt-pills-key { grid-template-columns: repeat(4, 1fr); }
.pill { text-align: center; padding: .9mm 2mm 1.1mm; border-radius: 99mm; background: linear-gradient(180deg, #fffdf7, var(--soft)); border: .35mm solid var(--gold); box-shadow: inset 0 0 0 .7mm var(--paper), inset 0 0 0 .9mm var(--line); min-width: 0; }
.pill .pl { display: block; font-size: 6.4pt; letter-spacing: .09em; text-transform: uppercase; color: var(--main); }
.pill .pl .dv { text-transform: none; letter-spacing: 0; font-size: 7.4pt; }
.pill b { display: block; font: 700 10.8pt/1.15 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pill b .dv { font-weight: 400; font-size: 9.5pt; } .pill small { display: block; font-size: 6.8pt; opacity: .8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pt-padma .pill { border-radius: 4mm 12mm 4mm 12mm; }
.pt-mayura .pt-pills-top .pill { border-radius: 2.5mm 2.5mm 0 0; background: linear-gradient(180deg, var(--main), #0b4558); border-color: var(--gold); box-shadow: none; }
.pt-mayura .pt-pills-top .pill .pl, .pt-mayura .pt-pills-top .pill b, .pt-mayura .pt-pills-top .pill small { color: #f4efdc; } .pt-mayura .pt-pills-top .pill .pl { color: var(--gold2); }
.pt-mayura .pt-pills-key { grid-template-columns: repeat(4, 1fr); align-self: start; } .pt-mayura .pill { border-radius: 3mm; }
.pt-mayura .pt-pills-key .pill b { font-size: 10pt; }

/* ── cards ────────────────────────────────────────────────────────────── */
.pt-card { background: rgba(255,253,246,.72); border: .3mm solid var(--line); border-radius: 2.4mm; padding: 1.6mm 2.4mm; }
.pt-sheet h2 { margin: 0 0 1.2mm; padding-bottom: .8mm; border-bottom: .3mm solid var(--gold2); font: 700 9.6pt/1.2 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; letter-spacing: .03em; color: var(--main); }
.pt-sheet h2 .dv { font-weight: 400; font-size: 9.6pt; margin-right: 1.5mm; color: var(--ink); }
.pt-card dl { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .9mm 2.4mm; align-items: baseline; }
.pt-card dt { font-size: 6.6pt; letter-spacing: .07em; text-transform: uppercase; color: var(--main2); white-space: nowrap; }
.pt-card dd { margin: 0; font-size: 8pt; font-weight: 500; white-space: nowrap; } .pt-card dd .dv { font-size: 8pt; font-weight: 400; }
.pt-panch, .pt-details { align-self: center; }
.pt-fine { margin: 1mm 0 0; font-size: 6.3pt; line-height: 1.35; opacity: .8; }

/* ── chart ────────────────────────────────────────────────────────────── */
.pt-chart { text-align: center; align-self: center; }
/* The painted kuṇḍalī frame — the same artwork and box measurements as the
   home page's .ka block (public/site.css). */
.pka { position: relative; container-type: inline-size; width: 100%; margin: 0 auto; aspect-ratio: 483 / 869; }
.pka-back { position: absolute; left: 3%; right: 3%; top: 19.32%; bottom: 1.97%; border-radius: 3cqw; background: linear-gradient(180deg, #fffaf0, #fbf1de); }
.pka-img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pka .pka-svg { position: absolute; left: 7.66%; top: 29.11%; width: 84.47%; height: 47.41%; overflow: visible; }
.pka .ch-sign { fill: #a0642a; font-size: 11.5px; } .pka .ch-gr { font-size: 14.5px; fill: #3a1d12; } .pka .ch-lg { fill: #8a1c1c; font-size: 10px; } .pka .ch-rx { font-size: 8.5px; }
.pka-pill { position: absolute; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 1.6cqw; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #6b2a1a; font-weight: 600; font-size: 3.1cqw; line-height: 1.15; }
.pka-t1 { left: 8.7%;  top: 20.6%;  width: 15.5%; height: 5.21%; }
.pka-t2 { left: 27.1%; top: 19.32%;    width: 45.6%; height: 6.49%; font: italic 700 4.4cqw/1.1 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #8a1c1c; white-space: normal; }
.pka-t3 { left: 75.6%; top: 20.6%;  width: 15.9%; height: 5.21%; }
.pka-b1 { left: 10.8%; top: 81.36%; width: 36.8%; height: 4.13%; font-size: 2.9cqw; }
.pka-b2 { left: 51.3%; top: 81.36%; width: 37.9%; height: 4.13%; font-size: 2.9cqw; }
.pka-b3 { left: 18%;   top: 86.42%;  width: 29.5%; height: 5.51%; justify-content: flex-start; font-size: 2.6cqw; padding: 0 .4cqw; white-space: normal; text-align: left; }
.pka-b4 { left: 58.6%; top: 86.42%;  width: 30.2%; height: 5.51%; justify-content: flex-start; font-size: 2.7cqw; padding: 0 .4cqw; }
/* Portrait sheets: the frame stands two rows tall, so the birth pills stack to
   its left and the key pills to its right. */
body:not(.pt-landscape) .pt-pills-top, body:not(.pt-landscape) .pt-pills-key { grid-template-columns: 1fr; gap: 1.6mm; align-content: space-evenly; }
body:not(.pt-landscape) .pt-panch, body:not(.pt-landscape) .pt-details { align-self: end; }
/* Landscape: the frame runs the full height of the left column. */
.pt-landscape .pt-chart { align-self: start; }
.pt-landscape .pt-sheet .pt-grahas table { font-size: 7.1pt; } .pt-landscape .pt-sheet .pt-grahas td { padding-right: .6mm; }
.pt-landscape .pt-grahas i.dv, .pt-landscape .pt-dasha i.dv, .pt-landscape .pt-details i.dv { display: none; }
.pt-chart-ring { margin: 0 auto; }
.pt-chart-svg { display: block; width: 100%; height: auto; }
.ch-bg { fill: #fffdf6; } .ch-ln { fill: none; stroke: var(--main); stroke-width: 1.3; stroke-linejoin: round; } .ch-out { fill: none; stroke: var(--gold); stroke-width: 1.6; }
.ch-sign { font: 500 10.5px 'Inter', 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; fill: var(--gold); text-anchor: middle; }
.ch-rx { font-size: 7.5px; }
.ch-gr { font: 600 12.5px 'Inter', 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; text-anchor: middle; fill: var(--ink); }
.ch-lg { font: italic 600 9px 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; fill: var(--main); text-anchor: middle; letter-spacing: .06em; }
.g-su { fill: #b4431a; } .g-mo { fill: #4a6a8f; } .g-ma { fill: #a3201e; } .g-me { fill: #2f7a3e; } .g-ju { fill: #a67a10; } .g-ve { fill: #8a3f86; } .g-sa { fill: #2d3550; } .g-ra, .g-ke { fill: #5a5148; }
.pt-chart-cap { margin: 1mm 0 0; font: italic 500 8pt 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main); }

/* ── tables ───────────────────────────────────────────────────────────── */
.pt-sheet table { width: 100%; border-collapse: collapse; font-size: 7.1pt; line-height: 1.22; }
.pt-sheet th { text-align: left; font-size: 6.2pt; letter-spacing: .07em; text-transform: uppercase; color: var(--main2); font-weight: 600; padding: 0 1mm .5mm 0; }
.pt-sheet td { padding: .22mm 1mm .22mm 0; border-top: .2mm solid var(--line); white-space: nowrap; } .pt-sheet td .dv { font-size: 6.9pt; line-height: 1; }
.pt-sheet tr.lg td { color: var(--main); font-weight: 600; } .pt-sheet tr.cur td { background: var(--soft); font-weight: 600; }
.pt-sheet td:last-child, .pt-sheet th:last-child { text-align: right; padding-right: 0; }

/* ── verses ───────────────────────────────────────────────────────────── */
.pt-verses h2 { text-align: center; border: 0; margin-bottom: .6mm; }
.pt-verse-grid { display: grid; grid-template-columns: 1fr .95fr 1.55fr; gap: 2.5mm; }
.pt-verse-grid:has(> :nth-child(2):last-child) { grid-template-columns: 1fr 1.4fr; }
.pt-verse { margin: 0; padding: 1.3mm 2.2mm; border-radius: 2.4mm; background: linear-gradient(180deg, rgba(255,253,246,.85), var(--soft)); border: .3mm solid var(--line); border-top: .9mm solid var(--main); }
.pt-verse blockquote { margin: 0; font-size: 8.5pt; line-height: 1.42; color: var(--ink); text-align: center; } .pt-verse blockquote span { display: block; }
.pt-tr { margin: .7mm 0; font: italic 500 7.2pt/1.22 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; text-align: center; }
.pt-verse figcaption { font-size: 5.9pt; line-height: 1.35; color: var(--main); text-align: center; border-top: .2mm dashed var(--line); padding-top: .8mm; } .pt-verse figcaption .dv { font-size: 6.8pt; }
.pt-landscape .pt-verse-grid { grid-template-columns: 1fr !important; gap: 1.6mm; } .pt-landscape .pt-verse { padding: 1.2mm 2mm; }
.pt-landscape .pt-verse blockquote { font-size: 7.9pt; line-height: 1.42; } .pt-landscape .pt-tr { font-size: 6.9pt; margin: .6mm 0; } .pt-landscape .pt-verses h2 { font-size: 8.6pt; }

/* ── footer ───────────────────────────────────────────────────────────── */
.pt-foot { text-align: center; }
.pt-lotus { width: 17mm; height: 6mm; display: block; margin: 0 auto 1mm; } .pt-lotus .lp { fill: var(--main2); opacity: .75; stroke: var(--paper); stroke-width: .8; } .pt-lotus .lp1 { fill: var(--gold); } .pt-lotus .lbase { stroke: var(--main); stroke-width: 1.4; }
.pt-brand { margin: 0; font: 600 10.5pt 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; letter-spacing: .05em; color: var(--ink); } .pt-brand b { color: var(--main); font-size: 12.5pt; letter-spacing: .1em; text-transform: uppercase; }
.pt-kalasha { width: 5mm; height: 5.5mm; vertical-align: -1.2mm; margin-right: 1.5mm; } .pt-kalasha .kp, .pt-kalasha .kb { fill: var(--gold); } .pt-kalasha .kl { fill: var(--main2); } .pt-kalasha .kc { fill: var(--main); }
.pt-foot .pt-fine { margin: .2mm 0 0; font-size: 6pt; } .pt-shubh { color: var(--main); font-size: 8.6pt; margin-left: 3mm; letter-spacing: 0; font-weight: 400; }
.pt-landscape .pt-foot { display: flex; gap: 5mm; align-items: baseline; justify-content: center; flex-wrap: wrap; } .pt-landscape .pt-foot .pt-fine { margin: 0; }

/* ── print ────────────────────────────────────────────────────────────── */
@media print {
  body.pt-body { background: none; }
  [data-pt-bar] { display: none !important; }
  .pt-stage { padding: 0; display: block; height: auto !important; }
  .pt-sheet { box-shadow: none; zoom: 1 !important; margin: 0 !important; page: ptfirst; break-inside: avoid; break-after: page; }
  .pt-sheet.pt-x { page: ptextra; }
  .pt-sheet:last-of-type { break-after: auto; }
}

/* ── the pages after the first (views/partials/patrika-pages.ejs) ─────── */
.pt-stage { flex-direction: column; align-items: center; gap: 22px; }
.pt-body .pt-sheet.pt-x { width: 210mm; height: 297mm; padding: 13mm 15mm 10mm; display: flex; flex-direction: column; gap: 3mm; font-size: 8.4pt; }
.px-head { text-align: center; border-bottom: .3mm solid var(--gold2); padding-bottom: 2mm; }
.px-om { margin: 0; color: var(--main); font-size: 8.6pt; }
.px-head h1 { margin: .6mm 0 .4mm; font: 700 16pt/1.15 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main); }
.px-who { margin: 0; font-size: 8pt; opacity: .85; }
.px-body { flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 3mm; overflow: hidden; }
.px-foot { text-align: center; border-top: .3mm solid var(--gold2); padding-top: 1.4mm; }
.px-foot .pt-brand { font-size: 9pt; } .px-foot .pt-brand b { font-size: 10.5pt; }
.px-note { margin: 0; padding: 2mm 3mm; font-size: 7.6pt; line-height: 1.45; background: var(--soft); border-left: .9mm solid var(--gold); border-radius: 0 2mm 2mm 0; }
.px-src { margin: .8mm 0 0; font-size: 6.6pt; color: var(--main2); }
.px-two { display: grid; grid-template-columns: 78mm 1fr; gap: 4mm; align-items: center; }
.px-chart { margin: 0; text-align: center; } .px-chart figcaption { margin-top: 1mm; font: 500 8pt 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main); }
.ch-val { font: 700 22px 'Cormorant Garamond', serif; text-anchor: middle; fill: var(--ink); } .ch-val.hi { fill: #2f7a3e; } .ch-val.lo { fill: #a3201e; }
.pt-x table.px-t { font-size: 8pt; } .pt-x table.px-t td { padding: 1.1mm 1mm 1.1mm 0; } .pt-x td.n, .pt-x th.n { text-align: right; font-variant-numeric: tabular-nums; }
.pt-x .px-t td:last-child, .pt-x .px-t th:last-child { text-align: right; }
.px-barcell { position: relative; min-width: 22mm; text-align: left !important; } .px-barcell.w { min-width: 46mm; white-space: nowrap; }
.px-bar { display: inline-block; vertical-align: middle; height: 2.6mm; border-radius: 2mm; background: var(--gold); margin-right: 1.2mm; } .px-bar.hi { background: #2f7a3e; } .px-bar.lo { background: #a3201e; }
.px-barcell span { font-weight: 600; font-variant-numeric: tabular-nums; }
.g-bg-su { background: #b4431a; } .g-bg-mo { background: #4a6a8f; } .g-bg-ma { background: #a3201e; } .g-bg-me { background: #2f7a3e; } .g-bg-ju { background: #a67a10; } .g-bg-ve { background: #8a3f86; } .g-bg-sa { background: #2d3550; }
.pt-x b.g-su { color: #b4431a; } .pt-x b.g-mo { color: #4a6a8f; } .pt-x b.g-ma { color: #a3201e; } .pt-x b.g-me { color: #2f7a3e; } .pt-x b.g-ju { color: #a67a10; } .pt-x b.g-ve { color: #8a3f86; } .pt-x b.g-sa { color: #2d3550; } .pt-x b.g-ra, .pt-x b.g-ke { color: #5a5148; }

/* daśā: nine mahādaśā blocks, 3 × 3 */
.px-dasha { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.6mm; flex: 1; }
.px-maha { border: .3mm solid var(--line); border-top: .9mm solid var(--main); border-radius: 2.4mm; padding: 1.6mm 2.2mm; background: rgba(255,253,246,.72); }
.px-maha.cur { border-color: var(--gold); border-top-color: var(--gold); box-shadow: 0 0 0 .5mm var(--gold2); }
.px-maha h2 { display: flex; justify-content: space-between; align-items: baseline; border: 0; margin: 0; padding: 0; font-size: 11pt; } .px-maha h2 span { font: 500 7pt 'Inter', sans-serif; color: var(--main2); } .px-maha h2 em { font-style: normal; color: #2f7a3e; font-weight: 700; }
.px-span { margin: 0 0 1mm; font-size: 7pt; opacity: .8; }
.px-maha table { font-size: 7.2pt; } .px-maha td { padding: .55mm 1mm .55mm 0; } .px-maha tr.past td { opacity: .4; }

/* sāḍe-sātī strip: twelve signs from the Moon, the 12-1-2 band shaded */
.px-ss.on { border-color: var(--main); }
.px-ss-strip { list-style: none; margin: 0 0 1.6mm; padding: 0; display: grid; grid-template-columns: repeat(12, 1fr); gap: 1mm; }
.px-ss-strip li { position: relative; height: 11mm; border: .3mm solid var(--line); border-radius: 1.6mm; text-align: center; background: #fffdf6; }
.px-ss-strip li.band { background: var(--soft); border-color: var(--gold); } .px-ss-strip li.sat { background: var(--main); border-color: var(--main); color: #fff; }
.px-ss-strip b { display: block; font-size: 6.4pt; opacity: .7; padding-top: .6mm; } .px-ss-strip small, .px-ss-strip em { font-style: normal; font-weight: 700; font-size: 8pt; margin: 0 .4mm; }
.px-ss p { margin: 0; font-size: 7.8pt; }

/* yogas */
.px-yogas { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4mm; align-content: start; }
.px-yoga { border: .3mm solid var(--line); border-left: .9mm solid var(--main2); border-radius: 2mm; padding: 1.6mm 2.4mm; background: rgba(255,253,246,.72); break-inside: avoid; }
.px-yoga h2 { border: 0; margin: 0 0 .6mm; padding: 0; font-size: 9.6pt; } .px-yoga h2 i { display: inline-block; min-width: 4.4mm; height: 4.4mm; line-height: 4.4mm; margin-right: 1.4mm; border-radius: 50%; background: var(--main); color: #fff; font: 600 6.6pt/4.4mm 'Inter', sans-serif; text-align: center; vertical-align: 1px; }
.px-yoga p { margin: 0; font-size: 7.5pt; line-height: 1.42; }

/* bala + avasthā */
.px-bala td { padding: 2mm 1mm 2mm 0 !important; }
.px-av-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2mm; } .px-av-grid div { text-align: center; } .px-av-grid b { display: block; font-size: 8.4pt; margin-bottom: .6mm; }
.px-av-grid span { display: block; font-size: 7.2pt; line-height: 1.5; } .px-av-grid span .dv { margin: 0; opacity: .8; }

/* vargas */
.px-vargas { grid-template-columns: 1fr 1fr; align-items: start; gap: 6mm; } .px-vargas .px-chart { width: 74mm; margin: 0 auto; }
.px-vlag { margin: 1.4mm 0 .8mm; text-align: center; font-size: 8.4pt; } .px-vtext { margin: 0; font-size: 7.7pt; line-height: 1.48; }

/* aṣṭakavarga */
.px-savbars { display: grid; grid-template-columns: repeat(12, 1fr); gap: 1.4mm; height: 48mm; align-items: end; }
.px-savbars div { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; } .px-savbars b { font-size: 6.8pt; color: var(--main2); margin-top: .6mm; }
.px-vbar { display: block; width: 100%; border-radius: 1.2mm 1.2mm 0 0; background: var(--gold); position: relative; } .px-vbar.hi { background: #2f7a3e; } .px-vbar.lo { background: #a3201e; }
.px-vbar span { position: absolute; top: -3.6mm; left: 0; right: 0; text-align: center; font: 600 7pt 'Inter', sans-serif; color: var(--ink); }
.px-bav td { padding: 1.3mm .6mm !important; } .px-bav td.c0, .px-bav td.c1, .px-bav td.c2 { color: #a3201e; } .px-bav td.c5, .px-bav td.c6, .px-bav td.c7, .px-bav td.c8 { color: #2f7a3e; font-weight: 700; background: rgba(47,122,62,.08); }
.px-bav tr.sum td { border-top: .4mm solid var(--main); font-weight: 600; color: var(--main); }

/* ── Indic-script sheets: no italics, no tracking, a touch smaller ─────── */
body:not(.pt-l-en) .pt-sheet * { letter-spacing: 0 !important; }
body:not(.pt-l-en) .pt-sheet :not(.dv) { font-style: normal; }
.pt-l-ta .pt-card dt, .pt-l-te .pt-card dt, .pt-l-ta .pill .pl, .pt-l-te .pill .pl { font-size: 5.8pt; }
.pt-l-ta .pt-card dd, .pt-l-te .pt-card dd { font-size: 7pt; } .pt-l-ta .pt-card dl, .pt-l-te .pt-card dl { gap: .8mm 1.4mm; }
.pt-l-ta .pill b, .pt-l-te .pill b { font-size: 9pt; } .pt-l-ta .pt-sheet:not(.pt-x) table, .pt-l-te .pt-sheet:not(.pt-x) table { font-size: 6.5pt; }
.pt-l-ta .pt-sheet th, .pt-l-te .pt-sheet th { font-size: 5.6pt; } .pt-l-ta .pt-tr, .pt-l-te .pt-tr, .pt-l-hi .pt-tr { font-size: 6.3pt; line-height: 1.3; }
.pt-l-ta .ch-gr { font-size: 10.5px; } .pt-l-te .ch-gr, .pt-l-hi .ch-gr { font-size: 12px; } .pt-l-ta .pt-name, .pt-l-te .pt-name { font-size: 15pt; }
.pt-l-ta .pt-title em, .pt-l-te .pt-title em { font-size: 12pt; }

/* landscape has the height to spare: open the tables up, keep pill labels on one line */
.pt-landscape .pt-sheet table { font-size: 7.9pt; } .pt-landscape .pt-sheet td { padding: .62mm 1mm .62mm 0; }
.pt-landscape .pill .pl { white-space: nowrap; letter-spacing: .04em; overflow: hidden; text-overflow: ellipsis; }
.pt-landscape .pt-pills-key { align-self: center; }
.pt-landscape .pt-pills-key .pill .pl { font-size: 5.5pt; letter-spacing: 0; } .pt-landscape .pt-pills-key .pill .pl .dv { font-size: 6.3pt; }
.pt-padma .ch-gr { font-size: 14px; } .pt-padma .ch-sign { font-size: 11.5px; }

/* ── the masthead lockup, as on the site header ──────────────────────── */
.pt-logo { margin: 0; display: inline-flex; align-items: center; gap: 2mm; text-align: left; line-height: 1.1; }
.pt-logo-om { font-size: 19pt; line-height: 1; color: var(--main); }
.pt-logo-tx { display: flex; flex-direction: column; gap: .2mm; }
.pt-logo-tx b { font: 700 10.5pt/1.1 'Cormorant Garamond', serif; color: var(--ink); letter-spacing: .02em; } .pt-logo-tx b i { font-style: normal; font-weight: 400; font-size: 9pt; color: var(--main2); }
.pt-logo-tx small { font-size: 5.6pt; color: var(--ink); opacity: .8; letter-spacing: 0; } .pt-logo-tx em { font-style: normal; font-size: 6pt; font-weight: 600; color: var(--main); letter-spacing: .04em; }
.pt-brandrow { display: flex; align-items: center; justify-content: center; gap: 5mm; }
.px-head { position: relative; } .px-head .pt-logo { display: flex; justify-content: flex-start; margin: 0 0 -3.4mm; } .px-head .pt-logo-om { font-size: 16pt; } .px-head .pt-logo-tx b { font-size: 9pt; } .px-head .pt-logo-tx b i { font-size: 7.6pt; }
.px-head .pt-logo-tx small { white-space: nowrap; line-height: 1.15; } .px-head .px-om { text-align: right; }

/* ── bhāvas ──────────────────────────────────────────────────────────── */
.px-lordmap { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6mm 2mm; }
.px-lordmap li { display: flex; align-items: center; gap: 1.2mm; padding: 1.2mm 1.6mm; background: var(--soft); border-radius: 1.6mm; font-size: 7.8pt; }
.px-lordmap b { width: 5mm; height: 5mm; border-radius: 50%; background: var(--main); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 6.8pt; flex: none; }
.px-lordmap span { font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .px-lordmap i { font-style: normal; color: var(--gold); } .px-lordmap em { font-style: normal; font-weight: 700; color: var(--main); }
.pt-x table.px-bhava td { padding: .9mm 1mm .9mm 0; vertical-align: top; } .px-bh { white-space: normal !important; max-width: 62mm; } .px-bh small { display: block; font-size: 6.6pt; line-height: 1.25; opacity: .82; font-weight: 400; }
.px-wrap { white-space: normal !important; } .px-fine { margin: 1.4mm 0 0; font-size: 7pt; line-height: 1.4; opacity: .88; }
.pt-x h3 { margin: 1.6mm 0 1mm; font: 700 8.4pt/1.2 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: var(--main2); }

/* ── janma nakṣatra ──────────────────────────────────────────────────── */
.px-janma { grid-template-columns: 84mm 1fr; align-items: start; } .px-stack { display: flex; flex-direction: column; gap: 3mm; }
.px-tw { stroke: #fff; stroke-width: 1.2; } .px-tw-g { fill: #8fbf8a; background: #8fbf8a; } .px-tw-b { fill: #e8b56a; background: #e8b56a; } .px-tw-m { fill: #b7a6d6; background: #b7a6d6; } .px-tw.on { stroke: var(--main); stroke-width: 3; }
.px-tw-n { font: 700 9px Inter, sans-serif; fill: #1d1d1d; } .px-tw-t { font: 500 8px Inter, sans-serif; fill: #333; opacity: .75; }
.px-tw-hub { fill: var(--soft); stroke: var(--gold); stroke-width: 1.5; } .px-tw-c1 { font: 500 10px Inter, 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; fill: var(--main2); } .px-tw-c2 { font: 700 15px 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; fill: var(--main); }
.px-dot { display: inline-block; width: 2.4mm; height: 2.4mm; border-radius: 50%; margin-right: 1.2mm; vertical-align: middle; }
.px-tag { display: inline-block; padding: .3mm 1.6mm; border-radius: 2mm; font-size: 6.6pt; font-weight: 600; } .px-tag-g { background: #dcefd9; color: #235c2a; } .px-tag-b { background: #fbe6c4; color: #7a4a08; } .px-tag-m { background: #e6dff3; color: #4a3a78; }
.pt-x table.px-tight td { padding: .55mm 1mm .55mm 0; } .pt-x table.px-tara td { padding: .9mm 1mm .9mm 0; } .px-tara small { opacity: .75; font-size: 6.8pt; }

/* ── doṣa ────────────────────────────────────────────────────────────── */
.px-dials { display: grid; grid-template-columns: repeat(3, 34mm) 1fr; gap: 3mm; align-items: center; }
.px-dial { margin: 0; text-align: center; } .px-dial svg { width: 32mm; height: 32mm; } .px-dial figcaption { font-size: 7pt; } .px-dial.soft { opacity: .72; }
.dl-off { fill: #fff; stroke: var(--line); } .dl-rule { fill: var(--soft); stroke: var(--main2); stroke-dasharray: 2 1.5; } .dl-hit { fill: #c0453a; } .dl-ok { fill: #2f7a3e; }
.dl-n { font: 600 7px Inter, sans-serif; fill: #444; } .dl-n.on { fill: #fff; font-size: 8.5px; } .dl-c { font: 700 11px Inter, 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; fill: #a3201e; } .dl-s { font: 700 13px Inter, sans-serif; fill: var(--main); }
.px-mg-side p { margin: 0 0 2mm; font-size: 8pt; } .px-mg-side span { display: block; font-size: 6.4pt; text-transform: uppercase; letter-spacing: .06em; color: var(--main2); } .px-mg-side em { display: inline-block; font-style: normal; background: #dcefd9; color: #235c2a; border-radius: 2mm; padding: .3mm 1.6mm; margin: .4mm 1mm 0 0; font-size: 7pt; }
.px-sd-now { margin: 0 0 1mm; font-size: 8.4pt; } .px-sd-now span { font-size: 6.6pt; text-transform: uppercase; letter-spacing: .06em; color: var(--main2); margin-right: 2mm; }
.px-life { position: relative; height: 9mm; margin: 4.5mm 0 5mm; background: var(--soft); border-radius: 1.5mm; }
.px-life i { position: absolute; top: 0; bottom: 0; } .ph-rising { background: #e8b56a; } .ph-peak { background: #c9722b; } .ph-setting { background: #d9a441; opacity: .8; }
.px-life b { position: absolute; top: -1.4mm; bottom: -1.4mm; width: .5mm; background: var(--main); } .px-life b span { position: absolute; top: -3mm; left: 1mm; font-size: 6pt; color: var(--main); white-space: nowrap; }
.px-life u { position: absolute; bottom: -3.6mm; transform: translateX(-50%); font-size: 6pt; text-decoration: none; opacity: .7; }
.pt-x table.px-cyc { font-size: 7.4pt; } .pt-x table.px-cyc td { padding: .7mm 1mm .7mm 0; }

/* ── life areas ──────────────────────────────────────────────────────── */
.px-areas { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; flex: 1; min-height: 0; }
.px-area h2 i { display: inline-flex; align-items: center; justify-content: center; width: 6mm; height: 6mm; margin-right: 1.6mm; border-radius: 50%; background: var(--main); color: #fff; font: 700 8pt Inter, sans-serif; font-style: normal; }
.px-share { display: flex; height: 5mm; border-radius: 2.5mm; overflow: hidden; margin: 1mm 0; } .px-share i { font-style: normal; font-size: 6.6pt; font-weight: 700; color: #fff; display: flex; align-items: center; justify-content: center; min-width: 8mm; }
.sh-s { background: #2f7a3e; } .sh-t { background: #c9722b; } .sh-q { background: #8d97a8; }
.px-share-key { margin: 0 0 1.6mm; font-size: 6.6pt; } .px-share-key span { display: inline-block; width: 2.2mm; height: 2.2mm; border-radius: 50%; margin: 0 .8mm 0 1.6mm; vertical-align: middle; } .px-share-key span:first-child { margin-left: 0; }
.px-area dd { white-space: normal !important; } .px-met { margin: 0; padding-left: 3.4mm; font-size: 7.3pt; line-height: 1.4; } .px-met li { margin-bottom: .8mm; } .px-met li.k-s::marker { color: #2f7a3e; } .px-met li.k-t::marker { color: #c9722b; } .px-met small { opacity: .7; white-space: nowrap; }

/* ── the flowing predictions (views/partials/predictions-result.ejs) ─── */
.pt-flow { width: 210mm; box-sizing: border-box; padding: 13mm 15mm 10mm; background: var(--paper); color: var(--ink); box-shadow: 0 10px 40px rgba(0,0,0,.35); font-size: 9.4pt;
  --ink-soft: color-mix(in srgb, var(--ink) 84%, transparent); --ink-faint: color-mix(in srgb, var(--ink) 62%, transparent); --tp-line: var(--line); --tp-fill: rgba(255,253,246,.7); --accent: var(--main); --good: #2f7a3e; --bad: #c0453a; }
.pt-flow .px-head { margin-bottom: 4mm; } .pt-flow .pr-out { font-size: 9.4pt; } .pt-flow a { color: inherit; text-decoration: none; }
.pt-flow .tp-verse, .pt-flow .pr-q-head, .pt-flow .pr-ring, .pt-flow .pr-antar-cap, .pt-flow .pr-month-cap, .pt-flow .pr-strip, .pt-flow .pr-wheel, .pt-flow .pr-bars li { break-inside: avoid; } .pt-flow .pr-h4, .pt-flow .pr-antar-cap, .pt-flow .pr-month-cap, .pt-flow .pr-q-head { break-after: avoid; }
.pt-flow .pr-q { margin-top: 6mm; padding: 4mm 4mm 1mm; border-radius: 4mm; } .pt-flow .pr-block { margin-top: 4mm; padding-top: 3mm; } .pt-flow .pr-p, .pt-flow .pr-q-line { line-height: 1.55; margin-bottom: 2mm; } .pt-flow .pr-antar { margin-top: 3mm; padding: 3mm 3.5mm 1mm; }
.pt-flow .pr-q-ring { width: 24mm; height: 24mm; } .pt-flow .pr-q-band { font-size: 15pt; } .pt-flow .pr-h4 { font-size: 11pt; margin-bottom: 2mm; } .pt-flow .pr-wheel { max-width: 62mm; }
.pt-flow .tp-verses { display: grid; grid-template-columns: 1fr; gap: 3mm; } .pt-flow .tp-verse { margin: 0; padding: 3mm 4mm; border-radius: 3mm; background: var(--tp-fill); border: .3mm solid var(--line); border-left: 1mm solid var(--gold); }
.pt-flow .tp-verse-cap { display: flex; justify-content: space-between; gap: 3mm; font-size: 7.6pt; font-weight: 600; color: var(--main); margin: 0; } .pt-flow .tp-verse-st { color: var(--good); font-weight: 500; }
.pt-flow .tp-verse-sa { margin: 1.6mm 0; font: 400 10.5pt/1.8 'Tiro Devanagari Sanskrit', 'Noto Serif Devanagari', serif; white-space: pre-line; } .pt-flow .tp-verse-tr { margin: 0; font-size: 8.6pt; line-height: 1.55; } .pt-flow .tp-verse-own { margin: 1mm 0 0; font-size: 7pt; font-style: italic; opacity: .7; }
.pt-flow .px-foot { margin-top: 5mm; }
@media print {
  .pt-flow { box-shadow: none; width: auto; padding: 0; page: ptflow; break-before: page; background: none; }
}
.px-two-bh { grid-template-columns: 58mm 1fr; } .pt-x table.px-bhava td { padding: .5mm 1mm .5mm 0; } .px-bh small { font-size: 6.2pt; line-height: 1.18; }

/* ── South Indian painted frames (public/patrika/south-N.webp) ─────────── */
.pks { position: relative; container-type: inline-size; width: 100%; margin: 0 auto; }
.pks-img { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.pks .pks-svg { position: absolute; overflow: visible; height: auto; }
.pks-pill { position: absolute; display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 1.2cqw; box-sizing: border-box; overflow: hidden; color: #6b2a1a; font-weight: 600; font-size: 2.5cqw; line-height: 1.1; }
.pks-name { font: italic 700 4.2cqw/1.05 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #8a1c1c; }
.pks-placeDate { font-size: 2.7cqw; } .pks-dm, .pks-time { font-size: 2.9cqw; white-space: nowrap; }
.pt-c-wide .pks-pill { font-size: 2.15cqw; justify-content: flex-start; text-align: left; } .pt-c-wide .pks-name { font-size: 3cqw; justify-content: center; text-align: center; }
.pt-c-south .ch-sign { fill: #b88a3a; font-size: 10px; } .pt-c-south .ch-gr { font-size: 15px; fill: #3a1d12; }
.pt-c-south .pt-x .ch-gr { font-size: 17px; } .pt-c-south .pt-x .ch-sign { font-size: 12px; }
.ch-lgm { fill: none; stroke: #8a1c1c; stroke-width: 1.6; stroke-linecap: round; }
.ch-ctr { font: italic 700 17px 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; fill: #8a1c1c; text-anchor: middle; }
.ch-ctr2 { font: 500 11px 'Inter', 'Noto Sans Devanagari', 'Noto Sans Tamil', 'Noto Sans Telugu', sans-serif; fill: #6b4a2a; text-anchor: middle; }
/* A landscape frame needs the width of the sheet: it takes its own row, the
   birth pills stand between the two cards, and the key pills give way — the
   frame's own panel already carries lagna, Sun, nakṣatra and Moon. */
body.pt-c-wide:not(.pt-landscape) .pt-sheet:not(.pt-x) { grid-template-areas: "head head head" "names names names" "chart chart ptop" "panch panch details" "grahas grahas dasha" "verses verses verses" "foot foot foot"; }
body.pt-c-wide:not(.pt-landscape) .pt-pills-key { display: none; }
body.pt-c-wide:not(.pt-landscape) .pks { width: 104mm; }
/* The tall Gopura frame stands in its own column, down both rows. */
body.pt-cid-south-1:not(.pt-landscape) .pt-sheet:not(.pt-x) { grid-template-columns: 68mm 1fr 1.2fr; grid-template-areas: "head head head" "names names names" "chart panch details" "chart ptop ptop" "grahas grahas dasha" "verses verses verses" "foot foot foot"; }
body.pt-cid-south-1:not(.pt-landscape) .pks { width: 68mm; }
body.pt-cid-south-1:not(.pt-landscape) .pt-pills-top { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2mm; }
body.pt-c-wide:not(.pt-landscape) .pt-pills-top { align-self: center; }
body.pt-c-wide:not(.pt-landscape) .pt-panch, body.pt-c-wide:not(.pt-landscape) .pt-details { align-self: start; }

/* ── cover page ─────────────────────────────────────────────────────────── */
.pt-body .pt-sheet.pt-cover { padding: 0; display: flex; align-items: center; justify-content: center; background: #fbf6ec; }
.pt-cover-art { position: relative; height: 100%; container-type: inline-size; }
.pt-cover-art img { display: block; width: 100%; height: 100%; }
.pt-cv { position: absolute; left: 44.4%; width: 35.2%; height: 1.9%; display: flex; align-items: flex-end; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
  font: 600 2.35cqw/1 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #1d2b50; letter-spacing: .02em; }
.pt-cv1 { top: 73.85%; font-size: 2.7cqw; font-weight: 700; } .pt-cv2 { top: 75.95%; } .pt-cv3 { top: 78.05%; } .pt-cv4 { top: 80.15%; }
.pt-bar { flex-wrap: wrap; }

/* ── Bāla Kuṇḍalī — the child's page ────────────────────────────────────── */
.px-child { grid-template-columns: 1fr 50mm 1fr; align-items: stretch; } .px-ch-chart { margin: 0; align-self: center; } .px-ch-syl { grid-template-columns: repeat(2, 1fr) !important; } .px-child2 { grid-template-columns: 1.15fr 1fr; align-items: stretch; margin-top: 3mm; }
.px-ch-syl { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2mm; margin: 1.5mm 0 2mm; }
.px-ch-syl span { display: flex; flex-direction: column; align-items: center; padding: 2mm 0 1.4mm; border: .3mm solid rgba(184, 138, 58, .45); border-radius: 50% 50% 2.4mm 2.4mm; background: #fffaf0; }
.px-ch-syl b { font: 700 17pt/1.1 'Cormorant Garamond', 'Noto Serif Devanagari', 'Noto Serif Tamil', 'Noto Serif Telugu', serif; color: #6b4a2a; }
.px-ch-syl small { font-size: 6pt; letter-spacing: .06em; text-transform: uppercase; color: #8a6a3a; }
.px-ch-syl span.on { background: linear-gradient(180deg, #f6d98a, #e9b949); border-color: #8a1c1c; box-shadow: 0 0 0 .6mm rgba(138, 28, 28, .14); } .px-ch-syl span.on b { color: #8a1c1c; font-size: 22pt; }
.px-ch-fine { font-size: 6.6pt; line-height: 1.3; color: #6b4a2a; margin: 1mm 0 0; font-style: italic; }
.pt-x table.px-ch-star th { text-align: left; font-weight: 500; color: #8a6a3a; font-size: 7pt; white-space: nowrap; padding-right: 2mm; } .pt-x table.px-ch-star td { font-size: 8pt; padding: 1.3mm 2mm 1.3mm 0; }
.px-ch-rites { margin-top: 3mm; }
.px-ch-line { list-style: none; margin: 2mm 0 1mm; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.6mm; position: relative; }
.px-ch-line::before { content: ''; position: absolute; left: 4%; right: 4%; top: 3.4mm; border-top: .5mm dotted #b88a3a; }
.px-ch-line li { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .6mm; font-size: 7pt; line-height: 1.22; }
.px-ch-line li > i { width: 6.8mm; height: 6.8mm; border-radius: 50%; display: grid; place-items: center; font: 700 8pt 'Inter', sans-serif; font-style: normal; background: #fffaf0; border: .4mm solid #b88a3a; color: #6b4a2a; z-index: 1; }
.px-ch-line li.done > i { background: #b88a3a; color: #fff; } .px-ch-line li.now > i { background: #8a1c1c; border-color: #8a1c1c; color: #fff; }
.px-ch-line li b { font-size: 7.6pt; color: #3a1d12; } .px-ch-line li span { color: #8a1c1c; font-weight: 600; }
.px-ch-line li em { font-style: normal; font-variant-numeric: tabular-nums; font-size: 6.6pt; color: #3a1d12; }
.px-ch-line li u { text-decoration: none; font-size: 5.8pt; letter-spacing: .05em; text-transform: uppercase; padding: .3mm 1.4mm; border-radius: 2mm; background: #8a1c1c; color: #fff; } .px-ch-line li u.q { background: rgba(184, 138, 58, .22); color: #6b4a2a; }
.px-ch-line li small { font-size: 5.6pt; color: #8a6a3a; line-height: 1.2; }
.px-ch-h2 { margin-top: 3mm !important; } .px-ch-gurus { display: flex; flex-wrap: wrap; gap: 1mm 5mm; margin: 1mm 0 0; font-size: 8pt; }
.px-ch-verse { display: flex; flex-direction: column; justify-content: center; text-align: center; background: linear-gradient(180deg, #fffaf0, #f8ecd0); }
.px-ch-verse .dv { font-size: 9.6pt; line-height: 1.55; color: #8a1c1c; margin: 0 0 1.5mm; } .px-ch-tr { font-size: 7pt; line-height: 1.32; margin: 0 0 1mm; color: #3a1d12; } .px-ch-verse small { font-size: 6.2pt; color: #8a6a3a; }
.px-ch-dasha { margin-top: 3mm; }
.px-ch-bar { display: flex; height: 6mm; border-radius: 3mm; overflow: hidden; border: .3mm solid rgba(184, 138, 58, .5); margin: 1.5mm 0 2mm; }
.g-bg-ra { background: #5b5f6b; } .g-bg-ke { background: #7a5a3a; }
.px-ch-bar i { display: grid; place-items: center; font: 700 6.6pt 'Inter', sans-serif; font-style: normal; color: #fff; text-shadow: 0 0 1mm rgba(0, 0, 0, .35); }
.px-ch-dl { display: flex; flex-wrap: wrap; gap: 1.5mm 6mm; font-size: 7.4pt; line-height: 1.3; } .px-ch-dl small { color: #8a6a3a; font-variant-numeric: tabular-nums; }

/* ── Professional plan: the subscriber's own imprint ─────────────────── */
.pt-logo-own { justify-content: center; text-align: center; }
.pt-logo-own .pt-logo-tx b { font-size: 1.15em; letter-spacing: .02em; }
.pt-cv-own { position: absolute; left: 22%; top: 2.4%; width: 56%; height: 7.4%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3cqw; text-align: center; background: radial-gradient(ellipse at center, #fffaf0 62%, rgba(255,250,240,0) 100%); color: #1f2a4a; overflow: hidden; }
.pt-cv-own b { font-size: 3.6cqw; line-height: 1.1; font-family: Georgia, 'Times New Roman', serif; }
.pt-cv-own small { font-size: 1.7cqw; color: #4a5470; }
.pt-cv-own em { font-size: 1.6cqw; font-style: normal; color: #b0672a; }

