.cbl-app {
  --cbl-navy: #00235e;
  --cbl-navy-2: #0b3f8f;
  --cbl-yellow: #ffb600;
  --cbl-text: #17233b;
  --cbl-muted: #5d6878;
  --cbl-surface: #f6f8fb;
  --cbl-surface-2: #eef3f8;
  --cbl-white: #fff;
  --cbl-border: #d8e0ea;
  --cbl-border-strong: #b9c5d5;
  --cbl-success: #087a55;
  --cbl-success-bg: #e9f7f1;
  --cbl-warning: #805b00;
  --cbl-warning-bg: #fff4ce;
  --cbl-danger: #a52a3a;
  --cbl-danger-bg: #fff0f2;
  --cbl-radius-lg: 24px;
  --cbl-radius-md: 18px;
  --cbl-radius-sm: 12px;
  color: var(--cbl-text);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 1240px;
  min-width: 0;
  position: relative;
}

.cbl-app,
.cbl-app * {
  box-sizing: border-box;
}

.cbl-app :where(h1, h2, h3, p, fieldset, legend) {
  margin-block: 0;
}

.cbl-app button,
.cbl-app input,
.cbl-app summary {
  font: inherit;
}

.cbl-app button,
.cbl-app a,
.cbl-app input,
.cbl-app summary {
  -webkit-tap-highlight-color: transparent;
}

.cbl-app :where(button, a, input, summary):focus-visible {
  box-shadow: 0 0 0 2px var(--cbl-white), 0 0 0 5px var(--cbl-navy);
  outline: 0;
}

.cbl-app a {
  color: var(--cbl-navy-2);
  text-underline-offset: 0.16em;
}

.cbl-skip-link {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 10px;
  color: var(--cbl-navy) !important;
  font-weight: 750;
  left: 16px;
  padding: 10px 14px;
  position: absolute;
  top: 8px;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  width: 1px;
  z-index: 20;
}

.cbl-skip-link:focus {
  clip: auto;
  clip-path: none;
  height: auto;
  overflow: visible;
  width: auto;
}

/* Red Dot hero: one quiet brand surface, one clear idea, one data-led cue. */
.cbl-hero {
  align-items: center;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 28px;
  display: grid;
  gap: clamp(28px, 5vw, 64px);
  grid-template-columns: minmax(0, 1fr) minmax(250px, 310px);
  min-height: 306px;
  overflow: hidden;
  padding: clamp(30px, 5vw, 58px);
  position: relative;
}

.cbl-hero__copy {
  max-width: 720px;
  min-width: 0;
}

.cbl-eyebrow,
.cbl-kicker {
  color: var(--cbl-navy-2);
  display: block;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.085em;
  text-transform: uppercase;
}

.cbl-eyebrow {
  margin-bottom: 13px !important;
}

.cbl-eyebrow span {
  color: var(--cbl-muted);
  font-weight: 700;
}

.cbl-hero h2 {
  color: var(--cbl-navy);
  font-size: clamp(2rem, 4.7vw, 3.75rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.02;
  max-width: 760px;
  text-wrap: balance;
}

.cbl-hero__copy > p:last-child {
  color: var(--cbl-muted);
  font-size: clamp(1rem, 1.7vw, 1.17rem);
  margin-top: 18px;
  max-width: 640px;
}

.cbl-hero__visual {
  background: var(--cbl-navy);
  border-radius: 22px;
  color: var(--cbl-white);
  min-height: 196px;
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.cbl-hero__visual-kicker {
  color: #c9d7ed;
  display: block;
  font-size: 0.73rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cbl-hero__visual > strong {
  display: block;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin-top: 7px;
}

.cbl-hero__equation {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 30px;
  max-width: 230px;
}

.cbl-hero__equation span {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: 999px;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 5px 8px;
}

.cbl-hero__equation b {
  color: var(--cbl-yellow);
  font-size: 0.86rem;
}

.cbl-notice {
  background: #fff7db;
  border: 1px solid #e9cf73;
  border-radius: 14px;
  color: #5f4a00;
  margin-top: 18px !important;
  padding: 14px 16px;
}

.cbl-scenarios {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  margin-top: 24px !important;
  min-width: 0;
  padding: clamp(22px, 3.5vw, 34px);
}

.cbl-scenarios legend {
  color: var(--cbl-text);
  float: left;
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  line-height: 1.15;
  padding: 0;
  width: 100%;
}

.cbl-scenarios legend + p {
  clear: both;
  color: var(--cbl-muted);
  padding-top: 8px;
}

.cbl-scenario-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 18px;
}

.cbl-scenario {
  align-items: center;
  appearance: none;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  display: flex;
  gap: 12px;
  min-height: 76px;
  padding: 12px 14px;
  position: relative;
  text-align: left;
  transition: background-color 150ms ease, border-color 150ms ease;
  width: 100%;
}

.cbl-scenario.is-active {
  background: #fffdf6;
  border-color: var(--cbl-navy);
}

.cbl-scenario__icon {
  align-items: center;
  background: var(--cbl-surface-2);
  border: 1px solid var(--cbl-border);
  border-radius: 11px;
  color: var(--cbl-navy);
  display: flex;
  flex: 0 0 42px;
  font-size: 0.76rem;
  font-weight: 850;
  height: 42px;
  justify-content: center;
  letter-spacing: 0.05em;
}

.cbl-scenario.is-active .cbl-scenario__icon {
  background: var(--cbl-navy);
  border-color: var(--cbl-navy);
  color: var(--cbl-yellow);
}

.cbl-scenario strong,
.cbl-scenario small {
  display: block;
}

.cbl-scenario strong {
  line-height: 1.2;
}

.cbl-scenario small {
  color: var(--cbl-muted);
  font-size: 0.78rem;
  margin-top: 4px;
}

.cbl-scenario-status {
  color: var(--cbl-muted);
  font-size: 0.88rem;
  margin-top: 14px !important;
}

.cbl-workspace {
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(330px, 0.78fr) minmax(0, 1.42fr);
  margin-top: 24px;
}

.cbl-panel,
.cbl-chart-card,
.cbl-experiments,
.cbl-formulas {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
}

.cbl-panel {
  min-width: 0;
  padding: clamp(20px, 3vw, 30px);
}

.cbl-controls {
  position: sticky;
  top: 24px;
}

.cbl-section-heading {
  align-items: start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.cbl-section-heading h2 {
  color: var(--cbl-text);
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  letter-spacing: -0.025em;
  line-height: 1.16;
  margin-top: 4px;
  text-wrap: balance;
}

.cbl-reset {
  appearance: none;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border-strong);
  border-radius: 12px;
  color: var(--cbl-navy-2);
  cursor: pointer;
  font-weight: 750;
  min-height: 44px;
  padding: 8px 14px;
}

.cbl-tabs {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 15px;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
  padding: 4px;
}

.cbl-tab {
  appearance: none;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 11px;
  color: var(--cbl-muted);
  cursor: pointer;
  font-size: 0.79rem;
  font-weight: 750;
  min-height: 48px;
  padding: 6px;
}

.cbl-tab span {
  align-items: center;
  background: #e3e8ef;
  border-radius: 50%;
  color: var(--cbl-navy);
  display: inline-flex;
  font-size: 0.7rem;
  height: 22px;
  justify-content: center;
  margin-right: 3px;
  width: 22px;
}

.cbl-tab.is-active {
  background: var(--cbl-navy);
  color: var(--cbl-white);
}

.cbl-tab.is-active span {
  background: var(--cbl-yellow);
  color: var(--cbl-navy);
}

.cbl-tab-panel {
  padding-top: 22px;
}

.cbl-panel-intro {
  align-items: center;
  background: #fff9e9;
  border-radius: 13px;
  display: flex;
  gap: 12px;
  padding: 12px 14px;
}

.cbl-panel-intro > span {
  align-items: center;
  color: var(--cbl-navy);
  display: flex;
  flex: 0 0 28px;
  font-size: 1.12rem;
  font-weight: 850;
  justify-content: center;
}

.cbl-panel-intro p {
  color: var(--cbl-muted);
  font-size: 0.9rem;
  line-height: 1.4;
}

.cbl-panel-intro strong {
  color: var(--cbl-text);
}

.cbl-control {
  border-bottom: 1px solid #e9edf2;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) 118px;
  padding: 19px 0;
}

.cbl-control__heading {
  grid-column: 1 / -1;
}

.cbl-control__heading label {
  color: var(--cbl-text);
  display: block;
  font-weight: 750;
  line-height: 1.3;
}

.cbl-control__heading span {
  color: var(--cbl-muted);
  display: block;
  font-size: 0.82rem;
  margin-top: 3px;
}

.cbl-range {
  appearance: none;
  background: transparent;
  cursor: pointer;
  height: 44px;
  min-width: 0;
  width: 100%;
}

.cbl-range::-webkit-slider-runnable-track {
  background: #d7dfeb;
  border-radius: 999px;
  height: 6px;
}

.cbl-range::-webkit-slider-thumb {
  appearance: none;
  background: var(--cbl-white);
  border: 5px solid var(--cbl-navy-2);
  border-radius: 50%;
  height: 22px;
  margin-top: -8px;
  width: 22px;
}

.cbl-range::-moz-range-track {
  background: #d7dfeb;
  border: 0;
  border-radius: 999px;
  height: 6px;
}

.cbl-range::-moz-range-progress {
  background: var(--cbl-navy-2);
  border-radius: 999px;
  height: 6px;
}

.cbl-range::-moz-range-thumb {
  background: var(--cbl-white);
  border: 5px solid var(--cbl-navy-2);
  border-radius: 50%;
  height: 12px;
  width: 12px;
}

.cbl-number-wrap {
  align-items: center;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 12px;
  display: flex;
  min-height: 48px;
}

.cbl-number-wrap:focus-within {
  border-color: var(--cbl-navy);
  box-shadow: 0 0 0 2px var(--cbl-white), 0 0 0 5px var(--cbl-navy);
}

.cbl-number {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--cbl-text);
  font-weight: 800;
  min-width: 0;
  padding: 10px 2px 10px 10px;
  width: 100%;
}

.cbl-number:focus-visible {
  box-shadow: none !important;
}

.cbl-number::-webkit-inner-spin-button,
.cbl-number::-webkit-outer-spin-button {
  margin: 0;
}

.cbl-number-wrap span {
  color: var(--cbl-muted);
  flex: 0 0 auto;
  font-size: 0.78rem;
  padding-right: 8px;
}

.cbl-next {
  align-items: center;
  appearance: none;
  background: var(--cbl-navy);
  border: 1px solid var(--cbl-navy);
  border-radius: 13px;
  color: var(--cbl-white) !important;
  cursor: pointer;
  display: flex;
  font-weight: 750;
  justify-content: center;
  margin-top: 20px;
  min-height: 48px;
  padding: 11px 16px;
  text-align: center;
  text-decoration: none;
  width: 100%;
}

.cbl-results {
  min-width: 0;
  scroll-margin-top: 7rem;
}

.cbl-outcome {
  background: var(--cbl-success-bg);
  border: 1px solid #b7decf;
  border-left: 5px solid var(--cbl-success);
  border-radius: var(--cbl-radius-lg);
  padding: clamp(24px, 3.5vw, 36px);
}

.cbl-outcome[data-tone="negative"] {
  background: var(--cbl-danger-bg);
  border-color: #efc0c8;
  border-left-color: var(--cbl-danger);
}

.cbl-outcome[data-tone="neutral"] {
  background: var(--cbl-warning-bg);
  border-color: #ead38b;
  border-left-color: var(--cbl-warning);
}

.cbl-outcome h2 {
  color: var(--cbl-text);
  font-size: clamp(1.45rem, 2.7vw, 2.05rem);
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin-top: 6px;
  text-wrap: balance;
}

.cbl-outcome > strong {
  color: var(--cbl-success);
  display: block;
  font-size: clamp(2.2rem, 5vw, 4.2rem);
  letter-spacing: -0.045em;
  line-height: 1;
  margin-top: 14px;
  overflow-wrap: anywhere;
}

.cbl-outcome[data-tone="negative"] > strong {
  color: var(--cbl-danger);
}

.cbl-outcome[data-tone="neutral"] > strong {
  color: var(--cbl-warning);
}

.cbl-outcome > p {
  color: #34445b;
  margin-top: 13px;
  max-width: 650px;
}

.cbl-metrics {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

.cbl-metric {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  min-width: 0;
  padding: 16px;
}

.cbl-metric__icon {
  align-items: center;
  background: var(--cbl-surface-2);
  border: 1px solid var(--cbl-border);
  border-radius: 10px;
  color: var(--cbl-navy);
  display: flex;
  font-size: 0.87rem;
  font-weight: 850;
  height: 36px;
  justify-content: center;
  margin-bottom: 12px;
  min-width: 36px;
  padding-inline: 7px;
  width: fit-content;
}

.cbl-metric--yellow .cbl-metric__icon {
  background: #fff3c7;
  border-color: #ead38b;
  color: #6d4b00;
}

.cbl-metric h3 {
  color: var(--cbl-muted);
  font-size: 0.8rem;
  font-weight: 750;
  letter-spacing: 0.015em;
}

.cbl-metric > strong {
  color: var(--cbl-text);
  display: block;
  font-size: clamp(1.25rem, 2.2vw, 1.75rem);
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin-top: 5px;
  overflow-wrap: anywhere;
}

.cbl-metric > p {
  color: var(--cbl-muted);
  font-size: 0.8rem;
  line-height: 1.42;
  margin-top: 8px;
}

.cbl-chart-card,
.cbl-experiments {
  margin-top: 24px;
  padding: clamp(22px, 3.5vw, 36px);
}

.cbl-section-heading--chart {
  align-items: center;
}

.cbl-chart-badge {
  background: #fff3c7;
  border: 1px solid #ead38b;
  border-radius: 999px;
  color: #6d4b00;
  flex: 0 0 auto;
  font-size: 0.83rem;
  font-weight: 750;
  padding: 8px 13px;
}

.cbl-chart-wrap:focus-visible {
  box-shadow: 0 0 0 2px var(--cbl-white), 0 0 0 5px var(--cbl-navy);
  outline: 0;
}

.cbl-chart-wrap {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 17px;
  margin-top: 22px;
  padding: 14px;
}

.cbl-chart {
  display: block;
  height: auto;
  max-height: 390px;
  overflow: visible;
  width: 100%;
}

.cbl-chart__grid {
  stroke: #dfe5ee;
  stroke-width: 1;
}

.cbl-chart__axis {
  stroke: #8994a8;
  stroke-width: 1.5;
}

.cbl-chart__zone--loss {
  fill: rgba(165, 42, 58, 0.07);
}

.cbl-chart__zone--profit {
  fill: rgba(8, 122, 85, 0.08);
}

.cbl-chart__line {
  fill: none;
  stroke-linecap: round;
  stroke-width: 4;
}

.cbl-chart__line--revenue {
  stroke: var(--cbl-navy-2);
}

.cbl-chart__line--cost {
  stroke: #b6532f;
}

.cbl-chart__break-line {
  stroke: #4d5a70;
  stroke-dasharray: 5 5;
  stroke-width: 1.5;
}

.cbl-chart__dot {
  fill: var(--cbl-yellow);
  stroke: var(--cbl-navy);
  stroke-width: 4;
}

.cbl-chart__label {
  fill: var(--cbl-muted);
  font-size: 13px;
  font-weight: 650;
}

.cbl-chart__label--break {
  fill: var(--cbl-navy);
  font-weight: 850;
}

.cbl-chart-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: center;
  padding: 2px 0 8px;
}

.cbl-chart-legend span {
  align-items: center;
  color: var(--cbl-muted);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 700;
  gap: 7px;
}

.cbl-chart-legend__line {
  background: var(--cbl-navy-2);
  border-radius: 99px;
  display: inline-block;
  height: 4px;
  width: 26px;
}

.cbl-chart-legend__line--cost {
  background: #b6532f;
}

.cbl-chart-summary {
  background: var(--cbl-surface);
  border-radius: 13px;
  color: #34445b;
  margin-top: 15px !important;
  padding: 14px 16px;
}

.cbl-chart-summary strong {
  color: var(--cbl-text);
}

.cbl-action-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 20px;
}

.cbl-action {
  appearance: none;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 126px;
  padding: 17px;
  text-align: left;
  transition: background-color 150ms ease, border-color 150ms ease;
}

.cbl-action > span,
.cbl-action > strong,
.cbl-action > small {
  display: block;
}

.cbl-action > span {
  color: var(--cbl-navy);
  font-size: 0.82rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  margin-bottom: 9px;
}

.cbl-action > strong {
  line-height: 1.25;
}

.cbl-action > small {
  color: var(--cbl-success);
  font-size: 0.8rem;
  font-weight: 750;
  margin-top: 8px;
}

.cbl-formulas {
  margin-top: 24px;
  overflow: hidden;
}

.cbl-formulas summary {
  color: var(--cbl-navy);
  cursor: pointer;
  font-weight: 800;
  min-height: 58px;
  padding: 17px 22px;
}

.cbl-formulas summary > span {
  background: var(--cbl-surface-2);
  border: 1px solid var(--cbl-border);
  border-radius: 8px;
  display: inline-flex;
  font-size: 0.72rem;
  justify-content: center;
  margin-right: 7px;
  min-width: 30px;
  padding: 3px 6px;
}

.cbl-formulas[open] summary {
  border-bottom: 1px solid var(--cbl-border);
}

.cbl-formulas__content {
  display: grid;
  gap: 0;
  padding: 8px 22px 20px;
}

.cbl-formulas__content > div {
  border-bottom: 1px solid #e9edf2;
  display: grid;
  gap: 6px 20px;
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr);
  padding: 14px 0;
}

.cbl-formulas__content > div:last-child {
  border-bottom: 0;
}

.cbl-formulas__content span {
  color: var(--cbl-muted);
  overflow-wrap: anywhere;
}

.cbl-model-note {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 13px;
  color: var(--cbl-muted);
  font-size: 0.81rem;
  line-height: 1.5;
  margin-top: 14px !important;
  padding: 12px 14px;
}

.cbl-model-note strong {
  color: var(--cbl-text);
}

.cbl-live {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px !important;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.cbl-footer {
  align-items: center;
  color: var(--cbl-muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.82rem;
  gap: 7px;
  justify-content: center;
  padding: 22px 10px 4px;
  text-align: center;
}

.cbl-footer a {
  font-weight: 700;
}

.cbl-visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Quick profitability calculator: a focused four-input decision tool. */
.cbl-profit-app {
  max-width: 1120px;
}

.cbl-profit-hero {
  align-items: center;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 28px;
  display: grid;
  gap: clamp(28px, 5vw, 58px);
  grid-template-columns: minmax(0, 1fr) minmax(270px, 360px);
  padding: clamp(30px, 5vw, 54px);
}

.cbl-profit-hero__copy {
  min-width: 0;
}

.cbl-profit-hero h2 {
  color: var(--cbl-navy);
  font-size: clamp(2rem, 4.5vw, 3.55rem);
  font-weight: 800;
  letter-spacing: -0.045em;
  line-height: 1.02;
  text-wrap: balance;
}

.cbl-profit-hero__copy > p:last-child {
  color: var(--cbl-muted);
  font-size: clamp(1rem, 1.7vw, 1.14rem);
  margin-top: 18px;
  max-width: 640px;
}

.cbl-profit-hero__cue {
  background: var(--cbl-navy);
  border-radius: 21px;
  color: var(--cbl-white);
  min-width: 0;
  padding: 24px;
}

.cbl-profit-hero__cue > span {
  color: #c9d7ed;
  display: block;
  font-size: 0.73rem;
  font-weight: 750;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cbl-profit-hero__cue > div {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 22px;
}

.cbl-profit-hero__cue strong {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  font-size: 0.75rem;
  padding: 7px 10px;
}

.cbl-profit-hero__cue b {
  color: #c9d7ed;
  font-size: 0.9rem;
}

.cbl-profit-input-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 24px;
}

.cbl-profit-field {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  min-width: 0;
  padding: 16px;
}

.cbl-profit-field label {
  color: var(--cbl-text);
  display: block;
  font-weight: 780;
  line-height: 1.3;
}

.cbl-profit-field__hint {
  color: var(--cbl-muted);
  display: block;
  font-size: 0.78rem;
  line-height: 1.4;
  margin-top: 5px;
  min-height: 2.2em;
}

.cbl-profit-field__input {
  align-items: center;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border-strong);
  border-radius: 12px;
  display: flex;
  margin-top: 13px;
  min-height: 54px;
}

.cbl-profit-field__input:focus-within {
  border-color: var(--cbl-navy);
  box-shadow: 0 0 0 2px var(--cbl-white), 0 0 0 5px var(--cbl-navy);
}

.cbl-profit-field__input input {
  appearance: textfield;
  background: transparent;
  border: 0;
  color: var(--cbl-text);
  font-size: 1.2rem;
  font-weight: 800;
  min-width: 0;
  padding: 11px 4px 11px 12px;
  width: 100%;
}

.cbl-profit-field__input input:focus-visible {
  box-shadow: none;
}

.cbl-profit-field__input input::-webkit-inner-spin-button,
.cbl-profit-field__input input::-webkit-outer-spin-button {
  margin: 0;
}

.cbl-profit-field__input span {
  color: var(--cbl-muted);
  flex: 0 0 auto;
  font-size: 0.78rem;
  padding-right: 11px;
}

.cbl-profit-results {
  min-width: 0;
  scroll-margin-top: 7rem;
}

.cbl-profit-outcome > strong {
  font-size: clamp(2.2rem, 5vw, 3.75rem);
}

.cbl-profit-explanation {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 17px;
  margin-top: 12px;
  padding: 20px;
}

.cbl-profit-explanation[data-tone="positive"] {
  background: var(--cbl-success-bg);
  border-color: #b7decf;
}

.cbl-profit-explanation[data-tone="negative"] {
  background: var(--cbl-danger-bg);
  border-color: #efc0c8;
}

.cbl-profit-explanation[data-tone="neutral"] {
  background: var(--cbl-warning-bg);
  border-color: #ead38b;
}

.cbl-profit-explanation h3 {
  color: var(--cbl-text);
  font-size: clamp(1.12rem, 2.1vw, 1.45rem);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-top: 5px;
  text-wrap: balance;
}

.cbl-profit-explanation > p {
  color: #34445b;
  font-size: 0.9rem;
  margin-top: 9px;
}

.cbl-profit-formulas {
  margin-top: 24px;
}

@media (max-width: 980px) {
}

@media (max-width: 720px) {
  .cbl-profit-hero {
    grid-template-columns: 1fr;
  }

  .cbl-profit-hero__cue {
    min-height: 132px;
  }
}

@media (max-width: 560px) {
  .cbl-profit-hero {
    border-radius: 18px;
  }

  .cbl-profit-hero {
    padding: 26px 22px 24px;
  }

  .cbl-profit-hero h2 {
    font-size: clamp(2rem, 10vw, 2.6rem);
  }

  .cbl-profit-hero__cue {
    display: none;
  }

  .cbl-profit-input-grid {
    grid-template-columns: 1fr;
  }

  .cbl-profit-field__hint {
    min-height: 0;
  }
}

@media (forced-colors: active) {
  .cbl-profit-hero,
  .cbl-profit-field,
  .cbl-profit-field__input,
  .cbl-profit-explanation {
    border: 1px solid CanvasText;
  }

  .cbl-profit-field__input:focus-within {
    box-shadow: none;
    outline: 3px solid Highlight;
    outline-offset: 3px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .cbl-scenario:hover,
  .cbl-action:hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
  }

  .cbl-next:hover {
    background: #082f71;
  }

  .cbl-reset:hover {
    background: var(--cbl-surface);
    border-color: var(--cbl-navy-2);
  }
}

@media (max-width: 1100px) {
  .cbl-workspace {
    grid-template-columns: minmax(300px, 0.75fr) minmax(0, 1.25fr);
  }

  .cbl-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .cbl-hero {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 270px);
  }

  .cbl-scenario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cbl-workspace {
    grid-template-columns: 1fr;
  }

  .cbl-controls {
    position: static;
  }

  .cbl-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .cbl-hero {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .cbl-hero__visual {
    min-height: 150px;
  }

  .cbl-hero__equation {
    margin-top: 20px;
  }

  .cbl-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cbl-action-grid {
    grid-template-columns: 1fr;
  }

  .cbl-action {
    min-height: 0;
  }

  .cbl-section-heading--chart {
    align-items: start;
    flex-direction: column;
  }

  .cbl-chart-badge {
    white-space: normal;
  }
}

@media (max-width: 520px) {
  .cbl-hero,
  .cbl-scenarios,
  .cbl-panel,
  .cbl-outcome,
  .cbl-chart-card,
  .cbl-experiments,
  .cbl-formulas {
    border-radius: 18px;
  }

  .cbl-hero {
    padding: 26px 22px 24px;
  }

  .cbl-hero h2 {
    font-size: clamp(2rem, 10vw, 2.6rem);
  }

  .cbl-hero__visual {
    display: none;
  }

  .cbl-scenarios {
    padding: 20px;
  }

  .cbl-scenario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cbl-scenario {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
    min-height: 112px;
    padding: 12px;
  }

  .cbl-scenario__icon {
    flex-basis: 36px;
    height: 36px;
  }

  .cbl-tabs {
    gap: 2px;
  }

  .cbl-tab {
    font-size: 0.72rem;
    line-height: 1.15;
    min-width: 0;
    overflow-wrap: normal;
    padding-inline: 4px;
    word-break: normal;
  }

  .cbl-tab span {
    display: none;
  }

  .cbl-control {
    grid-template-columns: minmax(0, 1fr) 104px;
  }

  .cbl-metrics {
    grid-template-columns: 1fr;
  }

  .cbl-metric {
    display: grid;
    gap: 4px 12px;
    grid-template-columns: auto minmax(0, 1fr);
  }

  .cbl-metric__icon {
    grid-row: 1 / 4;
    margin-bottom: 0;
  }

  .cbl-metric h3,
  .cbl-metric > strong,
  .cbl-metric > p {
    grid-column: 2;
  }

  .cbl-metric > strong,
  .cbl-metric > p {
    margin-top: 2px;
  }

  .cbl-chart-wrap {
    margin-inline: -10px;
    overflow-x: auto;
    padding: 6px;
    scrollbar-width: thin;
  }

  .cbl-chart {
    min-width: 560px;
  }

  .cbl-chart__label {
    font-size: 12px;
  }

  .cbl-formulas__content > div {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 350px) {
  .cbl-scenario-grid {
    grid-template-columns: 1fr;
  }

  .cbl-scenario {
    align-items: center;
    flex-direction: row;
    min-height: 70px;
  }

  .cbl-control {
    grid-template-columns: 1fr;
  }

  .cbl-number-wrap {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-app *,
  .cbl-app *::before,
  .cbl-app *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

@media (prefers-contrast: more) {
  .cbl-app {
    --cbl-border: #9daabc;
    --cbl-border-strong: #74839a;
  }

  .cbl-panel-intro,
  .cbl-chart-summary {
    border: 1px solid currentColor;
  }
}

@media (forced-colors: active) {
  .cbl-hero,
  .cbl-scenarios,
  .cbl-panel,
  .cbl-chart-card,
  .cbl-experiments,
  .cbl-formulas,
  .cbl-scenario,
  .cbl-metric,
  .cbl-action,
  .cbl-number-wrap {
    border: 1px solid CanvasText;
  }

  .cbl-scenario.is-active,
  .cbl-tab.is-active {
    border: 2px solid Highlight;
  }

  .cbl-chart__zone {
    fill: transparent;
  }

  .cbl-app :where(button, a, input, summary):focus-visible,
  .cbl-number-wrap:focus-within,
  .cbl-chart-wrap:focus-visible {
    box-shadow: none;
    outline: 3px solid Highlight;
    outline-offset: 3px;
  }
}

/* Cash-flow module: compare accounting result with actual cash movement. */
.cbl-cashflow-app {
  max-width: 1120px;
}

.cbl-cashflow-scenarios {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  margin: 24px 0 0;
  min-width: 0;
  padding: clamp(22px, 3.5vw, 32px);
}

.cbl-cashflow-scenarios legend {
  color: var(--cbl-text);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  line-height: 1.2;
  padding-inline: 0;
}

.cbl-cashflow-scenarios legend .cbl-kicker {
  margin-bottom: 5px;
}

.cbl-cashflow-scenario-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 20px;
}

.cbl-cashflow-scenario {
  appearance: none;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 128px;
  padding: 17px;
  text-align: left;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.cbl-cashflow-scenario > span,
.cbl-cashflow-scenario > strong,
.cbl-cashflow-scenario > small {
  display: block;
}

.cbl-cashflow-scenario > span {
  color: var(--cbl-navy-2);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

.cbl-cashflow-scenario > strong {
  line-height: 1.22;
}

.cbl-cashflow-scenario > small {
  color: var(--cbl-muted);
  font-size: 0.78rem;
  line-height: 1.4;
  margin-top: 7px;
}

.cbl-cashflow-scenario.is-active {
  background: #f2f6fb;
  border-color: var(--cbl-navy-2);
  box-shadow: inset 0 0 0 1px var(--cbl-navy-2);
}

.cbl-cashflow-input-groups {
  display: grid;
  gap: 24px;
  margin-top: 24px;
}

.cbl-cashflow-input-group + .cbl-cashflow-input-group {
  border-top: 1px solid var(--cbl-border);
  padding-top: 24px;
}

.cbl-cashflow-input-group > h3 {
  color: var(--cbl-text);
  font-size: 1rem;
  line-height: 1.3;
}

.cbl-cashflow-input-group > p {
  color: var(--cbl-muted);
  font-size: 0.82rem;
  margin-top: 5px !important;
}

.cbl-cashflow-input-group .cbl-profit-input-grid {
  margin-top: 14px;
}

.cbl-cashflow-money-grid {
  grid-template-columns: 1fr;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-cashflow-scenario:hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
  }
}

@media (max-width: 760px) {
  .cbl-cashflow-scenario-grid {
    grid-template-columns: 1fr;
  }

  .cbl-cashflow-scenario {
    min-height: 0;
  }
}

@media (max-width: 560px) {
  .cbl-cashflow-scenarios {
    border-radius: 18px;
  }
}

@media (forced-colors: active) {
  .cbl-cashflow-scenarios,
  .cbl-cashflow-scenario {
    border: 1px solid CanvasText;
  }

  .cbl-cashflow-scenario.is-active {
    border: 2px solid Highlight;
    box-shadow: none;
  }
}


/* Accounting module: balance equation and simple double-entry experiments. */
.cbl-accounting-app {
  max-width: 1120px;
}

.cbl-accounting-scenarios,
.cbl-accounting-operations {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  margin: 24px 0 0;
  min-width: 0;
  padding: clamp(22px, 3.5vw, 32px);
}

.cbl-accounting-scenarios legend {
  color: var(--cbl-text);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  line-height: 1.2;
  padding-inline: 0;
}

.cbl-accounting-scenarios legend .cbl-kicker {
  margin-bottom: 5px;
}

.cbl-accounting-scenario-grid,
.cbl-accounting-operation-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 20px;
}

.cbl-accounting-scenario,
.cbl-accounting-operation {
  appearance: none;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 124px;
  padding: 17px;
  text-align: left;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease;
}

.cbl-accounting-scenario > span,
.cbl-accounting-scenario > strong,
.cbl-accounting-scenario > small,
.cbl-accounting-operation > span,
.cbl-accounting-operation > strong,
.cbl-accounting-operation > small {
  display: block;
}

.cbl-accounting-scenario > span,
.cbl-accounting-operation > span {
  color: var(--cbl-navy-2);
  font-size: 0.72rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.cbl-accounting-scenario > strong,
.cbl-accounting-operation > strong {
  line-height: 1.22;
}

.cbl-accounting-scenario > small,
.cbl-accounting-operation > small {
  color: var(--cbl-muted);
  font-size: 0.78rem;
  line-height: 1.4;
  margin-top: 7px;
}

.cbl-accounting-scenario.is-active {
  background: #f2f6fb;
  border-color: var(--cbl-navy-2);
  box-shadow: inset 0 0 0 1px var(--cbl-navy-2);
}

.cbl-accounting-preset-status,
.cbl-accounting-operation-status {
  color: var(--cbl-muted);
  font-size: 0.8rem;
  margin-top: 14px !important;
  min-height: 1.25em;
}

.cbl-accounting-columns {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 22px;
}

.cbl-accounting-group {
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  min-width: 0;
  padding: 18px;
}

.cbl-accounting-group legend {
  background: var(--cbl-white);
  color: var(--cbl-text);
  padding: 0 7px;
}

.cbl-accounting-group legend span,
.cbl-accounting-group legend small {
  display: block;
}

.cbl-accounting-group legend span {
  font-weight: 850;
}

.cbl-accounting-group legend small {
  color: var(--cbl-muted);
  font-size: 0.72rem;
  margin-top: 2px;
}

.cbl-accounting-input-grid {
  grid-template-columns: 1fr;
  margin-top: 4px;
}

.cbl-accounting-operation {
  min-height: 112px;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-accounting-scenario:hover,
  .cbl-accounting-operation:hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
  }
}

@media (max-width: 900px) {
}

@media (max-width: 760px) {
  .cbl-accounting-scenario-grid,
  .cbl-accounting-operation-grid,
  .cbl-accounting-columns {
    grid-template-columns: 1fr;
  }

  .cbl-accounting-scenario,
  .cbl-accounting-operation {
    min-height: 0;
  }
}

@media (max-width: 560px) {
  .cbl-accounting-scenarios,
  .cbl-accounting-operations,
  .cbl-accounting-group {
    border-radius: 18px;
  }
}

@media (forced-colors: active) {
  .cbl-accounting-scenarios,
  .cbl-accounting-operations,
  .cbl-accounting-scenario,
  .cbl-accounting-operation,
  .cbl-accounting-group {
    border: 1px solid CanvasText;
  }

  .cbl-accounting-scenario.is-active {
    border: 2px solid Highlight;
    box-shadow: none;
  }
}

/* Financial quest: short, replayable classification practice. */
.cbl-quest-app {
  max-width: 1120px;
}

.cbl-quest-hero__cue {
  align-content: center;
  display: grid;
  gap: 6px;
  text-align: center;
}

.cbl-quest-hero__cue > span,
.cbl-quest-hero__cue > small,
.cbl-quest-hero__cue > strong {
  display: block;
}

.cbl-quest-hero__cue > span {
  color: #c9d7ed;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cbl-quest-hero__cue > strong {
  font-size: clamp(1.7rem, 3vw, 2.35rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.cbl-quest-hero__cue > small {
  color: #dbe5f3;
  font-size: 0.78rem;
}

.cbl-quest-shell {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  margin-top: 24px;
  padding: clamp(22px, 4vw, 36px);
}

.cbl-quest-topline {
  align-items: center;
  display: flex;
  gap: 20px;
  justify-content: space-between;
}

.cbl-quest-topline h2 {
  color: var(--cbl-text);
  font-size: clamp(1.45rem, 2.8vw, 2rem);
  letter-spacing: -0.025em;
  line-height: 1.12;
  margin-top: 5px !important;
}

.cbl-quest-statusbar {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 24px;
}

.cbl-quest-statusbar > div {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 14px;
  padding: 12px 14px;
}

.cbl-quest-statusbar span,
.cbl-quest-statusbar strong {
  display: block;
}

.cbl-quest-statusbar span {
  color: var(--cbl-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.cbl-quest-statusbar strong {
  color: var(--cbl-navy);
  font-size: 1.12rem;
  line-height: 1.2;
  margin-top: 3px;
}

.cbl-quest-progress {
  background: var(--cbl-surface-2);
  border-radius: 999px;
  height: 8px;
  margin-top: 12px;
  overflow: hidden;
}

.cbl-quest-progress > span {
  background: var(--cbl-navy-2);
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width 220ms ease;
  width: 0;
}

.cbl-quest-stage {
  margin-top: 24px;
}

.cbl-quest-card {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 20px;
  padding: clamp(22px, 3.5vw, 32px);
}

.cbl-quest-card__meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  justify-content: space-between;
}

.cbl-quest-card__meta span {
  color: var(--cbl-navy-2);
  font-size: 0.74rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cbl-quest-card__meta small {
  color: var(--cbl-muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.cbl-quest-card h3 {
  color: var(--cbl-text);
  font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  letter-spacing: -0.025em;
  line-height: 1.22;
  margin-top: 16px !important;
  max-width: 820px;
  text-wrap: balance;
}

.cbl-quest-card > p {
  color: var(--cbl-muted);
  margin-top: 12px !important;
  max-width: 760px;
}

.cbl-quest-hint-toggle {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--cbl-navy-2);
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 800;
  margin-top: 16px;
  padding: 5px 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

.cbl-quest-hint {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 12px;
  color: var(--cbl-text) !important;
  font-size: 0.84rem;
  margin-top: 8px !important;
  padding: 11px 13px;
}

.cbl-quest-answers {
  border: 0;
  margin-top: 22px !important;
  min-width: 0;
  padding: 0;
}

.cbl-quest-answers legend {
  color: var(--cbl-text);
  font-size: 0.86rem;
  font-weight: 800;
  margin-bottom: 10px;
}

.cbl-quest-answer-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.cbl-quest-answer-grid button {
  appearance: none;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 14px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 108px;
  padding: 14px;
  position: relative;
  text-align: left;
  transition: background-color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.cbl-quest-answer-grid button > span,
.cbl-quest-answer-grid button > strong,
.cbl-quest-answer-grid button > small {
  display: block;
}

.cbl-quest-answer-grid button > span {
  color: var(--cbl-navy-2);
  font-size: 0.7rem;
  font-weight: 850;
  margin-bottom: 9px;
}

.cbl-quest-answer-grid button > strong {
  line-height: 1.2;
}

.cbl-quest-answer-grid button > small {
  color: var(--cbl-muted);
  font-size: 0.72rem;
  line-height: 1.35;
  margin-top: 5px;
}

.cbl-quest-answer-grid button:disabled {
  cursor: default;
  opacity: 1;
}

.cbl-quest-answer-grid button.is-correct {
  background: var(--cbl-success-bg);
  border-color: var(--cbl-success);
}

.cbl-quest-answer-grid button.is-wrong {
  background: var(--cbl-danger-bg);
  border-color: var(--cbl-danger);
}

.cbl-quest-answer-grid button.is-correct::after,
.cbl-quest-answer-grid button.is-wrong::after {
  border-radius: 999px;
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 850;
  margin-top: 9px;
  padding: 3px 7px;
}

.cbl-quest-answer-grid button.is-correct::after {
  color: var(--cbl-success);
  content: "Правильно";
}

.cbl-quest-answer-grid button.is-wrong::after {
  color: var(--cbl-danger);
  content: "Обрано";
}

.cbl-quest-feedback {
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  margin-top: 18px;
  padding: 18px;
}

.cbl-quest-feedback[data-tone="positive"] {
  background: var(--cbl-success-bg);
  border-color: #b8dfcf;
}

.cbl-quest-feedback[data-tone="neutral"] {
  background: var(--cbl-warning-bg);
  border-color: #e6cf83;
}

.cbl-quest-feedback h3 {
  color: var(--cbl-text);
  font-size: 1.05rem;
  line-height: 1.25;
  margin-top: 5px !important;
}

.cbl-quest-feedback p {
  color: var(--cbl-muted);
  font-size: 0.88rem;
  margin-top: 6px !important;
}

.cbl-quest-next {
  margin-top: 16px;
  width: 100%;
}

.cbl-quest-finish {
  background: var(--cbl-navy);
  border-radius: 20px;
  color: var(--cbl-white);
  margin-top: 24px;
  padding: clamp(26px, 4vw, 38px);
  text-align: center;
}

.cbl-quest-finish .cbl-kicker {
  color: #c9d7ed;
}

.cbl-quest-finish h3 {
  color: var(--cbl-white);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
  margin-top: 7px !important;
}

.cbl-quest-finish > strong {
  color: var(--cbl-yellow);
  display: block;
  font-size: clamp(2.3rem, 5vw, 3.6rem);
  letter-spacing: -0.04em;
  line-height: 1;
  margin-top: 14px;
}

.cbl-quest-finish > p {
  color: #dbe5f3;
  margin: 13px auto 0 !important;
  max-width: 620px;
}

.cbl-quest-finish-actions {
  display: flex;
  justify-content: center;
  margin-top: 20px;
}

.cbl-quest-finish-actions .cbl-next {
  background: var(--cbl-white);
  color: var(--cbl-navy);
  width: auto;
}

.cbl-quest-cheatsheet {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  margin-top: 24px;
}

.cbl-quest-cheatsheet > summary {
  color: var(--cbl-text);
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  padding: 18px 20px;
}

.cbl-quest-cheatsheet > summary::-webkit-details-marker {
  display: none;
}

.cbl-quest-cheatsheet > summary span {
  align-items: center;
  background: var(--cbl-surface-2);
  border-radius: 999px;
  color: var(--cbl-navy-2);
  display: inline-flex;
  height: 26px;
  justify-content: center;
  margin-right: 8px;
  width: 26px;
}

.cbl-quest-cheatsheet-grid {
  border-top: 1px solid var(--cbl-border);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 16px;
}

.cbl-quest-cheatsheet-grid article {
  background: var(--cbl-surface);
  border-radius: 12px;
  padding: 14px;
}

.cbl-quest-cheatsheet-grid strong {
  color: var(--cbl-navy);
  display: block;
  font-size: 0.84rem;
}

.cbl-quest-cheatsheet-grid p {
  color: var(--cbl-muted);
  font-size: 0.75rem;
  line-height: 1.42;
  margin-top: 5px !important;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-quest-answer-grid button:not(:disabled):hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
    transform: translateY(-1px);
  }
}

@media (max-width: 900px) {
  .cbl-quest-answer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cbl-quest-cheatsheet-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .cbl-quest-topline {
    align-items: flex-start;
    flex-direction: column;
  }

  .cbl-quest-statusbar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cbl-quest-answer-grid {
    grid-template-columns: 1fr;
  }

  .cbl-quest-answer-grid button {
    min-height: 0;
  }

  .cbl-quest-cheatsheet-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-quest-progress > span,
  .cbl-quest-answer-grid button {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-quest-shell,
  .cbl-quest-card,
  .cbl-quest-answer-grid button,
  .cbl-quest-feedback,
  .cbl-quest-cheatsheet {
    border: 1px solid CanvasText;
  }

  .cbl-quest-answer-grid button.is-correct {
    border: 3px solid Highlight;
  }

  .cbl-quest-answer-grid button.is-wrong {
    border: 3px dashed CanvasText;
  }
}

/* ================================================================
   1.6.0 Visual Refresh
   Quiet, high-contrast product polish shared by every BusinessLab module.
   ================================================================ */
.cbl-app {
  --cbl-surface: #f7f9fc;
  --cbl-surface-2: #edf2f8;
  --cbl-border: #dbe3ed;
  --cbl-border-strong: #b9c7d8;
  --cbl-shadow-soft: 0 18px 50px rgba(0, 35, 94, 0.075);
  --cbl-shadow-card: 0 10px 30px rgba(0, 35, 94, 0.055);
  --cbl-module-accent: var(--cbl-navy-2);
  font-variant-numeric: tabular-nums;
  isolation: isolate;
}

.cbl-profit-app { --cbl-module-accent: #087a55; }
.cbl-cashflow-app { --cbl-module-accent: #1765b2; }
.cbl-accounting-app { --cbl-module-accent: #9a6900; }
.cbl-quest-app { --cbl-module-accent: #5d4ba2; }

.cbl-hero,
.cbl-profit-hero {
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 182, 0, 0.14), transparent 27%),
    linear-gradient(135deg, #fbfdff 0%, #f2f6fb 100%);
  border-color: #d8e2ee;
  box-shadow: var(--cbl-shadow-soft);
  overflow: hidden;
  position: relative;
}

.cbl-hero::before,
.cbl-profit-hero::before {
  background: var(--cbl-module-accent);
  border-radius: 999px;
  content: "";
  height: 4px;
  left: clamp(30px, 5vw, 58px);
  position: absolute;
  top: 0;
  width: clamp(54px, 8vw, 96px);
}

.cbl-hero::after,
.cbl-profit-hero::after {
  border: 1px solid rgba(0, 35, 94, 0.07);
  border-radius: 50%;
  content: "";
  height: 240px;
  pointer-events: none;
  position: absolute;
  right: -105px;
  top: -126px;
  width: 240px;
}

.cbl-hero__copy,
.cbl-profit-hero__copy,
.cbl-hero__visual,
.cbl-profit-hero__cue {
  position: relative;
  z-index: 1;
}

.cbl-eyebrow,
.cbl-kicker {
  letter-spacing: 0.095em;
}

.cbl-eyebrow::before {
  background: var(--cbl-module-accent);
  border-radius: 999px;
  content: "";
  display: inline-block;
  height: 7px;
  margin-right: 8px;
  vertical-align: 0.05em;
  width: 7px;
}

.cbl-hero h2,
.cbl-profit-hero h2,
.cbl-section-heading h2,
.cbl-quest-card h3,
.cbl-quest-finish h3 {
  text-wrap: balance;
}

.cbl-hero h2,
.cbl-profit-hero h2 {
  max-width: 15.5ch;
}

.cbl-hero__visual,
.cbl-profit-hero__cue {
  background:
    radial-gradient(circle at 88% 14%, rgba(255, 182, 0, 0.25), transparent 31%),
    linear-gradient(145deg, #001d4f 0%, #06347c 100%);
  box-shadow: 0 18px 42px rgba(0, 35, 94, 0.2);
  isolation: isolate;
}

.cbl-hero__visual::before,
.cbl-profit-hero__cue::before {
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
  background-size: 24px 24px;
  content: "";
  inset: 0;
  mask-image: linear-gradient(to bottom right, #000, transparent 82%);
  opacity: .72;
  pointer-events: none;
  position: absolute;
  z-index: -1;
}

.cbl-hero__visual::after,
.cbl-profit-hero__cue::after {
  background: var(--cbl-yellow);
  border-radius: 4px;
  bottom: 18px;
  content: "";
  height: 8px;
  position: absolute;
  right: 18px;
  transform: rotate(45deg);
  width: 8px;
}

.cbl-scenarios,
.cbl-panel,
.cbl-chart-card,
.cbl-experiments,
.cbl-formulas,
.cbl-cashflow-scenarios,
.cbl-accounting-scenarios,
.cbl-accounting-operations,
.cbl-quest-shell,
.cbl-quest-cheatsheet {
  box-shadow: var(--cbl-shadow-card);
}

.cbl-scenario,
.cbl-action,
.cbl-cashflow-scenario,
.cbl-accounting-scenario,
.cbl-accounting-operation,
.cbl-quest-answer-grid button,
.cbl-metric {
  box-shadow: 0 1px 0 rgba(255,255,255,.8) inset;
  position: relative;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.cbl-scenario.is-active,
.cbl-cashflow-scenario.is-active,
.cbl-accounting-scenario.is-active {
  background: linear-gradient(145deg, #ffffff 0%, #f4f7fb 100%);
  border-color: var(--cbl-navy);
  box-shadow: 0 0 0 1px var(--cbl-navy), 0 10px 26px rgba(0, 35, 94, .08);
}

.cbl-scenario.is-active::after,
.cbl-cashflow-scenario.is-active::after,
.cbl-accounting-scenario.is-active::after {
  background: var(--cbl-yellow);
  border: 2px solid var(--cbl-white);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0,35,94,.14);
  content: "";
  height: 10px;
  position: absolute;
  right: 12px;
  top: 12px;
  width: 10px;
}

.cbl-tabs {
  background: #edf2f8;
  border-color: #dbe3ed;
  padding: 4px;
}

.cbl-tab {
  border-radius: 10px;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.cbl-tab.is-active {
  background: var(--cbl-white);
  box-shadow: 0 5px 16px rgba(0,35,94,.08);
}

.cbl-number-wrap,
.cbl-profit-field__input {
  background: #fff;
  transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.cbl-number-wrap:focus-within,
.cbl-profit-field__input:focus-within {
  transform: translateY(-1px);
}

.cbl-number,
.cbl-profit-field__input input,
.cbl-outcome > strong,
.cbl-metric > strong,
.cbl-quest-statusbar strong,
.cbl-quest-finish > strong {
  font-variant-numeric: tabular-nums;
}

.cbl-range::-webkit-slider-runnable-track {
  background: linear-gradient(
    to right,
    var(--cbl-navy-2) 0,
    var(--cbl-navy-2) var(--cbl-range-fill, 50%),
    #d7dfeb var(--cbl-range-fill, 50%),
    #d7dfeb 100%
  );
}

.cbl-range::-webkit-slider-thumb {
  box-shadow: 0 2px 8px rgba(0,35,94,.18);
  transition: box-shadow 150ms ease, transform 150ms ease;
}

.cbl-outcome {
  background: linear-gradient(145deg, #f5fbf8 0%, #eaf7f1 100%);
  border-left-width: 1px;
  box-shadow: var(--cbl-shadow-card);
  overflow: hidden;
  position: relative;
}

.cbl-outcome::before {
  background: var(--cbl-success);
  border-radius: 0 0 999px 999px;
  content: "";
  height: 5px;
  left: 0;
  position: absolute;
  top: 0;
  width: clamp(68px, 16%, 130px);
}

.cbl-outcome[data-tone="negative"] {
  background: linear-gradient(145deg, #fff8f9 0%, #fff0f2 100%);
}

.cbl-outcome[data-tone="negative"]::before { background: var(--cbl-danger); }

.cbl-outcome[data-tone="neutral"] {
  background: linear-gradient(145deg, #fffdf7 0%, #fff5d7 100%);
}

.cbl-outcome[data-tone="neutral"]::before { background: var(--cbl-warning); }

.cbl-outcome > strong,
.cbl-profit-outcome > strong {
  letter-spacing: -0.055em;
}

.cbl-metric {
  overflow: hidden;
}

.cbl-metric::before {
  background: var(--cbl-module-accent);
  content: "";
  height: 3px;
  left: 0;
  opacity: .75;
  position: absolute;
  top: 0;
  width: 42px;
}

.cbl-profit-explanation,
.cbl-quest-feedback {
  box-shadow: 0 8px 24px rgba(0,35,94,.045);
}

.cbl-next,
.cbl-reset,
.cbl-quest-hint-toggle {
  transition:
    background-color 150ms ease,
    border-color 150ms ease,
    box-shadow 150ms ease,
    color 150ms ease,
    transform 150ms ease;
}

.cbl-next {
  box-shadow: 0 8px 20px rgba(0,35,94,.16);
}

.cbl-formulas summary,
.cbl-quest-cheatsheet > summary {
  transition: background-color 150ms ease;
}

.cbl-formulas[open],
.cbl-quest-cheatsheet[open] {
  border-color: var(--cbl-border-strong);
}

.cbl-model-note {
  background: linear-gradient(135deg, #fafbfd, #f4f7fb);
}

.cbl-footer {
  border-top: 1px solid rgba(185,199,216,.62);
  margin-top: 22px;
  padding-top: 18px;
}

.cbl-footer a {
  text-decoration-thickness: 1px;
}

.cbl-quest-shell {
  background:
    radial-gradient(circle at 94% 2%, rgba(255,182,0,.09), transparent 20%),
    var(--cbl-white);
}

.cbl-quest-statusbar > div {
  background: linear-gradient(145deg, #fbfcfe 0%, #f3f6fa 100%);
}

.cbl-quest-progress {
  height: 9px;
  box-shadow: inset 0 1px 2px rgba(0,35,94,.08);
}

.cbl-quest-progress > span {
  background: linear-gradient(90deg, var(--cbl-navy-2), #3d72be);
  box-shadow: 0 0 12px rgba(11,63,143,.18);
}

.cbl-quest-card {
  background:
    radial-gradient(circle at 95% 8%, rgba(255,182,0,.095), transparent 21%),
    linear-gradient(145deg, #fbfcff, #f4f7fb);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.cbl-quest-answer-grid button.is-correct {
  box-shadow: inset 0 0 0 1px rgba(8,122,85,.18), 0 10px 24px rgba(8,122,85,.08);
}

.cbl-quest-answer-grid button.is-wrong {
  box-shadow: inset 0 0 0 1px rgba(165,42,58,.15);
}

.cbl-quest-finish {
  background:
    radial-gradient(circle at 80% 0%, rgba(255,182,0,.22), transparent 28%),
    linear-gradient(145deg, #001d4f, #06347c);
  box-shadow: 0 18px 44px rgba(0,35,94,.2);
  overflow: hidden;
  position: relative;
}

.cbl-quest-finish::after {
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  content: "";
  height: 210px;
  position: absolute;
  right: -94px;
  top: -105px;
  width: 210px;
}

.cbl-value-pulse {
  animation: cbl-value-pop 230ms ease-out;
}

@keyframes cbl-value-pop {
  0% { opacity: .58; transform: translateY(2px); }
  100% { opacity: 1; transform: translateY(0); }
}

@media (hover: hover) and (pointer: fine) {
  .cbl-scenario:hover,
  .cbl-action:hover,
  .cbl-cashflow-scenario:hover,
  .cbl-accounting-scenario:hover,
  .cbl-accounting-operation:hover,
  .cbl-quest-answer-grid button:not(:disabled):hover,
  .cbl-metric:hover {
    border-color: var(--cbl-border-strong);
    box-shadow: 0 12px 28px rgba(0,35,94,.085);
    transform: translateY(-2px);
  }

  .cbl-next:hover {
    box-shadow: 0 11px 26px rgba(0,35,94,.22);
    transform: translateY(-1px);
  }

  .cbl-reset:hover,
  .cbl-quest-hint-toggle:hover {
    transform: translateY(-1px);
  }

  .cbl-formulas summary:hover,
  .cbl-quest-cheatsheet > summary:hover {
    background: #f8fafc;
  }

  .cbl-range:hover::-webkit-slider-thumb {
    box-shadow: 0 0 0 6px rgba(11,63,143,.08), 0 2px 8px rgba(0,35,94,.18);
  }
}

.cbl-scenario:active,
.cbl-action:active,
.cbl-cashflow-scenario:active,
.cbl-accounting-scenario:active,
.cbl-accounting-operation:active,
.cbl-quest-answer-grid button:not(:disabled):active,
.cbl-next:active,
.cbl-reset:active {
  transform: translateY(0);
}

@media (max-width: 720px) {
  .cbl-app {
    --cbl-shadow-soft: 0 12px 34px rgba(0,35,94,.06);
    --cbl-shadow-card: 0 7px 22px rgba(0,35,94,.045);
  }

  .cbl-hero,
  .cbl-profit-hero {
    box-shadow: var(--cbl-shadow-soft);
  }

  .cbl-hero::after,
  .cbl-profit-hero::after {
    height: 170px;
    right: -94px;
    top: -98px;
    width: 170px;
  }
}

@media (max-width: 560px) {
  .cbl-hero h2,
  .cbl-profit-hero h2 {
    max-width: none;
  }

  .cbl-hero::before,
  .cbl-profit-hero::before {
    left: 22px;
  }

  .cbl-scenario.is-active::after,
  .cbl-cashflow-scenario.is-active::after,
  .cbl-accounting-scenario.is-active::after {
    right: 9px;
    top: 9px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-value-pulse {
    animation: none !important;
  }
}

@media (forced-colors: active) {
  .cbl-hero::before,
  .cbl-profit-hero::before,
  .cbl-outcome::before,
  .cbl-scenario.is-active::after,
  .cbl-cashflow-scenario.is-active::after,
  .cbl-accounting-scenario.is-active::after,
  .cbl-hero__visual::after,
  .cbl-profit-hero__cue::after,
  .cbl-metric::before {
    display: none;
  }

  .cbl-hero,
  .cbl-profit-hero,
  .cbl-outcome,
  .cbl-quest-finish {
    box-shadow: none;
  }
}

/* ================================================================
   1.7.0 Tax Experiment
   A visual, scenario-led way to understand tax pressure without turning
   BusinessLab into a filing calculator.
   ================================================================ */
.cbl-tax-app {
  --cbl-module-accent: #a95700;
  max-width: 1120px;
}

.cbl-tax-scenarios,
.cbl-tax-experiments,
.cbl-tax-source {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  box-shadow: var(--cbl-shadow-card);
  margin: 24px 0 0;
  min-width: 0;
  padding: clamp(22px, 3.5vw, 32px);
}

.cbl-tax-scenarios legend {
  color: var(--cbl-text);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  font-weight: 800;
  line-height: 1.2;
  padding-inline: 0;
}

.cbl-tax-scenarios legend .cbl-kicker {
  margin-bottom: 5px;
}

.cbl-tax-scenario-grid,
.cbl-tax-experiment-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 20px;
}

.cbl-tax-scenario,
.cbl-tax-experiment {
  appearance: none;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 124px;
  padding: 17px;
  position: relative;
  text-align: left;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cbl-tax-scenario > span,
.cbl-tax-scenario > strong,
.cbl-tax-scenario > small,
.cbl-tax-experiment > span,
.cbl-tax-experiment > strong,
.cbl-tax-experiment > small {
  display: block;
}

.cbl-tax-scenario > span,
.cbl-tax-experiment > span {
  color: var(--cbl-module-accent);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .055em;
  margin-bottom: 10px;
}

.cbl-tax-scenario > strong,
.cbl-tax-experiment > strong {
  line-height: 1.22;
}

.cbl-tax-scenario > small,
.cbl-tax-experiment > small {
  color: var(--cbl-muted);
  font-size: .78rem;
  line-height: 1.4;
  margin-top: 7px;
}

.cbl-tax-scenario.is-active {
  background: linear-gradient(145deg, #fff 0%, #f8f3eb 100%);
  border-color: var(--cbl-navy);
  box-shadow: 0 0 0 1px var(--cbl-navy), 0 10px 26px rgba(0,35,94,.08);
}

.cbl-tax-scenario.is-active::after {
  background: var(--cbl-yellow);
  border: 2px solid var(--cbl-white);
  border-radius: 50%;
  box-shadow: 0 0 0 1px rgba(0,35,94,.14);
  content: "";
  height: 10px;
  position: absolute;
  right: 12px;
  top: 12px;
  width: 10px;
}

.cbl-tax-input-groups {
  display: grid;
  gap: 24px;
  margin-top: 24px;
}

.cbl-tax-input-group + .cbl-tax-input-group {
  border-top: 1px solid var(--cbl-border);
  padding-top: 24px;
}

.cbl-tax-input-group > h3 {
  color: var(--cbl-text);
  font-size: 1rem;
  line-height: 1.3;
}

.cbl-tax-input-group .cbl-profit-input-grid {
  margin-top: 14px;
}

.cbl-tax-rate-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cbl-tax-rate-grid .cbl-profit-field:last-child {
  grid-column: 1 / -1;
}

.cbl-tax-hundred {
  background:
    radial-gradient(circle at 90% 0%, rgba(255,182,0,.18), transparent 28%),
    linear-gradient(145deg, #001d4f 0%, #06347c 100%);
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(0,35,94,.15);
  color: var(--cbl-white);
  margin-top: 12px;
  overflow: hidden;
  padding: clamp(20px, 3vw, 26px);
  position: relative;
}

.cbl-tax-hundred .cbl-kicker {
  color: #cfdaea;
}

.cbl-tax-hundred h3 {
  color: #fff;
  font-size: clamp(1.12rem, 2vw, 1.4rem);
  letter-spacing: -.02em;
  line-height: 1.2;
  margin-top: 5px;
  text-wrap: balance;
}

.cbl-tax-hundred__flow {
  align-items: stretch;
  display: grid;
  gap: 7px;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1.1fr);
  margin-top: 18px;
}

.cbl-tax-hundred__flow > div {
  background: rgba(255,255,255,.085);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 13px;
  min-width: 0;
  padding: 12px;
}

.cbl-tax-hundred__flow > b {
  align-self: center;
  color: var(--cbl-yellow);
  font-size: 1rem;
  font-weight: 850;
}

.cbl-tax-hundred__flow span,
.cbl-tax-hundred__flow strong {
  display: block;
}

.cbl-tax-hundred__flow span {
  color: #cdd9ea;
  font-size: .69rem;
  font-weight: 700;
}

.cbl-tax-hundred__flow strong {
  color: #fff;
  font-size: clamp(.95rem, 1.6vw, 1.1rem);
  letter-spacing: -.02em;
  line-height: 1.15;
  margin-top: 4px;
  overflow-wrap: anywhere;
}

.cbl-tax-hundred[data-tone="positive"] .cbl-tax-hundred__result {
  background: rgba(81,207,153,.15);
  border-color: rgba(137,229,190,.32);
}

.cbl-tax-hundred[data-tone="negative"] .cbl-tax-hundred__result {
  background: rgba(255,114,133,.15);
  border-color: rgba(255,153,167,.32);
}

.cbl-tax-hundred[data-tone="neutral"] .cbl-tax-hundred__result {
  background: rgba(255,182,0,.13);
  border-color: rgba(255,205,84,.3);
}

.cbl-tax-experiment > span {
  font-size: .82rem;
}

.cbl-tax-compare {
  align-items: center;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  display: grid;
  gap: 4px 18px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 12px;
  padding: 16px 18px;
}

.cbl-tax-compare > span {
  color: var(--cbl-muted);
  font-size: .76rem;
  font-weight: 700;
}

.cbl-tax-compare > strong {
  color: var(--cbl-text);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  grid-column: 2;
  grid-row: 1 / 3;
  letter-spacing: -.025em;
  text-align: right;
}

.cbl-tax-compare > p {
  color: var(--cbl-muted);
  font-size: .8rem;
}

.cbl-tax-compare[data-tone="positive"] > strong { color: var(--cbl-success); }
.cbl-tax-compare[data-tone="negative"] > strong { color: var(--cbl-danger); }
.cbl-tax-compare[data-tone="neutral"] > strong { color: var(--cbl-navy); }

.cbl-tax-source {
  padding: 0;
}

.cbl-tax-source > summary {
  color: var(--cbl-navy);
  cursor: pointer;
  font-weight: 780;
  list-style-position: inside;
  padding: 17px 20px;
}

.cbl-tax-source > div {
  border-top: 1px solid var(--cbl-border);
  color: var(--cbl-muted);
  font-size: .86rem;
  padding: 18px 20px 20px;
}

.cbl-tax-source p {
  max-width: 74ch;
}

.cbl-tax-source a {
  display: inline-block;
  font-weight: 760;
  margin-top: 10px;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-tax-scenario:hover,
  .cbl-tax-experiment:hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
    box-shadow: 0 12px 28px rgba(0,35,94,.085);
    transform: translateY(-2px);
  }

  .cbl-tax-source > summary:hover {
    background: #f8fafc;
  }
}

.cbl-tax-scenario:active,
.cbl-tax-experiment:active {
  transform: translateY(0);
}

@media (max-width: 820px) {
  .cbl-tax-scenario-grid,
  .cbl-tax-experiment-grid {
    grid-template-columns: 1fr;
  }

  .cbl-tax-scenario,
  .cbl-tax-experiment {
    min-height: 0;
  }

  .cbl-tax-hundred__flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cbl-tax-hundred__flow > b {
    display: none;
  }
}

@media (max-width: 560px) {
  .cbl-tax-scenarios,
  .cbl-tax-experiments,
  .cbl-tax-source,
  .cbl-tax-hundred {
    border-radius: 18px;
  }

  .cbl-tax-rate-grid,
  .cbl-tax-hundred__flow {
    grid-template-columns: 1fr;
  }

  .cbl-tax-rate-grid .cbl-profit-field:last-child {
    grid-column: auto;
  }

  .cbl-tax-compare {
    grid-template-columns: 1fr;
  }

  .cbl-tax-compare > strong {
    grid-column: 1;
    grid-row: auto;
    text-align: left;
  }
}

@media (forced-colors: active) {
  .cbl-tax-scenarios,
  .cbl-tax-experiments,
  .cbl-tax-source,
  .cbl-tax-scenario,
  .cbl-tax-experiment,
  .cbl-tax-hundred,
  .cbl-tax-hundred__flow > div,
  .cbl-tax-compare {
    border: 1px solid CanvasText;
    box-shadow: none;
  }

  .cbl-tax-scenario.is-active {
    border: 2px solid Highlight;
    box-shadow: none;
  }

  .cbl-tax-scenario.is-active::after {
    display: none;
  }

  .cbl-tax-hundred__flow > b {
    color: CanvasText;
  }
}

/* Business Challenge: a decision-led flagship module with local progress. */
.cbl-challenge-app {
  max-width: 1160px;
}

.cbl-challenge-hero {
  min-height: 330px;
}

.cbl-challenge-hero__cue {
  align-content: center;
  background: var(--cbl-navy);
  border-radius: 22px;
  color: var(--cbl-white);
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-height: 196px;
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.cbl-challenge-hero__cue::after {
  background: radial-gradient(circle, rgba(255, 182, 0, 0.92) 0 2px, transparent 3px);
  background-size: 17px 17px;
  content: "";
  height: 112px;
  opacity: 0.28;
  position: absolute;
  right: -18px;
  top: -12px;
  transform: rotate(11deg);
  width: 132px;
}

.cbl-challenge-hero__cue > div {
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 15px;
  min-width: 0;
  padding: 15px;
  position: relative;
  z-index: 1;
}

.cbl-challenge-hero__cue span,
.cbl-challenge-hero__cue strong,
.cbl-challenge-hero__cue small {
  display: block;
}

.cbl-challenge-hero__cue span {
  color: #c9d7ed;
  font-size: 0.69rem;
  font-weight: 760;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.cbl-challenge-hero__cue strong {
  font-size: clamp(1.9rem, 4vw, 2.65rem);
  letter-spacing: -0.045em;
  line-height: 1;
  margin-top: 6px;
}

.cbl-challenge-hero__cue small {
  color: #d9e3f0;
  font-size: 0.76rem;
  grid-column: 1 / -1;
  line-height: 1.4;
  margin-top: 5px;
  max-width: 22ch;
  position: relative;
  z-index: 1;
}

.cbl-challenge-resume,
.cbl-challenge-shell,
.cbl-challenge-method,
.cbl-challenge-storage {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
  margin-top: 24px;
}

.cbl-challenge-resume {
  align-items: center;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: clamp(22px, 3.5vw, 32px);
}

.cbl-challenge-resume h2 {
  color: var(--cbl-navy);
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin-top: 6px !important;
}

.cbl-challenge-resume p {
  color: var(--cbl-muted);
  font-size: 0.86rem;
  margin-top: 8px !important;
}

.cbl-challenge-resume__actions {
  align-items: center;
  display: flex;
  flex: 0 0 auto;
  gap: 10px;
}

.cbl-challenge-shell {
  overflow: hidden;
  padding: clamp(22px, 3.6vw, 36px);
}

.cbl-challenge-topline {
  align-items: end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.cbl-challenge-topline h2 {
  color: var(--cbl-navy);
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin-top: 5px !important;
}

.cbl-challenge-topline__meta {
  align-items: flex-end;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cbl-challenge-topline__meta > span {
  color: var(--cbl-muted);
  font-size: 0.76rem;
  font-weight: 720;
}

.cbl-challenge-dashboard {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 24px;
}

.cbl-challenge-metric {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 17px;
  min-width: 0;
  padding: 16px;
}

.cbl-challenge-metric > div:first-child {
  min-width: 0;
}

.cbl-challenge-metric span,
.cbl-challenge-metric strong,
.cbl-challenge-metric small {
  display: block;
}

.cbl-challenge-metric span {
  color: var(--cbl-muted);
  font-size: 0.7rem;
  font-weight: 730;
}

.cbl-challenge-metric strong {
  color: var(--cbl-text);
  font-size: clamp(1rem, 1.7vw, 1.28rem);
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin-top: 5px;
  overflow-wrap: anywhere;
}

.cbl-challenge-metric small {
  color: var(--cbl-muted);
  font-size: 0.68rem;
  line-height: 1.35;
  margin-top: 8px;
}

.cbl-challenge-meter {
  background: #dfe6ef;
  border-radius: 999px;
  height: 5px;
  margin-top: 13px;
  overflow: hidden;
}

.cbl-challenge-meter > span {
  background: var(--cbl-navy-2);
  border-radius: inherit;
  height: 100%;
  transition: width 260ms ease;
  width: 0;
}

.cbl-challenge-metric[data-metric="resilience"] .cbl-challenge-meter > span,
.cbl-challenge-metric[data-metric="trust"] .cbl-challenge-meter > span {
  background: #506f9c;
}

.cbl-challenge-progress-wrap {
  margin-top: 18px;
}

.cbl-challenge-progress-wrap > div:first-child {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.cbl-challenge-progress-wrap > div:first-child span {
  color: var(--cbl-muted);
  font-size: 0.75rem;
  font-weight: 730;
}

.cbl-challenge-progress-wrap > div:first-child strong {
  color: var(--cbl-navy);
  font-size: 0.86rem;
}

.cbl-challenge-progress {
  background: #e9edf3;
  border-radius: 999px;
  height: 7px;
  margin-top: 8px;
  overflow: hidden;
}

.cbl-challenge-progress > span {
  background: linear-gradient(90deg, var(--cbl-navy-2), var(--cbl-navy));
  border-radius: inherit;
  display: block;
  height: 100%;
  transition: width 260ms ease;
  width: 0;
}

.cbl-challenge-stage {
  margin-top: clamp(26px, 4vw, 42px);
}

.cbl-challenge-situation {
  background: var(--cbl-navy);
  border-radius: 22px;
  color: var(--cbl-white);
  overflow: hidden;
  padding: clamp(24px, 4vw, 38px);
  position: relative;
}

.cbl-challenge-situation::after {
  border: 1px solid rgba(255, 182, 0, 0.35);
  border-radius: 50%;
  content: "";
  height: 190px;
  position: absolute;
  right: -90px;
  top: -105px;
  width: 190px;
}

.cbl-challenge-situation__meta {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}

.cbl-challenge-situation__meta span {
  color: var(--cbl-yellow);
  font-size: 0.73rem;
  font-weight: 820;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.cbl-challenge-situation__meta small {
  color: #cad7e8;
  font-size: 0.72rem;
  font-weight: 720;
}

.cbl-challenge-situation h3 {
  color: var(--cbl-white);
  font-size: clamp(1.45rem, 3.2vw, 2.3rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin-top: 22px !important;
  max-width: 760px;
  position: relative;
  text-wrap: balance;
  z-index: 1;
}

.cbl-challenge-situation > p {
  color: #d8e1ed;
  font-size: clamp(0.9rem, 1.5vw, 1rem);
  margin-top: 13px !important;
  max-width: 68ch;
  position: relative;
  z-index: 1;
}

.cbl-challenge-choices {
  border: 0;
  margin-top: 22px !important;
  min-width: 0;
  padding: 0;
}

.cbl-challenge-choices legend {
  color: var(--cbl-text);
  font-size: 0.82rem;
  font-weight: 780;
  margin-bottom: 11px;
}

.cbl-challenge-choice-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cbl-challenge-choice-grid button {
  appearance: none;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 17px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 142px;
  padding: 18px;
  text-align: left;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.cbl-challenge-choice-grid button > span,
.cbl-challenge-choice-grid button > strong,
.cbl-challenge-choice-grid button > small {
  display: block;
}

.cbl-challenge-choice-grid button > span {
  color: var(--cbl-navy-2);
  font-size: 0.7rem;
  font-weight: 850;
  letter-spacing: 0.07em;
}

.cbl-challenge-choice-grid button > strong {
  font-size: 0.98rem;
  line-height: 1.25;
  margin-top: 12px;
}

.cbl-challenge-choice-grid button > small {
  color: var(--cbl-muted);
  font-size: 0.76rem;
  line-height: 1.42;
  margin-top: 8px;
}

.cbl-challenge-choice-grid button:disabled {
  cursor: default;
  opacity: 0.62;
}

.cbl-challenge-choice-grid button.is-selected {
  background: #f0f5fb;
  border-color: var(--cbl-navy-2);
  box-shadow: inset 0 0 0 1px var(--cbl-navy-2);
  opacity: 1;
}

.cbl-challenge-feedback {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 16px;
  padding: 20px;
}

.cbl-challenge-feedback[data-tone="positive"] {
  background: var(--cbl-success-bg);
  border-color: #b7dfcf;
}

.cbl-challenge-feedback[data-tone="negative"] {
  background: var(--cbl-danger-bg);
  border-color: #edc6cc;
}

.cbl-challenge-feedback h3 {
  color: var(--cbl-text);
  font-size: 1.1rem;
  line-height: 1.25;
  margin-top: 5px !important;
}

.cbl-challenge-feedback p {
  color: var(--cbl-muted);
  font-size: 0.82rem;
  margin-top: 7px !important;
  max-width: 68ch;
}

.cbl-challenge-deltas {
  align-content: start;
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(2, auto);
}

.cbl-challenge-deltas > span {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 999px;
  color: var(--cbl-muted);
  font-size: 0.7rem;
  font-weight: 760;
  padding: 6px 9px;
  white-space: nowrap;
}

.cbl-challenge-deltas > span[data-tone="positive"] {
  color: var(--cbl-success);
}

.cbl-challenge-deltas > span[data-tone="negative"] {
  color: var(--cbl-danger);
}

.cbl-challenge-next {
  margin-left: auto;
  margin-top: 16px;
}

.cbl-challenge-finish {
  margin-top: clamp(28px, 4vw, 42px);
}

.cbl-challenge-finish__score {
  align-items: center;
  background: var(--cbl-navy);
  border-radius: 22px;
  color: var(--cbl-white);
  display: grid;
  gap: clamp(20px, 4vw, 38px);
  grid-template-columns: auto minmax(0, 1fr);
  padding: clamp(24px, 4vw, 38px);
}

.cbl-challenge-finish__score .cbl-kicker {
  color: var(--cbl-yellow);
}

.cbl-challenge-finish__score h3 {
  color: var(--cbl-white);
  font-size: clamp(1.55rem, 3.3vw, 2.35rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
  margin-top: 6px !important;
}

.cbl-challenge-finish__score p {
  color: #d5dfec;
  margin-top: 10px !important;
  max-width: 62ch;
}

.cbl-challenge-score-ring {
  --cbl-challenge-score: 0%;
  align-items: center;
  background:
    radial-gradient(circle at center, var(--cbl-navy) 58%, transparent 59%),
    conic-gradient(var(--cbl-yellow) var(--cbl-challenge-score), rgba(255, 255, 255, 0.14) 0);
  border-radius: 50%;
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  height: 132px;
  justify-content: center;
  width: 132px;
}

.cbl-challenge-score-ring strong {
  color: var(--cbl-white);
  font-size: 2.15rem;
  letter-spacing: -0.04em;
  line-height: 1;
}

.cbl-challenge-score-ring span {
  color: #cbd8e9;
  font-size: 0.72rem;
  margin-top: 4px;
}

.cbl-challenge-final-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 14px;
}

.cbl-challenge-final-grid > div {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 15px;
  min-width: 0;
  padding: 15px;
}

.cbl-challenge-final-grid span,
.cbl-challenge-final-grid strong {
  display: block;
}

.cbl-challenge-final-grid span {
  color: var(--cbl-muted);
  font-size: 0.7rem;
  font-weight: 730;
}

.cbl-challenge-final-grid strong {
  font-size: 1rem;
  line-height: 1.2;
  margin-top: 6px;
  overflow-wrap: anywhere;
}

.cbl-challenge-route {
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  margin-top: 14px;
}

.cbl-challenge-route > summary,
.cbl-challenge-method > summary {
  color: var(--cbl-navy);
  cursor: pointer;
  font-weight: 780;
  list-style-position: inside;
  padding: 17px 20px;
}

.cbl-challenge-route ol {
  border-top: 1px solid var(--cbl-border);
  list-style: none;
  margin: 0;
  padding: 8px 18px 18px;
}

.cbl-challenge-route li {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 30px minmax(0, 1fr);
  padding: 10px 0;
}

.cbl-challenge-route li + li {
  border-top: 1px solid var(--cbl-border);
}

.cbl-challenge-route li > span {
  align-items: center;
  background: var(--cbl-surface-2);
  border-radius: 50%;
  color: var(--cbl-navy);
  display: flex;
  font-size: 0.68rem;
  font-weight: 820;
  height: 30px;
  justify-content: center;
  width: 30px;
}

.cbl-challenge-route strong,
.cbl-challenge-route small {
  display: block;
}

.cbl-challenge-route strong {
  font-size: 0.82rem;
}

.cbl-challenge-route small {
  color: var(--cbl-muted);
  font-size: 0.7rem;
  margin-top: 2px;
}

.cbl-challenge-finish-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

.cbl-challenge-method {
  overflow: hidden;
}

.cbl-challenge-method > summary span {
  align-items: center;
  background: var(--cbl-navy);
  border-radius: 50%;
  color: var(--cbl-white);
  display: inline-flex;
  font-size: 0.7rem;
  height: 23px;
  justify-content: center;
  margin-right: 7px;
  width: 23px;
}

.cbl-challenge-method > div {
  border-top: 1px solid var(--cbl-border);
  padding: 18px 20px 20px;
}

.cbl-challenge-method p {
  color: var(--cbl-muted);
  font-size: 0.84rem;
  max-width: 78ch;
}

.cbl-challenge-weights {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.cbl-challenge-weights span {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 999px;
  color: var(--cbl-muted);
  font-size: 0.74rem;
  padding: 7px 10px;
}

.cbl-challenge-weights strong {
  color: var(--cbl-navy);
}

.cbl-challenge-storage {
  align-items: center;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  padding: 18px 20px;
}

.cbl-challenge-storage p {
  color: var(--cbl-muted);
  font-size: 0.78rem;
}

.cbl-challenge-storage strong {
  color: var(--cbl-text);
}

@media (hover: hover) and (pointer: fine) {
  .cbl-challenge-choice-grid button:not(:disabled):hover {
    background: #fbfcfe;
    border-color: var(--cbl-border-strong);
    box-shadow: 0 13px 28px rgba(0, 35, 94, 0.075);
    transform: translateY(-2px);
  }
}

@media (max-width: 900px) {
  .cbl-challenge-dashboard,
  .cbl-challenge-final-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cbl-challenge-feedback {
    grid-template-columns: 1fr;
  }

  .cbl-challenge-deltas {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .cbl-challenge-deltas > span {
    text-align: center;
    white-space: normal;
  }
}

@media (max-width: 760px) {
  .cbl-challenge-choice-grid {
    grid-template-columns: 1fr;
  }

  .cbl-challenge-choice-grid button {
    min-height: 0;
  }

  .cbl-challenge-topline,
  .cbl-challenge-resume,
  .cbl-challenge-storage {
    align-items: stretch;
    flex-direction: column;
  }

  .cbl-challenge-topline__meta {
    align-items: flex-start;
  }

  .cbl-challenge-resume__actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 560px) {
  .cbl-challenge-hero__cue {
    min-height: 176px;
  }

  .cbl-challenge-dashboard,
  .cbl-challenge-final-grid,
  .cbl-challenge-deltas {
    grid-template-columns: 1fr 1fr;
  }

  .cbl-challenge-shell,
  .cbl-challenge-resume,
  .cbl-challenge-method,
  .cbl-challenge-storage {
    border-radius: 18px;
  }

  .cbl-challenge-situation {
    border-radius: 18px;
  }

  .cbl-challenge-finish__score {
    grid-template-columns: 1fr;
  }

  .cbl-challenge-score-ring {
    height: 112px;
    width: 112px;
  }
}

@media (max-width: 390px) {
  .cbl-challenge-dashboard,
  .cbl-challenge-final-grid {
    grid-template-columns: 1fr;
  }

  .cbl-challenge-resume__actions,
  .cbl-challenge-finish-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .cbl-challenge-resume__actions > *,
  .cbl-challenge-finish-actions > * {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-challenge-meter > span,
  .cbl-challenge-progress > span,
  .cbl-challenge-choice-grid button {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-challenge-hero__cue,
  .cbl-challenge-resume,
  .cbl-challenge-shell,
  .cbl-challenge-method,
  .cbl-challenge-storage,
  .cbl-challenge-metric,
  .cbl-challenge-situation,
  .cbl-challenge-choice-grid button,
  .cbl-challenge-feedback,
  .cbl-challenge-final-grid > div,
  .cbl-challenge-route {
    border: 1px solid CanvasText;
  }

  .cbl-challenge-choice-grid button.is-selected {
    border: 2px solid Highlight;
    box-shadow: none;
  }

  .cbl-challenge-score-ring {
    background: Canvas;
    border: 4px solid Highlight;
  }
}

/* 1.9.0 — BusinessLab learning hub */
.cbl-hub-app {
  --cbl-hub-accent: #0b3f8f;
}

.cbl-hub-hero {
  align-items: center;
  background:
    radial-gradient(circle at 88% 18%, rgba(255, 182, 0, 0.18), transparent 28%),
    linear-gradient(135deg, #f8fafc 0%, #f1f5fa 100%);
  border: 1px solid var(--cbl-border);
  border-radius: 30px;
  display: grid;
  gap: clamp(30px, 6vw, 76px);
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  min-height: 390px;
  overflow: hidden;
  padding: clamp(34px, 5vw, 64px);
  position: relative;
}

.cbl-hub-hero::after {
  background: linear-gradient(90deg, transparent, rgba(0, 35, 94, 0.055), transparent);
  content: '';
  height: 1px;
  left: 7%;
  position: absolute;
  right: 7%;
  top: 31%;
}

.cbl-hub-hero__copy {
  position: relative;
  z-index: 1;
}

.cbl-hub-hero h2 {
  color: var(--cbl-navy);
  font-size: clamp(2.15rem, 5vw, 4.25rem);
  font-weight: 820;
  letter-spacing: -0.052em;
  line-height: 0.99;
  max-width: 850px;
  text-wrap: balance;
}

.cbl-hub-hero__copy > p:last-of-type {
  color: var(--cbl-muted);
  font-size: clamp(1rem, 1.7vw, 1.18rem);
  margin-top: 20px !important;
  max-width: 680px;
}

.cbl-hub-link-missing {
  color: var(--cbl-muted);
  font-size: 0.7rem;
  font-weight: 720;
}

.cbl-hub-memory {
  align-items: center;
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 20px;
  display: flex;
  gap: 30px;
  justify-content: space-between;
  margin-top: 18px;
  padding: clamp(20px, 3vw, 28px);
}

.cbl-hub-memory h3 {
  color: var(--cbl-navy);
  font-size: clamp(1.2rem, 2.3vw, 1.65rem);
  letter-spacing: -0.03em;
  line-height: 1.1;
  margin-top: 5px !important;
}

.cbl-hub-memory p {
  color: var(--cbl-muted);
  font-size: 0.79rem;
  margin-top: 8px !important;
  max-width: 72ch;
}

@media (hover: hover) and (pointer: fine) {
}

@media (max-width: 980px) {
  .cbl-hub-hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {

  .cbl-hub-memory {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 580px) {
  .cbl-hub-hero {
    border-radius: 22px;
    min-height: 0;
    padding: 26px 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
}

@media (forced-colors: active) {
  .cbl-hub-hero,
  .cbl-hub-memory {
    border: 1px solid CanvasText;
  }
}


/* 1.10.0 — Connected BusinessLab route */
.cbl-routebar {
  display: grid;
  grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(.7rem, 2vw, 1.2rem);
  margin: 0 0 clamp(.85rem, 2vw, 1.25rem);
  padding: .72rem .85rem;
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  background: var(--cbl-white);
}

.cbl-routebar__identity,
.cbl-routebar__actions {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
}

.cbl-routebar__home,
.cbl-routebar__prev,
.cbl-routebar__next {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  border-radius: 12px;
  font-weight: 800;
  text-decoration: none !important;
}

.cbl-routebar__home {
  padding: 0 .65rem;
  color: var(--cbl-navy) !important;
}

.cbl-routebar__home:hover {
  background: var(--cbl-surface-2);
}

.cbl-routebar__step {
  color: var(--cbl-muted);
  font-size: .78rem;
  font-weight: 750;
  white-space: nowrap;
}

.cbl-routebar__current {
  overflow: hidden;
  color: var(--cbl-text);
  font-size: .9rem;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cbl-routebar__actions {
  justify-content: flex-end;
}

.cbl-routebar__next {
  padding: 0 .8rem;
  background: var(--cbl-navy);
  color: #fff !important;
  box-shadow: 0 5px 14px rgba(0, 35, 94, .12);
}

.cbl-routebar__next:hover {
  transform: translateY(-1px);
}

.cbl-routebar--bottom {
  grid-template-columns: minmax(0, auto) minmax(10rem, 1fr) auto;
  margin: clamp(1rem, 2.5vw, 1.5rem) 0 .85rem;
  padding: clamp(.85rem, 2vw, 1.1rem);
  background: linear-gradient(135deg, #fff 0%, var(--cbl-surface-2) 100%);
}

.cbl-routebar__next-copy {
  min-width: 0;
}

.cbl-routebar__next-copy .cbl-kicker,
.cbl-routebar__next-copy strong {
  display: block;
}

.cbl-routebar__next-copy strong {
  margin-top: .18rem;
  color: var(--cbl-navy);
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.15;
}

.cbl-routebar__prev {
  padding: 0 .55rem;
  color: var(--cbl-navy) !important;
  border: 1px solid transparent;
}

.cbl-routebar__prev:hover {
  border-color: var(--cbl-border);
  background: #fff;
}

.cbl-routebar a:focus-visible {
  outline: 3px solid var(--cbl-navy);
  outline-offset: 3px;
  box-shadow: 0 0 0 2px #fff, 0 0 0 6px var(--cbl-yellow);
}

@media (max-width: 720px) {
  .cbl-routebar {
    grid-template-columns: 1fr auto;
  }

  .cbl-routebar__current {
    display: none;
  }

  .cbl-routebar__step {
    white-space: normal;
  }

  .cbl-routebar--bottom {
    grid-template-columns: 1fr auto;
  }

  .cbl-routebar--bottom .cbl-routebar__identity {
    grid-column: 1 / -1;
  }

  .cbl-routebar__prev-text {
    display: none;
  }
}

@media (max-width: 430px) {
  .cbl-routebar {
    padding: .62rem .68rem;
  }

  .cbl-routebar__home {
    padding-inline: .45rem;
  }

  .cbl-routebar__step {
    font-size: .72rem;
  }

  .cbl-routebar--bottom {
    grid-template-columns: 1fr;
  }

  .cbl-routebar--bottom .cbl-routebar__actions {
    justify-content: stretch;
  }

  .cbl-routebar--bottom .cbl-routebar__prev,
  .cbl-routebar--bottom .cbl-routebar__next {
    flex: 1 1 auto;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-routebar__next:hover {
    transform: none;
  }
}

@media (forced-colors: active) {
  .cbl-routebar,
  .cbl-routebar__next {
    border: 1px solid CanvasText;
  }
}

/* 1.11.0 — Simple Experience: intent first, result first, precision on demand. */

.cbl-hub-intents {
  margin-top: clamp(20px, 3vw, 32px);
}

.cbl-hub-intent-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cbl-hub-intent {
  appearance: none;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 196px;
  padding: 22px;
  position: relative;
  text-align: left;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.cbl-hub-intent::after {
  bottom: 20px;
  color: var(--cbl-navy);
  content: '→';
  font-size: 1.15rem;
  font-weight: 900;
  position: absolute;
  right: 20px;
}

.cbl-hub-intent.is-active {
  background: var(--cbl-surface);
  border-color: var(--cbl-navy);
}

.cbl-hub-intent strong,
.cbl-hub-intent small {
  display: block;
}

.cbl-hub-intent > strong {
  color: var(--cbl-navy);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  letter-spacing: -.025em;
  line-height: 1.12;
  margin-top: 6px;
  max-width: 17ch;
}

.cbl-hub-intent small {
  color: var(--cbl-muted);
  font-size: .78rem;
  line-height: 1.45;
  margin-top: 10px;
  max-width: 36ch;
}

.cbl-hub-selection {
  border-top: 1px solid var(--cbl-border);
  margin-top: clamp(26px, 4vw, 42px);
  padding-top: clamp(24px, 3vw, 34px);
}

.cbl-hub-module-group {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
}

.cbl-hub-module-group[hidden] {
  display: none !important;
}

.cbl-hub-module-card {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 210px;
  padding: 22px;
}

.cbl-hub-module-card h4 {
  color: var(--cbl-navy);
  font-size: 1.35rem;
  letter-spacing: -.03em;
  line-height: 1.08;
  margin: 7px 0 0;
}

.cbl-hub-module-card p {
  color: var(--cbl-muted);
  font-size: .8rem;
  line-height: 1.48;
  margin-top: 9px !important;
}

.cbl-hub-module-card__action {
  align-items: center;
  border-top: 1px solid var(--cbl-border);
  display: flex;
  gap: 10px;
  justify-content: space-between;
  margin-top: 22px;
  padding-top: 14px;
}

.cbl-hub-module-card__status {
  color: var(--cbl-muted);
  font-size: .68rem;
  font-weight: 720;
}

.cbl-hub-module-card.is-started .cbl-hub-module-card__status {
  color: var(--cbl-navy);
}

.cbl-hub-module-card.is-visited .cbl-hub-module-card__status {
  color: var(--cbl-success);
}

.cbl-hub-module-card__action a {
  color: var(--cbl-navy) !important;
  font-size: .78rem;
  font-weight: 850;
  text-decoration: none;
}

.cbl-hub-module-card--flagship {
  background: var(--cbl-navy);
  border-color: var(--cbl-navy);
}

.cbl-hub-module-card--flagship .cbl-kicker,
.cbl-hub-module-card--flagship h4,
.cbl-hub-module-card--flagship .cbl-hub-module-card__action a {
  color: var(--cbl-white) !important;
}

.cbl-hub-module-card--flagship .cbl-kicker {
  color: var(--cbl-yellow) !important;
}

.cbl-hub-module-card--flagship p,
.cbl-hub-module-card--flagship .cbl-hub-module-card__status {
  color: #c9d6e6;
}

.cbl-hub-module-card--flagship .cbl-hub-module-card__action {
  border-color: rgba(255,255,255,.16);
}

.cbl-experience-hero {
  display: block;
  min-height: 0;
  padding: clamp(26px, 4vw, 44px);
}

.cbl-experience-hero .cbl-profit-hero__copy {
  max-width: 780px;
}

.cbl-experience-hero h2 {
  font-size: clamp(1.85rem, 4.2vw, 3.2rem);
  max-width: 760px;
}

.cbl-experience-result {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1.45fr) minmax(250px, .8fr);
  margin-top: clamp(16px, 2.5vw, 24px);
}

.cbl-experience-result > .cbl-outcome {
  min-height: 100%;
}

.cbl-tax-results.cbl-experience-result > .cbl-outcome {
  grid-row: span 2;
}

.cbl-experience-facts {
  display: grid;
  gap: 10px;
}

.cbl-experience-facts > div {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 15px;
  padding: 15px 17px;
}

.cbl-experience-facts span,
.cbl-experience-facts strong {
  display: block;
}

.cbl-experience-facts span {
  color: var(--cbl-muted);
  font-size: .72rem;
}

.cbl-experience-facts strong {
  color: var(--cbl-navy);
  font-size: clamp(1.05rem, 2vw, 1.35rem);
  letter-spacing: -.025em;
  margin-top: 2px;
}

.cbl-experience-insight {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 18px 20px !important;
}

.cbl-experience-insight h3 {
  font-size: clamp(1rem, 2vw, 1.25rem) !important;
}

.cbl-one-tap {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 20px;
  margin-top: clamp(16px, 2.5vw, 24px);
  padding: clamp(18px, 3vw, 26px);
}

.cbl-one-tap__head h2 {
  color: var(--cbl-navy);
  font-size: clamp(1.25rem, 2.6vw, 1.75rem);
  letter-spacing: -.035em;
  line-height: 1.1;
  margin-top: 4px !important;
}

.cbl-one-tap__grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 14px;
}

.cbl-one-tap__grid button {
  appearance: none;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 15px;
  color: var(--cbl-text);
  cursor: pointer;
  min-height: 108px;
  padding: 15px;
  text-align: left;
}

.cbl-one-tap__grid button > span,
.cbl-one-tap__grid button > strong,
.cbl-one-tap__grid button > small {
  display: block;
}

.cbl-one-tap__grid button > span {
  color: var(--cbl-navy-2);
  font-size: .72rem;
  font-weight: 850;
}

.cbl-one-tap__grid button > strong {
  color: var(--cbl-navy);
  font-size: .92rem;
  line-height: 1.15;
  margin-top: 6px;
}

.cbl-one-tap__grid button > small {
  color: var(--cbl-muted);
  font-size: .7rem;
  line-height: 1.35;
  margin-top: 4px;
}

.cbl-tune {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  margin-top: clamp(16px, 2.5vw, 24px);
  overflow: hidden;
}

.cbl-tune > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  list-style: none;
  min-height: 70px;
  padding: 15px 18px;
}

.cbl-tune > summary::-webkit-details-marker {
  display: none;
}

.cbl-tune > summary strong,
.cbl-tune > summary small {
  display: block;
}

.cbl-tune > summary strong {
  color: var(--cbl-navy);
  font-size: .9rem;
}

.cbl-tune > summary small {
  color: var(--cbl-muted);
  font-size: .7rem;
  margin-top: 2px;
}

.cbl-tune > summary > span:last-child {
  color: var(--cbl-navy);
  font-size: 1.2rem;
  font-weight: 700;
  transition: transform .18s ease;
}

.cbl-tune[open] > summary > span:last-child {
  transform: rotate(45deg);
}

.cbl-tune__body {
  border-top: 1px solid var(--cbl-border);
  padding: clamp(18px, 3vw, 26px);
}

.cbl-scenario-strip {
  margin-top: clamp(16px, 2.5vw, 24px);
}

.cbl-balance-equation {
  align-items: stretch;
  display: grid;
  gap: 8px;
  grid-column: 2;
  grid-template-columns: 1fr auto 1fr auto 1fr;
}

.cbl-balance-equation > div {
  align-items: center;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 13px 9px;
  text-align: center;
}

.cbl-balance-equation span,
.cbl-balance-equation strong {
  display: block;
}

.cbl-balance-equation span {
  color: var(--cbl-muted);
  font-size: .62rem;
}

.cbl-balance-equation strong {
  color: var(--cbl-navy);
  font-size: .9rem;
  line-height: 1.1;
  margin-top: 4px;
}

.cbl-balance-equation > b {
  align-self: center;
  color: var(--cbl-muted);
}

.cbl-tax-experiments.cbl-one-tap,
.cbl-accounting-operations.cbl-one-tap {
  padding: clamp(18px, 3vw, 26px);
}

.cbl-tax-experiments.cbl-one-tap .cbl-tax-experiment-grid,
.cbl-accounting-operations.cbl-one-tap .cbl-accounting-operation-grid {
  margin-top: 14px;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-hub-intent:hover,
  .cbl-hub-module-card:hover,
  .cbl-one-tap__grid button:hover {
    border-color: var(--cbl-border-strong);
    transform: translateY(-2px);
  }
}

@media (max-width: 880px) {
  .cbl-hub-intent-grid,
  .cbl-hub-module-group {
    grid-template-columns: 1fr;
  }

  .cbl-hub-intent {
    min-height: 0;
  }

  .cbl-experience-result {
    grid-template-columns: 1fr;
  }

  .cbl-experience-result > .cbl-outcome {
    grid-row: auto;
  }

  .cbl-experience-insight,
  .cbl-balance-equation {
    grid-column: 1;
  }

  .cbl-one-tap__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 580px) {
  .cbl-experience-hero {
    padding: 24px 19px;
  }

  .cbl-hub-module-card,
  .cbl-hub-intent {
    padding: 18px;
  }

  .cbl-balance-equation {
    grid-template-columns: 1fr;
  }

  .cbl-balance-equation > b {
    line-height: 1;
    transform: rotate(90deg);
  }

  .cbl-tune > summary {
    min-height: 64px;
    padding: 13px 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-hub-intent,
  .cbl-hub-module-card,
  .cbl-one-tap__grid button,
  .cbl-tune > summary > span:last-child {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-hub-intent,
  .cbl-hub-module-card,
  .cbl-experience-facts > div,
  .cbl-one-tap,
  .cbl-one-tap__grid button,
  .cbl-tune,
  .cbl-balance-equation > div {
    border: 1px solid CanvasText;
  }
}

/* Keep the top route quiet; the bottom route remains the strong continuation cue. */
.cbl-experience-app > .cbl-routebar:not(.cbl-routebar--bottom),
.cbl-quest-app > .cbl-routebar:not(.cbl-routebar--bottom),
.cbl-challenge-app > .cbl-routebar:not(.cbl-routebar--bottom),
.cbl-app[data-cbl-module="simulator"] > .cbl-routebar:not(.cbl-routebar--bottom) {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  margin-bottom: 10px;
  padding: 0 2px;
}

/* 1.12.0 — Visual Character & Density Pass. */

.cbl-hub-hero__illustration {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 8px;
  justify-self: end;
  max-width: 330px;
  width: 100%;
}

.cbl-hub-hero__illustration svg {
  display: block;
  height: auto;
  overflow: visible;
  width: 100%;
}

.cbl-hub-hero__illustration > span {
  color: var(--cbl-muted);
  font-size: .7rem;
  font-weight: 760;
  letter-spacing: .015em;
}

.cbl-viz-surface {
  fill: rgba(255,255,255,.78);
  stroke: #d7e0ec;
  stroke-width: 1.5;
}

.cbl-viz-line {
  fill: none;
  stroke: var(--cbl-navy);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 5;
}

.cbl-viz-point {
  fill: #fff;
  stroke: var(--cbl-navy);
  stroke-width: 4;
}

.cbl-viz-point--accent {
  fill: var(--cbl-yellow);
}

.cbl-viz-bar {
  fill: #cbd6e4;
}

.cbl-viz-bar--strong {
  fill: var(--cbl-navy-2);
}

.cbl-hub-intent {
  min-height: 180px;
  padding: 20px;
}

.cbl-hub-intent small {
  max-width: 31ch;
}

.cbl-hub-selection {
  margin-top: clamp(22px, 3vw, 34px);
  padding-top: clamp(20px, 2.5vw, 28px);
}

.cbl-hub-module-card {
  min-height: 190px;
  padding: 20px;
}

.cbl-experience-hero {
  padding: clamp(22px, 3vw, 34px);
}

.cbl-experience-hero h2 {
  font-size: clamp(1.75rem, 3.7vw, 2.8rem);
}

.cbl-profit-visual,
.cbl-cashflow-visual {
  background: #fff;
  border: 1px solid var(--cbl-border);
  border-radius: 17px;
  grid-column: 1 / -1;
  padding: 16px 18px;
}

.cbl-profit-visual__head {
  align-items: center;
  color: var(--cbl-muted);
  display: grid;
  font-size: .68rem;
  gap: 10px;
  grid-template-columns: 1fr auto 1fr;
}

.cbl-profit-visual__head strong {
  color: var(--cbl-navy);
  font-size: .72rem;
  text-align: center;
}

.cbl-profit-visual__head > span:last-child {
  text-align: right;
}

.cbl-profit-visual__track {
  background: #e8edf4;
  border-radius: 999px;
  height: 10px;
  margin-top: 12px;
  overflow: visible;
  position: relative;
}

.cbl-profit-visual__fill {
  background: linear-gradient(90deg, #b9dccc, #4aa87f);
  border-radius: inherit;
  display: block;
  height: 100%;
  width: var(--cbl-profit-plan, 100%);
}

.cbl-profit-visual__marker {
  background: #fff;
  border: 3px solid var(--cbl-navy);
  border-radius: 50%;
  height: 16px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
}

.cbl-profit-visual__marker--break-even {
  left: var(--cbl-profit-break-even, 84%);
}

.cbl-profit-visual__marker--plan {
  border-color: #087a55;
  left: var(--cbl-profit-plan, 100%);
}

.cbl-profit-visual[data-tone="negative"] .cbl-profit-visual__fill {
  background: linear-gradient(90deg, #efc6cc, #c96574);
}

.cbl-profit-visual > p,
.cbl-cashflow-visual > p {
  color: var(--cbl-muted);
  font-size: .72rem;
  margin-top: 10px !important;
}

.cbl-cashflow-visual {
  display: grid;
  gap: 11px;
}

.cbl-cashflow-visual__row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: 92px minmax(0, 1fr) 88px;
}

.cbl-cashflow-visual__row > span {
  color: var(--cbl-text);
  font-size: .74rem;
  font-weight: 780;
}

.cbl-cashflow-visual__row > strong {
  color: var(--cbl-navy);
  font-size: .78rem;
  text-align: right;
}

.cbl-cashflow-visual__track {
  background: linear-gradient(90deg, #eef2f7 0 49.5%, #bcc8d7 49.5% 50.5%, #eef2f7 50.5% 100%);
  border-radius: 999px;
  height: 10px;
  position: relative;
}

.cbl-cashflow-visual__track i {
  background: #087a55;
  border-radius: 999px;
  height: 100%;
  left: 50%;
  position: absolute;
  top: 0;
}

.cbl-cashflow-visual__row[data-direction="negative"] .cbl-cashflow-visual__track i {
  background: #c24d60;
  left: auto;
  right: 50%;
}

.cbl-cashflow-visual__row[data-direction="neutral"] .cbl-cashflow-visual__track i {
  background: #8d9aad;
}

@media (max-width: 900px) {

  .cbl-hub-hero__illustration {
    max-width: 260px;
  }
}

@media (max-width: 760px) {

  .cbl-hub-hero__illustration {
    display: none;
  }
}

@media (max-width: 580px) {

  .cbl-hub-intent {
    min-height: 0;
  }

  .cbl-cashflow-visual__row {
    grid-template-columns: 74px minmax(0, 1fr) 70px;
    gap: 8px;
  }

  .cbl-profit-visual__head {
    grid-template-columns: 1fr 1fr;
  }

  .cbl-profit-visual__head > span:first-child {
    display: none;
  }

  .cbl-profit-visual__head strong {
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-profit-visual__fill,
  .cbl-cashflow-visual__track i {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-profit-visual,
  .cbl-cashflow-visual {
    border: 1px solid CanvasText;
  }

  .cbl-viz-line,
  .cbl-viz-point {
    stroke: CanvasText;
  }
}

/* 1.13.0 learning feedback: appears only after a deliberate user action. */
.cbl-learning-feedback {
  background: var(--cbl-surface-2);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  margin-top: 14px;
  padding: 15px 17px;
}

.cbl-learning-feedback[hidden] {
  display: none !important;
}

.cbl-learning-feedback[data-tone="positive"] {
  background: var(--cbl-success-bg);
  border-color: var(--cbl-border);
}

.cbl-learning-feedback[data-tone="negative"] {
  background: var(--cbl-danger-bg);
  border-color: var(--cbl-border);
}

.cbl-learning-feedback[data-tone="neutral"] {
  background: var(--cbl-surface-2);
}

.cbl-learning-feedback__top {
  align-items: baseline;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.cbl-learning-feedback__top > span {
  color: var(--cbl-muted);
  font-size: .72rem;
  font-weight: 750;
}

.cbl-learning-feedback__top > strong {
  color: var(--cbl-navy);
  font-size: clamp(.95rem, 1.8vw, 1.15rem);
  letter-spacing: -.02em;
  white-space: nowrap;
}

.cbl-learning-feedback[data-tone="positive"] .cbl-learning-feedback__top > strong {
  color: var(--cbl-success);
}

.cbl-learning-feedback[data-tone="negative"] .cbl-learning-feedback__top > strong {
  color: var(--cbl-danger);
}

.cbl-learning-feedback h3 {
  color: var(--cbl-navy);
  font-size: clamp(1rem, 2vw, 1.2rem);
  letter-spacing: -.025em;
  line-height: 1.15;
  margin-top: 5px !important;
}

.cbl-learning-feedback > p {
  color: var(--cbl-muted);
  font-size: .78rem;
  line-height: 1.45;
  margin-top: 8px !important;
}

.cbl-learning-feedback__compare {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px 10px;
  margin-top: 10px;
}

.cbl-learning-feedback__compare > span {
  color: var(--cbl-muted);
  font-size: .75rem;
}

.cbl-learning-feedback__compare b {
  color: var(--cbl-navy);
  font-size: .86rem;
  margin-left: 3px;
}

.cbl-learning-feedback__compare > i {
  color: var(--cbl-muted);
  font-style: normal;
  font-weight: 800;
}

.cbl-learning-feedback__pairs {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 10px;
}

.cbl-learning-feedback__pairs > span {
  align-items: center;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 12px;
  display: grid;
  gap: 3px 8px;
  grid-template-columns: 1fr auto auto auto;
  min-width: 0;
  padding: 10px 11px;
}

.cbl-learning-feedback__pairs b {
  color: var(--cbl-muted);
  font-size: .7rem;
  overflow-wrap: anywhere;
}

.cbl-learning-feedback__pairs em,
.cbl-learning-feedback__pairs strong {
  color: var(--cbl-navy);
  font-size: .78rem;
  font-style: normal;
  white-space: nowrap;
}

.cbl-learning-feedback__pairs em {
  color: var(--cbl-muted);
}

.cbl-learning-feedback__pairs i {
  color: var(--cbl-muted);
  font-size: .72rem;
  font-style: normal;
}

.cbl-tax-compare.cbl-learning-feedback {
  display: block;
  grid-template-columns: none;
}

.cbl-tax-compare.cbl-learning-feedback > p {
  color: var(--cbl-muted);
  font-size: .78rem;
  margin-top: 8px !important;
}

@media (max-width: 580px) {
  .cbl-learning-feedback__top {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .cbl-learning-feedback__top > strong {
    white-space: normal;
  }

  .cbl-learning-feedback__pairs {
    grid-template-columns: 1fr;
  }
}

@media (forced-colors: active) {
  .cbl-learning-feedback,
  .cbl-learning-feedback__pairs > span {
    border: 1px solid CanvasText;
  }
}

/* 1.14.0 Replay & Mastery — visible only after a completed interactive round. */
.cbl-quest-mastery {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  justify-content: center;
  margin-top: 16px;
}

.cbl-quest-mastery span {
  color: #c9d7ed;
  font-size: .74rem;
  font-weight: 760;
}

.cbl-replay-goal {
  border-left: 3px solid var(--cbl-yellow);
  margin-top: 16px;
  padding: 12px 0 12px 16px;
  text-align: left;
}

.cbl-replay-goal > strong,
.cbl-replay-goal > p {
  display: block;
}

.cbl-replay-goal > strong {
  color: var(--cbl-text);
  font-size: 1rem;
  line-height: 1.25;
  margin-top: 4px;
}

.cbl-replay-goal > p {
  color: var(--cbl-muted);
  font-size: .8rem;
  line-height: 1.5;
  margin-top: 5px !important;
  max-width: 72ch;
}

.cbl-replay-goal--dark {
  border-left-color: var(--cbl-yellow);
  margin-left: auto;
  margin-right: auto;
  max-width: 650px;
}

.cbl-replay-goal--dark .cbl-kicker {
  color: var(--cbl-yellow);
}

.cbl-replay-goal--dark > strong {
  color: var(--cbl-white);
}

.cbl-replay-goal--dark > p {
  color: #dbe5f3;
}

.cbl-challenge-replay-goal {
  background: color-mix(in srgb, var(--cbl-yellow) 7%, var(--cbl-white));
  border-bottom: 1px solid var(--cbl-border);
  border-right: 1px solid var(--cbl-border);
  border-top: 1px solid var(--cbl-border);
  border-radius: 0 14px 14px 0;
  margin-top: 14px;
  padding: 14px 16px;
}

@supports not (background: color-mix(in srgb, white 50%, black)) {
  .cbl-challenge-replay-goal {
    background: #fffaf0;
  }
}

@media (max-width: 560px) {
  .cbl-quest-mastery {
    gap: 5px 12px;
  }

  .cbl-replay-goal {
    padding-left: 13px;
  }
}

/* 1.16.0 Idea Sprint — optional capstone, intentionally outside the seven-step route. */
.cbl-idea-app {
  --cbl-idea-accent: #6d45b8;
}

.cbl-idea-route {
  margin-bottom: 14px;
}

.cbl-idea-hero {
  align-items: center;
  display: grid;
  gap: clamp(18px, 4vw, 44px);
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr);
}

.cbl-idea-hero > div:first-child {
  max-width: 720px;
}

.cbl-idea-hero__mark {
  align-items: center;
  display: grid;
  gap: 3px;
  justify-items: center;
  justify-self: end;
  max-width: 220px;
  width: 100%;
}

.cbl-idea-hero__mark svg {
  fill: none;
  height: auto;
  max-width: 150px;
  stroke: var(--cbl-idea-accent);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4;
  width: 100%;
}

.cbl-idea-hero__mark circle:last-of-type {
  fill: var(--cbl-yellow);
  stroke: var(--cbl-navy);
}

.cbl-idea-hero__mark span {
  color: var(--cbl-muted);
  font-size: .7rem;
  font-weight: 760;
  text-align: center;
}

.cbl-section-heading--compact {
  margin-bottom: 14px;
}

.cbl-idea-pick,
.cbl-idea-decisions,
.cbl-idea-result {
  margin-top: clamp(22px, 4vw, 36px);
}

.cbl-idea-preset-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.cbl-idea-preset-grid button {
  align-content: start;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  color: var(--cbl-text);
  cursor: pointer;
  display: grid;
  gap: 5px;
  min-height: 118px;
  padding: 14px;
  text-align: left;
  transition: border-color .16s ease, transform .16s ease, background .16s ease;
}

.cbl-idea-preset-grid button > span {
  align-items: center;
  background: var(--cbl-soft);
  border-radius: 10px;
  color: var(--cbl-navy);
  display: inline-flex;
  font-size: .75rem;
  font-weight: 850;
  height: 31px;
  justify-content: center;
  width: 31px;
}

.cbl-idea-preset-grid button strong {
  color: var(--cbl-navy);
  font-size: .92rem;
  line-height: 1.2;
}

.cbl-idea-preset-grid button small {
  color: var(--cbl-muted);
  font-size: .7rem;
  line-height: 1.35;
}

.cbl-idea-preset-grid button.is-active {
  background: color-mix(in srgb, var(--cbl-idea-accent) 5%, var(--cbl-white));
  border-color: color-mix(in srgb, var(--cbl-idea-accent) 48%, var(--cbl-border));
}

.cbl-idea-preset-grid button.is-active > span {
  background: var(--cbl-idea-accent);
  color: var(--cbl-white);
}

.cbl-idea-preset-grid button:focus-visible,
.cbl-idea-slider-card input:focus-visible {
  outline: 3px solid var(--cbl-navy);
  outline-offset: 3px;
}

.cbl-idea-assumption {
  color: var(--cbl-muted);
  font-size: .72rem;
  line-height: 1.45;
  margin-top: 10px !important;
}

.cbl-idea-slider-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cbl-idea-slider-card {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 18px;
  padding: 16px;
}

.cbl-idea-slider-card > div {
  align-items: start;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.cbl-idea-slider-card label {
  color: var(--cbl-navy);
  font-size: .8rem;
  font-weight: 800;
  line-height: 1.3;
}

.cbl-idea-slider-card output {
  color: var(--cbl-idea-accent);
  font-size: .82rem;
  font-weight: 850;
  white-space: nowrap;
}

.cbl-idea-slider-card input[type="range"] {
  margin: 16px 0 8px;
  width: 100%;
}

.cbl-idea-slider-card small {
  color: var(--cbl-muted);
  display: block;
  font-size: .68rem;
  line-height: 1.4;
}

.cbl-idea-result {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 24px;
  overflow: hidden;
}

.cbl-idea-outcome {
  align-items: center;
  background: linear-gradient(135deg, color-mix(in srgb, var(--cbl-success) 7%, var(--cbl-white)), var(--cbl-white));
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1.3fr) minmax(190px, .7fr);
  padding: clamp(20px, 4vw, 34px);
}

.cbl-idea-outcome[data-tone="warning"] {
  background: linear-gradient(135deg, #fff8e8, var(--cbl-white));
}

.cbl-idea-outcome[data-tone="negative"] {
  background: linear-gradient(135deg, #fff1f1, var(--cbl-white));
}

.cbl-idea-outcome h2 {
  color: var(--cbl-navy);
  font-size: clamp(1.5rem, 3vw, 2.15rem);
  letter-spacing: -.04em;
  line-height: 1.05;
  margin-top: 5px !important;
}

.cbl-idea-outcome p {
  color: var(--cbl-muted);
  font-size: .8rem;
  line-height: 1.5;
  margin-top: 8px !important;
  max-width: 62ch;
}

.cbl-idea-outcome__number {
  display: grid;
  gap: 4px;
  justify-items: end;
  text-align: right;
}

.cbl-idea-outcome__number span,
.cbl-idea-outcome__number small {
  color: var(--cbl-muted);
  font-size: .66rem;
  line-height: 1.35;
  max-width: 240px;
}

.cbl-idea-outcome__number strong {
  color: var(--cbl-success);
  font-size: clamp(1.8rem, 4vw, 3rem);
  letter-spacing: -.055em;
  line-height: 1;
}

.cbl-idea-outcome[data-tone="warning"] .cbl-idea-outcome__number strong { color: #8a5b00; }
.cbl-idea-outcome[data-tone="negative"] .cbl-idea-outcome__number strong { color: var(--cbl-danger); }

.cbl-idea-facts {
  border-top: 1px solid var(--cbl-border);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cbl-idea-facts > div {
  display: grid;
  gap: 3px;
  padding: 14px 18px;
}

.cbl-idea-facts > div + div { border-left: 1px solid var(--cbl-border); }
.cbl-idea-facts span { color: var(--cbl-muted); font-size: .68rem; }
.cbl-idea-facts strong { color: var(--cbl-navy); font-size: 1rem; }

.cbl-idea-signals {
  border-top: 1px solid var(--cbl-border);
  display: grid;
  gap: 12px;
  padding: 18px;
}

.cbl-idea-signals > div {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(150px, .7fr) minmax(180px, 1.3fr);
}

.cbl-idea-signals span {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
}

.cbl-idea-signals b { color: var(--cbl-navy); font-size: .75rem; }
.cbl-idea-signals em { color: var(--cbl-muted); font-size: .68rem; font-style: normal; }
.cbl-idea-signals i { background: var(--cbl-soft); border-radius: 999px; display: block; height: 8px; overflow: hidden; }
.cbl-idea-signals u { background: var(--cbl-success); border-radius: inherit; display: block; height: 100%; min-width: 2px; transition: width .22s ease; }
.cbl-idea-signals [data-tone="warning"] u { background: var(--cbl-yellow); }
.cbl-idea-signals [data-tone="negative"] u { background: var(--cbl-danger); }

.cbl-idea-next {
  align-items: center;
  background: var(--cbl-navy);
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 18px;
}

.cbl-idea-next .cbl-kicker { color: var(--cbl-yellow); }
.cbl-idea-next h3 { color: var(--cbl-white); font-size: 1rem; margin-top: 4px !important; }
.cbl-idea-next p { color: #d6e0ef; font-size: .72rem; line-height: 1.45; margin-top: 5px !important; max-width: 64ch; }
.cbl-idea-next .cbl-next { white-space: nowrap; }

.cbl-idea-feedback { border-left: 0; border-radius: 0; border-right: 0; margin: 0; padding: 16px 18px; }

.cbl-idea-result-actions {
  align-items: center;
  border-top: 1px solid var(--cbl-border);
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: space-between;
  padding: 12px 18px;
}

.cbl-idea-result-actions > span { color: var(--cbl-muted); font-size: .66rem; }

.cbl-idea-tune { margin-top: 18px; }
.cbl-idea-detail-grid { display: grid; gap: 12px; grid-template-columns: 1.2fr 1fr 1fr; }
.cbl-idea-detail-grid .cbl-profit-field > label > span { color: var(--cbl-muted); font-size: .68rem; font-weight: 600; }
.cbl-idea-detail-grid .cbl-profit-field > input[type="text"] { background: var(--cbl-white); border: 1px solid var(--cbl-border); border-radius: 12px; min-height: 44px; padding: 10px 12px; width: 100%; }

@media (hover: hover) {
  .cbl-idea-preset-grid button:hover { border-color: color-mix(in srgb, var(--cbl-idea-accent) 40%, var(--cbl-border)); transform: translateY(-1px); }
}

@media (max-width: 900px) {
  .cbl-idea-preset-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cbl-idea-slider-grid { grid-template-columns: 1fr; }
  .cbl-idea-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
  .cbl-idea-hero { grid-template-columns: 1fr; }
  .cbl-idea-hero__mark { display: none; }
  .cbl-idea-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbl-idea-outcome { grid-template-columns: 1fr; }
  .cbl-idea-outcome__number { justify-items: start; text-align: left; }
  .cbl-idea-facts { grid-template-columns: 1fr; }
  .cbl-idea-facts > div + div { border-left: 0; border-top: 1px solid var(--cbl-border); }
  .cbl-idea-signals > div { grid-template-columns: 1fr; gap: 7px; }
  .cbl-idea-next { grid-template-columns: 1fr; }
  .cbl-idea-next .cbl-next { justify-self: start; white-space: normal; }
}

@media (max-width: 430px) {
  .cbl-idea-preset-grid { grid-template-columns: 1fr; }
  .cbl-idea-preset-grid button { min-height: 96px; }
  .cbl-idea-result-actions { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-idea-preset-grid button,
  .cbl-idea-signals u { transition: none; }
}

@media (forced-colors: active) {
  .cbl-idea-preset-grid button,
  .cbl-idea-slider-card,
  .cbl-idea-result,
  .cbl-idea-facts > div,
  .cbl-idea-feedback { border-color: CanvasText; }
  .cbl-idea-signals i { border: 1px solid CanvasText; }
  .cbl-idea-signals u { background: Highlight; }
}

/* 1.17.0 Money Basics: one question, one action, one insight. */
.cbl-money-app { --cbl-money-accent: #7a43a8; }

.cbl-money-hero {
  align-items: center;
  background: linear-gradient(135deg, #f7f4fb 0%, #f8fafc 58%, #eef4fb 100%);
  border: 1px solid var(--cbl-border);
  border-radius: 24px;
  display: grid;
  gap: clamp(24px, 5vw, 54px);
  grid-template-columns: minmax(0, 1.35fr) minmax(230px, .65fr);
  padding: clamp(26px, 4vw, 44px);
}

.cbl-money-hero > div:first-child { max-width: 760px; }
.cbl-money-hero h2 { color: var(--cbl-navy); font-size: clamp(2rem, 4vw, 3.35rem); letter-spacing: -.04em; line-height: 1.02; }
.cbl-money-hero > div:first-child > p:last-child { color: var(--cbl-muted); font-size: clamp(.96rem, 1.5vw, 1.08rem); margin-top: 15px !important; max-width: 66ch; }

.cbl-money-shell {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 24px;
  margin-top: 18px;
  overflow: hidden;
}

.cbl-money-tabs {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  background: var(--cbl-border);
  border-bottom: 1px solid var(--cbl-border);
  border-top: 1px solid var(--cbl-border);
}
.cbl-money-tabs button {
  background: var(--cbl-white);
  border: 0;
  color: var(--cbl-text);
  cursor: pointer;
  display: grid;
  gap: 3px;
  min-height: 92px;
  padding: 14px 16px;
  text-align: left;
}
.cbl-money-tabs button > span { font-size: 1.35rem; line-height: 1; }
.cbl-money-tabs button strong { color: var(--cbl-navy); font-size: .88rem; }
.cbl-money-tabs button small { color: var(--cbl-muted); font-size: .66rem; line-height: 1.3; }
.cbl-money-tabs button.is-active { background: #f7f2fb; box-shadow: inset 0 -3px 0 var(--cbl-money-accent); }

.cbl-money-panel { background: var(--cbl-white); padding: clamp(22px, 4vw, 34px); }
.cbl-money-question { max-width: 800px; }
.cbl-money-question h3 { color: var(--cbl-navy); font-size: clamp(1.45rem, 2.9vw, 2.15rem); letter-spacing: -.035em; line-height: 1.08; margin-top: 5px !important; }
.cbl-money-question > p { color: var(--cbl-muted); font-size: .86rem; margin-top: 10px !important; max-width: 67ch; }

.cbl-money-fx-picker {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  justify-content: space-between;
  margin-top: 24px;
}
.cbl-money-chipset { display: flex; flex-wrap: wrap; gap: 7px; }
.cbl-money-chipset button {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border-strong);
  border-radius: 999px;
  color: var(--cbl-navy);
  cursor: pointer;
  font-size: .74rem;
  font-weight: 800;
  min-height: 42px;
  min-width: 48px;
  padding: 8px 13px;
}
.cbl-money-chipset button.is-active { background: var(--cbl-navy); border-color: var(--cbl-navy); color: var(--cbl-white); }

.cbl-money-source { color: var(--cbl-muted); font-size: .66rem; line-height: 1.5; margin-top: 12px !important; }
.cbl-money-chip-control {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  display: grid;
  gap: 9px;
  padding: 16px;
}
.cbl-money-chip-control > span { color: var(--cbl-muted); font-size: .68rem; font-weight: 650; }

.cbl-money-big-result {
  background: var(--cbl-navy);
  border-radius: 18px;
  color: var(--cbl-white);
  display: grid;
  gap: 6px;
  margin-top: 14px;
  padding: 20px;
}
.cbl-money-big-result > span { color: #c9d7ed; font-size: .7rem; }
.cbl-money-big-result > strong { color: var(--cbl-white); font-size: clamp(1.8rem, 4vw, 2.5rem); letter-spacing: -.04em; }
.cbl-money-big-result > p { color: #d6e0ef; font-size: .74rem; max-width: 70ch; }
.cbl-money-big-result[data-tone="positive"] { background: #075c47; }
.cbl-money-big-result[data-tone="warning"] { background: #745100; }
.cbl-money-big-result[data-tone="negative"] { background: #842232; }

.cbl-money-offers {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 22px;
}
.cbl-money-offers button {
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  cursor: pointer;
  display: grid;
  gap: 5px;
  min-height: 130px;
  padding: 16px;
  text-align: left;
}
.cbl-money-offers button span { color: var(--cbl-muted); font-size: .66rem; }
.cbl-money-offers button strong { color: var(--cbl-navy); font-size: 1rem; }
.cbl-money-offers button small { color: var(--cbl-muted); font-size: .68rem; line-height: 1.4; }
.cbl-money-offers button.is-active { background: #f7f2fb; border-color: var(--cbl-money-accent); box-shadow: inset 0 0 0 1px var(--cbl-money-accent); }

.cbl-money-credit-reveal {
  background: var(--cbl-surface);
  border-radius: 16px;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  margin-top: 14px;
  padding: 18px;
}
.cbl-money-credit-reveal h3 { color: var(--cbl-navy); font-size: 1.1rem; margin-top: 3px !important; }
.cbl-money-credit-reveal > p { color: var(--cbl-muted); font-size: .72rem; grid-column: 1 / -1; }
.cbl-money-credit-numbers { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cbl-money-credit-numbers span { color: var(--cbl-muted); display: grid; font-size: .66rem; gap: 3px; }
.cbl-money-credit-numbers strong { color: var(--cbl-navy); font-size: 1.05rem; }

.cbl-money-takeaway {
  align-items: flex-start;
  background: #fff7db;
  border: 1px solid #ead27d;
  border-radius: 16px;
  display: flex;
  gap: 12px;
  margin-top: 16px;
  padding: 15px 18px;
}
.cbl-money-takeaway > span { font-size: 1.15rem; }
.cbl-money-takeaway p { color: #5b4a0d; font-size: .75rem; line-height: 1.5; }

@media (hover: hover) {
  .cbl-money-tabs button:hover,
  .cbl-money-offers button:hover { background: #fafbfc; }
  .cbl-money-chipset button:hover { border-color: var(--cbl-navy); }
}

@media (max-width: 800px) {
  .cbl-money-hero { grid-template-columns: 1fr; }
  .cbl-money-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbl-money-tabs button { min-height: 82px; }
  .cbl-money-offers { grid-template-columns: 1fr; }
  .cbl-money-offers button { min-height: 96px; }
}

@media (max-width: 620px) {
  .cbl-money-credit-reveal { grid-template-columns: 1fr; }
  .cbl-money-credit-numbers { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
  .cbl-money-tabs { grid-template-columns: 1fr 1fr; }
  .cbl-money-tabs button { min-height: 76px; padding: 12px; }
  .cbl-money-tabs button small { display: none; }
  .cbl-money-panel { padding: 20px 16px; }
  .cbl-money-fx-picker { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-money-app * { scroll-behavior: auto !important; }
}

@media (forced-colors: active) {
  .cbl-money-tabs button,
  .cbl-money-chipset button,
  .cbl-money-chip-control,
  .cbl-money-offers button,
  .cbl-money-credit-reveal { border-color: CanvasText; }
  .cbl-money-tabs button.is-active,
  .cbl-money-chipset button.is-active,
  .cbl-money-offers button.is-active { outline: 2px solid Highlight; }
}

/* 1.18.0 — Simplicity Pass: less visible UI, same functional depth. */
.cbl-hub-hero--quiet {
  align-items: center;
  display: grid;
  gap: clamp(20px, 3vw, 34px);
  grid-template-columns: minmax(0, 1.35fr) minmax(210px, .65fr);
  padding: clamp(22px, 3vw, 32px);
}
.cbl-hub-hero--quiet .cbl-hub-hero__copy { max-width: 700px; }
.cbl-hub-hero--quiet h2 {
  font-size: clamp(1.95rem, 4vw, 3.15rem);
  line-height: 1.02;
  max-width: 660px;
}
.cbl-hub-hero--quiet .cbl-hub-hero__illustration { max-width: 260px; }

.cbl-hub-intents--quiet { margin-top: clamp(22px, 3vw, 30px); }
.cbl-hub-intents--quiet > h3 {
  color: var(--cbl-navy);
  font-size: clamp(1.25rem, 2.2vw, 1.65rem);
  letter-spacing: -.025em;
  margin: 0 0 12px !important;
}
.cbl-hub-intent-grid--quiet { gap: 9px; }
.cbl-hub-intent--quiet {
  align-items: center;
  border-radius: 16px;
  display: flex;
  gap: 12px;
  min-height: 74px;
  padding: 12px 14px;
}
.cbl-hub-intent--quiet::after { display: none; }
.cbl-hub-intent--quiet .cbl-hub-intent__emoji {
  align-items: center;
  background: var(--cbl-surface);
  border-radius: 12px;
  display: inline-flex;
  flex: 0 0 42px;
  font-size: 1.35rem;
  height: 42px;
  justify-content: center;
}
.cbl-hub-intent--quiet > span:last-child { display: grid; gap: 2px; min-width: 0; }
.cbl-hub-intent--quiet strong { color: var(--cbl-navy); font-size: .86rem; line-height: 1.2; }
.cbl-hub-intent--quiet small { color: var(--cbl-muted); font-size: .69rem; line-height: 1.35; }
.cbl-hub-intent--quiet.is-active { background: #f7f9fc; border-color: var(--cbl-navy); box-shadow: inset 0 0 0 1px var(--cbl-navy); }
.cbl-hub-intent--quiet.is-active .cbl-hub-intent__emoji { background: #fff; }

.cbl-hub-selection--quiet { margin-top: 20px; padding-top: 18px; }
.cbl-hub-selection--quiet > h3 {
  color: var(--cbl-navy);
  font-size: clamp(1.15rem, 2vw, 1.45rem);
  letter-spacing: -.02em;
  margin: 0 0 12px !important;
}
.cbl-hub-module-group--quiet { gap: 9px; }
.cbl-hub-module-card--quiet {
  align-items: center;
  min-height: 0;
  padding: 16px 18px;
}
.cbl-hub-module-card--quiet h4 { font-size: 1rem; margin: 0 !important; }
.cbl-hub-module-card--quiet p { font-size: .72rem; margin-top: 5px !important; max-width: 60ch; }
.cbl-hub-module-card--quiet .cbl-hub-module-card__action { gap: 5px; min-width: 120px; }
.cbl-hub-module-card--quiet .cbl-hub-module-card__status { font-size: .63rem; }
.cbl-hub-module-card--quiet .cbl-hub-module-card__action a { font-size: .74rem; }
.cbl-hub-module-card--quiet.cbl-hub-module-card--flagship { min-height: 0; }

.cbl-hub-extras {
  align-items: center;
  border-top: 1px solid var(--cbl-border);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 14px;
}
.cbl-hub-extras > span { color: var(--cbl-muted); font-size: .68rem; font-weight: 700; }
.cbl-hub-extras > div { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.cbl-hub-extras a { color: var(--cbl-navy); font-size: .72rem; font-weight: 760; text-decoration: none; }
.cbl-hub-extras a:hover { text-decoration: underline; text-underline-offset: 3px; }

.cbl-hub-meta { margin-top: 10px; }
.cbl-hub-meta > summary {
  color: var(--cbl-muted);
  cursor: pointer;
  font-size: .66rem;
  font-weight: 700;
  width: max-content;
}
.cbl-hub-meta__body {
  align-items: center;
  background: var(--cbl-surface);
  border-radius: 12px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: 9px;
  padding: 12px 14px;
}
.cbl-hub-meta__body p { display: grid; gap: 2px; margin: 0 !important; }
.cbl-hub-meta__body p strong { color: var(--cbl-text); font-size: .68rem; }
.cbl-hub-meta__body p span { color: var(--cbl-muted); font-size: .64rem; }
.cbl-hub-meta__actions { display: flex; flex-wrap: wrap; gap: 6px; }
.cbl-hub-meta__actions .cbl-reset { font-size: .66rem; min-height: 38px; padding: 7px 10px; }

.cbl-money-hero--quiet {
  display: block;
  padding: clamp(20px, 3vw, 30px);
}
.cbl-money-hero--quiet > div:first-child { max-width: 690px; }
.cbl-money-hero--quiet h2 { font-size: clamp(1.9rem, 3.8vw, 3rem); }
.cbl-money-hero--quiet > div:first-child > p:last-child {
  font-size: clamp(.9rem, 1.25vw, 1rem);
  margin-top: 11px !important;
  max-width: 58ch;
}
.cbl-money-shell--quiet { margin-top: 14px; }
.cbl-money-tabs--quiet {
  background: var(--cbl-white);
  border: 0;
  border-bottom: 1px solid var(--cbl-border);
  gap: 6px;
  padding: 8px;
}
.cbl-money-tabs--quiet button {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 12px;
  display: flex;
  gap: 7px;
  justify-content: center;
  min-height: 46px;
  padding: 9px 10px;
  text-align: center;
}
.cbl-money-tabs--quiet button > span { font-size: 1rem; }
.cbl-money-tabs--quiet button strong { font-size: .75rem; }
.cbl-money-tabs--quiet button.is-active { background: #f7f2fb; border-color: #e3d6ee; box-shadow: none; }

.cbl-money-panel--quiet { padding: clamp(20px, 3vw, 28px); }
.cbl-money-panel--quiet .cbl-money-question h3 { font-size: clamp(1.35rem, 2.5vw, 1.9rem); }
.cbl-money-panel--quiet .cbl-money-question > p { font-size: .8rem; margin-top: 8px !important; }
.cbl-money-fx-picker--quiet { justify-content: flex-start; margin-top: 18px; }

.cbl-money-one-control { margin-top: 18px; max-width: 680px; }
.cbl-money-one-control > label,
.cbl-money-details__body--control > label {
  background: var(--cbl-surface);
  border: 1px solid var(--cbl-border);
  border-radius: 14px;
  display: grid;
  gap: 8px;
  padding: 14px;
}
.cbl-money-one-control label > span,
.cbl-money-details__body--control label > span { color: var(--cbl-muted); font-size: .68rem; font-weight: 650; }
.cbl-money-one-control label > strong,
.cbl-money-details__body--control label > strong { color: var(--cbl-navy); font-size: 1.05rem; }
.cbl-money-one-control input[type="range"],
.cbl-money-details__body--control input[type="range"] { width: 100%; }

.cbl-money-big-result--fx,
.cbl-money-big-result--inflation { background: var(--cbl-navy); }
.cbl-money-big-result { margin-top: 12px; padding: 18px; }
.cbl-money-big-result > strong { font-size: clamp(1.75rem, 3.5vw, 2.35rem); }

.cbl-money-details { margin-top: 10px; }
.cbl-money-details > summary {
  color: var(--cbl-muted);
  cursor: pointer;
  font-size: .67rem;
  font-weight: 700;
  width: max-content;
}
.cbl-money-details__body {
  background: var(--cbl-surface);
  border-radius: 12px;
  color: var(--cbl-muted);
  display: grid;
  gap: 10px;
  margin-top: 8px;
  padding: 12px 14px;
}
.cbl-money-details__body > p { font-size: .67rem; line-height: 1.5; margin: 0 !important; }
.cbl-money-rate-list { display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cbl-money-rate-list > span {
  background: var(--cbl-white);
  border-radius: 9px;
  color: var(--cbl-muted);
  display: grid;
  font-size: .62rem;
  gap: 3px;
  padding: 10px;
}
.cbl-money-rate-list strong { color: var(--cbl-navy); font-size: .82rem; }
.cbl-money-rate-list small { font-size: .6rem; }

.cbl-money-chip-control--quiet {
  align-items: center;
  background: transparent;
  border: 0;
  display: flex;
  gap: 10px 14px;
  margin-top: 18px;
  padding: 0;
}
.cbl-money-chip-control--quiet > span { min-width: max-content; }

.cbl-money-offers--quiet { margin-top: 18px; }
.cbl-money-offers--quiet button { min-height: 96px; padding: 14px; }
.cbl-money-offers--quiet button strong { font-size: .92rem; }
.cbl-money-credit-reveal--quiet { margin-top: 12px; padding: 15px; }
.cbl-money-credit-reveal--quiet [data-cbl-money-output="creditCondition"] { color: var(--cbl-muted); font-size: .66rem; margin-top: 4px !important; }

.cbl-money-takeaway--quiet {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--cbl-muted);
  display: flex;
  font-size: .7rem;
  gap: 8px;
  margin: 12px 0 0 !important;
  padding: 0 2px;
}
.cbl-money-takeaway--quiet > span:first-child { font-size: 1rem; }
.cbl-money-takeaway--quiet > span:last-child { line-height: 1.45; }
@media (max-width: 800px) {
  .cbl-hub-hero--quiet { grid-template-columns: 1fr; }
  .cbl-hub-hero--quiet .cbl-hub-hero__illustration { display: none; }
  .cbl-hub-module-card--quiet { align-items: flex-start; }
}

@media (max-width: 620px) {
  .cbl-hub-module-card--quiet { gap: 12px; }
  .cbl-hub-module-card--quiet .cbl-hub-module-card__action { align-items: flex-start; min-width: 0; }
  .cbl-hub-extras { align-items: flex-start; flex-direction: column; gap: 7px; }
  .cbl-hub-meta__body { align-items: flex-start; flex-direction: column; }
  .cbl-money-rate-list { grid-template-columns: 1fr; }
  .cbl-money-chip-control--quiet { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 430px) {
  .cbl-hub-module-card--quiet { padding: 14px; }
  .cbl-money-panel--quiet { padding: 18px 15px; }
  .cbl-money-fx-picker--quiet { align-items: flex-start; flex-direction: column; }
}

@media (forced-colors: active) {
  .cbl-hub-intent--quiet.is-active,
  .cbl-hub-meta__body,
  .cbl-money-tabs--quiet button,
  .cbl-money-one-control > label,
  .cbl-money-details__body,
  .cbl-money-details__body--control > label { border: 1px solid CanvasText; }
}

/* Keep secondary disclosure controls compact without making their targets tiny. */
.cbl-hub-meta > summary,
.cbl-money-details > summary,
.cbl-hub-extras a {
  align-items: center;
  display: inline-flex;
  min-height: 40px;
}

/* 1.19.0 — Mobile-first & Light Gamification: one next action, no loss of depth. */
.cbl-hub-quick {
  background:
    radial-gradient(circle at 92% 12%, rgba(255, 182, 0, .18), transparent 25%),
    var(--cbl-navy);
  border: 1px solid var(--cbl-navy);
  border-radius: 20px;
  color: var(--cbl-white);
  margin-top: 12px;
  overflow: hidden;
  padding: clamp(18px, 2.6vw, 24px);
  position: relative;
}

.cbl-hub-quick__topline,
.cbl-hub-quick__body,
.cbl-hub-quick__progress {
  position: relative;
  z-index: 1;
}

.cbl-hub-quick__topline {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.cbl-hub-quick__kicker {
  color: var(--cbl-yellow);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .025em;
}

.cbl-hub-quick__time {
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 999px;
  color: #dce6f2;
  font-size: .65rem;
  font-weight: 760;
  padding: 5px 8px;
  white-space: nowrap;
}

.cbl-hub-quick__body {
  align-items: end;
  display: grid;
  gap: clamp(16px, 3vw, 30px);
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 13px;
}

.cbl-hub-quick__copy h3 {
  color: var(--cbl-white);
  font-size: clamp(1.25rem, 2.5vw, 1.8rem);
  letter-spacing: -.035em;
  line-height: 1.08;
  margin: 0 !important;
  max-width: 760px;
  text-wrap: balance;
}

.cbl-hub-quick__copy p {
  color: #cbd8e9;
  font-size: .76rem;
  line-height: 1.5;
  margin: 7px 0 0 !important;
  max-width: 68ch;
}

.cbl-hub-quick__cta {
  background: var(--cbl-yellow) !important;
  box-shadow: none !important;
  color: var(--cbl-navy) !important;
  flex: 0 0 auto;
  margin: 0 !important;
  min-height: 48px;
  padding-inline: 17px;
  white-space: nowrap;
}

.cbl-hub-quick__progress {
  align-items: center;
  border-top: 1px solid rgba(255, 255, 255, .12);
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-top: 15px;
  padding-top: 12px;
}

.cbl-hub-quick__progress > span {
  color: #cbd8e9;
  font-size: .64rem;
  font-weight: 720;
  white-space: nowrap;
}

.cbl-hub-quick__dots {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(7, 18px);
}

.cbl-hub-quick__dots > span {
  background: rgba(255, 255, 255, .16);
  border-radius: 999px;
  height: 5px;
  transition: background-color 160ms ease, transform 160ms ease;
}

.cbl-hub-quick__dots > span.is-done {
  background: var(--cbl-yellow);
}

.cbl-hub-quick__dots > span.is-next {
  background: rgba(255, 213, 106, .6);
  transform: scaleY(1.45);
}

/* Keep the hero introductory; the challenge is the action. */
.cbl-hub-hero--quiet {
  min-height: 0;
}

.cbl-hub-hero--quiet .cbl-hub-hero__copy > p:not(.cbl-eyebrow) {
  max-width: 62ch;
}

/* Thumb-friendly module actions without turning every card into a loud button. */
.cbl-hub-module-card--quiet .cbl-hub-module-card__action a {
  align-items: center;
  border-radius: 10px;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  padding: 8px 10px;
}

@media (hover: hover) and (pointer: fine) {
  .cbl-hub-quick__cta:hover {
    box-shadow: 0 8px 22px rgba(0, 0, 0, .16) !important;
    transform: translateY(-1px);
  }
}

@media (max-width: 620px) {
  /* Three intentions stay visible at once: no vertical menu before the tools. */
  .cbl-hub-intent-grid--quiet {
    gap: 7px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cbl-hub-intent--quiet {
    align-items: center;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
    min-height: 72px;
    padding: 9px 6px;
    text-align: center;
  }

  .cbl-hub-intent--quiet .cbl-hub-intent__emoji {
    background: transparent;
    flex-basis: auto;
    font-size: 1.3rem;
    height: auto;
  }

  .cbl-hub-intent--quiet strong {
    font-size: .71rem;
    line-height: 1.15;
  }

  .cbl-hub-intent--quiet small {
    display: none;
  }

  .cbl-hub-quick__body {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .cbl-hub-quick__cta {
    justify-content: center;
    width: 100%;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action {
    align-items: stretch;
    width: 100%;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action a {
    background: var(--cbl-surface);
    justify-content: space-between;
    padding-inline: 12px;
    width: 100%;
  }

  .cbl-hub-module-card--flagship .cbl-hub-module-card__action a {
    background: rgba(255, 255, 255, .1);
  }

  /* Money Basics: no horizontal tab strip on the primary mobile audience. */
  .cbl-money-tabs--quiet {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .cbl-money-tabs--quiet button {
    justify-content: flex-start;
    min-height: 56px;
    min-width: 0;
    padding: 10px 12px;
  }
}

@media (max-width: 430px) {
  .cbl-hub-hero--quiet {
    padding: 18px 15px;
  }

  .cbl-hub-hero--quiet h2 {
    font-size: clamp(1.65rem, 8.6vw, 2.15rem);
  }

  .cbl-hub-quick {
    border-radius: 18px;
    padding: 17px 15px;
  }

  .cbl-hub-quick__copy h3 {
    font-size: 1.28rem;
  }

  .cbl-hub-quick__copy p {
    font-size: .74rem;
  }

  .cbl-hub-quick__progress {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .cbl-hub-quick__dots {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    width: 100%;
  }

  .cbl-hub-intents--quiet {
    margin-top: 20px;
  }

  .cbl-hub-intents--quiet > h3 {
    font-size: 1.18rem;
  }

  .cbl-hub-selection--quiet > h3 {
    font-size: 1.08rem;
  }

  .cbl-hub-module-card--quiet p {
    font-size: .75rem;
    line-height: 1.45;
  }

  .cbl-hub-extras > div {
    display: grid;
    gap: 4px;
    width: 100%;
  }

  .cbl-hub-extras a {
    justify-content: flex-start;
    min-height: 44px;
    width: 100%;
  }

  .cbl-money-tabs--quiet {
    grid-auto-flow: initial;
    grid-auto-columns: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }

  .cbl-money-tabs--quiet button {
    min-width: 0;
  }

  /* Bottom route becomes a clear one-thumb next step instead of two tiny links. */
  .cbl-routebar--bottom .cbl-routebar__actions {
    gap: 8px;
    width: 100%;
  }

  .cbl-routebar--bottom .cbl-routebar__next {
    min-height: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-hub-quick__dots > span,
  .cbl-hub-quick__cta {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-hub-quick,
  .cbl-hub-quick__time,
  .cbl-hub-quick__cta {
    border: 1px solid CanvasText;
  }
}


/* 1.20.0 — Finishing Pass: less visible UI, stronger mobile hierarchy. */
@media (max-width: 620px) {
  /* The top route answers “where am I?”; the bottom route owns “what next?”. */
  .cbl-experience-app > .cbl-routebar:not(.cbl-routebar--bottom),
  .cbl-quest-app > .cbl-routebar:not(.cbl-routebar--bottom),
  .cbl-challenge-app > .cbl-routebar:not(.cbl-routebar--bottom),
  .cbl-app[data-cbl-module="simulator"] > .cbl-routebar:not(.cbl-routebar--bottom) {
    grid-template-columns: 1fr;
    margin-bottom: 8px;
  }

  .cbl-experience-app > .cbl-routebar:not(.cbl-routebar--bottom) .cbl-routebar__actions,
  .cbl-quest-app > .cbl-routebar:not(.cbl-routebar--bottom) .cbl-routebar__actions,
  .cbl-challenge-app > .cbl-routebar:not(.cbl-routebar--bottom) .cbl-routebar__actions,
  .cbl-app[data-cbl-module="simulator"] > .cbl-routebar:not(.cbl-routebar--bottom) .cbl-routebar__actions {
    display: none;
  }

  .cbl-routebar__identity {
    justify-content: space-between;
    width: 100%;
  }

  .cbl-routebar__home { padding-inline: 0; }

  /* Keep the first viewport focused on the question and result. */
  .cbl-experience-hero {
    border-radius: 18px;
    padding: 18px 15px;
  }

  .cbl-experience-hero h2 {
    font-size: clamp(1.55rem, 7.2vw, 2rem);
    line-height: 1.04;
  }

  .cbl-experience-hero .cbl-eyebrow { font-size: .65rem; }
  .cbl-experience-hero p:last-child {
    font-size: .79rem;
    line-height: 1.48;
    margin-top: 9px !important;
  }

  .cbl-experience-result { margin-top: 12px; }
  .cbl-experience-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbl-experience-facts > div { padding: 12px 13px; }

  /* One-tap really means one-thumb on a phone. */
  .cbl-one-tap {
    border-radius: 18px;
    padding: 15px;
  }

  .cbl-one-tap__head h2 { font-size: 1.18rem; }

  .cbl-one-tap__grid { gap: 7px; }
  .cbl-one-tap__grid button {
    align-items: center;
    display: grid;
    gap: 2px 10px;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 56px;
    padding: 10px 12px;
  }
  .cbl-one-tap__grid button > span {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }
  .cbl-one-tap__grid button > strong {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
  }
  .cbl-one-tap__grid button > small { display: none; }

  .cbl-accounting-operation,
  .cbl-tax-experiment {
    min-height: 68px;
    padding: 11px 13px;
  }

  .cbl-accounting-operation > span,
  .cbl-tax-experiment > span { margin-bottom: 4px; }

  .cbl-accounting-operation > small,
  .cbl-tax-experiment > small {
    font-size: .7rem;
    line-height: 1.3;
    margin-top: 3px;
  }

  .cbl-tune > summary small { display: none; }
  .cbl-tune > summary { min-height: 54px; }

  /* Idea Sprint stays visual without turning five presets into a long phone list. */
  .cbl-idea-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbl-idea-preset-grid button { min-height: 74px; padding: 11px; }
  .cbl-idea-preset-grid button small { display: none; }

  /* Four challenge metrics remain glanceable as a dashboard. */
  .cbl-challenge-dashboard,
  .cbl-challenge-final-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
  .cbl-hub-hero--quiet { padding: 15px 14px; }
  .cbl-hub-hero--quiet h2 { font-size: clamp(1.55rem, 8vw, 1.95rem); }
  .cbl-hub-hero--quiet .cbl-hub-hero__copy > p:not(.cbl-eyebrow) {
    font-size: .76rem;
    line-height: 1.45;
    margin-top: 8px !important;
  }

  .cbl-hub-quick { margin-top: 9px; padding: 15px 14px; }
  .cbl-hub-quick__body { gap: 12px; margin-top: 10px; }
  .cbl-hub-quick__copy h3 { font-size: 1.18rem; }
  .cbl-hub-quick__copy p { font-size: .71rem; line-height: 1.42; }

  .cbl-hub-intent--quiet { min-height: 66px; }
  .cbl-hub-intent--quiet .cbl-hub-intent__emoji { font-size: 1.18rem; }

  .cbl-experience-facts { gap: 7px; }
  .cbl-experience-facts > div { border-radius: 13px; padding: 10px 11px; }
  .cbl-experience-facts span { font-size: .65rem; }
  .cbl-experience-facts strong { font-size: .98rem; }

  .cbl-routebar--bottom .cbl-routebar__prev {
    flex: 0 0 48px;
    overflow: hidden;
    padding: 0;
  }
  .cbl-routebar--bottom .cbl-routebar__next { flex: 1 1 auto; }

  .cbl-idea-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cbl-idea-preset-grid button { min-height: 70px; }
}

@media (max-width: 350px) {
  .cbl-hub-intent--quiet strong { font-size: .66rem; }
  .cbl-experience-facts { grid-template-columns: 1fr; }
}

/* Tactile feedback on touch devices, never a reward animation. */
@media (hover: none) and (pointer: coarse) {
  .cbl-hub-quick__cta,
  .cbl-hub-intent--quiet,
  .cbl-hub-module-card__action a,
  .cbl-one-tap__grid button,
  .cbl-accounting-operation,
  .cbl-tax-experiment,
  .cbl-quest-answer-grid button:not(:disabled),
  .cbl-challenge-choice-grid button:not(:disabled),
  .cbl-money-tabs--quiet button,
  .cbl-money-chipset button,
  .cbl-money-offers--quiet button,
  .cbl-idea-preset-grid button,
  .cbl-next {
    transition-duration: 90ms;
  }

  .cbl-hub-quick__cta:active,
  .cbl-hub-intent--quiet:active,
  .cbl-hub-module-card__action a:active,
  .cbl-one-tap__grid button:active,
  .cbl-accounting-operation:active,
  .cbl-tax-experiment:active,
  .cbl-quest-answer-grid button:not(:disabled):active,
  .cbl-challenge-choice-grid button:not(:disabled):active,
  .cbl-money-tabs--quiet button:active,
  .cbl-money-chipset button:active,
  .cbl-money-offers--quiet button:active,
  .cbl-idea-preset-grid button:active,
  .cbl-next:active {
    transform: scale(.985);
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-hub-quick__cta,
  .cbl-hub-intent--quiet,
  .cbl-hub-module-card__action a,
  .cbl-one-tap__grid button,
  .cbl-accounting-operation,
  .cbl-tax-experiment,
  .cbl-quest-answer-grid button,
  .cbl-challenge-choice-grid button,
  .cbl-money-tabs--quiet button,
  .cbl-money-chipset button,
  .cbl-money-offers--quiet button,
  .cbl-idea-preset-grid button,
  .cbl-next { transition: none !important; }
}


/* 1.21.0 — Mobile Consistency Pass: fewer vertical miles, same depth. */
/* Active simulator tab was visually white-on-white after the visual refresh. */
.cbl-tab.is-active {
  color: var(--cbl-navy);
}

.cbl-reset {
  flex: 0 0 auto;
  white-space: nowrap;
}

/* Prevent theme-level details styles from turning the quiet Hub disclosure into a large card. */
.cbl-hub-meta {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 0 !important;
  padding: 0 !important;
}

.cbl-hub-meta > summary {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  min-height: 40px;
  padding: 0 !important;
}

@media (max-width: 620px) {
  /* Hub cards should read like choices, not mini landing pages. */
  .cbl-hub-module-group--quiet {
    gap: 8px;
  }

  .cbl-hub-module-card--quiet {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr);
    padding: 13px 14px;
  }

  .cbl-hub-module-card--quiet p {
    margin-top: 3px !important;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action {
    align-items: center;
    border-top: 1px solid var(--cbl-border);
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    min-height: 44px;
    padding-top: 7px;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action a {
    background: transparent;
    margin-left: auto;
    min-height: 44px;
    padding: 6px 0 6px 12px;
    width: auto;
  }

  /* Simulator: the phone is the primary canvas, not a squeezed desktop. */
  .cbl-app[data-cbl-module="simulator"] .cbl-hero {
    border-radius: 18px;
    padding: 17px 15px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-hero h2 {
    font-size: clamp(1.58rem, 7.8vw, 2rem);
    line-height: 1.03;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-hero .cbl-eyebrow {
    font-size: .64rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-hero__copy > p:last-child {
    font-size: .78rem;
    line-height: 1.45;
    margin-top: 9px !important;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenarios {
    margin-top: 12px !important;
    padding: 15px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenarios legend {
    font-size: 1.16rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenarios legend + p {
    font-size: .76rem;
    line-height: 1.4;
    padding-top: 5px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario-grid {
    gap: 8px;
    margin-top: 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario {
    align-items: center;
    flex-direction: row;
    gap: 8px;
    min-height: 82px;
    padding: 10px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario__icon {
    flex: 0 0 34px;
    font-size: 1rem;
    height: 34px;
    width: 34px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario strong {
    font-size: .84rem;
    line-height: 1.18;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario small,
  .cbl-app[data-cbl-module="simulator"] .cbl-scenario-status {
    display: none;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-workspace {
    gap: 12px;
    margin-top: 14px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-panel {
    padding: 15px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-section-heading {
    gap: 10px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-section-heading h2 {
    font-size: 1.2rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-reset {
    font-size: .78rem;
    min-height: 42px;
    padding: 7px 10px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-tabs {
    margin-top: 14px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-tab {
    font-size: .72rem;
    min-height: 44px;
    padding: 6px 4px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-tab-panel {
    padding-top: 14px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-panel-intro {
    gap: 8px;
    padding: 9px 10px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-panel-intro > span {
    flex-basis: 22px;
    font-size: .95rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-panel-intro p {
    font-size: .78rem;
    line-height: 1.36;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-control {
    gap: 8px;
    grid-template-columns: minmax(0, 1fr) 96px;
    padding: 14px 0;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-control__heading label {
    font-size: .9rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-control__heading span {
    font-size: .72rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-next {
    margin-top: 13px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-outcome {
    border-radius: 18px;
    padding: 18px 16px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-outcome h2 {
    font-size: 1.3rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-outcome > strong {
    font-size: clamp(2rem, 10vw, 2.7rem);
    margin-top: 10px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-outcome > p {
    font-size: .8rem;
    line-height: 1.45;
    margin-top: 9px !important;
  }

  /* Six values remain visible, but they no longer cost six screenfuls. */
  .cbl-app[data-cbl-module="simulator"] .cbl-metrics {
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 8px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric {
    display: block;
    min-height: 104px;
    padding: 11px 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric__icon {
    display: none;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric h3,
  .cbl-app[data-cbl-module="simulator"] .cbl-metric > strong {
    grid-column: auto;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric h3 {
    font-size: .67rem;
    line-height: 1.25;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric > strong {
    font-size: 1.05rem;
    line-height: 1.16;
    margin-top: 6px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metric > p {
    font-size: .64rem;
    line-height: 1.32;
    margin-top: 5px;
  }

  /* The graph scales to the phone; horizontal scrolling is no longer part of the lesson. */

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-card,
  .cbl-app[data-cbl-module="simulator"] .cbl-experiments {
    margin-top: 14px;
    padding: 15px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-wrap {
    margin-inline: 0;
    overflow: visible;
    padding: 5px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart {
    min-width: 0;
    width: 100%;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart__label {
    font-size: 18px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-legend {
    gap: 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-legend span {
    font-size: .7rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-summary {
    font-size: .76rem;
    line-height: 1.45;
    padding: 11px 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-action-grid {
    gap: 7px;
    margin-top: 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-action {
    display: grid;
    gap: 2px 9px;
    grid-template-columns: auto minmax(0, 1fr);
    min-height: 56px;
    padding: 10px 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-action > span {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-action > strong {
    font-size: .82rem;
    grid-column: 2;
    grid-row: 1;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-action > small {
    font-size: .68rem;
    grid-column: 2;
    margin-top: 2px;
  }
}

@media (max-width: 360px) {
  .cbl-app[data-cbl-module="simulator"] .cbl-scenario-grid,
  .cbl-app[data-cbl-module="simulator"] .cbl-metrics {
    grid-template-columns: 1fr;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-scenario {
    min-height: 66px;
  }
}


/* 1.22.0 — Progressive Simulator Pass: less visible output, more curiosity. */
.cbl-app[data-cbl-module="simulator"] .cbl-glance {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 10px;
}

.cbl-app[data-cbl-module="simulator"] .cbl-glance__item {
  min-width: 0;
  padding: 14px 15px;
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  background: var(--cbl-white);
}

.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > span,
.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > strong,
.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > small {
  display: block;
}

.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > span {
  color: var(--cbl-muted);
  font-size: .72rem;
  font-weight: 800;
}

.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > strong {
  margin-top: 5px;
  color: var(--cbl-text);
  font-size: clamp(1rem, 2.4vw, 1.25rem);
  line-height: 1.14;
}

.cbl-app[data-cbl-module="simulator"] .cbl-glance__item > small {
  margin-top: 4px;
  color: var(--cbl-muted);
  font-size: .66rem;
  line-height: 1.3;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more {
  margin-top: 10px;
  border: 1px solid var(--cbl-border);
  border-radius: 16px;
  background: var(--cbl-white);
  overflow: hidden;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary {
  position: relative;
  min-height: 54px;
  padding: 11px 46px 11px 15px;
  cursor: pointer;
  list-style: none;
  color: var(--cbl-navy);
  font-weight: 800;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary::-webkit-details-marker {
  display: none;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary::after {
  content: "+";
  position: absolute;
  inset: 50% 15px auto auto;
  transform: translateY(-50%);
  font-size: 1.2rem;
  line-height: 1;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more[open] > summary::after {
  content: "−";
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary span,
.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary small {
  display: block;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary small {
  margin-top: 2px;
  color: var(--cbl-muted);
  font-size: .68rem;
  font-weight: 650;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary:focus-visible {
  outline: 3px solid var(--cbl-yellow);
  outline-offset: -3px;
}

.cbl-app[data-cbl-module="simulator"] .cbl-metrics--details {
  padding: 0 12px 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.cbl-app[data-cbl-module="simulator"] .cbl-action > small {
  color: var(--cbl-muted);
}

.cbl-app[data-cbl-module="simulator"] .cbl-action.is-tried > small {
  color: var(--cbl-success);
  font-weight: 800;
}

@media (max-width: 620px) {
  .cbl-app[data-cbl-module="simulator"] .cbl-glance {
    gap: 7px;
    margin-top: 8px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item {
    min-height: 82px;
    padding: 10px 9px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item > span {
    font-size: .62rem;
    line-height: 1.2;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item > strong {
    font-size: .92rem;
    line-height: 1.12;
    margin-top: 6px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item > small {
    font-size: .58rem;
    line-height: 1.24;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metrics-more {
    margin-top: 8px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary {
    min-height: 52px;
    padding: 9px 42px 9px 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary small {
    display: none;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metrics--details {
    grid-template-columns: 1fr;
    gap: 7px;
    margin-top: 0;
    padding: 0 9px 9px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-metrics--details .cbl-metric {
    min-height: 0;
  }

  /* The bottom route has one clear continuation action; “previous” is already available through BusinessLab. */
  .cbl-routebar--bottom .cbl-routebar__prev {
    display: none;
  }

  .cbl-routebar--bottom .cbl-routebar__actions {
    width: 100%;
  }

  .cbl-routebar--bottom .cbl-routebar__next {
    width: 100%;
  }
}

@media (max-width: 350px) {
  .cbl-app[data-cbl-module="simulator"] .cbl-glance {
    grid-template-columns: 1fr;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item {
    min-height: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-app[data-cbl-module="simulator"] .cbl-metrics-more > summary::after {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item,
  .cbl-app[data-cbl-module="simulator"] .cbl-metrics-more {
    border: 1px solid CanvasText;
  }
}

/* 1.23.0 — Insight-to-Action Pass: keep the lesson short by default, depth on demand. */
.cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight {
  margin-top: 14px;
  padding: 18px;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight .cbl-chart-summary {
  margin-top: 12px !important;
}

.cbl-app[data-cbl-module="simulator"] .cbl-experiment-feedback {
  align-items: flex-start;
  display: flex;
  gap: 8px;
  margin-top: 10px !important;
  padding: 10px 12px;
  border-radius: 12px;
  background: #eef8f4;
  color: #24594b;
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.4;
}

.cbl-app[data-cbl-module="simulator"] .cbl-experiment-feedback[hidden] {
  display: none;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive {
  margin-top: 14px;
  overflow: hidden;
  background: var(--cbl-white);
  border: 1px solid var(--cbl-border);
  border-radius: var(--cbl-radius-lg);
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary {
  position: relative;
  min-height: 62px;
  padding: 12px 50px 12px 16px;
  cursor: pointer;
  list-style: none;
  color: var(--cbl-navy);
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary::-webkit-details-marker {
  display: none;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary::after {
  content: "+";
  position: absolute;
  inset: 50% 16px auto auto;
  transform: translateY(-50%);
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive[open] > summary::after {
  content: "−";
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary > span,
.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary strong,
.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary small {
  display: block;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary strong {
  font-size: .94rem;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary small {
  margin-top: 2px;
  color: var(--cbl-muted);
  font-size: .68rem;
  font-weight: 650;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary:focus-visible {
  outline: 3px solid var(--cbl-yellow);
  outline-offset: -3px;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive__body {
  padding: 0 16px 16px;
  border-top: 1px solid var(--cbl-border);
}

.cbl-app[data-cbl-module="simulator"] .cbl-chart-card--nested {
  margin-top: 0;
  padding: 16px 0 0;
  border: 0;
  border-radius: 0;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-calculation {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--cbl-border);
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-calculation .cbl-formulas__content {
  padding: 4px 0 0;
}

.cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive .cbl-model-note {
  margin-top: 10px !important;
}

@media (max-width: 620px) {
  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight,
  .cbl-app[data-cbl-module="simulator"] .cbl-experiments {
    margin-top: 12px;
    padding: 14px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight .cbl-section-heading--chart {
    align-items: flex-start;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight .cbl-chart-badge {
    margin-top: 8px;
    padding: 6px 10px;
    font-size: .7rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight .cbl-chart-summary {
    padding: 10px 11px;
    font-size: .74rem;
    line-height: 1.42;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-experiment-feedback {
    font-size: .7rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive {
    margin-top: 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary {
    min-height: 56px;
    padding: 10px 44px 10px 13px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary small {
    font-size: .64rem;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive__body {
    padding: 0 12px 12px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-chart-card--nested {
    padding: 13px 0 0;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-calculation {
    margin-top: 14px;
    padding-top: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive > summary::after {
    transition: none;
  }
}

@media (forced-colors: active) {
  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-insight,
  .cbl-app[data-cbl-module="simulator"] .cbl-simulator-deepdive,
  .cbl-app[data-cbl-module="simulator"] .cbl-experiment-feedback {
    border: 1px solid CanvasText;
  }
}

/* 1.25.0 — Accessibility, One-Hand & Resilience Pass. */
.cbl-app :where([tabindex="-1"], [id$="-results"], [id$="-result"], [id$="-experiments"]) {
  scroll-margin-top: 92px;
}

.cbl-app :where(.cbl-outcome > strong, .cbl-money-big-result > strong, .cbl-idea-outcome__number > strong, .cbl-challenge-final-grid strong, .cbl-quest-finish > strong) {
  overflow-wrap: anywhere;
}

.cbl-noscript-nav > span {
  display: block;
  margin-top: 4px;
}

.cbl-noscript-nav > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-top: 10px;
}

.cbl-noscript-nav a {
  font-weight: 750;
}

.cbl-money-details > summary {
  align-items: center;
  display: inline-flex;
  min-height: 44px;
  padding-block: 8px;
}

.cbl-app input[type="range"] {
  min-height: 44px;
  touch-action: pan-y;
}

@media (hover: none) and (pointer: coarse) {
  .cbl-app button,
  .cbl-app summary,
  .cbl-app .cbl-routebar a,
  .cbl-app .cbl-hub-module-card__action a,
  .cbl-app .cbl-hub-extras a {
    min-height: 44px;
  }

  .cbl-app :where(button, summary, .cbl-routebar a, .cbl-hub-module-card__action a, .cbl-hub-extras a) {
    touch-action: manipulation;
  }
}

@media (max-width: 620px) {
  .cbl-app input:not([type="range"]):not([type="checkbox"]):not([type="radio"]) {
    font-size: 16px;
  }

  .cbl-money-details > summary {
    font-size: .74rem;
  }

  .cbl-app .cbl-live {
    max-width: 100%;
  }
}

@media (max-width: 350px) {
  .cbl-app[data-cbl-module="simulator"] .cbl-glance {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item {
    min-height: 78px;
    padding-inline: 7px;
  }

  .cbl-app[data-cbl-module="simulator"] .cbl-glance__item > strong {
    font-size: .82rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-app {
    scroll-behavior: auto;
  }
}

@media (forced-colors: active) {
  .cbl-app input[type="range"] {
    forced-color-adjust: auto;
  }
}

/* 1.26.0 — End-to-end mobile flow: resume intent and quiet completion feedback. */
.cbl-routebar__next-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .6rem;
}

.cbl-routebar__completion {
  align-items: center;
  color: #087a55;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 800;
  gap: .28rem;
  letter-spacing: .01em;
}

.cbl-routebar__completion:not([hidden]) {
  animation: cbl-route-completion-in .18s ease-out both;
}

@keyframes cbl-route-completion-in {
  from {
    opacity: 0;
    transform: translateY(3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.cbl-app.is-cbl-engaged .cbl-routebar--bottom {
  border-color: rgba(8, 122, 85, .26);
}

@media (max-width: 430px) {
  .cbl-routebar__next-meta {
    justify-content: space-between;
  }

  .cbl-routebar__completion {
    font-size: .7rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-routebar__completion:not([hidden]) {
    animation: none;
  }
}

@media (forced-colors: active) {
  .cbl-routebar__completion {
    color: CanvasText;
  }

  .cbl-app.is-cbl-engaged .cbl-routebar--bottom {
    border-color: Highlight;
  }
}


/* 1.27.0 — Mobile Learning Polish: less form feeling, same learning depth. */
.cbl-idea-signals-details {
  border-top: 1px solid var(--cbl-border);
}

.cbl-idea-signals-details > summary {
  align-items: center;
  color: var(--cbl-navy);
  cursor: pointer;
  display: flex;
  font-size: .76rem;
  font-weight: 800;
  justify-content: space-between;
  min-height: 50px;
  padding: 10px 18px;
}

.cbl-idea-signals-details > summary::-webkit-details-marker { display: none; }
.cbl-idea-signals-details > summary::marker { content: ''; }
.cbl-idea-signals-details > summary > span:last-child { font-size: 1.05rem; transition: transform .16s ease; }
.cbl-idea-signals-details[open] > summary > span:last-child { transform: rotate(45deg); }
.cbl-idea-signals-details .cbl-idea-signals { border-top: 1px solid var(--cbl-border); }

/* Money Basics may sit below a WordPress page title; avoid visually repeating that title. */
.cbl-money-hero--quiet h2 {
  max-width: 18ch;
}

.cbl-money-tabs--quiet button.is-active {
  border-color: color-mix(in srgb, var(--cbl-money-accent) 62%, var(--cbl-border));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--cbl-money-accent) 28%, transparent);
}

.cbl-money-takeaway--quiet,
.cbl-app .cbl-money-takeaway--quiet {
  font-size: .76rem !important;
  font-weight: 650;
  line-height: 1.45;
}

.cbl-app .cbl-money-takeaway--quiet strong {
  font-size: inherit;
  font-weight: 800;
}

@media (max-width: 620px) {
  /* Three decisions read as one model, not three separate forms. */
  .cbl-idea-slider-grid {
    background: var(--cbl-white);
    border: 1px solid var(--cbl-border);
    border-radius: 18px;
    gap: 0;
    overflow: hidden;
  }

  .cbl-idea-slider-card {
    border: 0;
    border-radius: 0;
    padding: 13px 15px 11px;
  }

  .cbl-idea-slider-card + .cbl-idea-slider-card {
    border-top: 1px solid var(--cbl-border);
  }

  .cbl-idea-slider-card input[type="range"] {
    margin: 10px 0 4px;
  }

  .cbl-idea-slider-card small {
    font-size: .64rem;
    line-height: 1.35;
  }

  /* The three facts are short enough to stay glanceable even on phones. */
  .cbl-idea-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cbl-idea-facts > div {
    min-width: 0;
    padding: 11px 9px;
  }

  .cbl-idea-facts > div + div {
    border-left: 1px solid var(--cbl-border);
    border-top: 0;
  }

  .cbl-idea-facts span {
    font-size: .66rem;
    line-height: 1.25;
  }

  .cbl-idea-facts strong {
    font-size: .9rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
  }

  .cbl-idea-signals-details > summary {
    min-height: 52px;
    padding-inline: 15px;
  }

  .cbl-idea-signals-details .cbl-idea-signals {
    padding: 14px 15px;
  }

  /* The page title already says Money Basics on the current WordPress page. */
  .cbl-money-hero--quiet {
    border-radius: 18px;
    padding: 16px 15px;
  }

  .cbl-money-hero--quiet h2 {
    font-size: clamp(1.45rem, 6.9vw, 1.78rem);
    line-height: 1.05;
    margin-top: 8px !important;
    max-width: 20ch;
  }

  .cbl-money-hero--quiet > div:first-child > p:last-child {
    font-size: .76rem;
    line-height: 1.43;
    margin-top: 8px !important;
  }

  .cbl-money-shell--quiet { margin-top: 10px; }

  .cbl-money-tabs--quiet {
    gap: 1px;
    padding: 0;
  }

  .cbl-money-tabs--quiet button {
    border-radius: 0;
    min-height: 50px;
    padding: 8px 10px;
  }

  .cbl-money-tabs--quiet button:nth-child(1) { border-radius: 14px 0 0 0; }
  .cbl-money-tabs--quiet button:nth-child(2) { border-radius: 0 14px 0 0; }

  .cbl-money-panel--quiet {
    padding-top: 16px;
  }

  .cbl-app .cbl-money-takeaway--quiet {
    margin-top: 10px !important;
    padding-inline: 2px;
  }
}

@media (max-width: 350px) {
  .cbl-idea-facts span { font-size: .64rem; }
  .cbl-idea-facts strong { font-size: .82rem; }
}

@media (prefers-reduced-motion: reduce) {
  .cbl-idea-signals-details > summary > span:last-child { transition: none; }
}

@media (forced-colors: active) {
  .cbl-idea-signals-details,
  .cbl-idea-slider-grid,
  .cbl-money-tabs--quiet button.is-active {
    border-color: CanvasText;
  }
}


/* 1.33.0 — Desktop Hub Composition Pass: one coherent finish, no mobile regression. */
.cbl-hub-intents--quiet,
.cbl-hub-selection--quiet {
  scroll-margin-top: 96px;
}

.cbl-hub-tail {
  align-items: start;
  border-top: 1px solid var(--cbl-border);
  display: grid;
  gap: 12px 20px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 20px;
  padding-top: 10px;
}

.cbl-hub-tail .cbl-hub-extras {
  border-top: 0;
  justify-content: flex-start;
  margin-top: 0;
  min-height: 40px;
  padding-top: 0;
}

.cbl-hub-tail .cbl-hub-meta {
  justify-self: end;
  margin-top: 0;
}

.cbl-hub-tail .cbl-hub-meta[open] {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
}

.cbl-hub-tail .cbl-hub-meta[open] > summary {
  margin-left: auto;
}

.cbl-hub-app .cbl-footer {
  margin-top: 14px;
  padding-top: 14px;
}

@media (min-width: 881px) {
  .cbl-hub-module-card--quiet {
    align-items: stretch;
    gap: 10px;
    justify-content: flex-start;
    padding: 16px 18px 14px;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__copy {
    min-height: 62px;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action {
    border-top: 1px solid var(--cbl-border);
    justify-content: space-between;
    margin-top: 6px;
    min-width: 0;
    padding-top: 8px;
    width: 100%;
  }

  .cbl-hub-module-card--quiet .cbl-hub-module-card__action a {
    margin-left: auto;
    min-height: 40px;
    padding: 6px 0 6px 12px;
  }
}

@media (max-width: 620px) {
  .cbl-hub-tail {
    gap: 4px;
    grid-template-columns: 1fr;
    margin-top: 16px;
    padding-top: 12px;
  }

  .cbl-hub-tail .cbl-hub-extras,
  .cbl-hub-tail .cbl-hub-meta,
  .cbl-hub-tail .cbl-hub-meta[open] {
    grid-column: 1;
    justify-self: stretch;
    width: 100%;
  }

  .cbl-hub-tail .cbl-hub-meta[open] > summary {
    margin-left: 0;
  }
}

@media (forced-colors: active) {
  .cbl-hub-tail {
    border-top: 1px solid CanvasText;
  }
}

/* 1.34.0 — Desktop Affordance Polish: clearer disclosure state and typographic CTA spacing. */
.cbl-hub-module-card--quiet .cbl-hub-module-card__action a {
  gap: .34em;
}

.cbl-hub-tail .cbl-hub-meta > summary {
  align-items: center;
  color: var(--cbl-navy);
  display: inline-flex;
  gap: 7px;
  min-height: 40px;
  padding-block: 6px;
}

.cbl-hub-tail .cbl-hub-meta > summary::-webkit-details-marker {
  display: none;
}

.cbl-hub-tail .cbl-hub-meta > summary::marker {
  content: '';
}

.cbl-hub-tail .cbl-hub-meta > summary::after {
  content: '+';
  font-size: .82rem;
  font-weight: 850;
  line-height: 1;
}

.cbl-hub-tail .cbl-hub-meta[open] > summary::after {
  content: '−';
}

@media (hover: hover) and (pointer: fine) {
  .cbl-hub-tail .cbl-hub-meta > summary:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }
}



/* 1.35.0 — Cross-module consistency: optional experiences share one quiet route language. */
.cbl-optional-route {
  background: transparent;
  border-color: transparent;
  border-bottom-color: var(--cbl-border);
  border-radius: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-bottom: 14px;
  padding: 0 0 8px;
}

.cbl-optional-route .cbl-routebar__home {
  padding-inline: 0;
}

.cbl-optional-route .cbl-routebar__current {
  color: var(--cbl-muted);
  font-size: .76rem;
  text-align: right;
}

.cbl-optional-route--bottom {
  grid-template-columns: minmax(0, 1fr) auto;
}

.cbl-optional-route--bottom .cbl-routebar__actions {
  justify-self: end;
}

@media (max-width: 720px) {
  .cbl-optional-route {
    grid-template-columns: 1fr auto;
    margin-bottom: 10px;
  }

  .cbl-optional-route .cbl-routebar__current {
    display: block;
    font-size: .7rem;
    white-space: normal;
  }

  .cbl-optional-route--bottom {
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 430px) {
  .cbl-optional-route .cbl-routebar__current {
    display: none;
  }

  .cbl-optional-route--bottom {
    grid-template-columns: 1fr;
  }

  .cbl-optional-route--bottom .cbl-routebar__actions {
    justify-self: stretch;
  }

  .cbl-optional-route--bottom .cbl-routebar__next {
    width: 100%;
  }
}

@media (forced-colors: active) {
  .cbl-optional-route {
    border-bottom-color: CanvasText;
  }
}
