/* ==========================================================================
   Telugu Scope Panchangam (1.10.729): "Glance, in a heritage sheet".
   One stylesheet for every view (today / month / festivals / tithis / mini),
   ported from the final design (design/final/panchangam.css, DESIGN.md).

   Responsive wrapper standard: .tsp-pc-wrap is the inline-size container
   `tsppc`; every responsive rule is `@container tsppc (min-width: …)` and
   targets descendants only. No important-flags. The only @media rules are
   print and prefers-reduced-motion.

   Specificity: every rule is written `.tsp-pc .tsp-pc-x` (0,2,0) or more.
   The theme's `.entry-content p` / `li` / `a` / `h2` rules (0,1,1) would
   otherwise set margins, list indents, link colours and heading sizes on
   the block's furniture; the resets below are (0,2,0) and come first, so a
   component rule later in the file still wins over them.
   ========================================================================== */

/* -------------------------------------------------------------- 0. tokens */
.tsp-pc-wrap {
	container-type: inline-size;
	container-name: tsppc;
	margin-top: var(--tsp-mt, 0);

	--pc-accent: var(--tsp-pc-accent, #7f1d1d);
	--pc-accent-deep: #5f1515;
	--pc-on-accent: #fbf3df;
	--pc-paper: #f8f1e2;
	--pc-paper-2: #f1e6cf;
	--pc-sheet: #fffcf5;
	--pc-ink: #2a1b14;
	--pc-ink-2: #574234;
	--pc-ink-3: #6b5546;
	--pc-line: #eadfc8;
	--pc-line-2: #d8c39a;
	--pc-gold: #b8892f;
	--pc-gold-ink: #7a5413;
	--pc-gold-lt: #f0d999;
	--pc-saff: #9a3412;
	--pc-saff-wash: #fde68a;
	--pc-saff-soft: #fff4d6;
	--pc-bad: #b91c1c;
	--pc-bad-bg: #fef2f2;
	--pc-bad-line: #f3c4c4;
	--pc-bad-bar: #c93636;
	--pc-good: #166534;
	--pc-good-bg: #f0fdf4;
	--pc-good-line: #b9e3c6;
	--pc-good-bar: #1f8a4c;
	--pc-night: #24131a;
	--pc-night-2: #3a1f27;
	--pc-night-ink: #f6e7c8;

	--pc-ui: var(--ts-ui, 'Inter', 'Noto Sans Telugu', system-ui, sans-serif);
	--pc-display: var(--ts-display, 'Newsreader', 'Noto Serif Telugu', Georgia, serif);
	--pc-body: var(--ts-body, 'Source Serif 4', 'Noto Serif Telugu', Georgia, serif);
	--pc-num: 'Inter', var(--pc-ui);

	--pc-r: 14px;
	--pc-shadow: 0 1px 1px rgba(74, 37, 12, .05), 0 14px 30px -20px rgba(74, 37, 12, .45);
	--pc-shadow-s: 0 1px 2px rgba(74, 37, 12, .07), 0 2px 6px -2px rgba(74, 37, 12, .1);
	--pc-dots: radial-gradient(rgba(184, 137, 47, .16) 1px, rgba(184, 137, 47, 0) 1.6px);
	--pc-hatch-bad: repeating-linear-gradient(135deg, #c93636 0 3px, #f2a0a0 3px 6px);
	--pc-hatch-past: repeating-linear-gradient(135deg, #e7dcc4 0 5px, #f6efe0 5px 10px);
}

/* -------------------------------------------------------------- 1. base */
.tsp-pc {
	display: flex;
	flex-direction: column;
	gap: 14px;
	font-family: var(--pc-ui);
	font-size: 16px;
	line-height: 1.6;
	color: var(--pc-ink);
	text-align: left;
	letter-spacing: normal;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
}
.tsp-pc *, .tsp-pc *::before, .tsp-pc *::after { box-sizing: border-box; }
.tsp-pc-wrap .tsp-pc :where(h2, h3, h4, p, ul, ol, li, dl, dt, dd, figure) { margin: 0; }
.tsp-pc-wrap .tsp-pc :where(ul, ol) { padding: 0; list-style: none; }
.tsp-pc-wrap .tsp-pc :where(h2, h3, h4) { letter-spacing: normal; text-transform: none; }
.tsp-pc-wrap .tsp-pc :where(i, em) { font-style: normal; }
.tsp-pc-wrap .tsp-pc :where(a) { color: inherit; text-decoration: none; text-underline-offset: 3px; }
.tsp-pc-wrap .tsp-pc :where(button, input, select) { text-transform: none; letter-spacing: normal; }
/* The attribute twice and the wrapper: (0,4,0) beats every component `display` rule. */
.tsp-pc-wrap .tsp-pc [hidden][hidden] { display: none; }
.tsp-pc svg { display: block; flex: none; }
.tsp-pc :focus-visible { outline: 3px solid var(--pc-accent); outline-offset: 2px; border-radius: 6px; }
.tsp-pc .tsp-pc-sr {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}
.tsp-pc .tsp-pc-ico {
	width: 22px; height: 22px; fill: none; stroke: currentColor;
	stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;
}
.tsp-pc .tsp-pc-orn { width: 20px; height: 20px; color: var(--pc-gold); }
.tsp-pc .tsp-pc-n { font-family: var(--pc-num); font-variant-numeric: tabular-nums lining-nums; font-weight: 700; letter-spacing: -.01em; }
.tsp-pc .tsp-pc-nw { white-space: nowrap; }
.tsp-pc .tsp-pc-none { color: var(--pc-ink-3); font-weight: 600; }

/* a time from Labels::span / Labels::time with the clock set large */
.tsp-pc .tsp-pc-t { display: inline-flex; flex-direction: column; }
.tsp-pc .tsp-pc-t__main { white-space: nowrap; }
.tsp-pc .tsp-pc-t .tsp-pc-w { font-size: .56em; font-weight: 600; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-t .tsp-pc-dash { font-weight: 500; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-t .tsp-pc-d { font-size: 13.5px; font-weight: 600; color: var(--pc-ink-3); line-height: 1.4; letter-spacing: 0; }

/* moon drawing (dark unlit side) */
.tsp-pc .tsp-pc-moon { width: 22px; height: 22px; }
.tsp-pc .tsp-pc-moon__dark { fill: #3b2a24; }
.tsp-pc .tsp-pc-moon__lit { fill: #f4d98b; }
.tsp-pc .tsp-pc-moon__ring { fill: none; stroke: rgba(122, 84, 19, .55); stroke-width: 1.2; }

/* cards + headings */
.tsp-pc .tsp-pc-card {
	position: relative;
	background: var(--pc-sheet);
	border: 1px solid var(--pc-line);
	border-radius: var(--pc-r);
	box-shadow: var(--pc-shadow);
}
.tsp-pc .tsp-pc-h {
	display: flex; align-items: center; gap: 9px;
	font-family: var(--pc-display); font-size: 20px; font-weight: 700; line-height: 1.4;
	color: var(--pc-accent);
}
.tsp-pc .tsp-pc-h > .tsp-pc-ico { width: 21px; height: 21px; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-h__rule { flex: 1 1 auto; min-width: 12px; height: 1px; background: linear-gradient(90deg, var(--pc-line-2), rgba(216, 195, 154, 0)); }
.tsp-pc .tsp-pc-h--c { justify-content: center; text-align: center; }
.tsp-pc .tsp-pc-h--c .tsp-pc-h__rule:first-child { background: linear-gradient(270deg, var(--pc-line-2), rgba(216, 195, 154, 0)); }

/* buttons + links */
.tsp-pc .tsp-pc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; margin: 0; padding: 8px 16px;
	border: 1px solid var(--pc-line-2); border-radius: 12px;
	background: #fff; color: var(--pc-accent);
	font-family: var(--pc-ui); font-size: 15.5px; font-weight: 700; line-height: 1.3;
	text-align: center; text-decoration: none; cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.tsp-pc .tsp-pc-btn:hover { background: #fff6e4; border-color: var(--pc-accent); color: var(--pc-accent); }
.tsp-pc .tsp-pc-btn .tsp-pc-ico { width: 20px; height: 20px; }
.tsp-pc .tsp-pc-btn.is-disabled { border-style: dashed; background: transparent; color: var(--pc-ink-3); cursor: default; }
.tsp-pc .tsp-pc-btn--solid { background: var(--pc-accent); border-color: var(--pc-accent); color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-btn--solid:hover { background: var(--pc-accent-deep); border-color: var(--pc-accent-deep); color: #fff; }
.tsp-pc .tsp-pc-btn--wa { background: #107c41; border-color: #107c41; color: #fff; font-size: 17px; min-height: 54px; }
.tsp-pc .tsp-pc-btn--wa:hover { background: #0c6534; border-color: #0c6534; color: #fff; }
/* The share card button (1.10.729): the sheet's paper and gold, the picture icon always shown. */
.tsp-pc .tsp-pc-btn--card { background: var(--pc-sheet); border-color: var(--pc-gold); font-size: 17px; min-height: 54px; }
.tsp-pc .tsp-pc-btn--card .tsp-pc-ico { color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-btn--card.is-busy { cursor: progress; color: var(--pc-ink-3); border-color: var(--pc-line-2); }

.tsp-pc .tsp-pc-chip {
	display: inline-flex; align-items: center; min-height: 32px; padding: 3px 12px;
	border-radius: 999px; border: 1px solid var(--pc-line); background: var(--pc-paper);
	font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--pc-ink-2);
}

/* -------------------------------------------------------------- 2. sub-nav */
.tsp-pc .tsp-pc-tabs__list {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px;
	padding: 4px; border-radius: 16px; background: var(--pc-paper-2); border: 1px solid var(--pc-line);
}
.tsp-pc .tsp-pc-tab {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
	min-height: 64px; padding: 6px 2px; border-radius: 12px;
	color: var(--pc-ink-2); text-decoration: none; text-align: center;
	font-size: 13px; font-weight: 700; line-height: 1.35;
	transition: background-color .15s ease, color .15s ease;
}
.tsp-pc .tsp-pc-tab .tsp-pc-ico { width: 22px; height: 22px; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-tab:hover { background: rgba(255, 252, 245, .75); color: var(--pc-accent); }
.tsp-pc .tsp-pc-tab[aria-current="page"] { background: var(--pc-accent); color: var(--pc-on-accent); box-shadow: 0 6px 14px -8px rgba(127, 29, 29, .7); }
.tsp-pc .tsp-pc-tab[aria-current="page"] .tsp-pc-ico { color: var(--pc-gold-lt); }

/* -------------------------------------------------------------- 3. city bar */
.tsp-pc .tsp-pc-city__row { display: flex; gap: 8px; align-items: stretch; }
.tsp-pc .tsp-pc-city__pick { position: relative; flex: 1 1 auto; min-width: 0; }
.tsp-pc .tsp-pc-city__pick select {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 56px; margin: 0; padding: 0 40px 0 44px;
	border: 1.5px solid var(--pc-line-2); border-radius: 999px;
	background: var(--pc-sheet); color: var(--pc-ink);
	font-family: var(--pc-ui); font-size: 17px; font-weight: 700; line-height: 1.2;
	box-shadow: var(--pc-shadow-s); cursor: pointer; text-overflow: ellipsis;
}
.tsp-pc .tsp-pc-city__pick select:hover { border-color: var(--pc-accent); }
.tsp-pc .tsp-pc-city__pin, .tsp-pc .tsp-pc-city__chev { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: none; }
.tsp-pc .tsp-pc-city__pin { left: 15px; width: 21px; height: 21px; color: var(--pc-accent); }
.tsp-pc .tsp-pc-city__chev { right: 15px; width: 17px; height: 17px; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-locate {
	display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
	flex: none; width: 76px; min-height: 56px; margin: 0; padding: 4px 6px;
	border: 1.5px solid var(--pc-line-2); border-radius: 18px; background: var(--pc-sheet);
	color: var(--pc-accent); font-family: var(--pc-ui); font-size: 12.5px; font-weight: 700; line-height: 1.25;
	text-align: center; cursor: pointer; box-shadow: var(--pc-shadow-s);
}
.tsp-pc .tsp-pc-locate:hover { background: #fff6e4; border-color: var(--pc-accent); }
.tsp-pc .tsp-pc-locate .tsp-pc-ico { width: 21px; height: 21px; }
.tsp-pc .tsp-pc-city__go { height: 56px; border-radius: 999px; }
/* The submit button: shown without the script; the script hides it with the `hidden` attribute and brings it back after a keyboard change of city. */
.tsp-pc .tsp-pc-city__go { margin-top: 8px; }
.tsp-pc .tsp-pc-city__note { display: flex; gap: 8px; align-items: flex-start; margin: 8px 4px 0; font-size: 14px; line-height: 1.6; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-city__note .tsp-pc-ico { width: 17px; height: 17px; margin-top: 3px; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-city__msg { margin: 6px 4px 0; font-size: 14px; font-weight: 600; color: var(--pc-bad); }
/* Empty, it stays in the page (a live region must exist before its first message), only collapsed. */
.tsp-pc .tsp-pc-city__msg:empty { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
.tsp-pc .tsp-pc-city__msg.is-busy { color: var(--pc-ink-2); }

/* -------------------------------------------------------------- 4. the day sheet (hero) */
.tsp-pc .tsp-pc-today { display: flex; flex-direction: column; gap: 14px; }
.tsp-pc .tsp-pc-sheet {
	position: relative; overflow: hidden;
	border: 1px solid var(--pc-line-2); border-radius: 18px;
	background: var(--pc-sheet);
	box-shadow: 0 1px 2px rgba(74, 37, 12, .08), 0 26px 44px -30px rgba(74, 37, 12, .6);
}
.tsp-pc .tsp-pc-sheet__band {
	position: relative; z-index: 1;
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 12px;
	padding: 10px 16px 15px;
	background-color: var(--pc-accent);
	background-image: radial-gradient(rgba(240, 217, 153, .24) 1px, rgba(240, 217, 153, 0) 1.6px);
	background-size: 14px 14px;
	color: var(--pc-on-accent); font-size: 15px; font-weight: 700; line-height: 1.5;
}
.tsp-pc .tsp-pc-sheet__band::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: none; transition: background .6s ease;
}
.tsp-pc[data-sky="dawn"] .tsp-pc-sheet__band::before { background: radial-gradient(90% 180% at 100% 100%, rgba(251, 146, 160, .3), rgba(251, 146, 160, 0) 70%); }
.tsp-pc[data-sky="day"] .tsp-pc-sheet__band::before { background: radial-gradient(70% 190% at 92% -30%, rgba(250, 204, 21, .24), rgba(250, 204, 21, 0) 70%); }
.tsp-pc[data-sky="dusk"] .tsp-pc-sheet__band::before { background: radial-gradient(90% 190% at 100% 110%, rgba(249, 115, 22, .36), rgba(249, 115, 22, 0) 72%); }
.tsp-pc[data-sky="night"] .tsp-pc-sheet__band::before { background: linear-gradient(90deg, rgba(25, 14, 44, 0) 25%, rgba(25, 14, 44, .62)); }
.tsp-pc .tsp-pc-sheet__band::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 12px;
	background: radial-gradient(circle at 6px 6px, var(--pc-accent) 5.5px, rgba(127, 29, 29, 0) 6px) 0 0 / 12px 12px repeat-x;
}
.tsp-pc .tsp-pc-sheet__brand, .tsp-pc .tsp-pc-sheet__place { display: inline-flex; align-items: center; gap: 6px; }
.tsp-pc .tsp-pc-sheet__brand .tsp-pc-orn { width: 18px; height: 18px; color: var(--pc-gold-lt); }
.tsp-pc .tsp-pc-sheet__place { font-weight: 600; color: #f8e7c4; font-size: 14.5px; }
.tsp-pc .tsp-pc-sheet__place .tsp-pc-ico { width: 16px; height: 16px; color: var(--pc-gold-lt); }

.tsp-pc .tsp-pc-sheet__body {
	position: relative; display: flex; flex-direction: column;
	padding: 24px 18px 18px;
	background-image: var(--pc-dots); background-size: 18px 18px; background-position: 9px 9px;
}
.tsp-pc .tsp-pc-sheet__body::before {
	content: ""; position: absolute; top: 10px; right: 6px; bottom: 6px; left: 6px;
	border: 1px solid rgba(184, 137, 47, .55); border-radius: 12px;
	box-shadow: inset 0 0 0 3px var(--pc-sheet), inset 0 0 0 4px rgba(184, 137, 47, .3);
	pointer-events: none;
}
.tsp-pc .tsp-pc-sheet__knot {
	position: absolute; width: 20px; height: 20px; padding: 1px; border-radius: 50%;
	background: var(--pc-sheet); color: var(--pc-gold); pointer-events: none;
}
.tsp-pc .tsp-pc-sheet__knot--tl { top: 1px; left: -3px; }
.tsp-pc .tsp-pc-sheet__knot--tr { top: 1px; right: -3px; }
.tsp-pc .tsp-pc-sheet__knot--bl { bottom: -3px; left: -3px; }
.tsp-pc .tsp-pc-sheet__knot--br { bottom: -3px; right: -3px; }

.tsp-pc .tsp-pc-sheet__date { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tsp-pc .tsp-pc-sheet__h { display: flex; align-items: center; gap: 12px; min-width: 0; font-weight: 400; line-height: 1; }
.tsp-pc .tsp-pc-sheet__num {
	flex: none; min-width: .6em; text-align: center;
	font-family: var(--pc-display); font-size: clamp(50px, 14.5cqi, 84px); font-weight: 600;
	line-height: .82; letter-spacing: -.03em; color: var(--pc-accent);
	font-variant-numeric: lining-nums;
	text-shadow: 0 1px 0 #fff, 0 3px 0 rgba(184, 137, 47, .22);
}
.tsp-pc .tsp-pc-sheet.is-red .tsp-pc-sheet__num { color: var(--pc-bad); }
.tsp-pc .tsp-pc-sheet__my { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 2px 0 2px 12px; border-left: 2px solid var(--pc-gold-lt); }
.tsp-pc .tsp-pc-sheet__month { font-family: var(--pc-display); font-size: 19px; font-weight: 700; line-height: 1.4; color: var(--pc-ink); white-space: nowrap; }
.tsp-pc .tsp-pc-sheet__vara { font-family: var(--pc-display); font-size: 18px; font-weight: 700; line-height: 1.4; color: var(--pc-accent); }
.tsp-pc .tsp-pc-sheet__vara small { display: block; font-family: var(--pc-ui); font-size: 13px; font-weight: 600; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-sheet__moon { flex: none; padding: 4px; border-radius: 50%; background: var(--pc-night); box-shadow: 0 0 0 2px var(--pc-gold-lt), 0 6px 14px -6px rgba(36, 19, 26, .7); }
.tsp-pc .tsp-pc-sheet__moon .tsp-pc-moon { width: 34px; height: 34px; }
.tsp-pc .tsp-pc-sheet__moon .tsp-pc-moon__dark { fill: #4a3530; }
.tsp-pc .tsp-pc-sheet__moon .tsp-pc-moon__ring { stroke: rgba(240, 217, 153, .5); }

/* day badges (specials) */
.tsp-pc .tsp-pc-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; position: relative; }
.tsp-pc .tsp-pc-badge {
	display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 4px 12px 4px 9px;
	border-radius: 999px; border: 1px solid var(--pc-accent); background: #fff;
	font-size: 14.5px; font-weight: 700; line-height: 1.35; color: var(--pc-accent);
}
.tsp-pc .tsp-pc-badge .tsp-pc-ico { width: 17px; height: 17px; }
.tsp-pc .tsp-pc-badge .tsp-pc-moon { width: 18px; height: 18px; }
.tsp-pc .tsp-pc-badge--eka { border-color: #8cc9a3; background: var(--pc-good-bg); color: var(--pc-good); }

/* the big limbs: tithi, nakshatra */
.tsp-pc .tsp-pc-big { position: relative; margin-top: 18px; }
.tsp-pc .tsp-pc-big__label { font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--pc-gold-ink); letter-spacing: .01em; }
.tsp-pc .tsp-pc-big__name {
	margin-top: 2px; font-family: var(--pc-display); font-weight: 700; color: var(--pc-accent);
	font-size: clamp(38px, 12.4cqi, 64px); line-height: 1.28; letter-spacing: -.005em;
}
.tsp-pc[data-lang="en"] .tsp-pc-big__name { line-height: 1.08; letter-spacing: -.02em; font-size: clamp(36px, 11.5cqi, 62px); }
.tsp-pc .tsp-pc-big--nakshatra .tsp-pc-big__name { font-size: clamp(31px, 9.6cqi, 50px); color: var(--pc-ink); }
.tsp-pc[data-lang="en"] .tsp-pc-big--nakshatra .tsp-pc-big__name { font-size: clamp(30px, 9cqi, 48px); }
.tsp-pc .tsp-pc-big__tail { margin-top: 3px; font-size: clamp(17px, 4.9cqi, 20px); font-weight: 500; line-height: 1.55; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-big__tail .tsp-pc-n { color: var(--pc-ink); }
.tsp-pc .tsp-pc-big--nakshatra { padding-top: 16px; border-top: 1px dashed var(--pc-line-2); }

/* until tape: sunrise to next sunrise, split where the limb changes */
.tsp-pc .tsp-pc-tape { margin-top: 18px; }
.tsp-pc .tsp-pc-tape__bar { position: relative; height: 32px; border-radius: 999px; background: var(--pc-paper-2); box-shadow: inset 0 0 0 1px rgba(184, 137, 47, .25); }
.tsp-pc .tsp-pc-tape__seg {
	position: absolute; top: 0; bottom: 0; left: var(--l); width: var(--w);
	display: flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; padding: 0 10px;
	font-size: 13.5px; font-weight: 700; line-height: 1; white-space: nowrap;
	color: var(--pc-ink-2); background: #f6ecd6; border-right: 2px solid var(--pc-sheet);
}
.tsp-pc .tsp-pc-tape__seg:first-child { border-radius: 999px 0 0 999px; }
.tsp-pc .tsp-pc-tape__seg:nth-last-child(2) { border-right: 0; border-radius: 0 999px 999px 0; }
.tsp-pc .tsp-pc-tape__seg:first-child:nth-last-child(2) { border-radius: 999px; }
.tsp-pc .tsp-pc-tape__seg b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.tsp-pc .tsp-pc-tape__seg.is-narrow { padding: 0 2px; justify-content: center; font-size: 12px; }
/* A short Telugu name cut to "మ.." reads as a typo: a narrow part clips instead. */
.tsp-pc .tsp-pc-tape__seg.is-narrow b { font-size: 11.5px; text-overflow: clip; }
.tsp-pc .tsp-pc-tape__seg.is-tiny b { display: none; }
.tsp-pc .tsp-pc-tape__seg em { display: none; padding: 3px 8px; border-radius: 999px; background: var(--pc-sheet); color: var(--pc-accent); font-size: 12px; font-weight: 700; }
.tsp-pc .tsp-pc-tape__seg.is-on { background: var(--pc-accent); color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-tape__seg.is-on em { display: inline-block; }
.tsp-pc .tsp-pc-tape__seg.is-on.is-narrow em { display: none; }
.tsp-pc .tsp-pc-tape__seg.is-past { background: var(--pc-hatch-past); color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-tape__pin {
	display: none; position: absolute; top: -11px; height: 17px; left: var(--x, 0); width: 3px; margin-left: -1.5px;
	border-radius: 2px; background: var(--pc-ink); box-shadow: 0 0 0 1.5px var(--pc-sheet); pointer-events: none;
}
.tsp-pc .tsp-pc-tape__pin::before {
	content: ""; position: absolute; top: -5px; left: 50%; width: 11px; height: 11px; margin-left: -5.5px;
	border-radius: 50%; background: #f2b233; box-shadow: 0 0 0 2px var(--pc-ink);
}
.tsp-pc .tsp-pc-tape.has-now .tsp-pc-tape__pin { display: block; }
.tsp-pc .tsp-pc-tape__ticks { position: relative; height: 22px; margin-top: 4px; font-size: 13px; font-weight: 500; line-height: 22px; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-tape__tick { position: absolute; top: 0; left: var(--x); transform: translateX(-50%); white-space: nowrap; }
.tsp-pc .tsp-pc-tape__tick::before { content: ""; position: absolute; top: -4px; left: 50%; width: 1px; height: 5px; background: var(--pc-line-2); }
.tsp-pc .tsp-pc-tape__tick.is-r { transform: translateX(calc(-100% + 8px)); }
.tsp-pc .tsp-pc-tape__tick.is-r::before { left: calc(100% - 8px); }
.tsp-pc .tsp-pc-tape__tick.is-l { transform: translateX(-8px); }
.tsp-pc .tsp-pc-tape__tick.is-l::before { left: 8px; }
/* Two changes close together: the second time drops to a second line. */
.tsp-pc .tsp-pc-tape__ticks.has-low { height: 42px; }
.tsp-pc .tsp-pc-tape__tick.is-low { top: 20px; }
.tsp-pc .tsp-pc-tape__tick.is-low::before { top: -24px; height: 25px; }

/* now card */
.tsp-pc .tsp-pc-now {
	position: relative; display: none; flex-direction: column; gap: 8px;
	margin-top: 18px; padding: 13px 14px; border-radius: 14px;
	border: 1px solid var(--pc-line-2); background: #fbf6ea;
}
.tsp-pc.is-live .tsp-pc-now { display: flex; }
.tsp-pc .tsp-pc-now[data-state="bad"] { background: var(--pc-bad-bg); border-color: var(--pc-bad-line); box-shadow: inset 4px 0 0 var(--pc-bad); }
.tsp-pc .tsp-pc-now[data-state="good"] { background: var(--pc-good-bg); border-color: var(--pc-good-line); box-shadow: inset 4px 0 0 var(--pc-good); }
.tsp-pc .tsp-pc-now__eyebrow { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 8px; font-size: 14.5px; font-weight: 700; line-height: 1.4; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-now__clock { display: inline-flex; align-items: center; gap: 8px; }
.tsp-pc .tsp-pc-now__clock::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px rgba(42, 27, 20, .08); animation: tsp-pc-pulse 2s ease-in-out infinite; }
.tsp-pc .tsp-pc-now[data-state="bad"] .tsp-pc-now__clock { color: var(--pc-bad); }
.tsp-pc .tsp-pc-now[data-state="good"] .tsp-pc-now__clock { color: var(--pc-good); }
@keyframes tsp-pc-pulse { 50% { box-shadow: 0 0 0 7px rgba(42, 27, 20, 0); } }
.tsp-pc .tsp-pc-now__flag { display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px 2px 7px; border-radius: 999px; border: 1.5px solid currentColor; background: #fff; font-size: 13px; }
.tsp-pc .tsp-pc-now__flag .tsp-pc-ico { width: 15px; height: 15px; }
.tsp-pc .tsp-pc-now[data-state="bad"] .tsp-pc-now__flag { color: var(--pc-bad); }
.tsp-pc .tsp-pc-now[data-state="good"] .tsp-pc-now__flag { color: var(--pc-good); }
.tsp-pc .tsp-pc-now[data-state="bad"] .tsp-pc-now__fgood, .tsp-pc .tsp-pc-now[data-state="good"] .tsp-pc-now__fbad { display: none; }
.tsp-pc .tsp-pc-now__main { display: flex; align-items: center; gap: 14px; }
.tsp-pc .tsp-pc-now__ring { position: relative; flex: none; width: 66px; height: 66px; }
.tsp-pc .tsp-pc-now__svg { width: 66px; height: 66px; transform: rotate(-90deg); }
.tsp-pc .tsp-pc-now__svg circle { fill: none; stroke-width: 3.4; }
.tsp-pc .tsp-pc-now__track { stroke: rgba(42, 27, 20, .1); }
.tsp-pc .tsp-pc-now__arc { stroke: var(--pc-good); stroke-linecap: round; transition: stroke-dashoffset .6s ease; }
.tsp-pc .tsp-pc-now[data-state="bad"] .tsp-pc-now__arc { stroke: var(--pc-bad); }
.tsp-pc .tsp-pc-now[data-state="clear"] .tsp-pc-now__arc, .tsp-pc .tsp-pc-now[data-state="pre"] .tsp-pc-now__arc { stroke: var(--pc-gold); }
.tsp-pc .tsp-pc-now__mins { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; color: var(--pc-ink); }
.tsp-pc .tsp-pc-now__mins b { font-family: var(--pc-num); font-size: 21px; font-weight: 700; font-variant-numeric: tabular-nums; }
.tsp-pc .tsp-pc-now__mins small { margin-top: 3px; font-size: 12px; font-weight: 700; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-now__mins .tsp-pc-ico { width: 28px; height: 28px; stroke-width: 2.2; color: var(--pc-good); }
.tsp-pc .tsp-pc-now__body { min-width: 0; }
.tsp-pc .tsp-pc-now__title { font-size: 22px; font-weight: 700; line-height: 1.35; color: var(--pc-ink); }
.tsp-pc .tsp-pc-now[data-state="bad"] .tsp-pc-now__title { color: var(--pc-bad); }
.tsp-pc .tsp-pc-now[data-state="good"] .tsp-pc-now__title { color: var(--pc-good); }
.tsp-pc .tsp-pc-now[data-state="clear"] .tsp-pc-now__title { font-size: 19px; color: var(--pc-good); }
.tsp-pc .tsp-pc-now__meta { margin-top: 1px; font-size: 15.5px; font-weight: 600; line-height: 1.5; color: var(--pc-ink); }
.tsp-pc .tsp-pc-now__meta:empty { display: none; }
.tsp-pc .tsp-pc-now__meta span { white-space: nowrap; }
.tsp-pc .tsp-pc-now__more { display: flex; flex-direction: column; gap: 4px; padding-top: 8px; border-top: 1px dashed rgba(42, 27, 20, .16); }
.tsp-pc .tsp-pc-now__more li { display: flex; gap: 7px; align-items: flex-start; font-size: 14.5px; line-height: 1.55; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-now__more li[hidden] { display: none; }
.tsp-pc .tsp-pc-now__more .tsp-pc-ico { width: 16px; height: 16px; margin-top: 4px; }
.tsp-pc .tsp-pc-now__nbad .tsp-pc-ico { color: var(--pc-bad); }
.tsp-pc .tsp-pc-now__ngood .tsp-pc-ico { color: var(--pc-good); }
.tsp-pc .tsp-pc-now__also .tsp-pc-ico { color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-now__more b { font-weight: 700; color: var(--pc-ink); }

/* year line */
.tsp-pc .tsp-pc-chips { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--pc-line-2); }
.tsp-pc .tsp-pc-chips .tsp-pc-chip:first-child { border-color: rgba(127, 29, 29, .3); background: #fbeee9; color: var(--pc-accent); font-weight: 700; }

/* festival day: the band turns saffron to maroon and carries the festival */
.tsp-pc .tsp-pc-sheet--fest .tsp-pc-sheet__band { background-color: #8a2c0e; padding-bottom: 8px; }
.tsp-pc .tsp-pc-sheet--fest .tsp-pc-sheet__band::after { display: none; }
.tsp-pc .tsp-pc-fban {
	position: relative; z-index: 1; display: flex; align-items: center; gap: 14px; padding: 6px 16px 20px;
	background: linear-gradient(100deg, #b4410f 0%, #8a2c0e 45%, var(--pc-accent) 100%); color: #fff7e6;
}
.tsp-pc .tsp-pc-fban::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 12px;
	background: radial-gradient(circle at 6px 6px, #8f2a12 5.5px, rgba(143, 42, 18, 0) 6px) 0 0 / 12px 12px repeat-x;
}
.tsp-pc .tsp-pc-fban__seal { display: flex; align-items: center; justify-content: center; flex: none; width: 52px; height: 52px; border-radius: 50%; background: #fff4d6; color: #9a3412; box-shadow: 0 0 0 3px rgba(253, 230, 138, .5); }
.tsp-pc .tsp-pc-fban__seal .tsp-pc-ico { width: 30px; height: 30px; }
.tsp-pc .tsp-pc-fban__name { font-family: var(--pc-display); font-size: clamp(26px, 8cqi, 40px); font-weight: 700; line-height: 1.3; }
.tsp-pc .tsp-pc-fban__also { display: block; font-size: 14.5px; font-weight: 600; }
.tsp-pc .tsp-pc-fban__types { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.tsp-pc .tsp-pc-fban__types li { padding: 1px 10px; border-radius: 999px; border: 1px solid rgba(255, 247, 230, .7); font-size: 13.5px; font-weight: 700; line-height: 1.6; }

/* -------------------------------------------------------------- 5. coming up */
.tsp-pc .tsp-pc-up { display: flex; flex-direction: column; gap: 10px; }
.tsp-pc .tsp-pc-fest {
	display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px;
	padding: 12px 14px; border-radius: var(--pc-r); text-decoration: none; color: var(--pc-ink);
	border: 1px solid #ecd28c; background: linear-gradient(110deg, #fff4d6, #fffaf0 70%);
	box-shadow: var(--pc-shadow);
}
.tsp-pc .tsp-pc-fest:hover { border-color: var(--pc-saff); }
.tsp-pc .tsp-pc-fest__seal { display: flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%; background: var(--pc-accent); color: #f4d98b; box-shadow: 0 0 0 3px #fbe6b0; }
.tsp-pc .tsp-pc-fest__seal .tsp-pc-ico { width: 28px; height: 28px; }
.tsp-pc .tsp-pc-fest__txt { display: flex; flex-direction: column; min-width: 0; }
.tsp-pc .tsp-pc-fest__k { font-size: 13.5px; font-weight: 700; line-height: 1.4; color: var(--pc-saff); }
.tsp-pc .tsp-pc-fest__n { font-family: var(--pc-display); font-size: 23px; font-weight: 700; line-height: 1.35; }
.tsp-pc .tsp-pc-fest__d { font-size: 14.5px; line-height: 1.45; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-fest__in { display: flex; flex-direction: column; align-items: center; padding-left: 12px; border-left: 1px solid #ecd28c; color: var(--pc-accent); }
.tsp-pc .tsp-pc-fest__in b { font-family: var(--pc-display); font-size: 40px; font-weight: 700; line-height: 1; }
.tsp-pc .tsp-pc-fest__in span { font-size: 13px; font-weight: 700; line-height: 1.4; }
.tsp-pc .tsp-pc-fest__in.is-word b { font-size: 24px; line-height: 1.3; }
.tsp-pc .tsp-pc-fest:hover, .tsp-pc .tsp-pc-vrat:hover { color: var(--pc-ink); }
.tsp-pc .tsp-pc-vrat {
	display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 14px;
	border-radius: 12px; border: 1px solid var(--pc-line); background: var(--pc-sheet);
	font-size: 15px; line-height: 1.45; color: var(--pc-ink-2); text-decoration: none; box-shadow: var(--pc-shadow-s);
}
.tsp-pc .tsp-pc-vrat:hover { border-color: var(--pc-accent); }
.tsp-pc .tsp-pc-vrat b { color: var(--pc-accent); font-weight: 700; }
.tsp-pc .tsp-pc-vrat .tsp-pc-moon { width: 24px; height: 24px; }

/* -------------------------------------------------------------- 6. this week + day controls */
.tsp-pc .tsp-pc-week { padding: 14px 0 14px; }
.tsp-pc .tsp-pc-week .tsp-pc-h { padding: 0 16px; }
.tsp-pc .tsp-pc-week__scroller {
	display: flex; gap: 6px; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x proximity; scroll-padding: 0 12px; padding: 10px 12px 6px; scrollbar-width: none;
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 28px), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 10px, #000 calc(100% - 28px), transparent 100%);
}
.tsp-pc .tsp-pc-week__scroller::-webkit-scrollbar { display: none; }
.tsp-pc .tsp-pc-day {
	position: relative; flex: 0 0 auto; width: 82px; scroll-snap-align: start;
	display: flex; flex-direction: column; align-items: center; gap: 1px;
	padding: 9px 4px 10px; border-radius: 16px; border: 1px solid transparent;
	color: var(--pc-ink); text-decoration: none; text-align: center;
}
.tsp-pc .tsp-pc-day:hover { background: var(--pc-paper); border-color: var(--pc-line); color: var(--pc-ink); }
.tsp-pc .tsp-pc-day__wd { font-size: 13.5px; font-weight: 700; line-height: 1.35; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-day__num { font-family: var(--pc-display); font-size: 27px; font-weight: 700; line-height: 1.15; }
.tsp-pc .tsp-pc-day__moon { width: 24px; height: 24px; margin: 3px 0 2px; }
.tsp-pc .tsp-pc-day__tithi { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-day__mark { display: flex; align-items: flex-start; justify-content: center; gap: 4px; max-width: 100%; min-height: 40px; margin-top: 4px; font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--pc-accent); }
.tsp-pc .tsp-pc-day__mark > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tsp-pc .tsp-pc-day__mark i { flex: none; width: 9px; height: 9px; margin-top: 6px; border-radius: 50%; border: 2px solid currentColor; }
.tsp-pc .tsp-pc-day__mark--fest { color: var(--pc-saff); }
.tsp-pc .tsp-pc-day__mark--fest i { width: 8px; height: 8px; border-radius: 1px; background: currentColor; transform: rotate(45deg); }
.tsp-pc .tsp-pc-day__mark--none { visibility: hidden; }
.tsp-pc .tsp-pc-day.is-red .tsp-pc-day__num { color: var(--pc-bad); }
.tsp-pc .tsp-pc-day.is-fest { background: var(--pc-saff-soft); border-color: #f0d58f; }
.tsp-pc .tsp-pc-day.is-past .tsp-pc-day__num, .tsp-pc .tsp-pc-day.is-past .tsp-pc-day__tithi { color: var(--pc-ink-3); }
/* Today in the strip, when another day is shown: a maroon ring. */
.tsp-pc .tsp-pc-day.is-today { border: 1.5px solid var(--pc-accent); }
.tsp-pc .tsp-pc-day.is-today .tsp-pc-day__wd { color: var(--pc-accent); }
/* The day the page shows: the maroon dotted tile. */
.tsp-pc .tsp-pc-day.is-sel {
	background-color: var(--pc-accent);
	background-image: radial-gradient(rgba(240, 217, 153, .22) 1px, rgba(240, 217, 153, 0) 1.6px);
	background-size: 10px 10px; border-color: var(--pc-accent); color: var(--pc-on-accent);
	box-shadow: 0 10px 20px -10px rgba(127, 29, 29, .7);
}
.tsp-pc .tsp-pc-day.is-sel .tsp-pc-day__wd, .tsp-pc .tsp-pc-day.is-sel .tsp-pc-day__tithi,
.tsp-pc .tsp-pc-day.is-sel .tsp-pc-day__num, .tsp-pc .tsp-pc-day.is-sel .tsp-pc-day__mark { color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-day.is-sel .tsp-pc-day__wd { color: var(--pc-gold-lt); }
.tsp-pc .tsp-pc-day.is-sel .tsp-pc-moon__ring { stroke: rgba(251, 243, 223, .7); }
.tsp-pc .tsp-pc-day.is-disabled { justify-content: center; border: 1px dashed var(--pc-line-2); color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-day.is-disabled .tsp-pc-day__wd { color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-day--more { justify-content: center; gap: 6px; border: 1.5px dashed var(--pc-line-2); color: var(--pc-accent); font-size: 14px; font-weight: 700; line-height: 1.35; }
.tsp-pc .tsp-pc-day--more:hover { color: var(--pc-accent); }
.tsp-pc .tsp-pc-day--more .tsp-pc-ico { width: 26px; height: 26px; }

.tsp-pc .tsp-pc-week__ctl { display: flex; flex-direction: column; gap: 10px; margin: 8px 16px 0; padding-top: 14px; border-top: 1px dashed var(--pc-line-2); }
.tsp-pc .tsp-pc-daynav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tsp-pc .tsp-pc-daynav .tsp-pc-btn { padding: 8px 10px; }
.tsp-pc .tsp-pc-daynav .tsp-pc-ico, .tsp-pc .tsp-pc-btns .tsp-pc-btn--line .tsp-pc-ico { display: none; }
.tsp-pc .tsp-pc-daynav .tsp-pc-btn--solid { grid-column: 1 / -1; order: 3; }
.tsp-pc .tsp-pc-daynav .tsp-pc-btn--solid[aria-current="date"] { display: none; }
.tsp-pc .tsp-pc-jump__lbl { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.tsp-pc .tsp-pc-jump__row { display: flex; flex-wrap: wrap; gap: 8px; }
.tsp-pc .tsp-pc-jump input {
	flex: 1 1 150px; min-width: 0; height: 48px; margin: 0; padding: 0 12px;
	border: 1.5px solid var(--pc-line-2); border-radius: 12px; background: #fff;
	font-family: var(--pc-num); font-size: 16px; font-weight: 600; color: var(--pc-ink);
}
.tsp-pc .tsp-pc-jump .tsp-pc-btn { flex: 1 1 auto; }

/* -------------------------------------------------------------- 7. good / avoid times */
.tsp-pc .tsp-pc-times { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; }
.tsp-pc .tsp-pc-times__col { min-width: 0; padding: 16px 16px 8px; }
.tsp-pc .tsp-pc-times__col--good { background: linear-gradient(180deg, var(--pc-good-bg), rgba(240, 253, 244, 0) 70%); }
.tsp-pc .tsp-pc-times__col--bad { background: linear-gradient(180deg, var(--pc-bad-bg), rgba(254, 242, 242, 0) 70%); border-top: 1px solid var(--pc-line); }
.tsp-pc .tsp-pc-times__h { display: flex; align-items: center; gap: 8px; font-family: var(--pc-display); font-size: 20px; font-weight: 700; line-height: 1.4; }
.tsp-pc .tsp-pc-times__h .tsp-pc-ico { width: 23px; height: 23px; }
.tsp-pc .tsp-pc-times__col--good .tsp-pc-times__h { color: var(--pc-good); }
.tsp-pc .tsp-pc-times__col--bad .tsp-pc-times__h { color: var(--pc-bad); }
.tsp-pc .tsp-pc-wins { margin-top: 4px; }
.tsp-pc .tsp-pc-win { position: relative; padding: 11px 0; border-top: 1px solid rgba(42, 27, 20, .08); }
.tsp-pc .tsp-pc-win:first-child { border-top: 0; }
.tsp-pc .tsp-pc-win__name { font-size: 15.5px; font-weight: 700; line-height: 1.45; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-win__lines { display: flex; flex-direction: column; gap: 4px; }
.tsp-pc .tsp-pc-win__line { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 10px; }
.tsp-pc .tsp-pc-win__line > .tsp-pc-t { font-size: clamp(23px, 7.3cqi, 29px); font-weight: 600; line-height: 1.25; color: var(--pc-ink); }
.tsp-pc .tsp-pc-win__tag { display: none; align-items: center; padding: 2px 10px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.5; white-space: nowrap; border: 1px solid var(--pc-line-2); color: var(--pc-ink-2); background: #fff; }
.tsp-pc .tsp-pc-win__tag:not(:empty) { display: inline-flex; }
.tsp-pc .tsp-pc-win__line.is-past > .tsp-pc-t, .tsp-pc .tsp-pc-win__line.is-past .tsp-pc-n { color: var(--pc-ink-3); font-weight: 600; }
.tsp-pc .tsp-pc-win.is-past .tsp-pc-win__name { color: var(--pc-ink-3); font-weight: 600; }
.tsp-pc .tsp-pc-win__line.is-past .tsp-pc-win__tag { border-color: transparent; background: var(--pc-paper-2); color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-win__line.is-next .tsp-pc-win__tag { border: 1.5px solid var(--pc-ink-2); color: var(--pc-ink); }
.tsp-pc .tsp-pc-times__col--bad .tsp-pc-win__line.is-now .tsp-pc-win__tag { border-color: var(--pc-bad); background: var(--pc-bad); color: #fff; }
.tsp-pc .tsp-pc-times__col--good .tsp-pc-win__line.is-now .tsp-pc-win__tag { border-color: var(--pc-good); background: var(--pc-good); color: #fff; }
.tsp-pc .tsp-pc-win.is-now { margin: 4px -10px; padding: 11px 10px; border-radius: 12px; border-top-color: transparent; background: #fff; }
.tsp-pc .tsp-pc-times__col--bad .tsp-pc-win.is-now { box-shadow: 0 0 0 2px var(--pc-bad), 0 8px 20px -10px rgba(185, 28, 28, .45); }
.tsp-pc .tsp-pc-times__col--good .tsp-pc-win.is-now { box-shadow: 0 0 0 2px var(--pc-good), 0 8px 20px -10px rgba(22, 101, 52, .45); }
.tsp-pc .tsp-pc-win.is-now + .tsp-pc-win { border-top-color: transparent; }
.tsp-pc .tsp-pc-win__note { margin-top: 2px; font-size: 14px; font-weight: 600; color: var(--pc-saff); }

/* -------------------------------------------------------------- 8. timeline (labelled lanes) */
.tsp-pc .tsp-pc-tl { padding: 16px 16px 12px; --tl-lbl: 96px; --tl-gap: 10px; --tl-time: 0px; --tl-gap2: 0px; }
.tsp-pc .tsp-pc-tl__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; }
.tsp-pc .tsp-pc-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: 13.5px; font-weight: 600; line-height: 1.5; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-legend li { display: inline-flex; align-items: center; gap: 6px; }
.tsp-pc .tsp-pc-key { width: 24px; height: 12px; border-radius: 4px; }
.tsp-pc .tsp-pc-key--bad { background: var(--pc-hatch-bad); }
.tsp-pc .tsp-pc-key--good { background: var(--pc-good-bar); }
.tsp-pc .tsp-pc-tl__part + .tsp-pc-tl__part { margin-top: 12px; padding-top: 2px; border-top: 1px dashed var(--pc-line-2); }
.tsp-pc .tsp-pc-tl__sub { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; margin-top: 12px; font-size: 14.5px; line-height: 1.5; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-tl__sub .tsp-pc-ico { width: 18px; height: 18px; color: var(--pc-saff); }
.tsp-pc .tsp-pc-tl__sub b { font-weight: 700; color: var(--pc-ink); }
.tsp-pc .tsp-pc-tl__grid { position: relative; display: grid; grid-template-columns: var(--tl-lbl) minmax(0, 1fr); column-gap: var(--tl-gap); padding-top: 8px; }
.tsp-pc .tsp-pc-tl__part.has-now .tsp-pc-tl__grid { padding-top: 32px; }
.tsp-pc .tsp-pc-tl__row { display: contents; }
.tsp-pc .tsp-pc-tl__lbl { grid-column: 1; align-self: center; padding: 5px 0; font-size: 13.5px; font-weight: 700; line-height: 1.3; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-tl__lane {
	grid-column: 2; position: relative; align-self: center; height: 26px; margin: 4px 0; border-radius: 7px;
	background-color: var(--pc-paper);
	background-image: linear-gradient(90deg, rgba(184, 137, 47, .22) 1px, rgba(184, 137, 47, 0) 1px);
	background-size: calc(100% / var(--hrs, 12)) 100%;
	box-shadow: inset 0 0 0 1px rgba(184, 137, 47, .18);
}
.tsp-pc .tsp-pc-tl__time { display: none; }
.tsp-pc .tsp-pc-seg { position: absolute; top: 3px; bottom: 3px; left: var(--l); width: var(--w); min-width: 5px; border-radius: 4px; }
.tsp-pc .tsp-pc-seg--bad { background: var(--pc-hatch-bad); }
.tsp-pc .tsp-pc-seg--good { background: var(--pc-good-bar); }
.tsp-pc .tsp-pc-seg.is-on { top: -1px; bottom: -1px; box-shadow: 0 0 0 2px var(--pc-sheet), 0 0 0 4px var(--pc-ink); }
.tsp-pc .tsp-pc-tl__part--night .tsp-pc-tl__lane {
	background-color: var(--pc-night);
	background-image:
		radial-gradient(rgba(246, 231, 200, .5) .8px, rgba(246, 231, 200, 0) 1.3px),
		linear-gradient(90deg, rgba(246, 231, 200, .14) 1px, rgba(246, 231, 200, 0) 1px);
	background-size: 13px 9px, calc(100% / var(--hrs, 12)) 100%;
	box-shadow: none;
}
.tsp-pc .tsp-pc-tl__part--night .tsp-pc-seg--bad { background: repeating-linear-gradient(135deg, #f87171 0 3px, #9f1d1d 3px 6px); }
.tsp-pc .tsp-pc-tl__part--night .tsp-pc-seg--good { background: #3cc47a; }
.tsp-pc .tsp-pc-tl__part--night .tsp-pc-seg.is-on { box-shadow: 0 0 0 2px var(--pc-night), 0 0 0 4px var(--pc-gold-lt); }
.tsp-pc .tsp-pc-tl__axis { grid-column: 2; position: relative; height: 24px; font-size: 12.5px; font-weight: 600; line-height: 24px; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-tl__ax { position: absolute; top: 0; left: var(--x); transform: translateX(-50%); white-space: nowrap; }
.tsp-pc .tsp-pc-tl__ax.is-a { left: 0; transform: none; }
.tsp-pc .tsp-pc-tl__ax.is-z { left: auto; right: 0; transform: none; }
.tsp-pc .tsp-pc-tl__ax.is-minor, .tsp-pc .tsp-pc-tl__ax.is-mid { display: none; }
.tsp-pc .tsp-pc-tl__now {
	position: absolute; top: 28px; bottom: 22px; width: 0; display: none; z-index: 2; pointer-events: none;
	left: calc(var(--tl-lbl) + var(--tl-gap) + (100% - var(--tl-lbl) - var(--tl-gap) - var(--tl-time) - var(--tl-gap2)) * var(--x, 0));
	border-left: 2px solid var(--pc-accent);
}
.tsp-pc .tsp-pc-tl__now b {
	position: absolute; top: -26px; left: 0; transform: translateX(-50%);
	padding: 1px 10px; border-radius: 999px; background: var(--pc-accent); color: var(--pc-on-accent);
	font-size: 13px; font-weight: 700; line-height: 1.6; white-space: nowrap;
}
.tsp-pc .tsp-pc-tl__part.has-now .tsp-pc-tl__now { display: block; }
.tsp-pc .tsp-pc-tl__part[data-edge="r"] .tsp-pc-tl__now b { transform: translateX(calc(-100% + 12px)); }
.tsp-pc .tsp-pc-tl__part[data-edge="l"] .tsp-pc-tl__now b { transform: translateX(-12px); }
.tsp-pc .tsp-pc-tl__part--night .tsp-pc-tl__now { border-left-color: var(--pc-gold); }

/* -------------------------------------------------------------- 9. the five limbs */
.tsp-pc .tsp-pc-limbs { padding: 16px 16px 14px; }
.tsp-pc .tsp-pc-limbs__list { display: flex; flex-direction: column; margin-top: 6px; }
.tsp-pc .tsp-pc-limb { display: grid; grid-template-columns: 50px minmax(0, 1fr); gap: 12px; align-items: start; padding: 14px 0; border-top: 1px solid var(--pc-line); }
.tsp-pc .tsp-pc-limb:first-child { border-top: 0; }
.tsp-pc .tsp-pc-limb__seal {
	display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%;
	background: var(--pc-paper); color: var(--pc-accent);
	box-shadow: 0 0 0 1px var(--pc-gold), 0 0 0 4px var(--pc-sheet), 0 0 0 5px rgba(184, 137, 47, .45);
	margin: 4px;
}
.tsp-pc .tsp-pc-limb__seal .tsp-pc-ico { width: 24px; height: 24px; }
.tsp-pc .tsp-pc-limb__moon { width: 30px; height: 30px; }
.tsp-pc .tsp-pc-limb__txt { min-width: 0; }
.tsp-pc .tsp-pc-limb__k { font-size: 13.5px; font-weight: 700; line-height: 1.4; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-limb__n { font-family: var(--pc-display); font-size: 23px; font-weight: 700; line-height: 1.4; color: var(--pc-accent); }
.tsp-pc .tsp-pc-limb__t { font-size: 15.5px; line-height: 1.6; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-limb__t .tsp-pc-n { color: var(--pc-ink); }
.tsp-pc .tsp-pc-limb__now { display: inline-flex; margin-top: 6px; padding: 2px 11px; border-radius: 999px; background: var(--pc-saff-wash); color: #6b2410; font-size: 13.5px; font-weight: 700; line-height: 1.6; }
.tsp-pc .tsp-pc-limb__now[hidden] { display: none; }
.tsp-pc .tsp-pc-tape--mini { margin-top: 8px; }
.tsp-pc .tsp-pc-limb--tithi .tsp-pc-tape--mini, .tsp-pc .tsp-pc-limb--nakshatra .tsp-pc-tape--mini { display: none; }
.tsp-pc .tsp-pc-tape--mini .tsp-pc-tape__bar { height: 10px; }
.tsp-pc .tsp-pc-tape--mini .tsp-pc-tape__seg { padding: 0; border-right-width: 1.5px; }
.tsp-pc .tsp-pc-tape--mini .tsp-pc-tape__pin { top: -8px; height: 20px; }
.tsp-pc .tsp-pc-tape--mini .tsp-pc-tape__pin::before { width: 9px; height: 9px; top: -4px; margin-left: -4.5px; }
.tsp-pc .tsp-pc-tape--mini .tsp-pc-tape__ticks { font-size: 12.5px; }
.tsp-pc .tsp-pc-rasis { display: grid; gap: 8px; margin-top: 4px; padding-top: 12px; border-top: 1px dashed var(--pc-line-2); }
.tsp-pc .tsp-pc-rasi { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 0 10px; align-items: center; font-size: 15.5px; line-height: 1.6; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-rasi .tsp-pc-ico { width: 20px; height: 20px; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-rasi__v { grid-column: 2; }
.tsp-pc .tsp-pc-rasi__k { font-size: 13.5px; font-weight: 700; color: var(--pc-gold-ink); white-space: nowrap; }
.tsp-pc .tsp-pc-rasi__n { font-family: var(--pc-display); font-size: 18px; font-weight: 700; color: var(--pc-accent); margin-right: 4px; }
.tsp-pc .tsp-pc-rasi__v .tsp-pc-n { color: var(--pc-ink); }

/* -------------------------------------------------------------- 10. sun and moon */
.tsp-pc .tsp-pc-sky { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.tsp-pc .tsp-pc-sun { padding: 16px; overflow: hidden; transition: background .6s ease, color .6s ease; }
.tsp-pc[data-sky="dawn"] .tsp-pc-sun { background: linear-gradient(180deg, #fde3e3 0%, var(--pc-sheet) 72%); }
.tsp-pc[data-sky="day"] .tsp-pc-sun { background: linear-gradient(180deg, #fdf0c4 0%, var(--pc-sheet) 72%); }
.tsp-pc[data-sky="dusk"] .tsp-pc-sun { background: linear-gradient(180deg, #fdd5ae 0%, var(--pc-sheet) 72%); }
.tsp-pc[data-sky="night"] .tsp-pc-sun { background: linear-gradient(180deg, #1c1430 0%, var(--pc-night) 80%); border-color: var(--pc-night-2); color: var(--pc-night-ink); }
.tsp-pc .tsp-pc-sun__arc { margin: 2px -4px 0; }
.tsp-pc .tsp-pc-arc { width: 100%; height: auto; max-height: 150px; overflow: visible; }
.tsp-pc .tsp-pc-arc__dome { fill: rgba(253, 230, 138, .3); }
.tsp-pc .tsp-pc-arc__track { fill: none; stroke: var(--pc-line-2); stroke-width: 2; stroke-dasharray: 3 6; stroke-linecap: round; }
.tsp-pc .tsp-pc-arc__done { fill: none; stroke: #d4932b; stroke-width: 3.5; stroke-linecap: round; }
.tsp-pc .tsp-pc-arc__horizon { stroke: var(--pc-line-2); stroke-width: 1.5; }
.tsp-pc .tsp-pc-arc__bead { fill: var(--pc-sheet); stroke: var(--pc-gold); stroke-width: 2; }
.tsp-pc .tsp-pc-arc__sun { display: none; }
.tsp-pc .tsp-pc-sun.has-now .tsp-pc-arc__sun { display: block; }
.tsp-pc .tsp-pc-arc__halo { fill: rgba(242, 178, 51, .22); }
.tsp-pc .tsp-pc-arc__rays { stroke: #e09a24; stroke-width: 2; stroke-linecap: round; }
.tsp-pc .tsp-pc-arc__disc { fill: #f2b233; stroke: #fff; stroke-width: 2.5; }
.tsp-pc .tsp-pc-arc__stars { display: none; fill: #f6e7c8; }
.tsp-pc[data-sky="night"] .tsp-pc-arc__stars { display: block; }
.tsp-pc[data-sky="night"] .tsp-pc-arc__dome { fill: rgba(246, 231, 200, .06); }
.tsp-pc[data-sky="night"] .tsp-pc-arc__track, .tsp-pc[data-sky="night"] .tsp-pc-arc__horizon { stroke: rgba(246, 231, 200, .35); }
.tsp-pc[data-sky="night"] .tsp-pc-arc__bead { fill: var(--pc-night); }
.tsp-pc[data-sky="night"] .tsp-pc-sun .tsp-pc-h { color: var(--pc-gold-lt); }
.tsp-pc[data-sky="night"] .tsp-pc-sun .tsp-pc-h .tsp-pc-ico,
.tsp-pc[data-sky="night"] .tsp-pc-sun dt .tsp-pc-ico { color: var(--pc-gold-lt); }
.tsp-pc[data-sky="night"] .tsp-pc-sun dt, .tsp-pc[data-sky="night"] .tsp-pc-sun .tsp-pc-w,
.tsp-pc[data-sky="night"] .tsp-pc-sun .tsp-pc-d { color: #e9d6b6; }
.tsp-pc[data-sky="night"] .tsp-pc-sun .tsp-pc-n { color: var(--pc-night-ink); }
.tsp-pc .tsp-pc-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 4px; }
.tsp-pc .tsp-pc-pair dt { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; line-height: 1.4; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-pair dt .tsp-pc-ico { width: 21px; height: 21px; color: var(--pc-saff); }
.tsp-pc .tsp-pc-pair dd { margin-top: 2px; font-size: 28px; line-height: 1.25; }
.tsp-pc .tsp-pc-pair > div:last-child { text-align: right; }
.tsp-pc .tsp-pc-pair > div:last-child dt { justify-content: flex-end; }
.tsp-pc .tsp-pc-pair > div:last-child .tsp-pc-t { align-items: flex-end; }

.tsp-pc .tsp-pc-moonc {
	position: relative; display: flex; align-items: center; gap: 18px; padding: 18px 18px; overflow: hidden;
	border-radius: var(--pc-r); color: var(--pc-night-ink);
	background-color: var(--pc-night);
	background-image:
		radial-gradient(rgba(246, 231, 200, .3) .8px, rgba(246, 231, 200, 0) 1.4px),
		radial-gradient(80% 90% at 18% 50%, rgba(240, 217, 153, .16), rgba(240, 217, 153, 0) 70%);
	background-size: 17px 17px, 100% 100%;
	box-shadow: var(--pc-shadow);
}
.tsp-pc .tsp-pc-moonc__fig { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: none; }
.tsp-pc .tsp-pc-moonc__moon { width: 84px; height: 84px; filter: drop-shadow(0 0 14px rgba(244, 217, 139, .35)); }
.tsp-pc .tsp-pc-moonc .tsp-pc-moon__dark { fill: #4a3530; }
.tsp-pc .tsp-pc-moonc .tsp-pc-moon__ring { stroke: rgba(240, 217, 153, .6); }
.tsp-pc .tsp-pc-moonc__fig p { font-family: var(--pc-display); font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--pc-gold-lt); text-align: center; }
.tsp-pc .tsp-pc-moonc__rows { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.tsp-pc .tsp-pc-moonc__rows dt { display: flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; line-height: 1.4; color: #e9d6b6; }
.tsp-pc .tsp-pc-moonc__rows .tsp-pc-ico { width: 21px; height: 21px; color: var(--pc-gold-lt); }
.tsp-pc .tsp-pc-moonc__rows dd { font-size: 26px; line-height: 1.25; }
.tsp-pc .tsp-pc-moonc .tsp-pc-n { color: #fff8ea; }
.tsp-pc .tsp-pc-moonc .tsp-pc-t .tsp-pc-w, .tsp-pc .tsp-pc-moonc .tsp-pc-t .tsp-pc-d { color: #e9d6b6; }
.tsp-pc .tsp-pc-moonc .tsp-pc-none { color: #fff8ea; font-size: 20px; font-weight: 700; }

/* -------------------------------------------------------------- 11. hora */
.tsp-pc .tsp-pc-hora { overflow: hidden; }
.tsp-pc .tsp-pc-hora summary {
	display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 10px 16px;
	cursor: pointer; list-style: none; font-family: var(--pc-display); font-size: 19px; font-weight: 700; color: var(--pc-accent);
}
.tsp-pc .tsp-pc-hora summary::-webkit-details-marker { display: none; }
.tsp-pc .tsp-pc-hora summary > .tsp-pc-ico { width: 21px; height: 21px; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-hora__now { flex: 1; min-width: 0; font-family: var(--pc-ui); font-size: 14.5px; font-weight: 600; line-height: 1.4; color: var(--pc-ink-2); text-align: right; }
.tsp-pc .tsp-pc-hora__now b { color: var(--pc-accent); font-weight: 700; }
.tsp-pc .tsp-pc-hora .tsp-pc-hora__chev { width: 18px; height: 18px; color: var(--pc-ink-3); transition: transform .2s ease; }
.tsp-pc .tsp-pc-hora[open] .tsp-pc-hora__chev { transform: rotate(180deg); }
.tsp-pc .tsp-pc-hora__body { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 0 16px 16px; }
.tsp-pc .tsp-pc-hora__body h3 { margin-bottom: 4px; font-size: 14px; font-weight: 700; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-hora__body li { display: flex; justify-content: space-between; gap: 12px; padding: 7px 10px; border-radius: 8px; font-size: 15px; line-height: 1.45; }
.tsp-pc .tsp-pc-hora__body li:nth-child(odd) { background: var(--pc-paper); }
.tsp-pc .tsp-pc-hora__body li span:last-child { text-align: right; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-hora__body li.is-on { background: #fbeee9; box-shadow: inset 4px 0 0 var(--pc-accent); font-weight: 700; }

/* choghadiya: the same card, each row saying its quality in words */
.tsp-pc .tsp-pc-chog__nm { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; }
.tsp-pc .tsp-pc-q { padding: 0 8px; border-radius: 999px; border: 1px solid var(--pc-line-2); background: #fff; font-size: 12.5px; font-weight: 700; line-height: 1.6; color: var(--pc-ink-2); white-space: nowrap; }
.tsp-pc .tsp-pc-q--good { border-color: var(--pc-good-line); background: var(--pc-good-bg); color: var(--pc-good); }
.tsp-pc .tsp-pc-q--bad { border-color: var(--pc-bad-line); background: var(--pc-bad-bg); color: var(--pc-bad); }
.tsp-pc .tsp-pc-chog .tsp-pc-hora__now .tsp-pc-q { display: inline-block; margin-left: 2px; vertical-align: 1px; }

/* -------------------------------------------------------------- 12. share, links, method */
.tsp-pc .tsp-pc-share { display: grid; gap: 14px; padding: 16px; }
.tsp-pc .tsp-pc-share__k { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-share__k .tsp-pc-ico { width: 19px; height: 19px; color: #128c4a; }
.tsp-pc .tsp-pc-bubble {
	position: relative; max-width: 470px; padding: 10px 12px 20px; margin-left: 8px;
	border-radius: 4px 12px 12px 12px; background: #e3f6d5; color: #1d2a1a;
	font-size: 15px; line-height: 1.65; box-shadow: 0 1px 1px rgba(0, 0, 0, .08); overflow-wrap: anywhere;
}
.tsp-pc .tsp-pc-bubble::before { content: ""; position: absolute; left: -8px; top: 0; border-top: 11px solid #e3f6d5; border-left: 9px solid transparent; }
.tsp-pc .tsp-pc-bubble::after { content: "✓✓"; position: absolute; right: 10px; bottom: 3px; font-size: 11px; letter-spacing: -2px; color: #2563eb; }
.tsp-pc .tsp-pc-bubble b { font-weight: 700; }
.tsp-pc .tsp-pc-bubble u { text-decoration: none; color: #0b6a7a; }
/* Phones: WhatsApp and the share card each full width, share | print under them. */
.tsp-pc .tsp-pc-btns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.tsp-pc .tsp-pc-btns .tsp-pc-btn--wa, .tsp-pc .tsp-pc-btns .tsp-pc-btn--card { grid-column: 1 / -1; }
.tsp-pc .tsp-pc-btns .tsp-pc-btn[hidden] { display: none; }
.tsp-pc .tsp-pc-links { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.tsp-pc .tsp-pc-links a { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; font-size: 15.5px; font-weight: 700; color: var(--pc-accent); text-decoration: none; }
.tsp-pc .tsp-pc-links a:hover { color: var(--pc-accent); }
.tsp-pc .tsp-pc-links a:hover span { text-decoration: underline; }
.tsp-pc .tsp-pc-links .tsp-pc-ico { width: 18px; height: 18px; }
.tsp-pc .tsp-pc-links .tsp-pc-ico:last-child { width: 16px; height: 16px; }
.tsp-pc .tsp-pc-method { padding: 6px 8px 4px; text-align: center; }
.tsp-pc .tsp-pc-method__orn { display: flex; align-items: center; gap: 10px; margin: 0 auto 10px; max-width: 320px; }
.tsp-pc .tsp-pc-method p { max-width: 68ch; margin: 0 auto; font-family: var(--pc-body); font-size: 15px; line-height: 1.8; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-method p + p { margin-top: 8px; }

/* -------------------------------------------------------------- 13. month */
.tsp-pc .tsp-pc-month { padding: 14px; }
.tsp-pc .tsp-pc-month__head { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 8px; }
.tsp-pc .tsp-pc-month__title { grid-column: 1 / -1; text-align: center; }
.tsp-pc .tsp-pc-month__title h2 { font-family: var(--pc-display); font-size: clamp(25px, 7.4cqi, 34px); font-weight: 700; line-height: 1.3; color: var(--pc-accent); }
.tsp-pc .tsp-pc-month__masa { font-size: 14.5px; font-weight: 700; line-height: 1.5; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-month__head .tsp-pc-btn { padding: 8px 10px; }
.tsp-pc .tsp-pc-cal { margin-top: 12px; }
.tsp-pc .tsp-pc-cal__wds { display: none; }
.tsp-pc .tsp-pc-cal__grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.tsp-pc .tsp-pc-cal__pad { display: none; }
.tsp-pc .tsp-pc-cell {
	display: grid; grid-template-columns: 42px 26px minmax(0, 1fr); grid-template-areas: "date moon main" "date moon marks";
	align-items: center; column-gap: 10px; min-height: 62px; padding: 9px 8px;
	border-top: 1px solid var(--pc-line); color: var(--pc-ink); text-decoration: none;
}
.tsp-pc .tsp-pc-cal__grid > li:first-child .tsp-pc-cell, .tsp-pc .tsp-pc-cal__pad + li .tsp-pc-cell { border-top: 0; }
.tsp-pc .tsp-pc-cell:hover { background: var(--pc-paper); color: var(--pc-ink); }
/* The phone list clips each row: draw the focus ring inside it. */
.tsp-pc .tsp-pc-cell:focus-visible { outline-offset: -3px; }
.tsp-pc .tsp-pc-cell__date { grid-area: date; display: flex; flex-direction: column; align-items: center; }
.tsp-pc .tsp-pc-cell__num { font-family: var(--pc-display); font-size: 24px; font-weight: 700; line-height: 1.1; }
.tsp-pc .tsp-pc-cell__wd { font-size: 12.5px; font-weight: 700; line-height: 1.4; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-cell__moon { grid-area: moon; width: 24px; height: 24px; }
.tsp-pc .tsp-pc-cell__main { grid-area: main; min-width: 0; }
.tsp-pc .tsp-pc-cell__tithi { display: block; font-size: 16px; font-weight: 700; line-height: 1.45; }
.tsp-pc .tsp-pc-cell__nak { display: block; font-size: 13.5px; line-height: 1.45; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-cell__marks { grid-area: marks; display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.tsp-pc .tsp-pc-cell__marks:empty { display: none; }
.tsp-pc .tsp-pc-mk {
	display: inline-flex; align-items: center; gap: 4px; max-width: 100%; min-width: 0;
	padding: 1px 8px; border-radius: 7px; border: 1px solid var(--pc-accent); background: #fff;
	font-size: 12.5px; font-weight: 700; line-height: 1.5; color: var(--pc-accent);
}
.tsp-pc .tsp-pc-mk span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tsp-pc .tsp-pc-mk .tsp-pc-ico { width: 14px; height: 14px; }
.tsp-pc .tsp-pc-mk .tsp-pc-moon { width: 14px; height: 14px; }
.tsp-pc .tsp-pc-mk--fest { border-color: #e8c66c; background: var(--pc-saff-wash); color: #6b2410; }
.tsp-pc .tsp-pc-mk--eka { border-color: #8cc9a3; background: var(--pc-good-bg); color: var(--pc-good); }
.tsp-pc .tsp-pc-mk--full, .tsp-pc .tsp-pc-mk--new { border-color: var(--pc-line-2); background: var(--pc-paper); color: var(--pc-ink); }
.tsp-pc .tsp-pc-mk--masa { border: 1.5px dashed var(--pc-gold); background: transparent; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-mk--today { border-color: var(--pc-gold-lt); background: var(--pc-gold-lt); color: var(--pc-accent-deep); }
.tsp-pc .tsp-pc-cell.is-red .tsp-pc-cell__num { color: var(--pc-bad); }
/* A holiday is not told by colour alone: the date is underlined (and named for screen readers). */
.tsp-pc .tsp-pc-cell.is-hol .tsp-pc-cell__num { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.tsp-pc .tsp-pc-cell.is-fest { background: var(--pc-saff-soft); }
.tsp-pc .tsp-pc-cell.is-past .tsp-pc-cell__tithi { color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-cell.is-today {
	border-radius: 12px; border-top-color: transparent; color: var(--pc-on-accent);
	background-color: var(--pc-accent);
	background-image: radial-gradient(rgba(240, 217, 153, .2) 1px, rgba(240, 217, 153, 0) 1.6px);
	background-size: 12px 12px;
	box-shadow: 0 10px 22px -12px rgba(127, 29, 29, .8);
}
.tsp-pc .tsp-pc-cal__grid > li:has(.is-today) + li .tsp-pc-cell { border-top-color: transparent; }
.tsp-pc .tsp-pc-cell.is-today .tsp-pc-cell__num, .tsp-pc .tsp-pc-cell.is-today .tsp-pc-cell__tithi { color: #fff8ea; }
.tsp-pc .tsp-pc-cell.is-today .tsp-pc-cell__wd, .tsp-pc .tsp-pc-cell.is-today .tsp-pc-cell__nak { color: var(--pc-gold-lt); }
.tsp-pc .tsp-pc-cell.is-today .tsp-pc-moon__ring { stroke: rgba(251, 243, 223, .7); }
.tsp-pc .tsp-pc-month__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--pc-line); }
.tsp-pc .tsp-pc-legend--month { gap: 8px 14px; }
.tsp-pc .tsp-pc-legend--month .tsp-pc-moon { width: 18px; height: 18px; }
.tsp-pc .tsp-pc-legend__t { font-weight: 700; color: var(--pc-ink); }
.tsp-pc .tsp-pc-legend__red { font-family: var(--pc-display); font-size: 19px; font-weight: 700; line-height: 1; color: var(--pc-bad); }

/* -------------------------------------------------------------- 14. festivals list */
.tsp-pc .tsp-pc-fests, .tsp-pc .tsp-pc-tlist { display: flex; flex-direction: column; gap: 12px; padding: 14px; }
.tsp-pc .tsp-pc-yrbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.tsp-pc .tsp-pc-years { display: flex; gap: 6px; }
.tsp-pc .tsp-pc-years a {
	display: inline-flex; align-items: center; justify-content: center; min-width: 72px; min-height: 44px; padding: 0 14px;
	border-radius: 999px; border: 1.5px solid var(--pc-line-2); background: #fff;
	font-family: var(--pc-num); font-size: 16px; font-weight: 700; color: var(--pc-ink-2); text-decoration: none;
}
.tsp-pc .tsp-pc-years a:hover { border-color: var(--pc-accent); color: var(--pc-accent); }
.tsp-pc .tsp-pc-years a[aria-current="page"] { background: var(--pc-accent); border-color: var(--pc-accent); color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-basis { display: flex; gap: 8px; padding: 10px 12px; border-radius: 12px; background: var(--pc-saff-soft); border: 1px solid #f0d58f; font-size: 14.5px; line-height: 1.6; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-basis .tsp-pc-ico { width: 18px; height: 18px; margin-top: 3px; color: var(--pc-saff); }
.tsp-pc .tsp-pc-earlier { border: 1px solid var(--pc-line); border-radius: 12px; background: var(--pc-paper); }
.tsp-pc .tsp-pc-earlier summary { display: flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 14px; cursor: pointer; list-style: none; font-size: 15.5px; font-weight: 700; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-earlier summary::-webkit-details-marker { display: none; }
.tsp-pc .tsp-pc-earlier summary .tsp-pc-ico { width: 18px; height: 18px; transform: rotate(-90deg); transition: transform .2s ease; }
.tsp-pc .tsp-pc-earlier[open] summary .tsp-pc-ico { transform: none; }
.tsp-pc .tsp-pc-earlier__body { display: flex; flex-direction: column; gap: 12px; padding: 2px 12px 14px; }
.tsp-pc .tsp-pc-mgroup { display: flex; align-items: center; gap: 9px; margin-top: 4px; font-family: var(--pc-display); font-size: 20px; font-weight: 700; color: var(--pc-accent); }
.tsp-pc .tsp-pc-fcards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.tsp-pc .tsp-pc-fcard {
	display: grid; grid-template-columns: 66px minmax(0, 1fr); gap: 12px; height: 100%; padding: 14px;
	border-radius: 14px; border: 1px solid var(--pc-line); background: #fff;
}
.tsp-pc .tsp-pc-fcard.is-next { border-color: #e8c66c; background: linear-gradient(160deg, #fff4d6, #fffdf8 60%); box-shadow: 0 0 0 1px #e8c66c; }
.tsp-pc .tsp-pc-fcard__date { display: flex; flex-direction: column; align-items: center; padding-right: 10px; border-right: 1px solid var(--pc-line); }
.tsp-pc .tsp-pc-fcard__num { font-family: var(--pc-display); font-size: 42px; font-weight: 700; line-height: 1.05; color: var(--pc-accent); }
.tsp-pc .tsp-pc-fcard.is-red .tsp-pc-fcard__num { color: var(--pc-bad); }
.tsp-pc .tsp-pc-fcard__wd { font-size: 13px; font-weight: 700; line-height: 1.35; color: var(--pc-ink-2); text-align: center; }
.tsp-pc .tsp-pc-fcard__body { min-width: 0; }
.tsp-pc .tsp-pc-fcard__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; color: var(--pc-saff); }
.tsp-pc .tsp-pc-fcard__next { padding: 0 9px; border-radius: 999px; background: var(--pc-accent); color: var(--pc-on-accent); line-height: 1.7; }
.tsp-pc .tsp-pc-fcard__name { margin: 2px 0 0; font-family: var(--pc-display); font-size: 22px; font-weight: 700; line-height: 1.35; color: var(--pc-ink); }
.tsp-pc .tsp-pc-types { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.tsp-pc .tsp-pc-type { padding: 1px 9px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.6; border: 1px solid var(--pc-line-2); color: var(--pc-ink-2); background: var(--pc-paper); }
.tsp-pc .tsp-pc-type--festival { border-color: #e8c66c; background: var(--pc-saff-wash); color: #6b2410; }
.tsp-pc .tsp-pc-type--holiday { border-color: var(--pc-bad-line); background: var(--pc-bad-bg); color: var(--pc-bad); }
.tsp-pc .tsp-pc-fcard__rule { margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-fcard__acts { display: flex; flex-wrap: wrap; gap: 0 16px; margin-top: 6px; }
.tsp-pc .tsp-pc-fcard__acts a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-size: 14.5px; font-weight: 700; color: var(--pc-accent); text-decoration: none; }
.tsp-pc .tsp-pc-fcard__acts a:hover { color: var(--pc-accent); }
.tsp-pc .tsp-pc-fcard__acts a:hover span { text-decoration: underline; }
.tsp-pc .tsp-pc-fcard.is-past { background: #fdfbf6; }
.tsp-pc .tsp-pc-fcard.is-past .tsp-pc-fcard__num, .tsp-pc .tsp-pc-fcard.is-past .tsp-pc-fcard__name { color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-fcard__acts .tsp-pc-ico { width: 18px; height: 18px; }

/* -------------------------------------------------------------- 15. key tithis */
.tsp-pc .tsp-pc-lists { display: flex; flex-wrap: wrap; gap: 6px; }
.tsp-pc .tsp-pc-lists a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px;
	border: 1.5px solid var(--pc-line-2); background: #fff; font-size: 15px; font-weight: 700; color: var(--pc-ink-2); text-decoration: none;
}
.tsp-pc .tsp-pc-lists a:hover { border-color: var(--pc-accent); color: var(--pc-accent); }
.tsp-pc .tsp-pc-lists a[aria-current="page"] { background: var(--pc-accent); border-color: var(--pc-accent); color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-trows { display: flex; flex-direction: column; }
.tsp-pc .tsp-pc-trow {
	display: grid; grid-template-columns: 58px minmax(0, 1fr); grid-template-areas: "date body" "date tag";
	column-gap: 12px; row-gap: 6px; padding: 14px 10px; border-top: 1px solid var(--pc-line);
}
.tsp-pc .tsp-pc-trow:first-child { border-top: 0; }
.tsp-pc .tsp-pc-trow__date { grid-area: date; align-self: start; display: flex; flex-direction: column; align-items: center; padding: 2px 0 4px; border-radius: 10px; color: var(--pc-ink); text-decoration: none; }
.tsp-pc .tsp-pc-trow__date:hover { background: var(--pc-paper); color: var(--pc-ink); }
.tsp-pc .tsp-pc-trow__num { font-family: var(--pc-display); font-size: 32px; font-weight: 700; line-height: 1.05; color: var(--pc-accent); }
.tsp-pc .tsp-pc-trow__mo, .tsp-pc .tsp-pc-trow__wd { font-size: 12.5px; font-weight: 700; line-height: 1.4; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-trow__body { grid-area: body; min-width: 0; }
.tsp-pc .tsp-pc-trow__name { font-family: var(--pc-display); font-size: 20px; font-weight: 700; line-height: 1.4; color: var(--pc-ink); }
.tsp-pc .tsp-pc-trow__masa { font-size: 14px; font-weight: 600; color: var(--pc-gold-ink); }
.tsp-pc .tsp-pc-trow__win { display: grid; gap: 2px; margin-top: 6px; font-size: 15px; line-height: 1.55; }
.tsp-pc .tsp-pc-trow__win div { display: flex; flex-direction: column; }
.tsp-pc .tsp-pc-trow__win dt { font-size: 13px; font-weight: 700; line-height: 1.4; color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-trow__win dd { color: var(--pc-ink); }
.tsp-pc .tsp-pc-trow__vai { margin-top: 4px; font-size: 14px; font-weight: 700; color: var(--pc-good); }
.tsp-pc .tsp-pc-trow__tag { grid-area: tag; justify-self: start; padding: 1px 10px; border-radius: 999px; background: var(--pc-paper-2); font-size: 13px; font-weight: 700; line-height: 1.6; color: var(--pc-ink-2); }
.tsp-pc .tsp-pc-trow__tag.is-next { background: var(--pc-accent); color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-trow.is-past .tsp-pc-trow__num, .tsp-pc .tsp-pc-trow.is-past .tsp-pc-trow__name, .tsp-pc .tsp-pc-trow.is-past dd { color: var(--pc-ink-3); }
.tsp-pc .tsp-pc-trow.is-next { border-radius: 12px; border-top-color: transparent; background: linear-gradient(160deg, #fff4d6, #fffdf8 70%); box-shadow: 0 0 0 1.5px #e8c66c; }
.tsp-pc .tsp-pc-trow.is-next + .tsp-pc-trow { border-top-color: transparent; }
/* A long list starts with a jump over the rows already past to the next one. */
.tsp-pc .tsp-pc-tjump a {
	display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 14px;
	border-radius: 12px; border: 1px solid #e8c66c; background: var(--pc-saff-soft);
	font-size: 15px; line-height: 1.45; color: var(--pc-ink); text-decoration: none;
}
.tsp-pc .tsp-pc-tjump a:hover { border-color: var(--pc-accent); color: var(--pc-ink); }
.tsp-pc .tsp-pc-tjump__k { flex: none; padding: 0 9px; border-radius: 999px; background: var(--pc-accent); color: var(--pc-on-accent); font-size: 13px; font-weight: 700; line-height: 1.7; }
.tsp-pc .tsp-pc-tjump__t { flex: 1 1 auto; min-width: 0; font-weight: 700; }
.tsp-pc .tsp-pc-tjump .tsp-pc-ico { width: 18px; height: 18px; color: var(--pc-accent); }
.tsp-pc .tsp-pc-empty { padding: 12px 4px; color: var(--pc-ink-3); font-weight: 600; }

/* -------------------------------------------------------------- 16. homepage strip (mini) */
.tsp-pc.tsp-pc--mini { gap: 0; }
.tsp-pc .tsp-pc-mini {
	position: relative; overflow: hidden;
	display: grid; grid-template-columns: 46px minmax(0, 1fr); grid-template-areas: "seal k" "facts facts" "live live" "cta cta";
	column-gap: 12px; row-gap: 6px; align-items: center;
	padding: 14px 14px 14px; border-radius: 16px; text-decoration: none; color: var(--pc-on-accent);
	background-color: var(--pc-accent);
	background-image: radial-gradient(rgba(240, 217, 153, .2) 1px, rgba(240, 217, 153, 0) 1.6px), linear-gradient(100deg, rgba(0, 0, 0, 0) 55%, rgba(0, 0, 0, .18));
	background-size: 14px 14px, 100% 100%;
	box-shadow: 0 14px 28px -18px rgba(127, 29, 29, .9);
}
.tsp-pc .tsp-pc-mini__seal { grid-area: seal; display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--pc-night); box-shadow: 0 0 0 2px var(--pc-gold-lt), 0 0 0 5px rgba(240, 217, 153, .25); }
.tsp-pc .tsp-pc-mini__seal .tsp-pc-moon { width: 34px; height: 34px; }
.tsp-pc .tsp-pc-mini__seal .tsp-pc-moon__dark { fill: #4a3530; }
.tsp-pc .tsp-pc-mini__k { grid-area: k; font-family: var(--pc-display); font-size: 17px; font-weight: 700; line-height: 1.4; color: #fff8ea; }
.tsp-pc .tsp-pc-mini__k span { color: var(--pc-gold-lt); white-space: nowrap; }
.tsp-pc .tsp-pc-mini__facts { grid-area: facts; display: flex; flex-wrap: wrap; gap: 0 16px; font-size: 15.5px; line-height: 1.6; color: #fbecd0; }
.tsp-pc .tsp-pc-mini__facts .tsp-pc-n { color: #fff8ea; }
.tsp-pc .tsp-pc-mini__facts > span { position: relative; white-space: nowrap; }
.tsp-pc .tsp-pc-mini__facts > span + span::before { content: ""; position: absolute; left: -9px; top: .78em; width: 4px; height: 4px; border-radius: 50%; background: var(--pc-gold-lt); }
.tsp-pc .tsp-pc-mini__live { grid-area: live; display: none; justify-self: start; align-items: center; gap: 7px; padding: 3px 12px 3px 10px; border-radius: 999px; background: var(--pc-saff-wash); color: #5c1d0a; font-size: 14px; font-weight: 700; line-height: 1.45; }
.tsp-pc.is-live .tsp-pc-mini__live[data-state] { display: inline-flex; }
.tsp-pc .tsp-pc-mini__live i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--pc-bad); }
.tsp-pc .tsp-pc-mini__live[data-state="good"] i, .tsp-pc .tsp-pc-mini__live[data-state="clear"] i { background: var(--pc-good); }
.tsp-pc .tsp-pc-mini__cta {
	grid-area: cta; margin-top: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 16px;
	border-radius: 12px; border: 1.5px solid rgba(240, 217, 153, .6); color: #fff8ea; font-size: 15.5px; font-weight: 700; white-space: nowrap;
}
.tsp-pc .tsp-pc-mini__cta .tsp-pc-ico { width: 18px; height: 18px; }
.tsp-pc .tsp-pc-mini:hover { color: var(--pc-on-accent); }
.tsp-pc .tsp-pc-mini:hover .tsp-pc-mini__cta { background: rgba(255, 248, 234, .12); }
.tsp-pc .tsp-pc-mini:focus-visible { outline-color: var(--pc-accent); outline-offset: 3px; }
.tsp-pc .tsp-pc-mini__k .tsp-pc-mini__city { color: #fbecd0; }
.tsp-pc .tsp-pc-mini--none { grid-template-areas: "seal k" "note note"; }
.tsp-pc .tsp-pc-mini__note { grid-area: note; font-size: 15.5px; line-height: 1.6; color: #fbecd0; }

/* -------------------------------------------------------------- 16b. notice, block heading */
.tsp-pc .tsp-pc-heading { font-family: var(--pc-display); font-size: clamp(22px, 6cqi, 30px); font-weight: 700; line-height: 1.3; color: var(--pc-accent); }
.tsp-pc .tsp-pc-notice {
	display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 28px 18px; text-align: center;
	background-image: var(--pc-dots); background-size: 18px 18px; background-color: var(--pc-sheet);
}
.tsp-pc .tsp-pc-notice__seal {
	display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%;
	background: var(--pc-paper); color: var(--pc-accent);
	box-shadow: 0 0 0 1px var(--pc-gold), 0 0 0 4px var(--pc-sheet), 0 0 0 5px rgba(184, 137, 47, .45);
}
.tsp-pc .tsp-pc-notice__seal .tsp-pc-ico { width: 28px; height: 28px; }
.tsp-pc .tsp-pc-notice__txt { max-width: 34ch; font-family: var(--pc-display); font-size: 19px; font-weight: 700; line-height: 1.5; color: var(--pc-ink); }

/* -------------------------------------------------------------- 17. container sizes */
@container tsppc (min-width: 340px) {
	.tsp-pc .tsp-pc-daynav .tsp-pc-ico, .tsp-pc .tsp-pc-btns .tsp-pc-btn--line .tsp-pc-ico { display: block; }
	.tsp-pc .tsp-pc-locate { flex-direction: row; gap: 7px; width: auto; padding: 0 16px; border-radius: 999px; font-size: 14.5px; white-space: nowrap; }
}
@container tsppc (min-width: 360px) {
	.tsp-pc .tsp-pc-tl__ax.is-mid { display: block; }
}
@container tsppc (min-width: 400px) {
	.tsp-pc .tsp-pc-sheet__body { padding: 26px 22px 20px; }
	.tsp-pc .tsp-pc-sheet__moon .tsp-pc-moon { width: 40px; height: 40px; }
	.tsp-pc .tsp-pc-daynav { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
	.tsp-pc .tsp-pc-daynav .tsp-pc-btn--solid { grid-column: auto; order: 0; }
	.tsp-pc .tsp-pc-daynav .tsp-pc-btn--solid[aria-current="date"] { display: inline-flex; }
}
@container tsppc (min-width: 480px) {
	.tsp-pc .tsp-pc-cell { grid-template-columns: 44px 26px minmax(0, 1fr) auto; grid-template-areas: "date moon main marks"; }
	.tsp-pc .tsp-pc-cell__marks { flex-direction: column; align-items: flex-end; max-width: 180px; }
	.tsp-pc .tsp-pc-trow { grid-template-columns: 64px minmax(0, 1fr) auto; grid-template-areas: "date body tag"; align-items: start; }
	.tsp-pc .tsp-pc-trow__tag { justify-self: end; }
	.tsp-pc .tsp-pc-trow__win div { flex-direction: row; flex-wrap: wrap; gap: 0 8px; align-items: baseline; }
	.tsp-pc .tsp-pc-trow__win dt { min-width: 64px; font-size: 14px; }
}
@container tsppc (min-width: 560px) {
	.tsp-pc .tsp-pc-tab { flex-direction: row; gap: 8px; min-height: 52px; font-size: 15px; }
	.tsp-pc .tsp-pc-tab .tsp-pc-ico { width: 20px; height: 20px; }
	.tsp-pc .tsp-pc-tl { --tl-lbl: 132px; --tl-gap: 12px; padding: 18px 20px 14px; }
	.tsp-pc .tsp-pc-tl__lbl { font-size: 14.5px; }
	.tsp-pc .tsp-pc-tl__ax.is-minor { display: block; }
	.tsp-pc .tsp-pc-hora__body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	/* Two by two: WhatsApp | share card, then share | print. */
	.tsp-pc .tsp-pc-btns .tsp-pc-btn--wa, .tsp-pc .tsp-pc-btns .tsp-pc-btn--card { grid-column: auto; }
	.tsp-pc .tsp-pc-mini { grid-template-columns: 56px minmax(0, 1fr) auto; grid-template-areas: "seal k cta" "seal facts cta" "seal live cta"; row-gap: 2px; padding: 14px 16px; }
	.tsp-pc .tsp-pc-mini__seal { width: 56px; height: 56px; }
	.tsp-pc .tsp-pc-mini__seal .tsp-pc-moon { width: 40px; height: 40px; }
	.tsp-pc .tsp-pc-mini__cta { margin-top: 0; }
	.tsp-pc .tsp-pc-month__head { grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
	.tsp-pc .tsp-pc-month__title { grid-column: 2; grid-row: 1; }
	.tsp-pc .tsp-pc-month__prev { grid-column: 1; grid-row: 1; }
	.tsp-pc .tsp-pc-month__next { grid-column: 3; grid-row: 1; }
	.tsp-pc .tsp-pc-sun, .tsp-pc .tsp-pc-limbs { padding: 18px 20px; }
}
@container tsppc (min-width: 600px) {
	.tsp-pc .tsp-pc-times { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.tsp-pc .tsp-pc-times__col--bad { border-top: 0; border-left: 1px solid var(--pc-line); }
	.tsp-pc .tsp-pc-win__line > .tsp-pc-t { font-size: clamp(22px, 3.9cqi, 28px); }
	.tsp-pc .tsp-pc-up { flex-direction: row; align-items: stretch; }
	.tsp-pc .tsp-pc-fest { flex: 1.4 1 0; }
	.tsp-pc .tsp-pc-vrat { flex: 1 1 0; }
}
@container tsppc (min-width: 640px) {
	.tsp-pc .tsp-pc-sky { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
	.tsp-pc .tsp-pc-moonc { flex-direction: column; justify-content: center; text-align: center; }
	.tsp-pc .tsp-pc-moonc__rows { flex-direction: row; gap: 24px; }
	.tsp-pc .tsp-pc-moonc__rows dt { justify-content: center; }
	.tsp-pc .tsp-pc-moonc__moon { width: 104px; height: 104px; }
	.tsp-pc .tsp-pc-month { padding: 18px; }
	.tsp-pc .tsp-pc-cal__wds {
		display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-bottom: 6px; padding: 6px 0;
		border-top: 2px solid var(--pc-accent); border-bottom: 1px solid var(--pc-line);
		font-size: 13.5px; font-weight: 700; color: var(--pc-ink-2); text-align: center;
	}
	.tsp-pc .tsp-pc-cal__wds span:first-child { color: var(--pc-bad); }
	.tsp-pc .tsp-pc-cal__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
	.tsp-pc .tsp-pc-cal__pad { display: block; }
	.tsp-pc .tsp-pc-cal__grid > li { min-width: 0; }
	.tsp-pc .tsp-pc-cell {
		position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 1px; height: 100%;
		min-height: 112px; padding: 7px 8px 8px; border: 1px solid var(--pc-line); border-radius: 12px; background: #fff;
	}
	.tsp-pc .tsp-pc-cal__grid > li:first-child .tsp-pc-cell, .tsp-pc .tsp-pc-cal__pad + li .tsp-pc-cell, .tsp-pc .tsp-pc-cal__grid > li:has(.is-today) + li .tsp-pc-cell { border-top: 1px solid var(--pc-line); }
	.tsp-pc .tsp-pc-cell__date { flex-direction: row; align-items: baseline; }
	.tsp-pc .tsp-pc-cell__wd { display: none; }
	.tsp-pc .tsp-pc-cell__num { font-size: 22px; }
	.tsp-pc .tsp-pc-cell__moon { position: absolute; top: 9px; right: 8px; width: 20px; height: 20px; }
	/* Names wrap (English ones at syllable joins, by the renderer's soft hyphens); never an ellipsis. */
	.tsp-pc .tsp-pc-cell__tithi { font-size: 14px; overflow-wrap: break-word; }
	.tsp-pc .tsp-pc-cell__nak { font-size: 12.5px; overflow-wrap: break-word; }
	.tsp-pc .tsp-pc-cell__date { padding-right: 24px; }
	.tsp-pc .tsp-pc-cell__marks { flex-direction: column; align-items: stretch; max-width: none; margin-top: auto; padding-top: 4px; }
	.tsp-pc .tsp-pc-cell__marks:empty { display: flex; }
	.tsp-pc .tsp-pc-mk { padding: 0 6px; font-size: 12px; }
	.tsp-pc .tsp-pc-cell.is-fest { background: var(--pc-saff-soft); border-color: #f0d58f; }
	.tsp-pc .tsp-pc-cell.is-today { border-color: var(--pc-accent); }
	.tsp-pc .tsp-pc-cell.is-past { background: #fdfbf6; }
}
@container tsppc (min-width: 720px) {
	.tsp-pc .tsp-pc-city { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }
	.tsp-pc .tsp-pc-city__row { flex: 0 1 auto; }
	.tsp-pc .tsp-pc-city__pick { width: 300px; }
	.tsp-pc .tsp-pc-city__note { flex: 1 1 260px; margin: 0; }
	.tsp-pc .tsp-pc-city__msg { flex-basis: 100%; }
	.tsp-pc .tsp-pc-sheet__body { padding: 28px 28px 22px; }
	.tsp-pc .tsp-pc-tl { --tl-lbl: 150px; --tl-time: 200px; --tl-gap2: 14px; }
	.tsp-pc .tsp-pc-tl__grid { grid-template-columns: var(--tl-lbl) minmax(0, 1fr) var(--tl-time); }
	.tsp-pc .tsp-pc-tl__lane { margin-right: 0; }
	.tsp-pc .tsp-pc-tl__time { display: flex; flex-direction: column; grid-column: 3; align-self: center; padding-left: var(--tl-gap2); font-size: 14.5px; line-height: 1.45; color: var(--pc-ink-2); }
	.tsp-pc .tsp-pc-tl__time .tsp-pc-n { color: var(--pc-ink); }
	.tsp-pc .tsp-pc-share { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; }
	.tsp-pc .tsp-pc-share__k { grid-column: 1 / -1; }
	.tsp-pc .tsp-pc-share .tsp-pc-links { grid-column: 1 / -1; }
	.tsp-pc .tsp-pc-fcards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.tsp-pc .tsp-pc-fests, .tsp-pc .tsp-pc-tlist { padding: 18px 20px; }
	.tsp-pc .tsp-pc-trow__win { grid-template-columns: repeat(2, minmax(0, max-content)); column-gap: 24px; }
}
@container tsppc (min-width: 900px) {
	.tsp-pc .tsp-pc-limbs__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 12px; }
	.tsp-pc .tsp-pc-limb { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 4px 14px 6px; border-top: 0; border-left: 1px solid var(--pc-line); text-align: center; }
	.tsp-pc .tsp-pc-limb:first-child { border-left: 0; }
	.tsp-pc .tsp-pc-limb--tithi .tsp-pc-tape--mini, .tsp-pc .tsp-pc-limb--nakshatra .tsp-pc-tape--mini { display: block; }
	.tsp-pc .tsp-pc-limb__txt { width: 100%; }
	.tsp-pc .tsp-pc-limb__t { font-size: 14.5px; }
	.tsp-pc .tsp-pc-rasis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; margin-top: 14px; }
}
@container tsppc (min-width: 960px) {
	.tsp-pc .tsp-pc-today {
		display: grid; gap: 16px;
		grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
		grid-template-areas:
			"hero times"
			"hero up"
			"hero hora"
			"hero chog"
			"week week"
			"tl tl"
			"limbs limbs"
			"sky sky"
			"share method";
		grid-template-rows: auto auto auto 1fr;
		align-items: start;
	}
	.tsp-pc .tsp-pc-today > .tsp-pc-sheet { grid-area: hero; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times { grid-area: times; grid-template-columns: minmax(0, 1fr); }
	.tsp-pc .tsp-pc-today > .tsp-pc-up { grid-area: up; flex-direction: column; }
	.tsp-pc .tsp-pc-today > .tsp-pc-hora { grid-area: hora; }
	.tsp-pc .tsp-pc-today > .tsp-pc-hora.tsp-pc-chog { grid-area: chog; }
	.tsp-pc .tsp-pc-today > .tsp-pc-hora .tsp-pc-hora__body { padding: 0 12px 14px; gap: 10px; }
	.tsp-pc .tsp-pc-today > .tsp-pc-hora .tsp-pc-hora__body li { flex-direction: column; gap: 0; padding: 6px 8px; }
	.tsp-pc .tsp-pc-today > .tsp-pc-hora .tsp-pc-hora__body li span:last-child { text-align: left; }
	.tsp-pc .tsp-pc-today > .tsp-pc-week { grid-area: week; }
	.tsp-pc .tsp-pc-today > .tsp-pc-tl { grid-area: tl; }
	.tsp-pc .tsp-pc-today > .tsp-pc-limbs { grid-area: limbs; }
	.tsp-pc .tsp-pc-today > .tsp-pc-sky { grid-area: sky; }
	.tsp-pc .tsp-pc-today > .tsp-pc-share { grid-area: share; grid-template-columns: minmax(0, 1fr); }
	.tsp-pc .tsp-pc-today > .tsp-pc-method { grid-area: method; align-self: start; padding-top: 18px; text-align: left; }
	.tsp-pc .tsp-pc-today > .tsp-pc-method .tsp-pc-method__orn { margin-left: 0; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-times__col { padding: 16px 20px 8px; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-times__col--bad { border-left: 0; border-top: 1px solid var(--pc-line); }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-win { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-win__line { flex-direction: row-reverse; flex-wrap: nowrap; justify-content: flex-start; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-win__line > .tsp-pc-t { font-size: 26px; align-items: flex-end; }
	.tsp-pc .tsp-pc-today > .tsp-pc-times .tsp-pc-win__note { grid-column: 1 / -1; }
	.tsp-pc .tsp-pc-week__scroller { -webkit-mask-image: none; mask-image: none; padding: 10px 14px 6px; }
	.tsp-pc .tsp-pc-day { flex: 1 1 0; width: auto; min-width: 86px; }
	.tsp-pc .tsp-pc-day__num { font-size: 30px; }
	.tsp-pc .tsp-pc-day__moon { width: 28px; height: 28px; }
	.tsp-pc .tsp-pc-week__ctl { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; margin: 8px 20px 0; }
	.tsp-pc .tsp-pc-week .tsp-pc-h { padding: 0 20px; }
	.tsp-pc .tsp-pc-daynav { display: flex; }
	.tsp-pc .tsp-pc-jump__row { flex-wrap: nowrap; }
	.tsp-pc .tsp-pc-jump input { flex: 0 0 190px; }
	.tsp-pc .tsp-pc-cell { min-height: 120px; padding: 8px 10px 10px; }
	.tsp-pc .tsp-pc-cell__tithi { font-size: 15px; }
	.tsp-pc .tsp-pc-cell__nak { font-size: 13px; }
	.tsp-pc .tsp-pc-mk { font-size: 12.5px; }
}

/* -------------------------------------------------------------- 18. motion + print */
@media (prefers-reduced-motion: reduce) {
	.tsp-pc *, .tsp-pc *::before, .tsp-pc *::after { transition: none; animation: none; scroll-behavior: auto; }
}
/* Print: the page as a plain black-on-white sheet. Navigation, the live parts (now card, status
   words, needle, tapes) and buttons are left out. The id-weighted :not() below outranks every
   screen colour rule without an important-flag. */
@media print {
	.tsp-pc-wrap .tsp-pc :not(#tsp-pc-print):is(.tsp-pc-tabs, .tsp-pc-city, .tsp-pc-now, .tsp-pc-up, .tsp-pc-week, .tsp-pc-share,
		.tsp-pc-tape, .tsp-pc-tl__now, .tsp-pc-mini__live, .tsp-pc-win__tag, .tsp-pc-limb__now, .tsp-pc-hora__now, .tsp-pc-tjump,
		.tsp-pc-month__prev, .tsp-pc-month__next, .tsp-pc-month__foot .tsp-pc-btn, .tsp-pc-yrbar .tsp-pc-btn, .tsp-pc-fcard__acts,
		.tsp-pc-notice .tsp-pc-btn) { display: none; }
	.tsp-pc-wrap .tsp-pc .tsp-pc-tl__part:not(#tsp-pc-print) .tsp-pc-tl__grid { padding-top: 8px; }
	.tsp-pc-wrap .tsp-pc, .tsp-pc-wrap .tsp-pc :not(#tsp-pc-print) { color: #000; box-shadow: none; text-shadow: none; }
	.tsp-pc-wrap .tsp-pc :not(#tsp-pc-print):is(.tsp-pc-card, .tsp-pc-sheet, .tsp-pc-moonc, .tsp-pc-sun, .tsp-pc-sheet__band, .tsp-pc-sheet__body, .tsp-pc-fban,
		.tsp-pc-times__col, .tsp-pc-win, .tsp-pc-cell, .tsp-pc-mini, .tsp-pc-fcard, .tsp-pc-trow, .tsp-pc-chip, .tsp-pc-mk, .tsp-pc-badge, .tsp-pc-type,
		.tsp-pc-trow__tag, .tsp-pc-fcard__next, .tsp-pc-q, .tsp-pc-basis, .tsp-pc-earlier, .tsp-pc-hora__row) { background: #fff; border-color: #888; }
	.tsp-pc .tsp-pc-sheet__band::after, .tsp-pc .tsp-pc-fban::after, .tsp-pc .tsp-pc-sheet__body::before, .tsp-pc .tsp-pc-sheet__knot, .tsp-pc .tsp-pc-sheet__band::before { display: none; }
	.tsp-pc .tsp-pc-sheet__band { border-bottom: 2px solid #000; }
	.tsp-pc .tsp-pc-card, .tsp-pc .tsp-pc-sheet, .tsp-pc .tsp-pc-fcard, .tsp-pc .tsp-pc-trow, .tsp-pc .tsp-pc-cell { break-inside: avoid; }
	/* The timeline still reads on paper: inauspicious hatched black, auspicious solid black. */
	.tsp-pc-wrap .tsp-pc .tsp-pc-tl__lane:not(#tsp-pc-print) { background: #fff; box-shadow: inset 0 0 0 1px #888; }
	.tsp-pc-wrap .tsp-pc .tsp-pc-seg--bad:not(#tsp-pc-print) { background: repeating-linear-gradient(135deg, #000 0 2px, #fff 2px 5px); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
	.tsp-pc-wrap .tsp-pc .tsp-pc-seg--good:not(#tsp-pc-print) { background: #000; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ============================================================
   Shell alignment — v1.10.730 (owner, 2 Nov 2026: on a wide screen the
   panchangam page started left of the HOME button).

   The block sits in the theme's constrained page content, which is 1296px
   wide below 1536 and the tiered shell above it — wider than the editorial
   content edge every other page uses (the shell minus its 20px gutter:
   140px from the left at 1440, 230px at 1920, the same edge as HOME, the
   homepage hero and the category pages). The page title above the block sat
   in the theme's hero section, equally wide.

   Both are capped at that same content width and stay centred. Width only:
   no padding is added, so phones (where the theme's own side padding already
   makes the content narrower than the cap) are untouched. Specificity is
   (0,2,0) and (0,3,1) so the theme's :where() constrained-layout rule loses
   without !important.
   ============================================================ */
.entry-content .tsp-pc-wrap,
body:has(.tsp-pc-wrap) .hero-section.is-width-constrained {
	max-width: calc(var(--tsp-wrap, var(--tsp-shell, 1200px)) - 2 * var(--tsp-gutter, 20px));
	margin-inline: auto;
}
