/**
 * MRM Tools Core v4.2.1 - REBUILD BASELINE
 * Shared visual system for MichaelRyanMoney.com calculators, finders, quizzes and pathfinders.
 * Last Updated: September 10, 2026
 * Status: HOLD - REBUILD BASELINE; DO NOT DEPLOY UNTIL LIVE CUTOVER QA
 *
 * HISTORY
 * - v4.0.5: Added backward-compatible primitives found during the full HOLD-package dependency audit.
 * - v4.1.0: Added reusable result-action, explanation, scenario, threshold, timeline,
 *             breakdown, status-badge, print/save, and responsive-table primitives.
 * - v4.1.1: Added broader native-input support, range controls, print behavior,
 *             higher-contrast support, and child-theme table isolation.
 * - v4.2.0: Hardens container-query fallbacks, selected-state fallbacks, flex affixes,
 *             native control states, disabled actions, details/summary, reduced motion,
 *             table defaults, print consistency, forced-colors markers, mobile shell sizing,
 *             typography/readability, legacy aliases, and WordPress-theme collision resistance.
 * - v4.2.1: Packaging release for staged WordPress installation. CSS behavior is unchanged
 *             from the hardened v4.2.0 rebuild baseline; filename/header now carry the deploy date.
 *
 * ARCHITECTURE CONTRACTS
 * - All tool UI is scoped to .mrm-tool (plus preserved MRM compatibility aliases).
 * - .mrm-tool is the query container; @container rules style descendants, not the container itself.
 * - Reference-table wrappers that can overflow should use tabindex="0", role="region", and a specific aria-label.
 * - Shared JS must synchronize .is-selected/data-selected for wrapped radio/checkbox cards and prevent
 *   keyboard activation of aria-disabled anchor buttons; CSS alone cannot provide those semantics.
 * - Do not remove native number-input steppers globally; use semantic input types intentionally per tool.
 * - This file is the design target for the full FluentSnippets rebuild and remains HOLD until live QA.
 */
:root {
  --mrm-tool-navy: #0d3b66;
  --mrm-tool-blue: #145a96;
  --mrm-tool-link: #1e73be;
  --mrm-tool-gold: #d4af37;
  --mrm-tool-ink: #172033;
  --mrm-tool-muted: #5b6875;
  --mrm-tool-border: #d8e2ec;
  --mrm-tool-surface: #f7f9fc;
  --mrm-tool-surface-blue: #f2f7fc;
  --mrm-tool-success: #137448;
  --mrm-tool-success-bg: #edf8f2;
  --mrm-tool-warning: #8a5900;
  --mrm-tool-warning-bg: #fff8e7;
  --mrm-tool-danger: #a12622;
  --mrm-tool-danger-bg: #fdf1f0;
  --mrm-tool-radius-sm: 10px;
  --mrm-tool-radius-md: 14px;
  --mrm-tool-radius-lg: 20px;
  --mrm-tool-shadow-sm: 0 2px 8px rgba(13, 59, 102, .07);
  --mrm-tool-shadow-md: 0 12px 34px rgba(13, 59, 102, .10);
  --mrm-tool-focus: 0 0 0 4px rgba(20, 90, 150, .18);
  --mrm-tool-quiet: #eef3f7;
  --mrm-tool-max-reading: 68ch;
  --mrm-tool-touch: 46px;
  --mrm-tool-transition: 160ms ease;
  --mrm-tool-scroll-offset: 96px;
}

.mrm-tool {
  container-type: inline-size;
  container-name: mrm-tool;
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 860px;
  margin: 28px auto;
  padding: 28px;
  padding: clamp(20px, 4%, 34px);
  overflow: visible;
  color: var(--mrm-tool-ink);
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-lg);
  box-shadow: var(--mrm-tool-shadow-md);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.55;
  color-scheme: light;
}

/* Prevent one malformed child from creating page-wide horizontal scroll while allowing vertical overlays. */
@supports (overflow: clip) {
  .mrm-tool { overflow: clip visible; }
}

.mrm-tool::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg, var(--mrm-tool-navy), var(--mrm-tool-blue) 72%, var(--mrm-tool-gold));
  border-radius: var(--mrm-tool-radius-lg) var(--mrm-tool-radius-lg) 0 0;
  pointer-events: none;
}

.mrm-tool *,
.mrm-tool *::before,
.mrm-tool *::after { box-sizing: border-box; }
.mrm-tool [hidden] { display: none !important; }
.mrm-tool { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
.mrm-tool :where(button, input, select, textarea) { max-width: 100%; }
.mrm-tool :where(p, li, dd, dt, .mrm-tool__intro, .mrm-tool__answer-text, .mrm-tool__result-summary, .mrm-tool__help, .mrm-tool__source, .mrm-tool__disclaimer, .mrm-tool__compare-note, .mrm-tool__timeline-content) { overflow-wrap: break-word; }
.mrm-tool :where(.mrm-tool__result-value, .mrm-tool__scenario-value, .mrm-tool__range-value, .mrm-tool__code, .mrm-tool__metric strong, .mrm-tool__breakdown-row strong) { overflow-wrap: normal; word-break: normal; }
.mrm-tool :where(img, svg, video, canvas) { max-width: 100%; height: auto; }
.mrm-tool iframe { max-width: 100%; }
.mrm-tool :where(h2, h3, h4, h5) { text-wrap: balance; }

.mrm-tool__eyebrow {
  display: flex;
  width: fit-content;
  margin: 0 auto 10px;
  padding: 6px 11px;
  color: var(--mrm-tool-navy);
  background: #edf4fa;
  border: 1px solid #d6e6f3;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.mrm-tool__title {
  max-width: 760px;
  margin: 0 auto;
  color: var(--mrm-tool-navy);
  font-size: 2rem;
  font-size: clamp(1.65rem, 5cqi, 2.25rem);
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-wrap: balance;
}

.mrm-tool__intro {
  max-width: 700px;
  margin: 11px auto 24px;
  color: var(--mrm-tool-muted);
  text-align: center;
  text-wrap: pretty;
}

.mrm-tool__card,
.mrm-tool__result,
.mrm-tool__panel,
.mrm-tool__next {
  min-width: 0;
  padding: 18px;
  padding: clamp(16px, 3cqi, 22px);
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
  box-shadow: var(--mrm-tool-shadow-sm);
}

.mrm-tool__card + .mrm-tool__card,
.mrm-tool__card + .mrm-tool__result,
.mrm-tool__result + .mrm-tool__card,
.mrm-tool__result + .mrm-tool__next { margin-top: 18px; }

.mrm-tool__trust,
.mrm-tool__note,
.mrm-tool__warning,
.mrm-tool__success,
.mrm-tool__danger {
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid var(--mrm-tool-border);
  border-left: 4px solid var(--mrm-tool-blue);
  border-radius: var(--mrm-tool-radius-sm);
  background: var(--mrm-tool-surface-blue);
}
.mrm-tool__warning { color: #604000; background: var(--mrm-tool-warning-bg); border-left-color: var(--mrm-tool-warning); }
.mrm-tool__success { background: var(--mrm-tool-success-bg); border-left-color: var(--mrm-tool-success); }
.mrm-tool__danger { background: var(--mrm-tool-danger-bg); border-left-color: var(--mrm-tool-danger); }
.mrm-tool__trust strong,
.mrm-tool__note strong { color: var(--mrm-tool-navy); }

.mrm-tool fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.mrm-tool legend,
.mrm-tool label {
  color: var(--mrm-tool-ink);
  font-weight: 700;
}
.mrm-tool legend { margin-bottom: 10px; }
.mrm-tool label { display: block; margin-bottom: 7px; }

.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea) {
  width: 100%;
  min-height: 50px;
  padding: 11px 13px;
  color: var(--mrm-tool-ink);
  background: #fff;
  border: 1px solid #aebdcc;
  border-radius: var(--mrm-tool-radius-sm);
  font: inherit;
  font-size: 16px; /* Prevents iOS text-field auto-zoom while the shell remains reader-scalable. */
  transition: border-color var(--mrm-tool-transition), box-shadow var(--mrm-tool-transition), background-color var(--mrm-tool-transition);
}
.mrm-tool textarea { min-height: 110px; resize: vertical; }

/* Consistent keyboard focus: text-like controls use border + focus halo; other interactive elements use outline. */
.mrm-tool :where(a, button, input, select, textarea, summary):focus-visible {
  outline: 3px solid rgba(20, 90, 150, .30);
  outline-offset: 3px;
}
.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea):focus-visible {
  outline: 0;
  border-color: var(--mrm-tool-blue);
  box-shadow: var(--mrm-tool-focus);
}

.mrm-tool :where(input[type="checkbox"], input[type="radio"]) { accent-color: var(--mrm-tool-blue); }
.mrm-tool :where(input[type="checkbox"], input[type="radio"], input[type="range"]):disabled { opacity: .58; cursor: not-allowed; }
.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea):disabled {
  opacity: .68;
  cursor: not-allowed;
  background: var(--mrm-tool-quiet);
}
.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], textarea)[readonly] { background: var(--mrm-tool-surface); }
.mrm-tool output { color: var(--mrm-tool-navy); font-weight: 800; font-variant-numeric: tabular-nums; }

/* Native range controls for scenario/modeling tools. */
.mrm-tool input[type="range"] {
  width: 100%;
  min-height: var(--mrm-tool-touch);
  margin: 2px 0;
  accent-color: var(--mrm-tool-blue);
  cursor: pointer;
}
.mrm-tool input[type="range"]:disabled { cursor: not-allowed; }
.mrm-tool__range-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.mrm-tool__range-value { min-width: 5ch; color: var(--mrm-tool-navy); font-weight: 800; text-align: right; font-variant-numeric: tabular-nums; }

.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea)[aria-invalid="true"] {
  border-color: var(--mrm-tool-danger);
  background: #fffafa;
}
.mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea)[aria-invalid="true"]:focus-visible {
  box-shadow: 0 0 0 4px rgba(161, 38, 34, .14);
}

.mrm-tool__hint,
.mrm-tool__meta,
.mrm-tool__source,
.mrm-tool__disclaimer {
  color: var(--mrm-tool-muted);
  font-size: .875rem;
}
.mrm-tool__hint { display: block; margin-top: 6px; }
.mrm-tool__source { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--mrm-tool-border); }
.mrm-tool__disclaimer { margin: 12px 0 0; }

.mrm-tool__button,
.mrm-tool a.mrm-tool__button,
.mrm-tool .mrm-tool__button--primary,
.mrm-tool .mrm-button,
.mrm-tool a.mrm-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 10px 17px;
  color: #fff !important;
  background: var(--mrm-tool-navy);
  border: 1px solid var(--mrm-tool-navy);
  border-radius: var(--mrm-tool-radius-sm);
  box-shadow: 0 6px 16px rgba(13, 59, 102, .16);
  font: inherit;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform var(--mrm-tool-transition), box-shadow var(--mrm-tool-transition), background-color var(--mrm-tool-transition);
}
.mrm-tool__button--secondary,
.mrm-tool a.mrm-tool__button--secondary,
.mrm-tool .mrm-button-secondary,
.mrm-tool a.mrm-button-secondary {
  color: var(--mrm-tool-navy) !important;
  background: #fff;
  border-color: #b9cad9;
  box-shadow: none;
}
.mrm-tool__button:disabled,
.mrm-tool__button[aria-disabled="true"],
.mrm-tool .mrm-button:disabled,
.mrm-tool .mrm-button[aria-disabled="true"] {
  opacity: .58;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
.mrm-tool a.mrm-tool__button[aria-disabled="true"],
.mrm-tool a.mrm-button[aria-disabled="true"],
.mrm-tool a.mrm-tool__utility-button[aria-disabled="true"] { pointer-events: none; }
.mrm-tool__button[aria-busy="true"],
.mrm-tool .mrm-button[aria-busy="true"] { cursor: progress; }

.mrm-tool__actions,
.mrm-tool__links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin-top: 14px;
}
.mrm-tool__links a:not(.mrm-tool__button) { color: var(--mrm-tool-link); font-weight: 700; }

.mrm-tool__result {
  margin-top: 18px;
  scroll-margin-top: var(--mrm-tool-scroll-offset);
  background: linear-gradient(145deg, #f1f7fc 0%, #fff 72%);
  border-color: #bdd3e5;
  box-shadow: var(--mrm-tool-shadow-md);
}
.mrm-tool__result:focus { outline: none; }
.mrm-tool__result:focus-visible { outline: 3px solid rgba(20, 90, 150, .26); outline-offset: 4px; }
.mrm-tool__result-kicker {
  margin: 0 0 6px;
  color: var(--mrm-tool-blue);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.mrm-tool__result h3,
.mrm-tool__result-title {
  margin: 0 0 8px;
  color: var(--mrm-tool-navy);
  font-size: 1.4rem;
  font-size: clamp(1.25rem, 4cqi, 1.65rem);
  line-height: 1.2;
}
.mrm-tool__result-value {
  margin: 4px 0 8px;
  color: var(--mrm-tool-navy);
  font-size: 2.6rem;
  font-size: clamp(2rem, 8cqi, 3.4rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.025em;
  font-variant-numeric: tabular-nums;
}
.mrm-tool__result-summary { margin: 0; color: var(--mrm-tool-ink); }

.mrm-tool__why {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #d8e5ef;
}
.mrm-tool__why h4,
.mrm-tool__next h4 { margin: 0 0 8px; color: var(--mrm-tool-navy); font-size: 1rem; }
.mrm-tool__why ul,
.mrm-tool__steps { margin: 8px 0 0; padding-left: 21px; }
.mrm-tool__why li + li,
.mrm-tool__steps li + li { margin-top: 7px; }

.mrm-tool__next {
  margin-top: 18px;
  background: #fff;
}
.mrm-tool__next-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.mrm-tool__next-card {
  display: block;
  min-width: 0;
  padding: 14px;
  color: var(--mrm-tool-ink) !important;
  background: var(--mrm-tool-surface);
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
  text-decoration: none !important;
  transition: transform var(--mrm-tool-transition), border-color var(--mrm-tool-transition), box-shadow var(--mrm-tool-transition);
}
.mrm-tool__next-card strong { display: block; color: var(--mrm-tool-navy); }
.mrm-tool__next-card span { display: block; margin-top: 4px; color: var(--mrm-tool-muted); font-size: .88rem; }

.mrm-tool__code {
  display: inline-flex;
  align-items: center;
  min-height: 46px;
  padding: 9px 13px;
  color: var(--mrm-tool-navy);
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
  font: 800 1.18rem ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: .04em;
}

.mrm-tool__choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.mrm-tool__choice,
.mrm-tool__option,
.mrm-option {
  position: relative;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  min-width: 0;
  margin: 0 !important;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
  box-shadow: var(--mrm-tool-shadow-sm);
  cursor: pointer;
}
/* JS-driven selected-state fallback survives even when :has() is unsupported. */
.mrm-tool__choice.is-selected,
.mrm-tool__choice[data-selected="true"],
.mrm-tool__option.is-selected,
.mrm-tool__option[data-selected="true"],
.mrm-option.is-selected,
.mrm-option[data-selected="true"] { background: var(--mrm-tool-surface-blue); border-color: var(--mrm-tool-blue); box-shadow: var(--mrm-tool-focus); }
/* Native modern path; intentionally isolated from fallback selectors. */
.mrm-tool__choice:has(input:checked),
.mrm-tool__option:has(input:checked),
.mrm-option:has(input:checked) { background: var(--mrm-tool-surface-blue); border-color: var(--mrm-tool-blue); box-shadow: var(--mrm-tool-focus); }
.mrm-tool__choice:focus-within,
.mrm-tool__option:focus-within,
.mrm-option:focus-within { border-color: var(--mrm-tool-blue); box-shadow: var(--mrm-tool-focus); }
.mrm-tool__choice input,
.mrm-tool__option input,
.mrm-option input,
.mrm-tool__check input { flex: 0 0 auto; margin-top: 3px; accent-color: var(--mrm-tool-blue); cursor: pointer; }
/* Child-level visual fallback for wrapped-label markup when :has() is unavailable. */
@supports not selector(:has(*)) {
  .mrm-tool__choice > input:checked + span,
  .mrm-tool__option > input:checked + span,
  .mrm-option > input:checked + span { outline: 2px solid var(--mrm-tool-blue); outline-offset: 4px; border-radius: 5px; }
}
.mrm-tool__choice > span { display: grid; gap: 2px; min-width: 0; }
.mrm-tool__choice > span strong { display: block; line-height: 1.25; }
.mrm-tool__choice > span small { display: block; color: var(--mrm-tool-muted); font-size: .875rem; line-height: 1.35; }

.mrm-tool__progress { margin: 0 0 18px; }
.mrm-tool__progress-text { margin: 0 0 7px; color: var(--mrm-tool-muted); font-size: .875rem; font-weight: 700; }
.mrm-tool__progress-track { height: 8px; overflow: hidden; background: #e7edf3; border-radius: 999px; }
.mrm-tool__progress-bar { width: 0; height: 100%; background: linear-gradient(90deg, var(--mrm-tool-navy), var(--mrm-tool-blue)); border-radius: inherit; transition: width .22s ease; }

.mrm-tool__status { min-height: 1.4em; margin: 8px 0 0; font-size: .88rem; font-weight: 700; }
.mrm-tool__status--ok { color: var(--mrm-tool-success); }
.mrm-tool__status--bad { color: var(--mrm-tool-danger); }

.mrm-tool__privacy {
  display: block;
  margin: 14px 0 0;
  color: var(--mrm-tool-muted);
  font-size: .875rem;
}

.mrm-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@container mrm-tool (max-width: 620px) {
  .mrm-tool__next-grid,
  .mrm-tool__choice-grid { grid-template-columns: 1fr; }
  .mrm-tool__actions > *,
  .mrm-tool__links > * { width: 100%; }
  .mrm-tool__code { width: 100%; justify-content: center; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .mrm-tool *,
  .mrm-tool *::before,
  .mrm-tool *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0s !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* --- v4 form/layout primitives added during RMD pilot --- */
.mrm-tool__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mrm-tool__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mrm-tool__field { min-width: 0; }
.mrm-tool__field + .mrm-tool__field { margin-top: 0; }
.mrm-tool__check {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 10px 0 0;
  padding: 11px 12px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
}
.mrm-tool__check label { margin: 0; font-weight: 600; }
.mrm-tool__metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 16px 0 0; }
.mrm-tool__metric { min-width: 0; padding: 13px; background: #fff; border: 1px solid var(--mrm-tool-border); border-radius: var(--mrm-tool-radius-sm); }
.mrm-tool__metric span { display: block; color: var(--mrm-tool-muted); font-size: .875rem; font-weight: 700; letter-spacing: .01em; }
.mrm-tool__metric strong { display: block; margin-top: 5px; color: var(--mrm-tool-navy); font-size: clamp(1rem, 3cqi, 1.25rem); line-height: 1.15; overflow-wrap: normal; word-break: normal; font-variant-numeric: tabular-nums; }
.mrm-tool__table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  margin-top: 14px;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
  background: #fff;
}
.mrm-tool__table-wrap:focus-visible { outline: 3px solid rgba(20, 90, 150, .30); outline-offset: -3px; }
.mrm-tool__table { width: 100%; min-width: 0; border-collapse: collapse; font-size: .9rem; font-variant-numeric: tabular-nums; }
/* Fluid is the default. Reference matrices opt into intentional horizontal scrolling. */
.mrm-tool__table--compact { min-width: 0; } /* retained compatibility alias */
.mrm-tool__table--reference { min-width: 760px; }
.mrm-tool__table th, .mrm-tool__table td { padding: 11px 12px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--mrm-tool-border); }
.mrm-tool__table th { color: var(--mrm-tool-navy); background: var(--mrm-tool-surface-blue); font-size: .875rem; letter-spacing: .01em; }
.mrm-tool__table tr:last-child td { border-bottom: 0; }
.mrm-tool__details { margin-top: 14px; border: 1px solid var(--mrm-tool-border); border-radius: var(--mrm-tool-radius-md); background: #fff; }
.mrm-tool__details > summary { display: flex; align-items: center; gap: 10px; min-height: var(--mrm-tool-touch); cursor: pointer; padding: 13px 14px; color: var(--mrm-tool-navy); font-weight: 800; list-style: none; }
.mrm-tool__details > summary::-webkit-details-marker { display: none; }
.mrm-tool__details > summary::after { content: "+"; margin-left: auto; color: var(--mrm-tool-blue); font-size: 1.25rem; line-height: 1; font-weight: 700; }
.mrm-tool__details[open] > summary::after { content: "−"; }
.mrm-tool__details[open] > summary { border-bottom: 1px solid var(--mrm-tool-border); }
.mrm-tool__details-body { padding: 14px; }

@container mrm-tool (max-width: 680px) {
  .mrm-tool__grid,
  .mrm-tool__grid--2,
  .mrm-tool__grid--3,
  .mrm-tool__fields,
  .mrm-tool__metrics,
  .mrm-tool__options,
  .mrm-tool__choices,
  .mrm-option-grid,
  .mrm-tool__explain-grid,
  .mrm-tool__scenario-grid,
  .mrm-tool__insight-grid { grid-template-columns: 1fr; }
  .mrm-tool__row { grid-template-columns: 1fr; align-items: stretch; }
  .mrm-tool__row > .mrm-tool__button,
  .mrm-tool__row > .mrm-button { width: 100%; }
  .mrm-tool__result-actions > * { flex: 1 1 100%; width: 100%; }
  .mrm-tool__breakdown-row { grid-template-columns: 1fr; gap: 3px; }
  .mrm-tool__breakdown-row strong { text-align: left; }
  .mrm-tool__segmented { display: grid; grid-auto-flow: row; grid-auto-columns: auto; width: 100%; }
}

/* --- v4.0.1 comparison primitives added during 50/30/20 rebuild --- */
.mrm-tool__compare-list { display: grid; gap: 13px; margin-top: 16px; }
.mrm-tool__compare { min-width: 0; padding: 13px 14px; background: #fff; border: 1px solid var(--mrm-tool-border); border-radius: var(--mrm-tool-radius-sm); }
.mrm-tool__compare-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 14px; margin-bottom: 8px; }
.mrm-tool__compare-head strong { color: var(--mrm-tool-navy); }
.mrm-tool__compare-head span { color: var(--mrm-tool-muted); font-size: .875rem; }
.mrm-tool__bar-track { position: relative; height: 12px; overflow: visible; background: #e8eef4; border-radius: 999px; }
.mrm-tool__bar-fill { width: 0; max-width: 100%; height: 100%; background: linear-gradient(90deg, var(--mrm-tool-blue), #4b8fc7); border-radius: inherit; transition: width .22s ease; }
.mrm-tool__bar-marker { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; background: var(--mrm-tool-gold); border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.9); }
.mrm-tool__compare-note { margin: 7px 0 0; color: var(--mrm-tool-muted); font-size: .875rem; }
.mrm-tool__mini-total { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; margin: 12px 0 0; padding-top: 11px; border-top: 1px solid var(--mrm-tool-border); color: var(--mrm-tool-ink); font-weight: 700; }
.mrm-tool__mini-total strong { color: var(--mrm-tool-navy); font-variant-numeric: tabular-nums; }
.mrm-tool__result-line { margin: 8px 0 0; color: var(--mrm-tool-muted); font-size: .9rem; }

@container mrm-tool (max-width: 520px) {
  .mrm-tool__compare-head { display: grid; }
}

/* --- v4.0.2 repeatable-input primitives added during credit-utilization rebuild --- */
.mrm-tool__repeater { display: grid; gap: 12px; }
.mrm-tool__row-card { min-width: 0; padding: 15px; background: #fff; border: 1px solid var(--mrm-tool-border); border-radius: var(--mrm-tool-radius-md); box-shadow: var(--mrm-tool-shadow-sm); }
.mrm-tool__row-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.mrm-tool__row-title { color: var(--mrm-tool-navy); font-weight: 800; }
.mrm-tool__remove { min-height: var(--mrm-tool-touch); padding: 6px 10px; color: var(--mrm-tool-danger); background: #fff; border: 1px solid #dfb7b3; border-radius: 8px; font: inherit; font-size: .875rem; font-weight: 700; cursor: pointer; }
.mrm-tool__remove:disabled { opacity: .42; cursor: not-allowed; }
.mrm-tool__row-status { margin: 10px 0 0; color: var(--mrm-tool-muted); font-size: .875rem; }
.mrm-tool__table td strong { color: var(--mrm-tool-navy); }
.mrm-tool__metric small { display: block; margin-top: 4px; color: var(--mrm-tool-muted); font-size: .875rem; line-height: 1.4; }


/* --- v4.1.0 reader-result and decision-support primitives --- */
.mrm-tool__answer-block {
  display: grid;
  gap: 8px;
  max-width: var(--mrm-tool-max-reading);
}
.mrm-tool__answer-label {
  margin: 0;
  color: var(--mrm-tool-blue);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.mrm-tool__answer-text { margin: 0; color: var(--mrm-tool-ink); font-size: 1rem; }

.mrm-tool__explain-grid,
.mrm-tool__scenario-grid,
.mrm-tool__insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.mrm-tool__explain-card,
.mrm-tool__scenario-card,
.mrm-tool__insight-card {
  min-width: 0;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
}
.mrm-tool__explain-card h4,
.mrm-tool__scenario-card h4,
.mrm-tool__insight-card h4 {
  margin: 0 0 6px;
  color: var(--mrm-tool-navy);
  font-size: .95rem;
}
.mrm-tool__explain-card p,
.mrm-tool__scenario-card p,
.mrm-tool__insight-card p { margin: 0; }
.mrm-tool__scenario-value {
  display: block;
  margin: 4px 0 6px;
  color: var(--mrm-tool-navy);
  font-size: 1.5rem;
  font-size: clamp(1.25rem, 4cqi, 1.75rem);
  font-weight: 800;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}
.mrm-tool__scenario-card--active {
  background: var(--mrm-tool-surface-blue);
  border-color: #a9c7df;
  box-shadow: inset 0 0 0 1px rgba(20, 90, 150, .08);
}

.mrm-tool__breakdown {
  display: grid;
  gap: 0;
  margin-top: 16px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
  overflow: hidden;
}
.mrm-tool__breakdown-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: baseline;
  padding: 11px 13px;
  border-bottom: 1px solid var(--mrm-tool-border);
}
.mrm-tool__breakdown-row:last-child { border-bottom: 0; }
.mrm-tool__breakdown-row span { color: var(--mrm-tool-muted); }
.mrm-tool__breakdown-row strong { color: var(--mrm-tool-navy); text-align: right; font-variant-numeric: tabular-nums; }

.mrm-tool__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 4px 8px;
  color: var(--mrm-tool-navy);
  background: var(--mrm-tool-quiet);
  border: 1px solid var(--mrm-tool-border);
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.25;
}
.mrm-tool__badge--success { color: #0d5d3a; background: var(--mrm-tool-success-bg); border-color: #b8dfca; }
.mrm-tool__badge--warning { color: #684400; background: var(--mrm-tool-warning-bg); border-color: #ead7a2; }
.mrm-tool__badge--danger { color: #84211d; background: var(--mrm-tool-danger-bg); border-color: #e2b9b6; }

.mrm-tool__result-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid #d8e5ef;
}
.mrm-tool__utility-button,
.mrm-tool a.mrm-tool__utility-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: var(--mrm-tool-touch);
  padding: 8px 12px;
  color: var(--mrm-tool-navy) !important;
  background: #fff;
  border: 1px solid #b9cad9;
  border-radius: 9px;
  box-shadow: none;
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  cursor: pointer;
  transition: background-color var(--mrm-tool-transition), border-color var(--mrm-tool-transition), transform var(--mrm-tool-transition);
}
.mrm-tool__utility-button:focus-visible { outline: 3px solid rgba(20, 90, 150, .28); outline-offset: 3px; }
.mrm-tool__utility-button:disabled,
.mrm-tool__utility-button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; transform: none; }
.mrm-tool__action-status { min-height: 1.25em; color: var(--mrm-tool-muted); font-size: .875rem; font-weight: 700; }

.mrm-tool__threshold {
  margin-top: 16px;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
}
.mrm-tool__threshold-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 12px;
  margin-bottom: 10px;
}
.mrm-tool__threshold-head strong { color: var(--mrm-tool-navy); }
.mrm-tool__threshold-head span { color: var(--mrm-tool-muted); font-size: .875rem; }
.mrm-tool__threshold-track {
  position: relative;
  height: 14px;
  margin: 9px 0;
  background: #e6edf3;
  border-radius: 999px;
}
.mrm-tool__threshold-fill {
  width: 0;
  max-width: 100%;
  height: 100%;
  background: linear-gradient(90deg, var(--mrm-tool-navy), var(--mrm-tool-blue));
  border-radius: inherit;
}
.mrm-tool__threshold-marker {
  position: absolute;
  top: -5px;
  bottom: -5px;
  width: 3px;
  margin-left: -1.5px;
  background: var(--mrm-tool-gold);
  border-radius: 2px;
  box-shadow: 0 0 0 2px #fff;
}
.mrm-tool__threshold-labels {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--mrm-tool-muted);
  font-size: .875rem;
}

.mrm-tool__timeline {
  display: grid;
  gap: 0;
  margin-top: 16px;
}
.mrm-tool__timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  min-width: 0;
  padding: 0 0 18px;
}
.mrm-tool__timeline-item:last-child { padding-bottom: 0; }
.mrm-tool__timeline-item::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: -2px;
  left: 10px;
  width: 2px;
  background: var(--mrm-tool-border);
}
.mrm-tool__timeline-item:last-child::before { display: none; }
.mrm-tool__timeline-marker {
  position: relative;
  z-index: 1;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  background: #fff;
  border: 3px solid var(--mrm-tool-blue);
  border-radius: 50%;
}
.mrm-tool__timeline-content { min-width: 0; }
.mrm-tool__timeline-content strong { display: block; color: var(--mrm-tool-navy); }
.mrm-tool__timeline-content p { margin: 3px 0 0; color: var(--mrm-tool-muted); }

.mrm-tool__segmented {
  display: inline-grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  max-width: 100%;
  padding: 3px;
  background: var(--mrm-tool-quiet);
  border: 1px solid var(--mrm-tool-border);
  border-radius: 11px;
}
.mrm-tool__segment {
  min-height: var(--mrm-tool-touch);
  padding: 7px 11px;
  color: var(--mrm-tool-navy);
  background: transparent;
  border: 0;
  border-radius: 8px;
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
}
.mrm-tool__segment[aria-pressed="true"],
.mrm-tool__segment[aria-selected="true"] { background: #fff; box-shadow: var(--mrm-tool-shadow-sm); }
.mrm-tool__segment:focus-visible { outline: 3px solid rgba(20, 90, 150, .28); outline-offset: 2px; }

.mrm-tool__chart-wrap {
  width: 100%;
  min-width: 0;
  margin-top: 16px;
  padding: 14px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
}
.mrm-tool__chart-wrap canvas,
.mrm-tool__chart-wrap svg { display: block; max-width: 100%; height: auto; }
.mrm-tool__chart-note { margin: 8px 0 0; color: var(--mrm-tool-muted); font-size: .875rem; }

.mrm-tool__empty-state {
  padding: 18px;
  color: var(--mrm-tool-muted);
  background: var(--mrm-tool-surface);
  border: 1px dashed #b8c7d5;
  border-radius: var(--mrm-tool-radius-md);
  text-align: center;
}
.mrm-tool__empty-state > :first-child { margin-top: 0; }
.mrm-tool__empty-state > :last-child { margin-bottom: 0; }

.mrm-tool__scroll-hint {
  display: none;
  margin: 8px 0 0;
  color: var(--mrm-tool-muted);
  font-size: .875rem;
  font-weight: 600;
}

/* --- v4.0.5 compatibility primitives from full HOLD-package dependency audit --- */
.mrm-tool__header { margin-bottom: 18px; }
.mrm-tool__form { display: grid; gap: 18px; }
.mrm-tool__fieldset {
  min-width: 0;
  padding: 18px;
  padding: clamp(16px, 3cqi, 22px);
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-md);
  box-shadow: var(--mrm-tool-shadow-sm);
}
.mrm-tool__legend { padding: 0 4px; color: var(--mrm-tool-navy); font-weight: 800; }
.mrm-tool__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mrm-tool__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mrm-tool__help { margin: 6px 0 0; color: var(--mrm-tool-muted); font-size: .875rem; line-height: 1.45; }
.mrm-tool__optional { color: var(--mrm-tool-muted); font-size: .8em; font-weight: 600; }
.mrm-tool__progress-label { margin: 0 0 7px; color: var(--mrm-tool-muted); font-size: .875rem; font-weight: 700; }
.mrm-tool__error {
  margin: 12px 0 0;
  padding: 12px 14px;
  color: var(--mrm-tool-danger);
  background: var(--mrm-tool-danger-bg);
  border: 1px solid #dfb7b3;
  border-left: 4px solid var(--mrm-tool-danger);
  border-radius: var(--mrm-tool-radius-sm);
  font-weight: 700;
}
.mrm-tool__options,
.mrm-tool__choices,
.mrm-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.mrm-tool__input-affix { display: flex; align-items: stretch; width: 100%; }
.mrm-tool .mrm-tool__input-affix > input { width: 1%; min-width: 0; flex: 1 1 auto; }
.mrm-tool__input-affix > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 11px;
  color: var(--mrm-tool-muted);
  background: var(--mrm-tool-surface);
  border: 1px solid #aebdcc;
  font-weight: 700;
  white-space: nowrap;
}
.mrm-tool__input-affix > span:first-child { border-right: 0; border-radius: var(--mrm-tool-radius-sm) 0 0 var(--mrm-tool-radius-sm); }
.mrm-tool__input-affix > span:first-child + input { border-radius: 0 var(--mrm-tool-radius-sm) var(--mrm-tool-radius-sm) 0; }
.mrm-tool__input-affix > input:first-child { border-radius: var(--mrm-tool-radius-sm) 0 0 var(--mrm-tool-radius-sm); }
.mrm-tool__input-affix > input:first-child + span { border-left: 0; border-radius: 0 var(--mrm-tool-radius-sm) var(--mrm-tool-radius-sm) 0; }
.mrm-tool__metric-label { display: block; color: var(--mrm-tool-muted); font-size: .875rem; font-weight: 700; letter-spacing: .01em; }
.mrm-tool__row { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr) auto; gap: 10px; align-items: end; padding: 12px 0; border-bottom: 1px solid var(--mrm-tool-border); }
.mrm-tool__row:last-child { border-bottom: 0; }
.mrm-tool__callout {
  margin-top: 16px;
  padding: 14px 16px;
  background: var(--mrm-tool-surface-blue);
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
}
.mrm-tool__callout > :first-child { margin-top: 0; }
.mrm-tool__callout > :last-child { margin-bottom: 0; }
.mrm-tool__boundary,
.mrm-tool__next-step {
  margin: 16px 0 0;
  padding: 13px 14px;
  color: var(--mrm-tool-ink);
  background: var(--mrm-tool-surface);
  border-left: 4px solid var(--mrm-tool-blue);
  border-radius: var(--mrm-tool-radius-sm);
}
.mrm-tool__section { margin-top: 18px; }
/* Compatibility aliases are real standalone aliases, not empty marker classes. */
.mrm-tool .mrm-progress-track { height: 8px; overflow: hidden; background: #e7edf3; border-radius: 999px; }
.mrm-tool .mrm-progress-bar { width: 0; height: 100%; background: linear-gradient(90deg, var(--mrm-tool-navy), var(--mrm-tool-blue)); border-radius: inherit; transition: width .22s ease; }


/* --- v4.1.0 compatibility with current MichaelRyanMoney.com child-theme mobile table rules --- */
@media screen and (max-width: 768px) {
  .mrm-tool table.mrm-tool__table { display: table !important; }
  .mrm-tool .mrm-tool__table thead { display: table-header-group !important; }
  .mrm-tool .mrm-tool__table tbody { display: table-row-group !important; }
  .mrm-tool .mrm-tool__table tfoot { display: table-footer-group !important; }
  .mrm-tool .mrm-tool__table tr {
    display: table-row !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
  }
  .mrm-tool .mrm-tool__table th,
  .mrm-tool .mrm-tool__table td {
    display: table-cell !important;
    position: static !important;
    width: auto !important;
    min-height: 0 !important;
    padding: 10px 11px !important;
    text-align: left !important;
    align-items: initial !important;
    justify-content: initial !important;
  }
  .mrm-tool .mrm-tool__table td::before { content: none !important; display: none !important; }
  .mrm-tool__scroll-hint { display: block; }
}


@container mrm-tool (max-width: 430px) {
  .mrm-tool__title { font-size: clamp(1.45rem, 9cqi, 1.85rem); }
  .mrm-tool__result-value { font-size: clamp(1.9rem, 13cqi, 2.8rem); }
  .mrm-tool__fieldset,
  .mrm-tool__card,
  .mrm-tool__result,
  .mrm-tool__panel,
  .mrm-tool__next { padding: 15px; }
  .mrm-tool__threshold-labels { display: grid; grid-template-columns: 1fr; }
  .mrm-tool__range-row { grid-template-columns: 1fr; gap: 4px; }
  .mrm-tool__range-value { text-align: left; }
}

/* Shell sizing must use viewport media queries because a query container cannot query/style itself. */
@media screen and (max-width: 620px) {
  .mrm-tool { margin: 18px auto; border-radius: 16px; }
}
@media screen and (max-width: 430px) {
  .mrm-tool { padding: 18px 14px; }
}

/* Complete fallback for older engines that do not support container queries. */
@supports not (container-type: inline-size) {
  @media screen and (max-width: 680px) {
    .mrm-tool__grid,
    .mrm-tool__grid--2,
    .mrm-tool__grid--3,
    .mrm-tool__fields,
    .mrm-tool__metrics,
    .mrm-tool__options,
    .mrm-tool__choices,
    .mrm-option-grid,
    .mrm-tool__choice-grid,
    .mrm-tool__next-grid,
    .mrm-tool__explain-grid,
    .mrm-tool__scenario-grid,
    .mrm-tool__insight-grid { grid-template-columns: 1fr; }
    .mrm-tool__row,
    .mrm-tool__breakdown-row { grid-template-columns: 1fr; align-items: stretch; }
    .mrm-tool__breakdown-row { gap: 3px; }
    .mrm-tool__breakdown-row strong { text-align: left; }
    .mrm-tool__segmented { display: grid; grid-auto-flow: row; grid-auto-columns: auto; width: 100%; }
    .mrm-tool__result-actions > * { flex: 1 1 100%; width: 100%; }
  }
  @media screen and (max-width: 620px) {
    .mrm-tool__next-grid,
    .mrm-tool__choice-grid { grid-template-columns: 1fr; }
    .mrm-tool__actions > *,
    .mrm-tool__links > * { width: 100%; }
    .mrm-tool__code { width: 100%; justify-content: center; text-align: center; }
  }
  @media screen and (max-width: 520px) {
    .mrm-tool__compare-head { display: grid; }
  }
  @media screen and (max-width: 430px) {
    .mrm-tool__title { font-size: 1.6rem; }
    .mrm-tool__result-value { font-size: 2.2rem; }
    .mrm-tool__fieldset,
    .mrm-tool__card,
    .mrm-tool__result,
    .mrm-tool__panel,
    .mrm-tool__next { padding: 15px; }
    .mrm-tool__threshold-labels { display: grid; grid-template-columns: 1fr; }
    .mrm-tool__range-row { grid-template-columns: 1fr; gap: 4px; }
    .mrm-tool__range-value { text-align: left; }
  }
}

/* Hover effects only exist on devices that actually support precise hover. */
@media (hover: hover) and (pointer: fine) {
  .mrm-tool__button:hover,
  .mrm-tool .mrm-button:hover { transform: translateY(-1px); background: #082f53; box-shadow: 0 9px 22px rgba(13, 59, 102, .20); }
  .mrm-tool__button--secondary:hover,
  .mrm-tool .mrm-button-secondary:hover { background: var(--mrm-tool-surface-blue); color: var(--mrm-tool-navy) !important; box-shadow: none; }
  .mrm-tool__utility-button:hover { background: var(--mrm-tool-surface-blue); border-color: #9bb9d0; transform: translateY(-1px); }
  .mrm-tool__next-card:hover { transform: translateY(-1px); border-color: #afc7db; box-shadow: var(--mrm-tool-shadow-sm); }
}

/* Extra contrast without changing the normal MRM visual language. */
@media (prefers-contrast: more) {
  .mrm-tool { border-color: #8fa5b8; box-shadow: none; }
  .mrm-tool__card,
  .mrm-tool__result,
  .mrm-tool__panel,
  .mrm-tool__next,
  .mrm-tool__fieldset,
  .mrm-tool__choice,
  .mrm-tool__option,
  .mrm-option { border-color: #8fa5b8; }
  .mrm-tool :is(input[type="text"], input[type="password"], input[type="number"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="search"], input[type="tel"], input[type="url"], input[type="time"], input[type="month"], input[type="week"], select, textarea) { border-color: #6f879c; }
  .mrm-tool__hint,
  .mrm-tool__meta,
  .mrm-tool__source,
  .mrm-tool__disclaimer,
  .mrm-tool__privacy { color: #3f4c59; }
}

/* Optional compact snapshot populated by tool JS so a saved result can preserve the inputs that produced it. */
.mrm-tool__print-context {
  display: none;
  margin-top: 14px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid var(--mrm-tool-border);
  border-radius: var(--mrm-tool-radius-sm);
}
.mrm-tool__print-context dl { display: grid; grid-template-columns: minmax(8rem, .8fr) minmax(0, 1.2fr); gap: 6px 14px; margin: 0; }
.mrm-tool__print-context dt { color: var(--mrm-tool-muted); font-weight: 700; }
.mrm-tool__print-context dd { margin: 0; color: var(--mrm-tool-ink); font-variant-numeric: tabular-nums; }

/* Clean print / browser Save-as-PDF treatment for tools that expose a print action. */
@media print {
  .mrm-tool {
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    background: #fff;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .mrm-tool::before { display: none; }
  .mrm-tool__button,
  .mrm-tool__utility-button,
  .mrm-tool__actions,
  .mrm-tool__result-actions,
  .mrm-tool__scroll-hint { display: none !important; }
  .mrm-tool__card,
  .mrm-tool__result,
  .mrm-tool__panel,
  .mrm-tool__next,
  .mrm-tool__fieldset,
  .mrm-tool__scenario-card,
  .mrm-tool__explain-card,
  .mrm-tool__insight-card,
  .mrm-tool__threshold,
  .mrm-tool__chart-wrap {
    box-shadow: none;
    break-inside: avoid;
  }
  .mrm-tool__table-wrap { overflow: visible; }
  .mrm-tool__table { width: 100%; min-width: 0; font-size: 9pt; }
  .mrm-tool__grid,
  .mrm-tool__grid--2,
  .mrm-tool__next-grid,
  .mrm-tool__explain-grid,
  .mrm-tool__scenario-grid,
  .mrm-tool__insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mrm-tool__metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* Opt-in class for tools whose print action should save the result rather than the input form. */
  .mrm-tool--print-result .mrm-tool__form,
  .mrm-tool--print-result .mrm-tool__progress,
  .mrm-tool--print-result .mrm-tool__privacy { display: none !important; }
  .mrm-tool--print-result .mrm-tool__print-context { display: block; }
  .mrm-tool__print-context dl { grid-template-columns: minmax(7rem, .75fr) minmax(0, 1.25fr); }
  .mrm-tool { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .mrm-tool a { color: #000 !important; text-decoration: underline !important; }
}

@media (forced-colors: active) {
  .mrm-tool__choice.is-selected,
  .mrm-tool__choice[data-selected="true"],
  .mrm-tool__option.is-selected,
  .mrm-tool__option[data-selected="true"],
  .mrm-option.is-selected,
  .mrm-option[data-selected="true"],
  .mrm-tool__segment[aria-pressed="true"],
  .mrm-tool__segment[aria-selected="true"] { outline: 2px solid CanvasText; }

  .mrm-tool__threshold-marker,
  .mrm-tool__bar-marker { outline: 2px solid CanvasText; outline-offset: 1px; box-shadow: none; }
  .mrm-tool__timeline-marker { border-color: CanvasText; }
  .mrm-tool :where([aria-disabled="true"], :disabled) { color: GrayText; border-color: GrayText; }
}

@supports selector(:has(*)) {
  @media (forced-colors: active) {
    .mrm-tool__choice:has(input:checked),
    .mrm-tool__option:has(input:checked),
    .mrm-option:has(input:checked) { outline: 2px solid CanvasText; }
  }
}

/* === END MRM TOOLS CORE v4.2.1 REBUILD BASELINE === */
