/* Team flow: page styles on top of ../style.css. Tokens only; no literal colours. */

.flow-page { padding-top: 16px; }
.flow-page [hidden] { display: none !important; }
.num { text-align: right; font-family: var(--mono); letter-spacing: 0; font-variant-numeric: tabular-nums; }
.slot-gap { color: var(--ink-muted); text-decoration: underline dotted var(--gold-600); text-underline-offset: 3px; }
.print-only { display: none; }

/* ------------------------------------------------------------ buttons */
.btn-lg { padding: 11px 22px; font-size: 15px; }
.btn-quiet {
  display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid var(--line); border-radius: var(--r8);
  background: var(--ground); color: var(--teal); font: 600 14px/22px var(--sans); letter-spacing: .02em; cursor: pointer; white-space: nowrap;
  transition: background 150ms var(--ease), border-color 150ms var(--ease);
}
.btn-quiet:hover { background: var(--ground-50); border-color: var(--input-line); }
.btn-quiet:active { background: var(--teal-100); }
.btn-quiet[disabled] { color: var(--ink-placeholder); cursor: not-allowed; background: var(--ground); }
.btn-quiet .icon, .btn .icon { width: 18px; height: 18px; }
.btn-text { border: 0; border-radius: var(--r8); cursor: pointer; font-weight: 600; }
.btn-text[disabled] { color: var(--ink-placeholder); cursor: not-allowed; background: transparent; }
.icon-btn {
  display: inline-grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid transparent; border-radius: var(--r8);
  background: transparent; color: var(--ink-muted); cursor: pointer;
}
.icon-btn:hover { background: var(--danger-tint); color: var(--danger); }
.icon-btn .icon { width: 18px; height: 18px; }

/* ------------------------------------------------------------ stepper */
.stepper { position: relative; margin: 0 0 32px; }
.stepper-track { position: absolute; left: 10%; right: 10%; top: 13px; height: 2px; background: var(--line-soft); }
.stepper-fill { display: block; height: 100%; width: 0; background: var(--gold); transition: width 300ms var(--ease); }
.stepper-list { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.stepper-btn {
  display: flex; flex-direction: column; align-items: center; gap: 6px; width: 100%; padding: 0; border: 0; background: none;
  color: var(--ink-muted); font-size: 14px; line-height: 20px; cursor: pointer; text-align: center;
}
.stepper-btn[disabled] { cursor: default; }
.stepper-btn:not([disabled]):hover .stepper-name { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
.stepper-dot {
  position: relative; width: 28px; height: 28px; border-radius: var(--pill); border: 2px solid var(--line); background: var(--ground);
  display: grid; place-items: center; font: 600 12px/1 var(--mono); color: var(--ink-muted);
}
.stepper-dot::before { content: attr(data-n); }
li[data-state='done'] .stepper-dot { border-color: var(--gold); background: var(--gold); color: var(--teal-dark); }
li[data-state='done'] .stepper-dot::before { content: ""; width: 10px; height: 6px; border: solid var(--teal-dark); border-width: 0 0 2px 2px; transform: translateY(-1px) rotate(-45deg); }
li[data-state='current'] .stepper-dot { border-color: var(--teal); color: var(--teal); box-shadow: 0 0 0 4px var(--teal-100); }
li[data-state='current'] .stepper-name { color: var(--teal); font-weight: 600; }
li[data-state='done'] .stepper-name { color: var(--ink); }
.stepper-compact { display: none; margin: 0; }

/* ------------------------------------------------------------ steps */
.step-title { font-size: 30px; line-height: 38px; font-weight: 500; letter-spacing: -.015em; color: var(--teal); }
.step-title:focus { outline: none; }
.step-lede { margin: 8px 0 0; max-width: 64ch; font-size: 17px; line-height: 26px; color: var(--ink-700); }
.step-head { margin-bottom: 24px; }
.step-grid { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 360px); gap: 64px; align-items: start; }
.step-main { display: flex; flex-direction: column; gap: 20px; }
.step-main .step-lede { margin-top: -8px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field-inline .select { max-width: 280px; }
.input-lg { padding: 12px 14px; font-size: 17px; line-height: 26px; }
.step-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.step-main .step-actions { margin-top: 4px; }
.field-error { margin: 12px 0 0; color: var(--danger); font-size: 14px; line-height: 22px; }
.field-error:empty { display: none; }
.step-aside { padding: 24px; border-radius: var(--r12); background: var(--cream); }
.aside-title { font-size: 15px; line-height: 22px; font-weight: 600; margin-bottom: 12px; }
.get-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 22px; color: var(--ink-700); }
.get-list li { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; }
.get-list .icon { color: var(--teal); margin-top: 1px; }
.get-list strong { color: var(--ink); font-weight: 600; }

/* ------------------------------------------------------------ roles */
.roles { border-top: 1px solid var(--line); }
.roles-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px 176px; gap: 16px; align-items: start;
  padding: 12px 0; border-bottom: 1px solid var(--line-soft);
}
.roles-headrow { padding: 10px 0; font-size: 13px; line-height: 20px; font-weight: 600; color: var(--ink-muted); }
.roles-headrow .num { font-family: var(--sans); }
.role-cell-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; min-height: 44px; }
.role-cell-actions .btn-text { font-size: 14px; }
.num-input { position: relative; }
.num-input .input { text-align: right; font-family: var(--mono); letter-spacing: 0; padding-right: 12px; }
.num-input.has-prefix .input { padding-left: 28px; }
.num-input .prefix { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--ink-muted); font-size: 15px; pointer-events: none; }
.role-hint { display: block; margin-top: 4px; font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.role-hint .tag { margin-right: 6px; }
.roles-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.roles-total { margin: 0 0 0 auto; font-size: 14px; line-height: 22px; color: var(--ink-700); }
.roles-total strong { font-family: var(--mono); font-weight: 500; letter-spacing: 0; color: var(--ink); }
.role-row-wrap.is-invalid .combo .input { border-color: var(--danger); }

/* combobox */
.combo { position: relative; }
.combo .input { padding-right: 36px; text-overflow: ellipsis; }
.combo .combo-icon { position: absolute; right: 10px; top: 11px; width: 18px; height: 18px; color: var(--ink-placeholder); pointer-events: none; }
.combo-list {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 4px); max-height: 320px; overflow-y: auto; margin: 0; padding: 4px;
  list-style: none; background: var(--ground); border: 1px solid var(--line); border-radius: var(--r8);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ink) 14%, transparent); scrollbar-width: thin; scrollbar-color: var(--input-line) transparent;
}
.combo-list li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 10px; border-radius: 6px; cursor: pointer; font-size: 14px; line-height: 20px; }
.combo-list li[aria-selected='true'] { background: var(--teal-100); color: var(--teal-dark); }
.combo-list li .combo-meta { flex: none; font: 400 12px/20px var(--mono); color: var(--ink-muted); letter-spacing: 0; }
.combo-list .combo-empty { color: var(--ink-muted); cursor: default; }

/* see tasks */
.role-tasks { grid-column: 1 / -1; margin: 0 0 4px; padding: 16px 20px; border-radius: var(--r12); background: var(--ground-50); }
.role-tasks h3 { font-size: 15px; line-height: 22px; font-weight: 600; margin-bottom: 8px; }
.task-shares { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.task-shares li { display: grid; grid-template-columns: minmax(0, 1fr) 120px 56px; gap: 12px; align-items: center; font-size: 14px; line-height: 20px; }
.task-shares .meter { height: 6px; }

/* ------------------------------------------------------------ systems */
.systems-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.systems-tools p { margin: 0; }
.systems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; border-top: 1px solid var(--line); }
.sys-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 240px); gap: 16px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.sys-row label { font-size: 15px; line-height: 22px; }
.sys-row .xs { display: block; color: var(--ink-muted); }
.sys-row.is-filled label { color: var(--teal); }
.sys-more { grid-column: 1 / -1; padding-top: 12px; }

/* ------------------------------------------------------------ working */
.working { max-width: 720px; }
.work-bar { height: 8px; margin: 28px 0 20px; border-radius: var(--pill); background: var(--line-soft); overflow: hidden; }
.work-bar span { display: block; height: 100%; width: 0; background: var(--teal); border-radius: var(--pill); transition: width 200ms var(--ease); }
.work-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.work-list li { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 12px; align-items: baseline; font-size: 16px; line-height: 24px; color: var(--ink-muted); }
.work-list li .work-mark { width: 16px; height: 16px; border-radius: var(--pill); border: 2px solid var(--line); align-self: center; }
.work-list li[data-state='running'] { color: var(--ink); }
.work-list li[data-state='running'] .work-mark { border-color: var(--teal); border-right-color: transparent; animation: spin 800ms linear infinite; }
.work-list li[data-state='done'] { color: var(--ink); }
.work-list li[data-state='done'] .work-mark { border-color: var(--teal); background: var(--teal); }
.work-list .work-count { font: 500 15px/24px var(--mono); color: var(--teal); letter-spacing: 0; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ------------------------------------------------------------ results */
.results-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 24px; }
.results-meta { margin: 6px 0 0; font-size: 15px; line-height: 22px; color: var(--ink-700); }
.results-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.share-note { margin: 8px 0 0; min-height: 20px; color: var(--teal); }
.tabs {
  display: flex; gap: 4px; margin: 12px 0 0; border-bottom: 1px solid var(--line); overflow-x: auto; scrollbar-width: none;
  position: sticky; top: var(--nav-h); z-index: 20; background: var(--ground);
}
.tabs::-webkit-scrollbar { display: none; }
.tabs [role='tab'] {
  position: relative; flex: none; padding: 12px 14px; border: 0; background: none; color: var(--ink-muted); font-size: 15px; line-height: 22px;
  cursor: pointer; border-radius: var(--r8) var(--r8) 0 0;
}
.tabs [role='tab']:hover { color: var(--teal); background: var(--ground-50); }
.tabs [role='tab'][aria-selected='true'] { color: var(--teal); font-weight: 600; }
.tabs [role='tab'][aria-selected='true']::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--gold); }
.tabs .tab-count { margin-left: 6px; font: 400 12px/20px var(--mono); color: var(--ink-muted); letter-spacing: 0; }
.panel { padding-top: 32px; }
.panel:focus-visible { outline-offset: 4px; }

.section { margin-top: 56px; }
.section:first-child { margin-top: 0; }
.section-title { font-size: 22px; line-height: 30px; font-weight: 500; letter-spacing: -.01em; color: var(--ink); }
.section-lede { margin: 4px 0 20px; max-width: 72ch; font-size: 15px; line-height: 24px; color: var(--ink-muted); }
.subhead { font-size: 15px; line-height: 22px; font-weight: 600; color: var(--ink); margin: 0 0 8px; }

/* hero */
.hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: end; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.hero-line { margin: 0; font-size: 34px; line-height: 44px; font-weight: 400; letter-spacing: -.02em; color: var(--ink); text-wrap: balance; max-width: 22ch; }
.hero-num { display: inline-block; font-weight: 600; color: var(--teal); white-space: nowrap; }
.hero-num small { font-size: 22px; font-weight: 500; }
.hero-text { margin: 16px 0 0; max-width: 60ch; font-size: 17px; line-height: 27px; color: var(--ink-700); }
.hero-facts { display: grid; gap: 0; margin: 0; border-top: 1px solid var(--line-soft); }
.hero-facts div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; line-height: 22px; }
.hero-facts dt { color: var(--ink-700); }
.hero-facts dd { margin: 0; font-family: var(--mono); letter-spacing: 0; white-space: nowrap; }
.gross { display: inline-flex; align-items: center; padding: 0 6px; margin-left: 6px; border-radius: var(--r4); background: var(--line-soft); color: var(--ink-700); font: 500 11px/18px var(--mono); letter-spacing: .02em; text-transform: uppercase; vertical-align: 2px; }

.isnot { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px 32px; padding: 16px 20px; border-radius: var(--r12); background: var(--ground-50); font-size: 14px; line-height: 22px; color: var(--ink-700); }
.isnot h3 { grid-column: 1 / -1; font-size: 14px; line-height: 22px; font-weight: 600; }
.isnot p { margin: 0; }
.isnot strong { color: var(--ink); }

.hero-viz { padding: 20px; border-radius: var(--r12); background: var(--ground-50); }
.hero-viz .weekbar { margin-bottom: 12px; height: 32px; }
.wb-cap { margin: 0 0 4px; }

/* week / means compare */
.compare { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; }
.compare-col h3 { font-size: 17px; line-height: 24px; font-weight: 600; margin-bottom: 4px; }
.compare-col .compare-sum { margin: 0 0 16px; font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.weekbar { display: flex; gap: 2px; height: 28px; margin-bottom: 20px; }
.weekbar span { display: flex; align-items: center; min-width: 0; padding: 0 8px; font: 500 12px/1 var(--mono); letter-spacing: 0; white-space: nowrap; overflow: hidden; border-radius: 4px; }
.weekbar .wb-work { background: var(--teal); color: var(--on-dark); }
.weekbar .wb-today { background: var(--input-line); color: var(--ink); }
.weekbar .wb-back { background: var(--gold-tag); color: var(--ink-700); box-shadow: inset 0 0 0 1px var(--gold-600); }
.means { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.means li { display: grid; grid-template-columns: 150px minmax(0, 1fr) 64px; gap: 12px; align-items: center; font-size: 14px; line-height: 20px; }
.means .m-label { color: var(--ink-700); }
.means .m-val { text-align: right; font-family: var(--mono); letter-spacing: 0; white-space: nowrap; }
.means-wide { max-width: 880px; }
.means-wide li { grid-template-columns: 170px minmax(0, 1fr) 140px; }
.meter { position: relative; display: block; height: 10px; border-radius: 3px; background: var(--line-soft); }
.meter > span { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; }
.meter .m-today { background: var(--input-line); }
.meter .m-after { background: var(--teal); }
.meter .m-fill { background: var(--teal); }
.legend { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.legend li { display: inline-flex; align-items: center; gap: 6px; }
.sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; }
.sw-today { background: var(--input-line); }
.sw-after { background: var(--teal); }
.sw-back { background: var(--gold-tag); box-shadow: inset 0 0 0 1px var(--gold-600); }

/* text lists */
.cols-2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px 48px; }
.cols-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.plain-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: 15px; line-height: 24px; }
.plain-list li { padding-left: 16px; position: relative; max-width: 72ch; }
.plain-list li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 2px; background: var(--gold); }
.plain-list .who { display: block; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.more-btn { margin-top: 8px; padding-left: 0; font-size: 14px; }

.ambitions { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.ambitions .tag { align-self: flex-start; }
.ambitions li { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r12); }
.ambitions p { margin: 0; font-size: 15px; line-height: 23px; }
.ambitions .who { font-size: 13px; line-height: 20px; color: var(--ink-muted); }

.changes { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: ch; }
.changes li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 24px; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
.changes li:first-child { border-top: 1px solid var(--line-soft); }
.changes h4 { font-size: 16px; line-height: 24px; font-weight: 500; }
.changes p { grid-column: 1 / -1; margin: 0; font-size: 14px; line-height: 22px; color: var(--ink-muted); max-width: 90ch; }
.changes .num { font-size: 14px; color: var(--teal); }

/* role shift table */
.shift { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 22px; }
.shift th { text-align: left; font-size: 13px; font-weight: 600; color: var(--ink-muted); padding: 8px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.shift th.num { font-family: var(--sans); }
.shift td.num { white-space: nowrap; }
.shift td { padding: 10px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.shift td:first-child, .shift th:first-child { padding-left: 0; }
.shift .bar-cell { width: 34%; min-width: 160px; }
.shift .role-link { font-weight: 500; text-align: left; padding: 0; border: 0; background: none; color: var(--teal); cursor: pointer; }
.shift .role-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.shift .sub { display: block; font-size: 12px; line-height: 18px; color: var(--ink-muted); }

/* roadmap */
.roadmap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.quarter { padding: 16px; border-radius: var(--r12); background: var(--ground-50); }
.quarter h3 { display: flex; justify-content: space-between; align-items: baseline; font-size: 15px; line-height: 22px; font-weight: 600; margin-bottom: 10px; }
.quarter h3 span { font: 400 12px/20px var(--mono); color: var(--ink-muted); letter-spacing: 0; }
.quarter ol { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.quarter li button {
  display: block; width: 100%; padding: 8px 10px; border: 1px solid var(--line); border-radius: var(--r8); background: var(--ground); text-align: left;
  font-size: 13px; line-height: 19px; color: var(--ink); cursor: pointer;
}
.quarter li button:hover { border-color: var(--teal); color: var(--teal); }
.quarter li .q-name { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.quarter li .q-hours { display: block; font: 400 12px/18px var(--mono); color: var(--ink-muted); letter-spacing: 0; margin-top: 2px; }
.quarter .q-more { font-size: 13px; color: var(--ink-muted); padding: 2px 2px 0; }

/* business case */
.case { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.ramp { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: end; height: 240px; padding-bottom: 0; border-bottom: 1px solid var(--line); }
.ramp-col { display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; height: 100%; gap: 6px; }
.ramp-val { font: 500 15px/20px var(--mono); letter-spacing: 0; text-align: center; color: var(--ink); }
.ramp-bar { align-self: center; width: min(72px, 60%); background: var(--teal); border-radius: 4px 4px 0 0; min-height: 2px; }
.ramp-labels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 8px; text-align: center; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ramp-labels strong { display: block; color: var(--ink); font-weight: 600; font-size: 14px; }
.case-facts { display: grid; margin: 0; }
.case-facts div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; line-height: 22px; }
.case-facts div:first-child { border-top: 1px solid var(--line-soft); }
.case-facts dt { color: var(--ink-700); }
.case-facts dd { margin: 0; font-family: var(--mono); letter-spacing: 0; text-align: right; }
.case-note { margin: 12px 0 0; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ceiling { margin: 24px 0 0; padding: 16px 20px; border-radius: var(--r12); background: var(--cream); font-size: 15px; line-height: 24px; color: var(--ink-700); max-width: 90ch; }
.ceiling strong { color: var(--ink); }

/* ------------------------------------------------------------ roles tab */
.role-switch { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 28px; }
.role-switch button {
  padding: 8px 12px; border: 1px solid var(--line); border-radius: var(--r8); background: var(--ground); font-size: 14px; line-height: 20px;
  color: var(--ink); cursor: pointer; text-align: left;
}
.role-switch button:hover { border-color: var(--teal); }
.role-switch button[aria-pressed='true'] { background: var(--teal); border-color: var(--teal); color: var(--on-dark); }
.role-switch .rs-meta { display: block; font: 400 12px/18px var(--mono); letter-spacing: 0; opacity: .8; }
.role-select { display: none; max-width: 100%; margin-bottom: 24px; }
.twin-head h2 { font-size: 26px; line-height: 34px; font-weight: 500; letter-spacing: -.01em; color: var(--teal); max-width: 40ch; }
.twin-head .twin-lede { margin: 10px 0 0; font-size: 18px; line-height: 28px; color: var(--ink); max-width: 62ch; }
.twin-head .twin-lede strong { color: var(--teal); font-weight: 600; }
.twin-head .meta { margin: 6px 0 0; font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.twin-compare { margin-top: 28px; padding: 24px; border: 1px solid var(--line); border-radius: var(--r12); }
.twin-altitude { margin: 0 0 16px; font-size: 16px; line-height: 26px; max-width: 72ch; color: var(--ink-700); }

.link-ini { padding: 0; border: 0; background: none; font: inherit; color: var(--teal); text-align: left; cursor: pointer; }
.link-ini:hover { text-decoration: underline; text-underline-offset: 3px; }
.role-inis { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line-soft); }
.role-inis li { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line-soft); font-size: 15px; line-height: 22px; }
.role-inis .ini-rank { line-height: 22px; }
.role-inis .who { display: block; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.role-inis .num { font-size: 14px; }

/* ------------------------------------------------------------ initiatives */
.ini-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 20px; }
.chip {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--line); border-radius: var(--pill);
  background: var(--ground); font-size: 14px; line-height: 20px; color: var(--ink); cursor: pointer;
}
.chip:hover { border-color: var(--teal); }
.chip[aria-pressed='true'] { background: var(--teal); border-color: var(--teal); color: var(--on-dark); }
.chip .chip-n { font: 400 12px/20px var(--mono); letter-spacing: 0; opacity: .75; }
.ini-summary { margin: 0 0 20px; font-size: 15px; line-height: 24px; color: var(--ink-700); max-width: 90ch; }
.ini-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ini-group + .ini-group { margin-top: 32px; }
.ini-group h3 { display: flex; align-items: baseline; gap: 10px; font-size: 17px; line-height: 24px; font-weight: 600; margin-bottom: 4px; }
.ini-group h3 span { font: 400 13px/20px var(--mono); color: var(--ink-muted); letter-spacing: 0; }
.ini-group .group-lede { margin: 0 0 12px; font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.ini { border: 1px solid var(--line); border-radius: var(--r12); background: var(--ground); }
.ini-top { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 4px 16px; padding: 18px 20px; }
.ini-rank { font: 500 14px/28px var(--mono); color: var(--gold-600); letter-spacing: 0; }
.ini-name { font-size: 18px; line-height: 28px; font-weight: 500; color: var(--ink); }
.ini-flow { display: block; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.ini-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ini-figs { display: grid; grid-auto-flow: column; gap: 24px; text-align: right; align-self: start; }
.ini-figs div { display: flex; flex-direction: column; }
.ini-figs dt { font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.ini-figs dd { margin: 0; font: 500 16px/24px var(--mono); letter-spacing: 0; color: var(--ink); white-space: nowrap; }
.ini-why { grid-column: 2 / -1; margin-top: 10px; font-size: 14px; line-height: 22px; color: var(--ink-700); }
.ini-why ul { margin: 4px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; }
.ini-why li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
.ini-why .who { color: var(--ink-muted); font-size: 13px; }
.ini-why .num { font-size: 13px; color: var(--ink-muted); }
.ini details { border-top: 1px solid var(--line-soft); }
.ini summary { padding: 10px 20px 10px 76px; font-size: 14px; line-height: 22px; color: var(--teal); cursor: pointer; list-style: none; font-weight: 600; }
.ini summary::-webkit-details-marker { display: none; }
.ini summary::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 10px 2px -18px; border: solid currentColor; border-width: 0 2px 2px 0; transform: rotate(-45deg); transition: transform 150ms var(--ease); }
.ini details[open] summary::before { transform: rotate(45deg); }
.ini-detail { padding: 0 20px 20px 76px; display: grid; gap: 20px; }
.ini.is-top { border: 2px solid var(--teal); background: var(--ground); box-shadow: var(--card-shadow); }
.ini.is-top .ini-top { padding-top: 22px; }
.ini.is-top .ini-name { font-size: 22px; line-height: 30px; color: var(--teal); }
.start-here { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 6px; font-size: 13px; line-height: 20px; font-weight: 600; color: var(--gold-600); }
.ini.is-flash { animation: flash 1.4s var(--ease); }
@keyframes flash { 0% { box-shadow: 0 0 0 6px var(--halo); } 100% { box-shadow: 0 0 0 0 transparent; } }
.steps-table { width: 100%; border-collapse: collapse; font-size: 13px; line-height: 20px; }
.steps-table th { text-align: left; font-weight: 600; color: var(--ink-muted); padding: 6px 10px 6px 0; border-bottom: 1px solid var(--line); }
.steps-table td { padding: 6px 10px 6px 0; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.steps-table .num { white-space: nowrap; }
.mini-ramp { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; font-size: 14px; line-height: 22px; }
.mini-ramp div { display: flex; gap: 8px; }
.mini-ramp dt { color: var(--ink-muted); }
.mini-ramp dd { margin: 0; font-family: var(--mono); letter-spacing: 0; }
.show-all { margin-top: 16px; }

/* ------------------------------------------------------------ portfolio grid */
.view-switch { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.grid-figure { width: 100%; max-width: 640px; margin: 0 0 8px; }
.grid-axis { margin: 0; font-size: 13px; line-height: 20px; font-weight: 600; color: var(--ink-muted); }
.grid-axis-y { margin-bottom: 8px; }
.grid-axis-x { margin-top: 8px; }
.grid-plot {
  position: relative; width: 100%; aspect-ratio: 1; overflow: hidden;
  background: var(--ground); border: 1px solid var(--line); border-radius: var(--r12);
}
.grid-svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.grid-svg line { stroke: var(--line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.q-label {
  position: absolute; z-index: 1; max-width: 42%; pointer-events: none;
  font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink-muted);
}
.q-tl { top: 10px; left: 10px; }
.q-tr { top: 10px; right: 10px; text-align: right; }
.q-bl { bottom: 10px; left: 10px; }
.q-br { bottom: 10px; right: 10px; text-align: right; }
.grid-dot {
  position: absolute; z-index: 2; transform: translate(-50%, -50%); padding: 0;
  border: 2px solid var(--ground); border-radius: 50%; cursor: pointer;
}
.grid-dot:hover, .grid-dot:focus-visible { z-index: 5; }
.grid-dot:focus-visible { outline: 2px solid var(--gold-600); outline-offset: 2px; }
.grid-dot.q-accelerate_now { background: var(--teal); }
.grid-dot.q-invest_to_unlock { background: var(--gold-600); }
.grid-dot.q-quick_wins { background: var(--teal-bright); }
.grid-dot.q-deprioritize { background: var(--ink-placeholder); }
.grid-tip {
  display: none; position: absolute; z-index: 2; width: max-content; max-width: 200px;
  padding: 8px 10px; background: var(--ground); border: 1px solid var(--line); border-radius: var(--r8);
  box-shadow: var(--card-shadow); color: var(--ink); font: 400 12px/16px var(--sans); text-align: left;
  pointer-events: none; white-space: normal;
}
.grid-dot:hover .grid-tip, .grid-dot:focus-visible .grid-tip,
.grid-ring:hover .grid-tip, .grid-ring:focus-visible .grid-tip { display: block; }
.grid-tip strong { display: block; font-size: 13px; line-height: 18px; font-weight: 600; }
.grid-tip span { display: block; color: var(--ink-muted); }
.grid-dot[data-flip-y="up"] .grid-tip, .grid-ring[data-flip-y="up"] .grid-tip { bottom: calc(100% + 8px); }
.grid-dot[data-flip-y="down"] .grid-tip, .grid-ring[data-flip-y="down"] .grid-tip { top: calc(100% + 8px); }
.grid-dot[data-flip-x="right"] .grid-tip, .grid-ring[data-flip-x="right"] .grid-tip { left: 0; }
.grid-dot[data-flip-x="left"] .grid-tip, .grid-ring[data-flip-x="left"] .grid-tip { right: 0; }
.grid-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; margin-top: 28px; }
.grid-quad { min-width: 0; }
.grid-quad h3 { display: flex; align-items: baseline; gap: 10px; font-size: 17px; line-height: 24px; font-weight: 600; margin: 0 0 4px; }
.grid-quad h3 span { font: 400 13px/20px var(--mono); color: var(--ink-muted); letter-spacing: 0; }
.grid-rule { margin: 0 0 8px; font-size: 14px; line-height: 22px; color: var(--ink-muted); }
.grid-rows { margin: 0; padding: 0; list-style: none; }
.grid-row { display: grid; gap: 8px; min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--line-soft); }
.grid-row-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; min-width: 0; }
.grid-row-name .link-ini { min-width: 0; overflow-wrap: anywhere; }
.grid-row-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-width: 0; max-width: 100%; }
.grid-field { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; flex: 1 1 200px; max-width: 100%; min-width: 0; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.grid-field .select { flex: 1 1 140px; width: 100%; max-width: 100%; min-width: 0; padding-top: 4px; padding-bottom: 4px; font-size: 14px; }
#step-5 .select, #step-5 .field { min-width: 0; max-width: 100%; }
.grid-blocker { font-size: 13px; line-height: 20px; color: var(--ink-700); }
.grid-value { margin-left: auto; font: 500 14px/20px var(--mono); letter-spacing: 0; color: var(--ink); }
.wave-tag { display: inline-block; padding: 0 8px; border-radius: var(--pill); background: var(--gold-tag); color: var(--gold-600); font-size: 12px; line-height: 20px; font-weight: 600; }
.grid-note { margin: 28px 0 8px; max-width: 70ch; font-size: 14px; line-height: 22px; color: var(--ink-700); }
.grid-checks { margin: 0 0 12px; }
.grid-checks summary { width: max-content; font-size: 14px; line-height: 22px; font-weight: 600; color: var(--teal); cursor: pointer; }
.grid-checks ol { margin: 8px 0 0; padding-left: 1.2em; font-size: 14px; line-height: 22px; color: var(--ink-700); }
.grid-credit { margin: 0; font-size: 12px; line-height: 18px; color: var(--ink-muted); }
.grid-ring {
  position: absolute; z-index: 3; transform: translate(-50%, -50%); padding: 0; cursor: pointer;
  border-radius: 50%; border: 2px solid var(--ink-placeholder); background: var(--ground);
}
.grid-ring.q-accelerate_now { border-color: var(--teal); }
.grid-ring.q-invest_to_unlock { border-color: var(--gold-600); }
.grid-ring.q-quick_wins { border-color: var(--teal-bright); }
.grid-ring.q-deprioritize { border-color: var(--ink-placeholder); }
.grid-ring:hover, .grid-ring:focus-visible { z-index: 5; }
.grid-ring:focus-visible { outline: 2px solid var(--gold-600); outline-offset: 2px; }
.grid-time, .goal-flag, .earned { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.port-block { margin-top: 36px; min-width: 0; }
.port-block:first-child { margin-top: 0; }
.copy-block {
  white-space: pre-wrap; overflow-wrap: anywhere; margin: 12px 0 0; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: var(--r12); background: var(--ground-50);
  font: 400 14px/22px var(--sans); color: var(--ink-700);
}
.goal-card, .run-card, .enable-card, .pilot-card, .ready-card {
  min-width: 0; margin: 0 0 16px; padding: 16px; border: 1px solid var(--line);
  border-radius: var(--r12); background: var(--ground);
}
.goal-example {
  display: inline-block; margin-bottom: 8px; padding: 0 8px; border-radius: var(--pill);
  background: var(--gold-tag); color: var(--gold-600); font-size: 12px; line-height: 20px; font-weight: 600;
}
.goal-limits { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 8px 0; }
.goal-limits label { display: flex; align-items: center; gap: 6px; font-size: 14px; line-height: 22px; }
.port-warn { color: var(--danger); font-weight: 600; overflow-wrap: anywhere; }
.port-form, .pilot-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.port-form .wide, .pilot-grid .wide { grid-column: 1 / -1; }
.check-row, .run-line {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px;
  min-width: 0; padding: 8px 0; border-bottom: 1px solid var(--line-soft);
}
.check-row span, .run-line span { min-width: 0; overflow-wrap: anywhere; }
.pilot-fold { margin-top: 8px; }
.pilot-fold summary { font-size: 14px; line-height: 22px; font-weight: 600; color: var(--teal); cursor: pointer; }

/* ------------------------------------------------------------ opportunities / tasks */
.scope { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 20px; }
.scope .select { width: auto; min-width: 260px; }
.opps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.opp { display: grid; grid-template-columns: 40px minmax(0, 1fr) 200px 120px; gap: 4px 20px; padding: 16px 0; border-bottom: 1px solid var(--line-soft); align-items: start; }
.opp-rank { font: 500 14px/24px var(--mono); color: var(--gold-600); letter-spacing: 0; }
.opp-task { font-size: 16px; line-height: 24px; }
.opp-role { display: block; font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.opp-mix .rung { margin-top: 6px; }
.opp-mix .xs { color: var(--ink-muted); }
.opp-val { text-align: right; }
.opp-val strong { display: block; font: 500 16px/24px var(--mono); letter-spacing: 0; }
.opp-val span { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.opp details { grid-column: 2 / -1; }
.opp summary { font-size: 14px; line-height: 22px; color: var(--teal); cursor: pointer; font-weight: 600; width: max-content; }
.opp .design { margin: 8px 0 0; font-size: 14px; line-height: 23px; color: var(--ink-700); max-width: 90ch; }
.rung { display: flex; gap: 2px; height: 10px; }
.rung span { display: block; height: 100%; border-radius: 2px; min-width: 2px; }
.r-eliminate { background: var(--gold-600); }
.r-configure { background: var(--teal); }
.r-deterministic { background: color-mix(in srgb, var(--teal) 45%, var(--teal-bright)); }
.r-deterministic_plus_loop { background: var(--teal-bright); }
.r-stays_manual { background: var(--input-line); }
.sw.r-eliminate, .sw.r-configure, .sw.r-deterministic, .sw.r-deterministic_plus_loop, .sw.r-stays_manual { width: 12px; height: 12px; }

.tasks-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.tasks-tools .search { flex: 1 1 260px; max-width: 420px; }
.tasks-tools .select { width: auto; min-width: 220px; }
.tasks-table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 21px; }
.tasks-table th { position: sticky; top: calc(var(--nav-h) + 47px); z-index: 5; text-align: left; font-size: 13px; font-weight: 600; color: var(--ink-muted); background: var(--ground-50); padding: 8px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.tasks-table th.num { font-family: var(--sans); }
.tasks-table th button { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; }
.tasks-table th button:hover { color: var(--teal); }
.tasks-table th[aria-sort] button { color: var(--teal); }
.tasks-table td { padding: 10px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: top; }
.tasks-table .t-role { color: var(--ink-muted); font-size: 13px; }
.tasks-table .t-open { padding: 0; border: 0; background: none; text-align: left; color: var(--ink); cursor: pointer; font: inherit; }
.tasks-table .t-open:hover { color: var(--teal); }
.tasks-table tr.t-detail td { background: var(--ground-50); padding: 12px 16px 16px; }
.tasks-count { margin: 0; font-size: 14px; color: var(--ink-muted); }
.fate { display: inline-block; padding: 0 6px; border-radius: var(--r4); font: 500 11px/18px var(--mono); letter-spacing: 0; background: var(--line-soft); color: var(--ink-700); white-space: nowrap; }
.fate-machine, .fate-gone { background: var(--teal-100); color: var(--teal-dark); }
.fate-person_reviews { background: var(--gold-tag); }

/* ------------------------------------------------------------ responsive */
@media (max-width: 1100px) {
  .step-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .roadmap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .opp { grid-template-columns: 32px minmax(0, 1fr) 160px; }
  .opp-val { grid-column: 2 / -1; text-align: left; display: flex; gap: 12px; align-items: baseline; }
}
@media (max-width: 960px) {
  .topnav { height: auto; min-height: var(--nav-h); flex-wrap: wrap; padding-block: 10px; gap: 4px; }
  .topnav .brand .product { display: inline; }
  .topnav .nav-links { display: flex; flex-basis: 100%; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; scrollbar-color: var(--input-line) var(--ground); }
  .nav-links a.active::after { bottom: 0; }
  .tabs { top: 0; position: relative; }
  .tasks-table th { top: 0; position: static; }
  .compare, .cols-2, .case { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .cols-3 { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .systems { grid-template-columns: minmax(0, 1fr); }
  .isnot { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .stepper { margin-bottom: 24px; }
  .stepper-track { display: none; }
  .stepper-list { display: none; }
  .stepper-compact { display: block; }
  .stepper-compact .sc-label { display: flex; justify-content: space-between; font-size: 14px; line-height: 20px; color: var(--ink-muted); margin-bottom: 8px; }
  .stepper-compact .sc-label strong { color: var(--teal); }
  .stepper-compact .sc-bar { display: block; height: 4px; border-radius: var(--pill); background: var(--line-soft); overflow: hidden; }
  .stepper-compact .sc-bar span { display: block; height: 100%; background: var(--gold); border-radius: var(--pill); }
  .step-title { font-size: 26px; line-height: 34px; }
  .step-lede { font-size: 16px; line-height: 25px; }
  .roles-headrow { display: none; }
  .roles-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 12px; padding: 16px 0; }
  .roles-row .role-cell-name { grid-column: 1 / -1; }
  .roles-row .role-cell-actions { grid-column: 1 / -1; justify-content: space-between; }
  .roles-row .mobile-label { display: block; margin-bottom: 4px; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink-muted); }
  .roles-total { margin-left: 0; flex-basis: 100%; }
  .task-shares li { grid-template-columns: minmax(0, 1fr) 48px; }
  .task-shares li .meter { display: none; }
  .sys-row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .results-head { align-items: flex-start; }
  .results-actions { gap: 6px; }
  .results-actions .btn-quiet, .results-actions .btn { padding: 6px 10px; }
  .changes li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .hero-line { font-size: 27px; line-height: 35px; }
  .hero-text { font-size: 16px; line-height: 25px; }
  .means li, .means-wide li { grid-template-columns: 104px minmax(0, 1fr) auto; gap: 8px; }
  .roadmap { grid-template-columns: minmax(0, 1fr); }
  .ramp { height: 180px; gap: 10px; }
  .shift .bar-cell { display: none; }
  .shift th, .shift td { padding-left: 8px; padding-right: 8px; }
  .role-switch { display: none; }
  .role-select { display: block; }
  .twin-compare { padding: 16px; }
  .ini-top { grid-template-columns: 28px minmax(0, 1fr); padding: 16px; }
  .ini-figs { grid-column: 1 / -1; grid-auto-flow: row; grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: left; gap: 12px; }
  .ini-why { grid-column: 1 / -1; }
  .ini summary { padding-left: 34px; }
  .ini-detail { padding: 0 16px 16px; }
  .opp { grid-template-columns: 28px minmax(0, 1fr); }
  .opp-mix, .opp-val, .opp details { grid-column: 2 / -1; }
  .tasks-table .hide-sm { display: none; }
  .tasks-tools .select { min-width: 0; flex: 1 1 100%; }
  .scope .select { min-width: 0; flex: 1 1 100%; }
  .grid-figure { max-width: none; }
  .grid-lists { grid-template-columns: minmax(0, 1fr); }
  .grid-value { margin-left: 0; }
  .port-form, .pilot-grid { grid-template-columns: minmax(0, 1fr); }
  .table-scroll { margin: 0 -16px; padding: 0 16px; }
}
@media (min-width: 761px) { .mobile-label { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .stepper-fill, .work-bar span, .ini summary::before { transition: none; }
  .work-list li[data-state='running'] .work-mark { animation: none; }
  .ini.is-flash { animation: none; }
}

/* ------------------------------------------------------------ print */
@media print {
  @page { margin: 16mm 14mm; }
  body { font-size: 11pt; line-height: 1.45; }
  .topnav, .stepper, #load-status, .results-actions, .share-note, .tabs, .step:not(.results), .site-attribution,
  .role-switch, .role-select, .show-all, .more-btn, .ini-tools, .view-switch, .scope, .tasks-tools, #panel-tasks, #panel-roles, .skip-link, .no-print, .port-form { display: none !important; }
  .page { padding: 0; max-width: none; }
  .panel { display: block !important; padding-top: 18pt; }
  .panel[hidden] { display: block !important; }
  #panel-tasks[hidden], #panel-tasks { display: none !important; }
  #panel-roles[hidden], #panel-roles { display: none !important; }
  .print-only { display: block; }
  .print-role { break-before: page; }
  .print-title { font-size: 18pt; font-weight: 500; color: var(--teal); margin: 24pt 0 8pt; break-after: avoid; }
  .section { margin-top: 28pt; }
  .section-title, .section-lede, .subhead, .print-title, .ini-group h3 { break-after: avoid; }
  .ini, .quarter, .opp, .ambitions li, .changes li, .means li, .shift tr, .case, .hero, .isnot, .twin-compare { break-inside: avoid; }
  .ini details, .ini-why ul, .ini-why > .who, .opp details, .start-here { display: none !important; }
  .ini-top { padding: 10pt 12pt; }
  .tasks-table th { position: static; }
  /* A4 is narrower than the phone breakpoint: keep the desktop grids on paper. */
  .compare, .cols-2, .case, .isnot { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16pt 24pt; }
  .twin-compare { padding: 12pt; }
  .means li, .means-wide li { grid-template-columns: 96px minmax(0, 1fr) auto; gap: 6pt; }
  .changes li { grid-template-columns: minmax(0, 1fr) auto; }
  .shift .bar-cell { display: table-cell; }
  .ini-top { grid-template-columns: 28px minmax(0, 1fr) auto; }
  .ini-figs { grid-column: auto; grid-auto-flow: column; grid-template-columns: none; text-align: right; }
  .opp { grid-template-columns: 28px minmax(0, 1fr) 150px 100px; }
  .opp-mix, .opp-val { grid-column: auto; }
  .opp-val { display: block; text-align: right; }
  .print-ini { font-size: 9pt; line-height: 1.35; }
  .plain-list, .changes p, .twin-altitude, .section-lede { font-size: 9.5pt; line-height: 1.45; }
  .print-role .section { margin-top: 18pt; }
  .ramp { height: 150px; }
  .print-ini td { padding: 5pt 8pt; }
  .print-ini tr { break-inside: avoid; }
  .ini-why { margin-top: 4pt; }
  .ambitions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .roadmap { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .hero-line { font-size: 22pt; line-height: 1.25; }
  .weekbar span, .meter > span, .ramp-bar, .rung span, .sw, .stepper-dot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  a { color: var(--ink); }
}
