/* article-styles/mom.css — split from public-article.css (2026-07-20).
 * Loaded per-article via a server-rendered <link> when
 * src/lib/blog/article-style-chunks.ts resolves the "mom" chunk.
 * Served raw from /public (no build step) — this file IS the source of
 * truth. Cascade: loads AFTER public-core.css + public-article.css in
 * document order. Source order preserves the original monolith order —
 * do not re-sort. New rules for this collection belong here. */


/* ── palette + benefit tokens (scoped) ── */
.mom-widget {
  --moss: #545ecf; --moss-2: #6f78e6; --moss-soft: rgba(84,94,207,.10); --gold: #2aa6b8;
  --c-mat: #545ecf; --c-std: #3f86e0; --c-ext: #8a72d6; --c-qpip: #1c97aa;
  --ink: #161922; --ink-2: #323847; --ink-3: rgba(22,25,34,.66); --ink-4: rgba(22,25,34,.62); --ink-5: rgba(22,25,34,.18);
  --paper: #fff; --line: #dce0ec; --line-2: #c3cad9; --bg: #eceff6; --bg-2: #e1e6f1;
  display: block;
}
.mom-widget .ic { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round; }

/* ── shared widget shell ── */
.mom-widget .mom-tool { margin: 30px 0; background: var(--paper); border: 1px solid var(--line-2);
  border-radius: 20px; overflow: hidden; position: relative; box-shadow: 0 22px 50px rgba(20,28,60,.08); }
.mom-widget .mom-tool::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px;
  background: linear-gradient(90deg, var(--c-mat), var(--c-std) 50%, var(--c-qpip)); z-index: 2; }
.mom-widget .mom-tool-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  flex-wrap: wrap; padding: 20px 26px 0; }
.mom-widget .mom-eyebrow { font-family: var(--mono); font-size: 11px; color: var(--moss); font-weight: 600;
  letter-spacing: .14em; text-transform: uppercase; display: inline-flex; align-items: center; gap: 9px; }
.mom-widget .mom-eyebrow::before { content: ""; width: 16px; height: 1px; background: var(--moss); }
.mom-widget .mom-hint { font-family: var(--mono); font-size: 10.5px; color: var(--ink-4); letter-spacing: .04em; }
.mom-widget :is(
  .mom-eyebrow,
  .est-label .lab,
  .est-card .ttl,
  .cmp-name .s,
  .cmp-sum .k,
  .qpip-row .q-name span,
  .qpip-foot .tag,
  .tl-chip .c-s,
  .tl-pr .who,
  .pp-deadline,
  .pp-tag,
  .mom-worksheet-gate-kicker,
  .mom-worksheet-gate-bar,
  .ws-saved,
  .ws-group-lbl,
  .ws-field label,
  .ws-cash-per,
  .ws-table th,
  .bf-lab,
  .bf-badge,
  .sc-emerg-tag,
  .sc-h
) {
  letter-spacing: 0;
  text-transform: none;
}

.mom-widget .mom-range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 999px;
  background: linear-gradient(90deg, var(--moss) var(--fill,40%), var(--line) var(--fill,40%)); outline: none; cursor: pointer; }
.mom-widget .mom-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%;
  background: var(--paper); border: 2px solid var(--moss); cursor: grab;
  box-shadow: 0 3px 10px rgba(84,94,207,.4), 0 0 0 6px var(--moss-soft); transition: transform .12s; }
.mom-widget .mom-range::-webkit-slider-thumb:active { transform: scale(1.12); cursor: grabbing; }
.mom-widget .mom-range::-moz-range-thumb { width: 20px; height: 20px; border-radius: 50%; background: var(--paper);
  border: 2px solid var(--moss); cursor: grab; box-shadow: 0 3px 10px rgba(84,94,207,.4); }

/* ── estimator ── */
.mom-widget .est-input { padding: 22px 26px 6px; }
.mom-widget .est-label { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.mom-widget .est-label .lab { font-family: var(--mono); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-2); font-weight: 600; }
.mom-widget .est-amt { font-family: var(--serif); font-size: 30px; font-weight: 600; color: var(--ink);
  letter-spacing: -.02em; font-variant-numeric: tabular-nums; line-height: 1; }
.mom-widget .est-amt .per { font-family: var(--mono); font-size: 12px; color: var(--ink-4); font-weight: 500; margin-left: 4px; }
.mom-widget .est-scale { display: flex; justify-content: space-between; margin-top: 9px;
  font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .04em; }
.mom-widget .est-results { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); margin-top: 18px; }
.mom-widget .est-card { padding: 22px 24px; border-right: 1px solid var(--line); position: relative; }
.mom-widget .est-card:last-child { border-right: 0; }
.mom-widget .est-card::before { content: ""; position: absolute; left: 24px; top: 22px; width: 24px; height: 3px;
  border-radius: 2px; background: var(--tone, var(--moss)); }
.mom-widget .est-card.mat { --tone: var(--c-mat); } .mom-widget .est-card.std { --tone: var(--c-std); } .mom-widget .est-card.ext { --tone: var(--c-ext); }
.mom-widget .est-card .ttl { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; margin: 18px 0 12px; }
.mom-widget .est-week { font-family: var(--serif); font-size: 38px; font-weight: 600; color: var(--ink);
  letter-spacing: -.026em; line-height: .95; font-variant-numeric: tabular-nums; display: flex; align-items: baseline; gap: 4px; }
.mom-widget .est-week .cur { font-size: 20px; color: var(--tone, var(--moss)); font-weight: 600; }
.mom-widget .est-week .per { font-family: var(--mono); font-size: 11px; color: var(--ink-4); font-weight: 500; margin-left: 2px; }
.mom-widget .est-meta { margin-top: 12px; display: flex; flex-direction: column; gap: 5px; }
.mom-widget .est-meta .r { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  font-family: var(--sans); font-size: 12.5px; color: var(--ink-3); }
.mom-widget .est-meta .r b { color: var(--ink-2); font-weight: 600; font-variant-numeric: tabular-nums; }
.mom-widget .est-cap { display: inline-flex; align-items: center; gap: 5px; margin-top: 11px; white-space: nowrap;
  font-family: var(--mono); font-size: 10px; letter-spacing: .04em; font-weight: 600;
  padding: 3px 8px; border-radius: 999px; background: var(--moss-soft); color: var(--tone, var(--moss)); }
.mom-widget .est-cap .d { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.mom-widget .est-foot { padding: 14px 26px; border-top: 1px solid var(--line); background: var(--bg-2);
  font-family: var(--mono); font-size: 12px; color: var(--ink-3); letter-spacing: .02em; line-height: 1.55; }
@media (max-width: 720px) { .mom-widget .est-results { grid-template-columns: 1fr; }
  .mom-widget .est-card { border-right: 0; border-bottom: 1px solid var(--line); } }

/* ── segmented toggle (compare / qpip / worksheet choice) ── */
.mom-widget .seg { display: inline-flex; background: var(--bg-2); border: 1px solid var(--line); border-radius: 999px; padding: 3px; gap: 2px; }
.mom-widget .seg button { border: 0; background: transparent; cursor: pointer; border-radius: 999px;
  padding: 7px 15px; font-family: var(--sans); font-size: 12.5px; font-weight: 600; color: var(--ink-3); transition: all .16s; }
.mom-widget .seg button.on { background: var(--paper); color: var(--moss); box-shadow: 0 2px 8px rgba(20,28,60,.12); }
.mom-widget .seg.q button.on { color: var(--c-qpip); }

/* ── compare ── */
.mom-widget .cmp-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 18px 26px 4px; }
.mom-widget .cmp-rows { padding: 14px 26px 8px; display: flex; flex-direction: column; gap: 16px; }
.mom-widget .cmp-row { display: grid; grid-template-columns: 120px 1fr; gap: 18px; align-items: center; }
.mom-widget .cmp-name { display: flex; flex-direction: column; gap: 3px; }
.mom-widget .cmp-name .t { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--ink); line-height: 1; }
.mom-widget .cmp-name .s { font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .06em; text-transform: uppercase; }
.mom-widget .cmp-track { position: relative; height: 46px; border-radius: 11px; background: var(--bg-2); overflow: hidden; border: 1px solid var(--line); }
.mom-widget .cmp-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 11px; display: flex; align-items: center;
  padding: 0 14px; color: #fff; transition: width .55s cubic-bezier(.22,.7,.2,1), background .3s; }
.mom-widget .cmp-fill.std { background: linear-gradient(90deg, var(--c-std), #5e9ae8); }
.mom-widget .cmp-fill.ext { background: linear-gradient(90deg, var(--c-ext), #a48ae2); }
.mom-widget .cmp-fill .wk { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .04em; white-space: nowrap; }
.mom-widget .cmp-amt { position: absolute; right: 14px; top: 50%; transform: translateY(-50%);
  font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.mom-widget .cmp-summary { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); margin-top: 10px; }
.mom-widget .cmp-sum { padding: 16px 26px; border-right: 1px solid var(--line); }
.mom-widget .cmp-sum:last-child { border-right: 0; }
.mom-widget .cmp-sum .k { font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.mom-widget .cmp-sum .v { font-family: var(--serif); font-size: 24px; font-weight: 600; color: var(--ink); letter-spacing: -.02em; margin-top: 5px; font-variant-numeric: tabular-nums; }
.mom-widget .cmp-sum .v em { font-style: normal; font-family: var(--mono); font-size: 12px; color: var(--ink-3); font-weight: 500; margin-left: 5px; }
@media (max-width: 720px) { .mom-widget .cmp-row { grid-template-columns: 1fr; gap: 7px; }
  .mom-widget .cmp-summary { grid-template-columns: 1fr; } .mom-widget .cmp-sum { border-right: 0; border-bottom: 1px solid var(--line); } }

/* ── qpip ── */
.mom-widget .qpip-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 18px 26px 6px; }
.mom-widget .qpip-plans { padding: 6px 26px 4px; display: flex; flex-direction: column; }
.mom-widget .qpip-row { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 15px 0; border-top: 1px solid var(--line); }
.mom-widget .qpip-row:first-child { border-top: 0; }
.mom-widget .qpip-row .q-name { font-family: var(--serif); font-size: 16.5px; color: var(--ink); font-weight: 500; line-height: 1.3; }
.mom-widget .qpip-row .q-name span { display: block; font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .05em; text-transform: uppercase; margin-top: 4px; font-weight: 600; }
.mom-widget .qpip-val { display: flex; align-items: baseline; gap: 8px; justify-content: flex-end; font-variant-numeric: tabular-nums; min-width: 140px; }
.mom-widget .qpip-val .wk { font-family: var(--serif); font-size: 26px; font-weight: 600; color: var(--c-qpip); letter-spacing: -.02em; line-height: 1; }
.mom-widget .qpip-val .wk em { font-style: normal; font-family: var(--mono); font-size: 11px; color: var(--ink-4); font-weight: 500; margin-left: 3px; }
.mom-widget .qpip-val .rate { font-family: var(--mono); font-size: 12px; font-weight: 600; color: var(--ink-2); background: var(--bg-2); padding: 4px 9px; border-radius: 999px; }
.mom-widget .qpip-foot { padding: 14px 26px; border-top: 1px solid var(--line); background: var(--bg-2);
  font-family: var(--mono); font-size: 12px; color: var(--ink-3); letter-spacing: .02em; line-height: 1.55; display: flex; align-items: center; gap: 10px; }
.mom-widget .qpip-foot .tag { flex: none; padding: 3px 9px; border-radius: 999px; background: #177f8f; color: #fff; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; font-size: 11px; }
@media (max-width: 720px) { .mom-widget .qpip-row { grid-template-columns: 1fr; gap: 8px; } .mom-widget .qpip-val { justify-content: flex-start; } }

/* ── timeline / explorer chips ── */
.mom-widget .tl-chips { display: flex; gap: 8px; flex-wrap: wrap; padding: 18px 26px 6px; }
.mom-widget .tl-chip { border: 1px solid var(--line); background: var(--bg-2); cursor: pointer; border-radius: 11px; padding: 9px 14px; text-align: left; transition: all .16s; min-width: 0; }
.mom-widget .tl-chip .c-t { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--ink-2); display: block; }
.mom-widget .tl-chip .c-s { font-family: var(--mono); font-size: 11px; color: var(--ink-4); letter-spacing: .04em; text-transform: uppercase; margin-top: 2px; display: block; }
.mom-widget .tl-chip:hover { border-color: var(--moss-2); }
.mom-widget .tl-chip.on { background: var(--moss); border-color: var(--moss); }
.mom-widget .tl-chip.on .c-t { color: #fff; } .mom-widget .tl-chip.on .c-s { color: rgba(255,255,255,.7); }
.mom-widget .tl-body { padding: 12px 26px 8px; }
.mom-widget .tl-scale { display: flex; justify-content: space-between; margin-bottom: 8px; padding-left: 104px; font-family: var(--mono); font-size: 11px; color: var(--ink-4); letter-spacing: .04em; }
.mom-widget .tl-rows { display: flex; flex-direction: column; gap: 10px; }
.mom-widget .tl-pr { display: grid; grid-template-columns: 96px 1fr; gap: 8px; align-items: center; }
.mom-widget .tl-pr .who { font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; line-height: 1.3; }
.mom-widget .tl-bar { display: flex; height: 34px; border-radius: 9px; overflow: hidden; background: var(--bg-2); border: 1px solid var(--line); }
.mom-widget .tl-seg { display: flex; align-items: center; justify-content: center; color: #fff; min-width: 0;
  font-family: var(--mono); font-size: 10px; font-weight: 600; letter-spacing: .02em;
  transition: flex-grow .5s cubic-bezier(.22,.7,.2,1); white-space: nowrap; overflow: hidden; border-right: 1px solid rgba(255,255,255,.22); }
.mom-widget .tl-seg:last-child { border-right: 0; }
.mom-widget .tl-seg.mat { background: var(--c-mat); } .mom-widget .tl-seg.std { background: var(--c-std); }
.mom-widget .tl-seg.ext { background: var(--c-ext); } .mom-widget .tl-seg.qmat { background: var(--c-qpip); }
.mom-widget .tl-seg.qpat { background: #3aa8b8; } .mom-widget .tl-seg.qshare { background: #6f78e6; }
.mom-widget .tl-legend { display: flex; flex-wrap: wrap; gap: 7px 16px; padding: 14px 26px 4px; border-top: 1px solid var(--line); margin-top: 14px; }
.mom-widget .tl-leg { display: inline-flex; align-items: center; gap: 7px; font-family: var(--mono); font-size: 10.5px; color: var(--ink-3); letter-spacing: .03em; }
.mom-widget .tl-leg .sw { width: 11px; height: 11px; border-radius: 3px; }
.mom-widget .tl-total { margin-left: auto; font-family: var(--serif); font-size: 15px; font-weight: 600; color: var(--ink); }
.mom-widget .tl-total em { font-style: normal; font-family: var(--mono); font-size: 11px; color: var(--ink-3); font-weight: 500; margin-left: 4px; }
.mom-widget .tl-note { padding: 6px 26px 18px; font-family: var(--serif); font-size: 14px; font-style: italic; color: var(--ink-3); line-height: 1.5; }
@media (max-width: 720px) { .mom-widget .tl-scale { padding-left: 0; } .mom-widget .tl-pr { grid-template-columns: 1fr; gap: 4px; } .mom-widget .tl-total { margin-left: 0; width: 100%; margin-top: 6px; } }

/* ── explorer body ── */
.mom-widget .ex-body { padding: 16px 26px 10px; border-top: 1px solid var(--line); margin-top: 10px; }
.mom-widget .ex-title { font-family: var(--serif); font-size: 21px; font-weight: 600; color: var(--ink); line-height: 1.15; margin-bottom: 4px; }
.mom-widget .ex-intro { font-family: var(--serif); font-size: 15px; font-style: italic; color: var(--ink-3); line-height: 1.5; margin: 4px 0 12px; }
.mom-widget .ex-list { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 28px; }
.mom-widget .ex-item { display: grid; grid-template-columns: 14px 1fr; gap: 11px; align-items: start; padding: 9px 0; border-top: 1px solid var(--line); }
.mom-widget .ex-dot { width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--moss); margin-top: 6px; }
.mom-widget .ex-main { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.mom-widget .ex-t { font-family: var(--serif); font-size: 16px; color: var(--ink); font-weight: 500; line-height: 1.3; }
.mom-widget .ex-s { font-family: var(--serif); font-size: 14px; color: var(--ink-3); line-height: 1.4; }
.mom-widget .ex-note { padding: 14px 26px; border-top: 1px solid var(--line); background: var(--bg-2); font-family: var(--serif); font-size: 14px; font-style: italic; color: var(--ink-3); line-height: 1.5; }
@media (max-width: 720px) { .mom-widget .ex-list { grid-template-columns: 1fr; } }

/* ── province paperwork path ── */
.mom-widget .pp-select-wrap { position: relative; display: inline-flex; }
.mom-widget .pp-select-wrap::after { content: ""; position: absolute; right: 13px; top: 50%; width: 7px; height: 7px;
  border-right: 2px solid var(--moss); border-bottom: 2px solid var(--moss); transform: translateY(-65%) rotate(45deg); pointer-events: none; }
.mom-widget .pp-select { -webkit-appearance: none; appearance: none; cursor: pointer; font-family: var(--sans); font-size: 13.5px; font-weight: 600; color: var(--moss);
  background: var(--moss-soft); border: 1px solid color-mix(in srgb, var(--moss) 30%, transparent); border-radius: 999px; padding: 8px 34px 8px 16px; outline: none; }
.mom-widget .pp-deadline { display: inline-flex; align-items: center; gap: 8px; margin: 2px 26px 0; font-family: var(--mono); font-size: 11px; color: var(--ink-3); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.mom-widget .pp-deadline .d { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 4px color-mix(in srgb, var(--gold) 18%, transparent); }
.mom-widget .pp-rows { padding: 14px 26px 6px; display: flex; flex-direction: column; }
.mom-widget .pp-row { display: grid; grid-template-columns: 34px 1fr; gap: 14px; align-items: start; padding: 15px 0; border-top: 1px solid var(--line); }
.mom-widget .pp-row:first-child { border-top: 0; }
.mom-widget .pp-ic { width: 30px; height: 30px; border-radius: 9px; background: var(--moss-soft); color: var(--moss); display: grid; place-items: center; font-size: 16px; font-weight: 600; line-height: 1; }
.mom-widget .pp-main { min-width: 0; }
.mom-widget .pp-label { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--ink); }
.mom-widget .pp-tag { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; }
.mom-widget .pp-tag.yes { background: rgba(31,140,108,.12); color: #1c8c6c; }
.mom-widget .pp-tag.no { background: rgba(176,110,43,.14); color: #8f5717; }
.mom-widget .pp-text { font-family: var(--serif); font-size: 15px; color: var(--ink-2); line-height: 1.5; margin-top: 4px; }
@media (max-width: 720px) { .mom-widget .pp-deadline { margin-left: 20px; } .mom-widget .pp-rows { padding-left: 20px; padding-right: 20px; } }

/* ── first-month task board ── */
.mom-widget .tb-head { display: flex; align-items: center; gap: 18px; padding: 22px 26px 6px; }
.mom-widget .tb-ring { flex: none; }
.mom-widget .tb-head-txt p { margin: 6px 0 0; font-family: var(--serif); font-size: 15.5px; color: var(--ink-3); line-height: 1.45; font-style: italic; }
.mom-widget .tb-grid { padding: 14px 22px 22px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mom-widget .tb-card { position: relative; text-align: left; cursor: pointer; border: 1px solid var(--line); background: var(--bg);
  border-radius: 14px; padding: 16px 16px 16px 46px; overflow: hidden; transition: border-color .16s, background .16s, box-shadow .2s; display: block; font: inherit; }
.mom-widget .tb-card:hover { border-color: var(--moss-2); box-shadow: 0 8px 22px rgba(20,28,60,.07); }
.mom-widget .tb-box { position: absolute; left: 14px; top: 16px; width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--line-2); background: var(--paper); display: grid; place-items: center; transition: all .15s; }
.mom-widget .tb-box svg { width: 13px; height: 13px; color: #fff; opacity: 0; transform: scale(.6); transition: all .15s; }
.mom-widget .tb-card.on { background: var(--moss-soft); border-color: color-mix(in srgb, var(--moss) 40%, transparent); }
.mom-widget .tb-card.on .tb-box { background: var(--moss); border-color: var(--moss); }
.mom-widget .tb-card.on .tb-box svg { opacity: 1; transform: scale(1); }
.mom-widget .tb-n { font-family: var(--mono); font-size: 10px; color: var(--ink-4); font-weight: 600; letter-spacing: .1em; display: block; margin-bottom: 4px; }
.mom-widget .tb-t { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--ink); line-height: 1.18; display: block; }
.mom-widget .tb-w { font-family: var(--serif); font-size: 14px; color: var(--ink-3); line-height: 1.4; display: block; margin-top: 5px; }
@media (max-width: 640px) { .mom-widget .tb-grid { grid-template-columns: 1fr; } }

/* ── worksheet shell ── */
.mom-widget .mom-worksheet-gate {
  margin: 28px 0;
}
.mom-widget .mom-worksheet-gate-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 18px;
  background:
    linear-gradient(120deg, var(--moss-soft), transparent 58%),
    var(--paper);
  box-shadow: 0 18px 44px rgba(20,28,60,.07);
  padding: 24px 26px;
}
.mom-widget .mom-worksheet-gate-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--c-mat), var(--c-std), var(--c-qpip));
}
.mom-widget .mom-worksheet-gate-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--moss);
}
.mom-widget .mom-worksheet-gate-kicker::before {
  content: "";
  width: 16px;
  height: 1px;
  background: currentColor;
}
.mom-widget .mom-worksheet-gate-card h3 {
  margin: 10px 0 7px;
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 600;
  line-height: 1.12;
  letter-spacing: -.015em;
  color: var(--ink);
}
.mom-widget .mom-worksheet-gate-card p {
  margin: 0;
  max-width: 56ch;
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink-3);
}
.mom-widget .mom-worksheet-gate-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  margin-top: 18px;
  padding: 0 18px;
  border: 1px solid var(--moss);
  border-radius: 999px;
  background: var(--moss);
  color: #fff;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: background .14s, border-color .14s, transform .14s;
}
.mom-widget .mom-worksheet-gate-btn:hover {
  background: var(--moss-2);
  border-color: var(--moss-2);
  transform: translateY(-1px);
}
.mom-widget .mom-worksheet-gate-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--bg-2);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.mom-widget .mom-worksheet-gate-link {
  border: 0;
  background: transparent;
  color: var(--moss);
  font: inherit;
  cursor: pointer;
  padding: 4px 6px;
}
.mom-widget .mom-worksheet-gate.is-open .ws {
  margin-top: 0;
}
.mom-widget .ws { margin: 28px 0; background: var(--paper); border: 1px solid var(--line-2); border-radius: 18px; overflow: hidden; box-shadow: 0 18px 44px rgba(20,28,60,.07); }
.mom-widget .ws-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 20px 26px; border-bottom: 1px solid var(--line); background: linear-gradient(120deg, var(--moss-soft), transparent); }
.mom-widget .ws-head .h { font-family: var(--serif); font-size: 21px; font-weight: 600; color: var(--ink); display: flex; align-items: center; gap: 10px; }
.mom-widget .ws-head .h .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--moss); box-shadow: 0 0 0 4px var(--moss-soft); }
.mom-widget .ws-actions { display: flex; gap: 8px; align-items: center; }
.mom-widget .ws-btn { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 15px; border-radius: 999px;
  font-family: var(--sans); font-size: 12.5px; font-weight: 600; cursor: pointer; border: 1px solid var(--line-2); background: var(--paper); color: var(--ink-2); transition: all .14s; }
.mom-widget .ws-btn:hover { border-color: var(--moss); color: var(--moss); }
.mom-widget .ws-btn.primary { background: var(--moss); color: #fff; border-color: var(--moss); }
.mom-widget .ws-btn.primary:hover { background: var(--moss-2); color: #fff; }
.mom-widget .ws-btn svg { width: 13px; height: 13px; }
.mom-widget .ws-saved { font-family: var(--mono); font-size: 11px; color: #1b7a8a; letter-spacing: .06em; text-transform: uppercase; font-weight: 600; opacity: 0; transition: opacity .3s; }
.mom-widget .ws-saved.show { opacity: 1; }
.mom-widget .ws-progress { display: flex; align-items: center; gap: 14px; padding: 14px 26px; border-bottom: 1px solid var(--line); background: var(--bg-2); }
.mom-widget .ws-prog-bar { flex: 1; height: 8px; border-radius: 999px; background: var(--line); overflow: hidden; }
.mom-widget .ws-prog-bar span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--moss), var(--moss-2)); transition: width .45s cubic-bezier(.22,.7,.2,1); }
.mom-widget .ws-prog-lbl { flex: none; font-family: var(--mono); font-size: 11px; font-weight: 600; color: var(--ink-3); letter-spacing: .04em; white-space: nowrap; }
.mom-widget .ws-part { border-bottom: 1px solid var(--line); }
.mom-widget .ws-part:last-child { border-bottom: 0; }
.mom-widget .ws-part-h { display: flex; align-items: baseline; gap: 12px; padding: 18px 26px 4px; }
.mom-widget .ws-part-h .n { font-family: var(--mono); font-size: 11px; color: var(--moss); font-weight: 600; letter-spacing: .1em; }
.mom-widget .ws-part-h .t { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--ink); }
.mom-widget .ws-group-lbl { font-family: var(--mono); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; padding: 6px 0 2px; }
.mom-widget .ws-fields { padding: 8px 26px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; }
.mom-widget .ws-field { display: flex; flex-direction: column; gap: 5px; }
.mom-widget .ws-field.wide { grid-column: 1/-1; }
.mom-widget .ws-field label { font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .07em; text-transform: uppercase; font-weight: 600; }
.mom-widget .ws-field input, .mom-widget .ws-field select { height: 38px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--bg); padding: 0 12px; font-family: var(--sans); font-size: 14px; color: var(--ink); outline: none; transition: border-color .14s; }
.mom-widget .ws-field input:focus, .mom-widget .ws-field select:focus { border-color: var(--moss); }
.mom-widget .ws-checks { padding: 8px 26px 20px; display: flex; flex-direction: column; }
.mom-widget .ws-check { display: flex; align-items: flex-start; gap: 12px; padding: 11px 0; cursor: pointer; border-top: 1px solid var(--line); font-family: var(--serif); font-size: 15.5px; color: var(--ink-2); line-height: 1.4; }
.mom-widget .ws-check:first-child { border-top: 0; }
.mom-widget .ws-box { flex: none; width: 21px; height: 21px; border-radius: 6px; border: 2px solid var(--line-2); background: var(--paper); margin-top: 1px; display: grid; place-items: center; transition: all .14s; }
.mom-widget .ws-box svg { width: 13px; height: 13px; color: #fff; opacity: 0; transform: scale(.6); transition: all .14s; }
.mom-widget .ws-check.on .ws-box { background: var(--moss); border-color: var(--moss); }
.mom-widget .ws-check.on .ws-box svg { opacity: 1; transform: scale(1); }
.mom-widget .ws-check.on { color: var(--ink-4); }
.mom-widget .ws-check.on .ws-txt { text-decoration: line-through; text-decoration-color: var(--ink-5); }
.mom-widget .ws-cash { padding: 10px 26px 22px; }
.mom-widget .ws-cash-row { display: grid; grid-template-columns: 1fr 130px; gap: 14px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line); }
.mom-widget .ws-cash-row.head { border-top: 0; }
.mom-widget .ws-cash-row .cl { font-family: var(--serif); font-size: 15px; color: var(--ink-2); }
.mom-widget .ws-cash-row .cl.in { color: var(--c-std); }
.mom-widget .ws-cash-per { text-align: right; font-family: var(--mono); font-size: 10px; color: var(--ink-4); letter-spacing: .06em; text-transform: uppercase; }
.mom-widget .ws-money { display: flex; align-items: center; gap: 4px; border: 1px solid var(--line-2); border-radius: 9px; background: var(--bg); padding: 0 10px; height: 36px; }
.mom-widget .ws-money .sym { font-family: var(--mono); font-size: 13px; color: var(--ink-4); }
.mom-widget .ws-money input { flex: 1; min-width: 0; border: 0; background: transparent; outline: none; text-align: right; font-family: var(--sans); font-size: 14px; color: var(--ink); font-variant-numeric: tabular-nums; }
.mom-widget .ws-net { display: grid; grid-template-columns: 1fr 130px; gap: 14px; align-items: center; margin-top: 6px; padding: 14px 0 0; border-top: 2px solid var(--line-2); }
.mom-widget .ws-net .cl { font-family: var(--serif); font-size: 17px; font-weight: 600; color: var(--ink); }
.mom-widget .ws-net .nv { text-align: right; font-family: var(--serif); font-size: 22px; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; padding-right: 10px; }
.mom-widget .ws-net .nv.pos { color: var(--c-std); } .mom-widget .ws-net .nv.neg { color: #cf5454; }
.mom-widget .ws-cash + .ws-net { margin-top: 6px; }
@media (max-width: 720px) { .mom-widget .ws-fields { grid-template-columns: 1fr; } }

/* ── worksheet tables ── */
.mom-widget .ws-table-wrap { overflow-x: auto; padding: 6px 26px 22px; }
.mom-widget .ws-table { width: 100%; border-collapse: collapse; min-width: 600px; }
.mom-widget .ws-table th { font-family: var(--mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-4); font-weight: 600; text-align: left; padding: 8px; border-bottom: 1px solid var(--line-2); white-space: nowrap; }
.mom-widget .ws-table td { padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.mom-widget .ws-table td.lead { font-family: var(--serif); font-size: 14.5px; color: var(--ink); font-weight: 500; white-space: nowrap; }
.mom-widget .ws-table input { width: 100%; min-width: 84px; height: 32px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--bg); padding: 0 9px; font-family: var(--sans); font-size: 13px; color: var(--ink); outline: none; transition: border-color .14s; }
.mom-widget .ws-table input:focus { border-color: var(--moss); }
.mom-widget .ws-table select { height: 32px; border: 1px solid var(--line-2); border-radius: 7px; background: var(--bg); padding: 0 6px; font-family: var(--sans); font-size: 13px; color: var(--ink); outline: none; cursor: pointer; }
.mom-widget .ws-table .score-total { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--moss); font-variant-numeric: tabular-nums; text-align: center; }

/* ── birth finder (Where to Give Birth) ── */
.mom-widget .bf-qs { padding: 18px 26px 6px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 24px; }
.mom-widget .bf-q { display: flex; flex-direction: column; gap: 8px; }
.mom-widget .bf-lab { font-family: var(--mono); font-size: 10.5px; letter-spacing: .07em; text-transform: uppercase; color: var(--ink-4); font-weight: 600; }
.mom-widget .bf-q .seg { align-self: flex-start; }
.mom-widget .bf-results { padding: 14px 26px 4px; display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; border-top: 1px solid var(--line); margin-top: 14px; }
.mom-widget .bf-card { border: 1px solid var(--line); border-radius: 14px; padding: 16px 16px 14px; position: relative; overflow: hidden; background: var(--bg); transition: border-color .2s, background .2s; }
.mom-widget .bf-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
.mom-widget .bf-card.rec::before { background: #1c8c6c; } .mom-widget .bf-card.maybe::before { background: #b06e2b; } .mom-widget .bf-card.no::before { background: var(--ink-5); }
.mom-widget .bf-card.rec { background: rgba(31,140,108,.12); border-color: rgba(31,140,108,.28); }
.mom-widget .bf-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.mom-widget .bf-t { font-family: var(--serif); font-size: 18px; font-weight: 600; color: var(--ink); letter-spacing: -.012em; }
.mom-widget .bf-badge { font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; white-space: nowrap; }
.mom-widget .bf-badge.rec { background: rgba(31,140,108,.14); color: #157055; }
.mom-widget .bf-badge.maybe { background: rgba(176,110,43,.16); color: #8f5717; }
.mom-widget .bf-badge.no { background: var(--bg-2); color: var(--ink-4); }
.mom-widget .bf-reason { margin: 0; font-family: var(--serif); font-size: 14px; color: var(--ink-2); line-height: 1.45; }
.mom-widget .bf-card.no .bf-reason { color: var(--ink-3); }
.mom-widget .bf-foot { padding: 14px 26px; border-top: 1px solid var(--line); background: var(--bg-2); margin-top: 14px; font-family: var(--mono); font-size: 12px; color: var(--ink-3); letter-spacing: .02em; line-height: 1.55; }
@media (max-width: 720px) { .mom-widget .bf-qs { grid-template-columns: 1fr; } .mom-widget .bf-results { grid-template-columns: 1fr; } }

/* ── symptom check (Postpartum Recovery) — normal vs call now ── */
.mom-widget .sc-emerg { display: flex; align-items: flex-start; gap: 11px; margin: 16px 26px 4px; padding: 12px 15px;
  border-radius: 12px; background: rgba(207,84,84,.08); border: 1px solid rgba(207,84,84,.28);
  font-family: var(--serif); font-size: 14px; color: var(--ink-2); line-height: 1.5; }
.mom-widget .sc-emerg b { color: var(--ink); font-weight: 700; }
.mom-widget .sc-emerg-tag { flex: none; font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .08em;
  text-transform: uppercase; background: #cf5454; color: #fff; padding: 3px 9px; border-radius: 999px; margin-top: 1px; }
.mom-widget .sc-cols { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--line); margin-top: 14px; }
.mom-widget .sc-col { padding: 18px 24px; border-right: 1px solid var(--line); }
.mom-widget .sc-col:last-child { border-right: 0; }
.mom-widget .sc-col.ok { background: rgba(31,140,108,.11); }
.mom-widget .sc-col.warn { background: rgba(207,84,84,.10); }
.mom-widget .sc-h { display: flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
.mom-widget .sc-col.ok .sc-h { color: #157055; } .mom-widget .sc-col.warn .sc-h { color: #c0473f; }
.mom-widget .sc-dot { width: 8px; height: 8px; border-radius: 50%; }
.mom-widget .sc-col.ok .sc-dot { background: #1c8c6c; } .mom-widget .sc-col.warn .sc-dot { background: #cf5454; }
.mom-widget .sc-col ul { list-style: none; margin: 0; padding: 0; }
.mom-widget .sc-col li { font-family: var(--serif); font-size: 15px; color: var(--ink-2); line-height: 1.42;
  padding: 9px 0 9px 20px; position: relative; border-top: 1px solid var(--line); }
.mom-widget .sc-col li:first-child { border-top: 0; }
.mom-widget .sc-col li::before { content: ""; position: absolute; left: 0; top: 16px; width: 9px; height: 2px; border-radius: 2px; }
.mom-widget .sc-col.ok li::before { background: #1c8c6c; } .mom-widget .sc-col.warn li::before { background: #cf5454; }
.mom-widget .sc-foot { padding: 14px 26px; border-top: 1px solid var(--line); background: var(--bg-2);
  font-family: var(--serif); font-size: 14px; font-style: italic; color: var(--ink-3); line-height: 1.5; }
@media (max-width: 720px) {
  .mom-widget .sc-cols { grid-template-columns: 1fr; }
  .mom-widget .sc-col { border-right: 0; border-bottom: 1px solid var(--line); }
  .mom-widget .sc-emerg { margin-left: 20px; margin-right: 20px; }
}

/* ── print: clean the interactive widgets ── */
@media print {
  .mom-widget .ws-actions, .mom-widget .mom-tool { display: none !important; }
  .mom-widget .ws { box-shadow: none; border: 1px solid #bbb; }
  .mom-widget .ws-part { break-inside: avoid; }
  .mom-widget, .mom-widget * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* ── polish (2026-07): keyboard focus + reduced motion ────────────────
   Scoped entirely to .mom-widget. The widgets are fully interactive, but
   several controls set `outline: none` (range slider, province select,
   worksheet inputs) and the chip / card / segmented-toggle buttons had no
   explicit focus style — so keyboard users could lose the focus ring.
   Give every control a consistent periwinkle `:focus-visible` ring (mouse
   users see no change — `:focus-visible` only fires on keyboard focus),
   and honour prefers-reduced-motion by calming the widget animations. */
.mom-widget :is(
  .seg button,
  .tl-chip,
  .tb-card,
  .mom-worksheet-gate-btn,
  .mom-worksheet-gate-link,
  .ws-btn,
  .ws-check,
  .pp-select
):focus-visible {
  outline: 2px solid var(--moss);
  outline-offset: 2px;
}
.mom-widget :is(
  .ws-field input, .ws-field select,
  .ws-table input, .ws-table select
):focus-visible {
  border-color: var(--moss);
  box-shadow: 0 0 0 3px var(--moss-soft);
}
.mom-widget .ws-money:focus-within {
  border-color: var(--moss);
  box-shadow: 0 0 0 3px var(--moss-soft);
}
.mom-widget .mom-range:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 3px 10px rgba(84,94,207,.4), 0 0 0 3px var(--paper), 0 0 0 5px var(--moss);
}
.mom-widget .mom-range:focus-visible::-moz-range-thumb {
  box-shadow: 0 3px 10px rgba(84,94,207,.4), 0 0 0 3px var(--paper), 0 0 0 5px var(--moss);
}
@media (prefers-reduced-motion: reduce) {
  .mom-widget *, .mom-widget *::before, .mom-widget *::after {
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
