/* ==========================================================================
   Compliance desk pages (hub, due dates, key numbers, acts, explainers, health check)
   Owner: COMPLIANCE+UPDATES agent. Every class is prefixed cx- (page-scoped).
   Finished state is the authored HTML; compliance.js only animates inside SD.mm.
   ========================================================================== */

/* ---------- Category colours (small marks only, never text) ---------- */
.cx-chip--pf { --chip: #0B6B3A; } .cx-chip--esi { --chip: #2A73C2; } .cx-chip--tds { --chip: #8F5300; }
.cx-chip--pt { --chip: #6C4AB6; } .cx-chip--lwf { --chip: #B42318; } .cx-chip--wages { --chip: #0E7490; } .cx-chip--returns { --chip: #5F7184; }
.cx-fchip--pf { --chip: #0B6B3A; } .cx-fchip--esi { --chip: #2A73C2; } .cx-fchip--tds { --chip: #8F5300; }
.cx-fchip--pt { --chip: #6C4AB6; } .cx-fchip--lwf { --chip: #B42318; } .cx-fchip--wages { --chip: #0E7490; } .cx-fchip--returns { --chip: #5F7184; }

/* ---------- Sections ---------- */
.cx-sec { padding-block: clamp(3.75rem, 2.2rem + 5.2vw, 7.5rem); overflow-x: clip; }
.cx-sec .section__head { margin-bottom: clamp(1.75rem, 1rem + 2.4vw, 3rem); }
.cx-sec .section__head .lead { font-size: var(--fs-md); max-width: 62ch; }
.cx-hero .phero__meta .badge { margin-inline: .15rem; }
.cx-hero .eyebrow { color: var(--fg-2); }

/* Hero totals register (hub, acts) */
.cx-totals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; margin: .75rem 0 0; border-top: 1px solid var(--rule-strong); border-bottom: 1px solid var(--rule); }
.cx-total { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: .35rem; padding: 1.1rem 1.25rem 1.2rem; border-left: 1px solid var(--rule); }
.cx-total:first-child { border-left: 0; padding-left: 0; }
.cx-total dt { font-size: var(--fs-sm); color: var(--fg-2); max-width: 24ch; line-height: 1.4; }
.cx-total dd { margin: 0; }
.cx-total__v { display: inline-block; font-family: var(--font-display); font-size: clamp(2.1rem, 1.3rem + 2.6vw, 3.6rem); font-weight: 560; line-height: 1; letter-spacing: -.02em; color: var(--fg); font-variant-numeric: tabular-nums lining-nums; }
@media (max-width: 759.98px) {
  .cx-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cx-total { padding: .9rem .9rem 1rem; }
  .cx-total:nth-child(odd) { border-left: 0; padding-left: 0; }
  .cx-total:nth-child(n+3) { border-top: 1px solid var(--rule); }
}

/* ---------- Hub: tools register ---------- */
.cx-hub { display: grid; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
@media (min-width: 1100px) { .cx-hub { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); } }
.cx-reg ol { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--fg); }
.cx-reg li { border-bottom: 1px solid var(--rule-strong); }
.cx-reg__row { position: relative; isolation: isolate; display: grid; grid-template-columns: 2.75rem 2.75rem minmax(0, 1fr) minmax(0, 1.1fr) 2rem; align-items: center; gap: 1rem; min-height: 5.25rem; padding: 1rem .5rem 1rem 0; color: var(--fg); text-decoration: none; }
.cx-reg__row::before { content: ""; position: absolute; inset: 0 -1rem; z-index: -1; background: var(--surface); border-radius: var(--r-sm); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-4) var(--ease-out); }
.cx-reg__row:hover::before, .cx-reg__row:focus-visible::before { transform: scaleX(1); }
.cx-reg__n { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fg-3); letter-spacing: .06em; }
.cx-reg__ic { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--rule-strong); border-radius: 10px; color: var(--green); background: var(--surface); }
.cx-reg__ic .icon { width: 20px; height: 20px; }
.cx-reg__name { font-family: var(--font-display); font-size: var(--fs-h4); font-weight: 600; letter-spacing: -.01em; line-height: 1.2; }
.cx-reg__d { color: var(--fg-2); font-size: var(--fs-sm); line-height: 1.45; }
.cx-reg__go { justify-self: end; color: var(--fg-3); transition: transform var(--dur-3) var(--ease-out), color var(--dur-2); }
.cx-reg__row:hover .cx-reg__go { transform: translateX(4px); color: var(--green); }
.cx-reg__row:hover .cx-reg__name { color: var(--green); }
@media (max-width: 759.98px) {
  .cx-reg__row { grid-template-columns: 2.5rem minmax(0, 1fr) 1.5rem; row-gap: .25rem; min-height: 0; padding-block: 1rem; }
  .cx-reg__n { display: none; }
  .cx-reg__ic { grid-row: span 2; width: 2.25rem; height: 2.25rem; }
  .cx-reg__name { grid-column: 2; font-size: var(--fs-h5); }
  .cx-reg__d { grid-column: 2; }
  .cx-reg__go { grid-column: 3; grid-row: 1 / span 2; }
}

/* Coming up (dark card; also the countdown on the due-date page) */
.cx-soon { position: relative; padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); border-radius: var(--r-lg); background: var(--ink); color: var(--fg); overflow: hidden; box-shadow: var(--shadow-dark); }
.cx-soon__k { color: var(--fg-3); }
.cx-soon__h { margin: .35rem 0 1rem; font-size: var(--fs-h4); }
.cx-soon__h .hi { font-size: .6em; color: var(--fg-3); font-weight: 400; margin-left: .35rem; }
.cx-soon .upc { border-top: 1px solid var(--rule-strong); }
.cx-soon .upc li { grid-template-columns: 4.25rem minmax(0, 1fr); padding: .85rem 0; border-bottom-color: var(--rule); color: var(--fg-2); }
.cx-soon .upc time { color: var(--mint); font-weight: 600; font-size: .8rem; }
.cx-soon .upc a { color: var(--mint); }
.cx-soon .upc li:first-of-type:not([hidden]) span { color: var(--fg); }
.cx-in { display: inline-flex; align-items: center; gap: .35rem; margin-top: .35rem; font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-3); }
.cx-in::before { content: ""; width: 14px; height: 1px; background: currentColor; }
.cx-in.is-soon { color: var(--mint); }
.cx-soon .upc li > span { display: flex; flex-direction: column; align-items: flex-start; }
.cx-soon__more { margin-top: 1.1rem; color: var(--mint); font-weight: 600; font-size: var(--fs-sm); }
.cx-soon--sticky { position: sticky; top: calc(var(--header-h) + 16px); }
.cx-soon .tag.v, .cx-soon .badge--warning { background: rgba(255, 196, 120, .14); color: #FFC98A; }

/* What's new rail */
.cx-rail { position: relative; list-style: none; margin: 0; padding: 0 0 0 0; max-width: 980px; }
.cx-rail::before { content: ""; position: absolute; left: 9.5rem; top: .6rem; bottom: .6rem; width: 1px; background: var(--rule-strong); transform-origin: top; }
.cx-rail__item { position: relative; display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: 2rem; padding: 1.1rem 0; border-bottom: 1px solid var(--rule); }
.cx-rail__item::before { content: ""; position: absolute; left: calc(9.5rem - 5px); top: 1.55rem; width: 11px; height: 11px; border-radius: 50%; background: var(--surface); border: 2px solid var(--green); }
.cx-rail__item:first-child::before { background: var(--green); box-shadow: 0 0 0 4px rgba(11, 93, 67, .14); }
.cx-rail__date { font-family: var(--font-mono); font-size: .8rem; font-weight: 600; color: var(--fg-2); padding-top: .15rem; }
.cx-rail__text { font-size: var(--fs-md); line-height: 1.55; margin-left: 1.25rem; }
.cx-rail__text a { color: var(--link); }
.cx-rail__text .tag { vertical-align: .1em; }
.cx-new__foot { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; margin-top: 1.75rem; font-weight: 600; font-size: var(--fs-sm); }
.cx-new__foot a { color: var(--link); }
.cx-new:focus { outline: none; }
@media (max-width: 639.98px) {
  .cx-rail::before { left: 5px; }
  .cx-rail__item { grid-template-columns: minmax(0, 1fr); gap: .3rem; padding-left: 1.75rem; }
  .cx-rail__item::before { left: 0; top: 1.3rem; }
  .cx-rail__text { margin-left: 0; font-size: 1rem; }
}

/* Latest analysis ledger */
.cx-analysis { border-top: 2px solid var(--fg); margin-bottom: 1.25rem; }
.cx-analysis li { grid-template-columns: 8.5rem minmax(0, 1fr); gap: .25rem 2rem; padding: 1.25rem 0; }
.cx-an__main { display: block; }
.cx-an__main > a { color: var(--fg); text-decoration: none; font-size: var(--fs-h5); line-height: 1.35; }
.cx-an__main > a:hover { color: var(--green); text-decoration: underline; text-underline-offset: .2em; }
.cx-an__main > a strong { font-weight: 600; }
.cx-an__sum { display: block; margin-top: .45rem; color: var(--fg-2); font-size: var(--fs-sm); max-width: 78ch; }
.cx-cta { margin-top: clamp(2.5rem, 1.5rem + 3vw, 4rem); }

/* ---------- Closing chapter: compliance-desk register + CTA ---------- */
.cx-close { display: grid; gap: clamp(2rem, 1rem + 3vw, 3.5rem); align-items: start; }
@media (min-width: 1100px) { .cx-close { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); } .cx-close__cta { position: sticky; top: calc(var(--header-h) + 24px); } }
.cx-tools__h { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); padding-bottom: .9rem; border-bottom: 2px solid var(--fg); }
.cx-tools__list { list-style: none; margin: 0; padding: 0; }
.cx-tools__list li { border-bottom: 1px solid var(--rule); }
.cx-tool { position: relative; display: grid; grid-template-columns: 2.25rem 1.5rem minmax(0, 13rem) minmax(0, 1fr) 1.25rem; align-items: center; gap: .9rem; min-height: 3.5rem; padding: .7rem 0; color: var(--fg); text-decoration: none; }
.cx-tool__n { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--fg-3); }
.cx-tool__ic { width: 18px; height: 18px; color: var(--fg-3); }
.cx-tool__name { font-weight: 600; }
.cx-tool__d { font-size: var(--fs-sm); color: var(--fg-2); }
.cx-tool__go { width: 16px; height: 16px; color: var(--fg-3); transition: transform var(--dur-3) var(--ease-out); }
.cx-tool:hover .cx-tool__name { color: var(--green); }
.cx-tool:hover .cx-tool__go { transform: translateX(3px); color: var(--green); }
.cx-tool[aria-current="page"] { box-shadow: inset 3px 0 0 var(--green); padding-left: .75rem; }
.cx-tool[aria-current="page"] .cx-tool__name, .cx-tool[aria-current="page"] .cx-tool__ic { color: var(--green); }
.cx-tool[aria-current="page"]::after { content: "You are here"; position: absolute; right: 2.25rem; top: 50%; transform: translateY(-50%); font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: .08em; text-transform: uppercase; color: var(--green); background: var(--success-bg); padding: .2rem .5rem; border-radius: var(--r-pill); }
.cx-tool[aria-current="page"] .cx-tool__d { visibility: hidden; }
@media (max-width: 759.98px) {
  .cx-tool { grid-template-columns: 1.5rem minmax(0, 1fr) 1.25rem; row-gap: .1rem; }
  .cx-tool__n { display: none; }
  .cx-tool__ic { grid-row: span 2; }
  .cx-tool__name, .cx-tool__d { grid-column: 2; }
  .cx-tool__go { grid-column: 3; grid-row: 1 / span 2; }
  .cx-tool[aria-current="page"] .cx-tool__d { visibility: visible; }
  .cx-tool[aria-current="page"]::after { display: none; }
}

/* ---------- Due dates: toolbar ---------- */
.cx-bar { display: grid; gap: .9rem; margin-bottom: 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--rule); border-radius: var(--r-lg); background: var(--paper); }
.cx-bar__row { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.25rem; }
.cx-bar__k { font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); margin-right: .25rem; }
.cx-seg { display: inline-flex; padding: 3px; border: 1px solid var(--rule-strong); border-radius: var(--r-pill); background: var(--surface); }
.cx-seg__b { min-height: 38px; padding: 0 1rem; border-radius: var(--r-pill); font-size: var(--fs-sm); font-weight: 600; color: var(--fg-2); transition: background-color var(--dur-2), color var(--dur-2); }
.cx-seg__b[aria-pressed="true"] { background: var(--ink); color: #fff; }
.cx-seg__b:hover:not([aria-pressed="true"]) { color: var(--fg); }
.cx-month-filter { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; font-size: var(--fs-sm); }
.cx-month-filter select { min-height: 44px; padding: .5rem 2.4rem .5rem .9rem; border: 1px solid var(--rule-strong); border-radius: var(--r-sm); background-color: var(--surface); color: var(--fg); font-size: .95rem; appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 20px) 55%, calc(100% - 15px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }
.cx-month-filter select:focus-visible { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(11, 93, 67, .2); }
#monthCount { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fg-2); }
.cx-fchips { gap: .4rem; }
.cx-fchip { display: inline-flex; align-items: center; gap: .45rem; min-height: 34px; padding: 0 .8rem; border: 1px solid var(--rule-strong); border-radius: var(--r-pill); background: var(--surface); font-size: .82rem; font-weight: 500; color: var(--fg); transition: background-color var(--dur-2), border-color var(--dur-2), color var(--dur-2); }
.cx-fchip i { width: 8px; height: 8px; border-radius: 2px; background: var(--chip, var(--fg-3)); }
.cx-fchip:hover { border-color: var(--fg-3); }
.cx-fchip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.cx-fchip[aria-pressed="true"] i { box-shadow: 0 0 0 2px rgba(255, 255, 255, .85); }
html.no-js .cx-bar .cx-seg, html.no-js .cx-fchips { display: none; }

/* ---------- Due dates: the board ---------- */
.cx-board { position: relative; display: grid; gap: 1rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
.cx-every { padding: .9rem 1rem 1rem; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--paper); }
.cx-every__head, .cx-month__head { display: flex; align-items: baseline; gap: .5rem; }
.cx-every__head { margin-bottom: .7rem; }
.cx-every__name, .cx-month__name { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--fg); }
.cx-every__n, .cx-month__y { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--fg-3); letter-spacing: .04em; }
.cx-every__chips, .cx-month__chips { list-style: none; margin: 0; padding: 0; }
.cx-every__chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.cx-fy { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); grid-auto-flow: row; }
.cx-fy__months { display: contents; list-style: none; }
.cx-fy__half { grid-column: 1 / -1; display: flex; align-items: center; gap: .75rem; padding: .9rem 0 .5rem; font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); order: 0; }
.cx-fy__half::after { content: ""; flex: 1; height: 1px; background: var(--rule-strong); }
.cx-fy__half--2 { order: 2; margin-top: .5rem; }
.cx-month { order: 1; position: relative; min-width: 0; min-height: 11.5rem; padding: 0 .55rem 1rem; border-left: 1px solid var(--ledger-line); cursor: pointer; }
.cx-month.is-h2 { order: 3; }
.cx-month:nth-child(6n+1) { border-left: 0; padding-left: 0; }
.cx-month__head { padding: .55rem 0 .65rem; border-bottom: 1px solid var(--rule); margin-bottom: .55rem; }
.cx-month__n { margin-left: auto; min-width: 1.5rem; height: 1.5rem; display: inline-grid; place-items: center; border-radius: var(--r-pill); background: var(--surface-2); font-family: var(--font-mono); font-size: var(--fs-2xs); font-weight: 600; color: var(--fg-2); }
.cx-month:hover .cx-month__name { color: var(--green); }
.cx-month.is-now .cx-month__head { border-bottom-color: var(--saffron); }
.cx-month__chips { display: flex; flex-direction: column; gap: .35rem; }
.cx-chip { position: relative; display: flex; align-items: flex-start; gap: .45rem; min-width: 0; padding: .45rem .55rem; border: 1px solid var(--rule); border-radius: 8px; background: var(--surface); font-size: .78rem; line-height: 1.3; color: var(--fg); box-shadow: var(--shadow-1); }
.cx-chip::before { content: ""; flex: none; width: 7px; height: 7px; margin-top: .3em; border-radius: 2px; background: var(--chip, var(--green)); }
.cx-chip__day { flex: none; font-family: var(--font-mono); font-size: .72rem; font-weight: 600; color: var(--fg-2); min-width: 2.2em; }
.cx-chip__t { min-width: 0; font-weight: 500; overflow-wrap: anywhere; }
.cx-chip__full { display: none; }
.cx-chip__date { display: block; font-family: var(--font-mono); font-size: .75rem; font-weight: 600; color: var(--fg-2); margin-bottom: .15rem; }
.cx-board[data-view="month"] .cx-month .cx-chip__day { display: none; }
.cx-every .cx-chip { font-size: .76rem; padding: .35rem .55rem; }
.cx-chip.is-past { background: transparent; border-style: dashed; border-color: var(--rule-strong); box-shadow: none; color: var(--fg-2); }
.cx-chip.is-past::before { opacity: .55; }
.cx-chip.is-next { border-color: var(--green); box-shadow: 0 0 0 3px rgba(11, 93, 67, .13); }
.cx-chip.is-next .cx-chip__day { color: var(--green); }
.cx-chip.is-out { display: none; }
.cx-today { order: 0; display: flex; align-items: center; gap: .4rem; margin: .1rem 0; font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .04em; color: var(--fg); white-space: nowrap; }
.cx-today::after { content: ""; flex: 1; height: 1px; background: rgba(224, 120, 42, .55); }
.cx-today i { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--saffron); box-shadow: 0 0 0 3px rgba(224, 120, 42, .18); }
.cx-board__empty { padding: 1.25rem; border: 1px dashed var(--rule-strong); border-radius: var(--r-md); color: var(--fg-2); text-align: center; }
@media (max-width: 1099.98px) {
  .cx-fy { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cx-month:nth-child(6n+1) { border-left: 1px solid var(--ledger-line); padding-left: .55rem; }
  .cx-month:nth-child(3n+1) { border-left: 0; padding-left: 0; }
  .cx-month { min-height: 0; }
}
@media (max-width: 599.98px) {
  .cx-fy { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cx-month:nth-child(3n+1) { border-left: 1px solid var(--ledger-line); padding-left: .45rem; }
  .cx-month:nth-child(odd) { border-left: 0; padding-left: 0; }
  .cx-month { padding-right: .45rem; }
  .cx-chip { font-size: .74rem; padding: .4rem .45rem; gap: .35rem; }
  .cx-chip__day { min-width: 0; }
  .cx-bar { padding: .9rem; }
}

/* Month view: every-month list beside the chosen month, with full text */
.cx-board[data-view="month"] .cx-fy__half, .cx-board[data-view="month"] .cx-month:not(.is-sel) { display: none; }
.cx-board[data-view="month"] .cx-fy { grid-template-columns: minmax(0, 1fr); }
.cx-board[data-view="month"] .cx-month { border-left: 0; padding: 0; cursor: default; min-height: 0; }
.cx-board[data-view="month"] .cx-month__head { padding-top: 1rem; }
.cx-board[data-view="month"] .cx-month__name { font-size: var(--fs-sm); }
.cx-board[data-view="month"] .cx-every { background: transparent; border: 0; padding: 0; }
.cx-board[data-view="month"] .cx-every__head { padding: 1rem 0 .65rem; border-bottom: 1px solid var(--rule); margin-bottom: .55rem; }
.cx-board[data-view="month"] .cx-every__name { font-size: var(--fs-sm); }
.cx-board[data-view="month"] .cx-every__chips { flex-direction: column; gap: .4rem; }
.cx-board[data-view="month"] .cx-chip { font-size: .9rem; padding: .7rem .85rem; gap: .7rem; }
.cx-board[data-view="month"] .cx-chip__day { font-size: .8rem; min-width: 4.2rem; }
.cx-board[data-view="month"] .cx-chip__t { display: none; }
.cx-board[data-view="month"] .cx-chip__full { display: block; min-width: 0; line-height: 1.5; }
.cx-board[data-view="month"] .cx-chip__full em { display: block; margin-top: .2rem; font-style: normal; font-size: .8rem; color: var(--fg-2); }
.cx-board[data-view="month"] .cx-month__chips { gap: .4rem; }
.cx-board[data-view="month"] .cx-today { font-size: 11.5px; margin: .2rem 0; }
.cx-board[data-view="month"] .cx-fy { order: -1; }
@media (min-width: 900px) { .cx-board[data-view="month"] { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2.5rem; } }
@media (max-width: 599.98px) { .cx-board[data-view="month"] .cx-chip__day { min-width: 2.6rem; } .cx-board[data-view="month"] .cx-chip { padding: .6rem .7rem; gap: .5rem; font-size: .88rem; } }

.cx-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; margin: 1.1rem 0 1.75rem; padding: 0; list-style: none; font-size: var(--fs-xs); color: var(--fg-2); }
.cx-legend__i { display: inline-flex; align-items: center; gap: .4rem; }
.cx-legend__i i { width: 8px; height: 8px; border-radius: 2px; background: var(--chip); }
.cx-legend__today i { border-radius: 50%; background: var(--saffron); }
.cx-annual:focus { outline: none; }

/* Tables (restyled registers) */
.cx-tbl { border-radius: var(--r-md); background: var(--surface); }
.cx-tbl table { font-size: .9rem; }
.cx-tbl tbody tr { transition: background-color var(--dur-2); }
.cx-tbl tbody tr:hover { background: var(--surface-2); }
.cx-tbl tbody tr.is-out { display: none; }
.cx-tbl tbody th.d { color: var(--green); }
.cx-tbl--events td:first-child { font-weight: 600; }
.cx-ev__dl strong { color: var(--green); }
@media (max-width: 639.98px) {
  .cx-tbl table, .cx-tbl thead, .cx-tbl tbody, .cx-tbl tr, .cx-tbl th, .cx-tbl td { display: block; }
  .cx-tbl thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .cx-tbl tbody tr { padding: .8rem 1rem; border-bottom: 1px solid var(--rule); }
  .cx-tbl tbody tr[hidden], .cx-tbl tbody tr.is-out { display: none; }
  .cx-tbl tbody tr:last-child { border-bottom: 0; }
  .cx-tbl th, .cx-tbl td { padding: .1rem 0; border: 0 !important; }
  .cx-tbl .d { white-space: normal; }
  .cx-tbl caption { display: block; }
}

/* Every month: day ruler */
.cx-monthly { display: grid; gap: clamp(2rem, 1rem + 3vw, 3.5rem); align-items: start; }
@media (min-width: 1100px) { .cx-monthly { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); } }
.cx-monthly__main { min-width: 0; }
.cx-monthly__main:focus, #upcoming:focus, #events:focus { outline: none; }
.cx-ruler { position: relative; margin: 0 0 1.75rem; padding: 3.4rem 0 0; }
.cx-ruler__track { position: relative; height: 22px; border-bottom: 2px solid var(--fg); }
.cx-ruler__track i { position: absolute; left: calc(var(--x) * 100%); bottom: 0; width: 1px; height: 8px; background: var(--rule-strong); transform-origin: bottom; }
.cx-ruler__track i.is-major { height: 16px; background: var(--fg-3); }
.cx-ruler__marks { position: absolute; inset: 0 0 auto; height: 3.4rem; margin: 0; padding: 0; list-style: none; }
.cx-ruler__mark { position: absolute; left: calc(var(--x) * 100%); bottom: -22px; display: flex; flex-direction: column; align-items: center; gap: .25rem; transform: translateX(-50%); }
.cx-ruler__mark::after { content: ""; width: 2px; height: 22px; background: var(--green); }
.cx-ruler__mark.is-pay::after { background: var(--blue-700); }
.cx-ruler__day { font-family: var(--font-mono); font-size: var(--fs-2xs); font-weight: 600; color: var(--fg); white-space: nowrap; }
.cx-ruler__n { display: grid; place-items: center; min-width: 1.6rem; height: 1.6rem; padding: 0 .3rem; border-radius: var(--r-pill); background: var(--green); color: #fff; font-family: var(--font-mono); font-size: var(--fs-2xs); font-weight: 600; }
.cx-ruler__mark.is-pay .cx-ruler__n { background: var(--blue-700); }
.cx-ruler__mark:last-child { transform: translateX(-80%); }
.cx-ruler__cap { display: flex; justify-content: space-between; margin-top: .5rem; font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--fg-3); letter-spacing: .06em; text-transform: uppercase; }
.cx-ruler { padding-top: 5rem; }
.cx-ruler__marks { height: 5rem; }
.cx-ruler__mark:nth-child(even) { bottom: calc(-22px + 1.55rem); }
.cx-ruler__mark:nth-child(even)::after { height: calc(22px + 1.55rem); margin-bottom: -1.55rem; }
@media (max-width: 599.98px) {
  .cx-ruler__day { font-size: 10px; }
  .cx-ruler__n { min-width: 1.35rem; height: 1.35rem; font-size: 10px; }
}

/* ---------- Key numbers ---------- */
.cx-idx { width: 100%; margin-top: .75rem; }
.cx-idx ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule-strong); }
.cx-idx li { border-bottom: 1px solid var(--rule); }
.cx-idx a { display: grid; gap: .15rem; padding: .8rem .9rem .8rem 0; color: var(--fg); text-decoration: none; min-height: 44px; }
.cx-idx__v { font-family: var(--font-mono); font-size: .92rem; font-weight: 600; color: var(--mint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-idx__t { font-size: var(--fs-xs); color: var(--fg-2); }
.cx-idx a:hover .cx-idx__t { color: var(--fg); text-decoration: underline; text-underline-offset: .2em; }
.cx-register { border-top: 2px solid var(--fg); }
.cx-kn { display: grid; grid-template-columns: 3rem minmax(0, 1fr) minmax(0, 1.15fr); gap: 1rem clamp(1.5rem, .5rem + 3vw, 4rem); padding: clamp(1.5rem, 1rem + 1.5vw, 2.5rem) 0; border-bottom: 1px solid var(--rule-strong); scroll-margin-top: calc(var(--header-h) + 16px); }
.cx-kn:focus { outline: none; }
.cx-kn:target .cx-kn__t, .cx-kn:focus .cx-kn__t { color: var(--green); }
.cx-kn__n { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fg-3); padding-top: .35rem; }
.cx-kn__head, .cx-kn__body { min-width: 0; }
.cx-kn__head { display: grid; gap: .6rem; align-content: start; }
.cx-kn__t { font-size: var(--fs-h5); font-weight: 600; letter-spacing: -.005em; color: var(--fg-2); }
.cx-kn__big { font-family: var(--font-display); font-size: clamp(2.2rem, 1.3rem + 2.8vw, 3.9rem); font-weight: 560; line-height: 1.02; letter-spacing: -.02em; color: var(--fg); font-variant-numeric: tabular-nums lining-nums; overflow-wrap: anywhere; }
.cx-kn__body { font-size: var(--fs-md); line-height: 1.6; color: var(--fg-2); padding-top: .3rem; max-width: 60ch; }
.cx-kn__body strong { color: var(--fg); font-weight: 600; }
.cx-kn__body p + p, .cx-kn__body .mt4 { margin-top: .75rem; }
.cx-kn--wide .cx-kn__body { max-width: none; }
@media (min-width: 860px) { .cx-kn--wide { grid-template-columns: 3rem minmax(0, 1fr) minmax(0, 1.15fr); } .cx-kn--wide .cx-kn__body { grid-column: 2 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 1rem clamp(1.5rem, .5rem + 3vw, 4rem); align-items: start; } .cx-kn--wide .cx-slabs { max-width: none; } }
@media (max-width: 859.98px) {
  .cx-slab__bar { width: calc(var(--w) * 5.5rem); }
  .cx-kn { grid-template-columns: 2.25rem minmax(0, 1fr); }
  .cx-kn__body { grid-column: 2; font-size: 1rem; }
}
/* PF / ESI split bars */
.cx-split { display: grid; gap: .55rem; margin-top: 1.25rem; padding: 1rem; border: 1px solid var(--rule); border-radius: var(--r-md); background: var(--surface); }
.cx-split__row { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); align-items: center; gap: .75rem; }
.cx-split__who { font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: .08em; text-transform: uppercase; color: var(--fg-2); }
.cx-split__bar { --max: 12; display: flex; height: 30px; border-radius: 6px; background: repeating-linear-gradient(90deg, var(--surface-2) 0 calc(100% / 12 - 1px), var(--rule) calc(100% / 12 - 1px) calc(100% / 12)); overflow: hidden; }
.cx-split__bar--esi { --max: 4; background: repeating-linear-gradient(90deg, var(--surface-2) 0 calc(100% / 4 - 1px), var(--rule) calc(100% / 4 - 1px) calc(100% / 4)); }
.cx-split__seg { display: flex; align-items: center; justify-content: flex-start; width: calc(var(--w) / var(--max) * 100%); padding: 0 .55rem; font-style: normal; font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: #fff; white-space: nowrap; overflow: hidden; transform-origin: left; }
.cx-split__seg--emp { background: var(--blue-700); }
.cx-split__seg--eps { background: var(--green); }
.cx-split__seg--epf { background: #0E7490; }
.cx-split__cap { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--fg-3); letter-spacing: .04em; margin-top: .15rem; }
/* Tax slabs staircase */
.cx-slabs { width: 100%; max-width: 38rem; border-collapse: collapse; font-size: .95rem; margin-top: .25rem; }
.cx-slabs td { padding: .55rem 0; border-bottom: 1px solid var(--rule); color: var(--fg); }
.cx-slabs td:first-child { color: var(--fg-2); }
.cx-slab__v { display: inline-block; min-width: 3.2em; }
.cx-slab__r { width: 60%; font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.cx-slab__bar { display: inline-block; vertical-align: middle; width: calc(var(--w) * 12rem); height: 8px; margin-left: .75rem; border-radius: 2px; background: linear-gradient(90deg, var(--mint), var(--green)); transform-origin: left; }
.cx-source { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline; margin-top: 1.75rem; padding: 1rem 1.1rem; border: 1px dashed var(--rule-strong); border-radius: var(--r-md); font-size: var(--fs-sm); color: var(--fg-2); }

/* ---------- Acts ---------- */
.cx-bars { white-space: nowrap; }
.cx-bars__v { display: inline-block; min-width: 2.5ch; text-align: right; }
.cx-bars__b { display: inline-block; vertical-align: middle; width: calc(var(--w) * 7rem); height: 7px; margin-left: .6rem; border-radius: 2px; background: var(--green); transform-origin: left; }
.cx-forms { display: grid; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
@media (min-width: 1000px) { .cx-forms { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); } }
.cx-fbt__h, .cx-fact__h { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); padding-bottom: .9rem; border-bottom: 1px solid var(--rule-strong); }
.cx-fbt__list { list-style: none; margin: 0; padding: 0; }
.cx-fbt__row { display: grid; grid-template-columns: 6.5rem 8.5rem minmax(0, 1fr); align-items: center; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.cx-fbt__v { font-family: var(--font-display); font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.6rem); font-weight: 560; line-height: 1; color: var(--fg); font-variant-numeric: tabular-nums; }
.cx-fbt__t { color: var(--fg-2); }
.cx-fbt__bar { display: block; height: 12px; border-radius: 3px; background: rgba(111, 209, 165, .08); overflow: hidden; }
.cx-fbt__bar i { display: block; height: 100%; width: calc(var(--w) * 100%); background: linear-gradient(90deg, rgba(111, 209, 165, .55), var(--mint)); border-radius: 3px; transform-origin: left; }
.cx-fbt__note { margin-top: 1rem; font-size: var(--fs-sm); color: var(--fg-2); }
.cx-facts { display: grid; gap: 1.25rem; }
.cx-fact { padding: 1.25rem 1.35rem 1.4rem; border: 1px solid var(--rule-strong); border-radius: var(--r-lg); background: var(--ink-2); }
.cx-fact .small { color: var(--fg-2); line-height: 1.6; }
.cx-fact strong { color: var(--fg); }
.cx-fact__big { display: flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .6rem; margin: 1rem 0 .75rem; }
.cx-fact__big .num { font-family: var(--font-display); font-size: clamp(2rem, 1.5rem + 1.5vw, 2.9rem); font-weight: 560; line-height: 1; color: var(--mint); }
.cx-fact__big small { font-size: var(--fs-sm); color: var(--fg-2); margin-right: .9rem; }
@media (max-width: 599.98px) {
  .cx-fbt__row { grid-template-columns: 5.25rem minmax(0, 1fr); row-gap: .5rem; }
  .cx-fbt__bar { grid-column: 1 / -1; }
}

/* ---------- Explainers: document with contents rail ---------- */
.cx-doc { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 1000px) { .cx-doc { grid-template-columns: 17rem minmax(0, 46rem); gap: clamp(3rem, 1rem + 5vw, 7rem); } .cx-toc { position: sticky; top: calc(var(--header-h) + 24px); } }
.cx-toc__h { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); padding-bottom: .75rem; border-bottom: 2px solid var(--fg); }
.cx-toc ol { list-style: none; margin: 0; padding: 0; }
.cx-toc li { border-bottom: 1px solid var(--rule); }
.cx-toc a { position: relative; display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .25rem; align-items: baseline; min-height: 44px; padding: .6rem .5rem .6rem 0; color: var(--fg-2); text-decoration: none; font-size: var(--fs-sm); line-height: 1.35; transition: color var(--dur-2), padding var(--dur-3) var(--ease-out); }
.cx-toc a:hover { color: var(--fg); }
.cx-toc__n { font-family: var(--font-mono); font-size: var(--fs-2xs); color: var(--fg-3); }
.cx-toc a.is-active { color: var(--fg); font-weight: 600; padding-left: .6rem; box-shadow: inset 2px 0 0 var(--green); }
.cx-toc a.is-active .cx-toc__n { color: var(--green); }
@media (max-width: 999.98px) { .cx-toc ol { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); column-gap: 1.5rem; } }
.cx-ex { position: relative; padding: clamp(2rem, 1.5rem + 1.5vw, 3rem) 0; border-bottom: 1px solid var(--rule); scroll-margin-top: calc(var(--header-h) + 16px); }
.cx-ex:first-child { padding-top: 0; }
.cx-ex:focus { outline: none; }
.cx-ex__n { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--green); letter-spacing: .08em; margin-bottom: .6rem; }
.cx-ex__t { font-size: var(--fs-h3); letter-spacing: -.012em; margin-bottom: 1rem; }
.cx-ex__p { font-size: var(--fs-md); line-height: 1.75; color: var(--fg); max-width: 68ch; }
.cx-ex__p a { color: var(--link); }

/* ---------- Health check: stepped instrument ---------- */
.cx-sec--hc { padding-top: clamp(2.5rem, 1.5rem + 3vw, 4.5rem); }
.cx-hc { display: grid; gap: clamp(1.5rem, 1rem + 2vw, 3rem); align-items: start; }
@media (min-width: 1000px) { .cx-hc { grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr); } .cx-hc__side { position: sticky; top: calc(var(--header-h) + 16px); } }
@media (min-width: 900px) and (max-width: 999.98px) { .hc.cx-hc { grid-template-columns: minmax(0, 1fr); } .hc.cx-hc .score { position: static; } }
.cx-hc__form { padding: clamp(1.1rem, .8rem + 1.2vw, 2rem); border: 1px solid var(--rule); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-1); }
.cx-hc__top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-bottom: .9rem; border-bottom: 2px solid var(--fg); }
.cx-hc__prog { font-family: var(--font-mono); font-size: var(--fs-xs); color: var(--fg-2); }
.cx-hc__prog span { color: var(--fg); font-weight: 600; }
.hc .cx-steps { position: relative; }
.hc .cx-steps::before { content: ""; position: absolute; left: 17px; top: 1.6rem; bottom: 1.6rem; width: 1px; background: var(--rule-strong); }
.hc .cx-steps > li.cx-step { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 1rem; border-bottom: 1px solid var(--rule); }
.hc .cx-steps > li.cx-step:last-child { border-bottom: 0; }
.cx-step__node { position: relative; z-index: 1; align-self: start; margin-top: 1.1rem; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--rule-strong); background: var(--surface); font-family: var(--font-mono); font-size: 11px; font-weight: 600; color: var(--fg-2); transition: background-color var(--dur-3), border-color var(--dur-3), color var(--dur-3); }
.cx-step.is-current .cx-step__node { border-color: var(--green); color: var(--green); box-shadow: 0 0 0 4px rgba(11, 93, 67, .12); }
.cx-step.is-yes .cx-step__node { background: var(--green); border-color: var(--green); color: #fff; }
.cx-step.is-no .cx-step__node { background: var(--danger-bg); border-color: var(--danger); color: var(--danger); }
.hc .cx-step .q { padding: 1.1rem 0; }
.hc .cx-step .q p { display: block; font-size: 1rem; line-height: 1.5; }
.hc .cx-step .q p::before { content: none; }
.hc .cx-step .yn { justify-self: start; }
.cx-step__gap { display: block; margin-bottom: .25rem; font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: .1em; text-transform: uppercase; color: var(--fg-3); }
.cx-step.is-current .cx-step__gap { color: var(--green); }
.cx-hc__actions { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--rule); }
.cx-score { position: relative; padding: clamp(1.25rem, 1rem + 1.2vw, 2rem); border-radius: var(--r-lg); background: var(--ink); color: var(--fg); box-shadow: var(--shadow-dark); overflow: hidden; }
.cx-score__h { font-family: var(--font-mono); font-size: var(--fs-xs); font-weight: 600; letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); padding-bottom: .9rem; border-bottom: 1px solid var(--rule-strong); }
.cx-score__line { display: flex; align-items: baseline; gap: .75rem; margin-top: 1rem; }
.cx-score .big { font-size: clamp(3.5rem, 2.5rem + 3vw, 5.5rem); color: var(--fg); }
.cx-score .small { color: var(--fg-2); }
.cx-segs { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px; margin-top: 1.1rem; }
.cx-segs i { height: 14px; border-radius: 3px; background: rgba(255, 255, 255, .08); transition: background-color var(--dur-3); }
.cx-segs i.is-y { background: var(--mint); }
.cx-segs i.is-n { background: #F28B82; }
.cx-score .meter { height: 3px; background: rgba(255, 255, 255, .08); margin-block: .6rem .9rem; }
.cx-score .meter i { background: var(--mint); }
#scoreMsg { color: var(--fg); font-size: var(--fs-md); line-height: 1.5; min-height: 3em; }
.cx-score__gh { margin-top: 1.25rem; font-family: var(--font-mono); font-size: var(--fs-2xs); letter-spacing: var(--tracking-caps); text-transform: uppercase; color: var(--fg-2); }
.cx-gaps { list-style: none; margin: .6rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.cx-gaps li { padding: .3rem .7rem; border: 1px solid rgba(242, 139, 130, .45); border-radius: var(--r-pill); font-size: var(--fs-sm); color: #FFD7D3; }
.cx-score__foot { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--rule); color: var(--fg-2); }
.cx-score__foot a { color: var(--mint); font-weight: 600; }
.cx-stamp { position: absolute; right: clamp(1rem, .5rem + 1vw, 1.75rem); top: 3.9rem; display: grid; justify-items: center; gap: .1rem; padding: .55rem .9rem .5rem; border: 2px solid currentColor; border-radius: 6px; outline: 1px solid currentColor; outline-offset: 3px; color: var(--mint); transform: rotate(-7deg); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .1em; pointer-events: none; background: rgba(6, 20, 15, .55); }
.cx-stamp[hidden] { display: none; }
.cx-stamp__k { font-size: 9px; opacity: .85; }
.cx-stamp__t { font-size: 14px; font-weight: 700; letter-spacing: .12em; white-space: nowrap; }
.cx-stamp__d { font-size: 9px; opacity: .85; }
.cx-stamp[data-tone="warn"] { color: #FFC98A; }
.cx-stamp[data-tone="bad"] { color: #F6A39B; }
.cx-hc__dock { position: fixed; left: 12px; right: 84px; bottom: max(12px, env(safe-area-inset-bottom)); z-index: calc(var(--z-sticky) + 1); display: none; align-items: center; gap: .9rem; padding: .7rem 1rem; border-radius: var(--r-pill); background: var(--ink); color: #F2F7F4; font-family: var(--font-mono); font-size: 12px; box-shadow: 0 12px 30px -12px rgba(0, 0, 0, .5); transform: translateY(160%); transition: transform var(--dur-4) var(--ease-out); }
.cx-hc__dock b { color: var(--mint); }
.cx-hc__dockbar { flex: 1; height: 4px; border-radius: 2px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.cx-hc__dockbar i { display: block; height: 100%; background: var(--mint); transform-origin: left; transform: scaleX(0); transition: transform var(--dur-4) var(--ease-out); }
@media (max-width: 999.98px) { .cx-hc__dock { display: flex; } .cx-hc__dock.is-on { transform: none; } }
html.no-js .cx-hc__dock { display: none; }

/* ---------- High contrast ---------- */
html.hc .cx-chip.is-past { color: var(--text); }
html.hc .cx-soon, html.hc .cx-score { background-image: none; }

/* Section heads: Devanagari echo stays quiet */
.cx-sec .section__head h2 .hi, .up-sec .section__head h2 .hi { font-size: .42em; font-weight: 400; color: var(--fg-3); letter-spacing: 0; vertical-align: .35em; margin-left: .35rem; }
.cx-board[data-view="month"] .cx-month.is-empty .cx-month__chips::after { content: "No month-specific dates for this month and filter. The recurring dates still apply."; order: 99; padding: 1rem; border: 1px dashed var(--rule-strong); border-radius: var(--r-sm); color: var(--fg-2); font-size: var(--fs-sm); }
