/*
 * Engineering tools (/tools/, Robot Selector, Automation Business Case Planner).
 * Built only from the shared --ax-* tokens and foundation form controls:
 * the editorial site's ruled, typographic language, with one quiet surface
 * for the result "sheet". No new palette, no card grid.
 */

.ax-site-main.ax-tools-page { padding-block: 0; }
.ax-tools-page :where(h1, h2, h3, p, li, dd, dt, td, th) { overflow-wrap: break-word; }
/* Author display rules (grid/flex) must never defeat [hidden]: the form stays hidden without JS. */
.ax-tools-page [hidden] { display: none !important; }

/* Buttons: editorial action style (signal primary, ink outline secondary). */
.ax-tools-page .ax-button {
    align-items: center;
    background: transparent;
    border: 1px solid var(--ax-ink);
    border-radius: 4px;
    color: var(--ax-ink);
    cursor: pointer;
    display: inline-flex;
    font-size: .9375rem;
    font-weight: 700;
    justify-content: center;
    min-height: 2.75rem;
    padding: .55rem 1.1rem;
    text-align: center;
    text-decoration: none;
}
.ax-tools-page .ax-button:hover { background: var(--ax-surface-subtle); }
.ax-tools-page .ax-button--primary { background: var(--ax-signal); border-color: var(--ax-signal); }
.ax-tools-page .ax-button--primary:hover { background: var(--ax-signal-hover); border-color: var(--ax-signal-hover); color: var(--ax-surface); }

/* Page head */
.ax-tool-head { border-bottom: 1px solid var(--ax-rule); padding-block: clamp(1.5rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 2.5rem); }
.ax-tool-head h1 { font-size: clamp(2.1rem, 5vw, 4rem); line-height: 1.02; margin: 0 0 .9rem; max-inline-size: 18ch; }
.ax-tool-head__up { font-weight: 700; margin: 0 0 .75rem; }
.ax-tool-head__up a { text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; }
.ax-tool-head__dek { color: var(--ax-ink-soft); font-family: var(--ax-serif); font-size: var(--wp--preset--font-size--lead, 1.2rem); line-height: 1.5; margin: 0; max-inline-size: 44rem; }
.ax-tool-head__note { color: var(--ax-ink-soft); font-size: .875rem; margin: 1rem 0 0; max-inline-size: 44rem; }

/* Calculator: form left, result sheet right (sticky) from tablet up. */
.ax-tool { padding-block: clamp(1.5rem, 4vw, 3.5rem); }
.ax-tool__grid { align-items: start; display: grid; gap: clamp(1.5rem, 4vw, 4rem); grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); }
.ax-tool__grid > .screen-reader-text, .ax-tool__grid > noscript { grid-column: 1 / -1; }
.ax-tool__noscript { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-signal); margin: 0; padding: 1rem 1.25rem; }

.ax-tool__form { display: grid; gap: 1.5rem; }
.ax-tool__group { border: 0; border-top: 2px solid var(--ax-ink); margin: 0; min-width: 0; padding: .9rem 0 0; }
.ax-tool__group > legend { float: left; font-family: var(--ax-serif); font-size: 1.25rem; font-weight: 700; inline-size: 100%; margin: 0 0 .9rem; padding: 0; }
.ax-tool__group > legend + * { clear: both; }
.ax-tool__group > * + * { margin-block-start: 1rem; }
.ax-tool__pair, .ax-tool__trio { display: grid; gap: 1rem 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.ax-tool__trio { gap: 1rem .75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 6.25rem), 1fr)); }
.ax-tool__pair > *, .ax-tool__trio > * { margin: 0; }

/*
 * A field is a head (label + optional hint) over a body (control + error).
 * In a multi-column row each field (or the show/hide wrapper holding one)
 * spans two tracks of the row grid and adopts them as a subgrid: the tallest
 * head in a visual row sets the head track for all of them, so every control
 * starts on the same line however the label or hint wraps, in any language.
 * Both tracks are always occupied, so a single column keeps its natural,
 * compact flow and an error only grows the body track below its own control.
 */
.ax-tool-field, .ax-tool-field__head, .ax-tool-field__body { align-content: start; display: grid; gap: .3rem; min-width: 0; }
:is(.ax-tool__pair, .ax-tool__trio, .ax-roi-grid3) > * { display: grid; grid-row: span 2; grid-template-rows: subgrid; row-gap: .3rem; }
:is(.ax-tool__pair, .ax-tool__trio, .ax-roi-grid3) > :not(.ax-tool-field) > .ax-tool-field { grid-row: 1 / -1; grid-template-rows: subgrid; }
/* A translated word can be wider than a narrow column (Basque, German): break rather than overflow,
 * hyphenating only in the narrow three-up rows; wide columns keep whole words. */
.ax-tool-field__label, .ax-tool-field__hint { margin: 0; overflow-wrap: anywhere; }
.ax-tool__trio .ax-tool-field__label { hyphens: auto; }
.ax-tool-field__optional { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 400; hyphens: manual; white-space: nowrap; }
.ax-tool-field__hint { color: var(--ax-ink-soft); font-size: .875rem; line-height: 1.4; }
.ax-tool-field__control { position: relative; }
.ax-tool-field__control input { font-variant-numeric: tabular-nums; min-height: 3rem; }
.ax-tool-field__control:has(.ax-tool-field__unit) input { padding-inline-end: 3rem; }
.ax-tool-field__control select { min-height: 3rem; }
.ax-tool-field__unit { color: var(--ax-ink-soft); display: grid; font-family: var(--ax-mono); font-size: .875rem; inset-block: 0; inset-inline-end: .85rem; place-items: center; pointer-events: none; position: absolute; }
.ax-tool-field__error { color: var(--ax-danger); font-size: .875rem; font-weight: 700; margin: 0; }
.ax-tool-field.is-invalid input, .ax-tool-field.is-invalid select { border-color: var(--ax-danger); box-shadow: inset 3px 0 0 var(--ax-danger); }

.ax-tool__more { border-top: 1px solid var(--ax-rule); padding-top: .25rem; }
.ax-tool__more > summary { align-items: center; cursor: pointer; display: flex; font-weight: 700; gap: .5rem; list-style: none; min-height: 2.75rem; }
.ax-tool__more > summary::-webkit-details-marker { display: none; }
.ax-tool__more > summary::before { block-size: 1.4rem; border: 1px solid var(--ax-ink); border-radius: 2px; content: "+"; display: inline-grid; font-family: var(--ax-mono); font-size: .9rem; inline-size: 1.4rem; line-height: 1; place-items: center; }
.ax-tool__more[open] > summary::before { content: "−"; }
.ax-tool__more-body { display: grid; gap: 1rem; padding-block: .5rem 1rem; }
.ax-tool__more-intro { color: var(--ax-ink-soft); font-size: .9375rem; margin: .5rem 0 0; }

.ax-tool__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.ax-tool__text-button { background: none; border: 0; color: var(--ax-ink); cursor: pointer; font-weight: 700; padding: .5rem 0; text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .2em; }
.ax-tool__text-button:hover { text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; }
.ax-tool__form-status:empty { display: none; }
.ax-tool__form-status { color: var(--ax-danger); font-weight: 700; margin: 0; }

/* Result sheet */
.ax-tool__result { background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; padding: clamp(1.1rem, 2.5vw, 1.75rem); position: sticky; top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-tool__result-label { color: var(--ax-ink-soft); font-family: var(--ax-sans); font-size: .875rem; font-weight: 700; letter-spacing: .02em; margin: 0 0 .75rem; }
.ax-tool__result-label:focus { outline: none; }
.ax-tool__result-label:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-tool__empty p:last-child { color: var(--ax-ink-soft); margin: 0; }
.ax-tool__output { transition: opacity var(--ax-normal) var(--ax-ease); }
.ax-tool__output.is-stale { opacity: .45; }

.ax-tool__figures { display: grid; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.ax-tool__figure { border-top: 1px solid var(--ax-rule); min-width: 0; padding-block: .75rem; padding-inline-end: .75rem; }
.ax-tool__figure dt { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 700; }
.ax-tool__figure dd { font-variant-numeric: tabular-nums; margin: .2rem 0 0; }
.ax-tool__figure--key { border-top: 2px solid var(--ax-ink); }
.ax-tool__figure--key dd { font-family: var(--ax-serif); font-size: clamp(1.6rem, 4vw, 2.3rem); font-weight: 700; line-height: 1.1; }
.ax-tool__output.is-negative .ax-tool__figure--key dd { color: var(--ax-danger); }
.ax-tool__detail { color: var(--ax-ink-soft); display: block; font-size: .8125rem; line-height: 1.4; margin-block-start: .15rem; }
p.ax-tool__detail { margin: .5rem 0 0; }
.ax-tool__headline { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-signal); font-family: var(--ax-serif); font-size: 1.125rem; line-height: 1.45; margin: 1rem 0 0; padding: .85rem 1rem; }
.ax-tool__warning { border-inline-start: 3px solid var(--ax-danger); margin: 1rem 0 0; padding: .25rem 0 .25rem 1rem; }
.ax-tool__warnings { color: var(--ax-warn); font-size: .9375rem; list-style: none; margin: 1rem 0 0; padding: 0; }
.ax-tool__warnings li + li { margin-top: .4rem; }

.ax-tool__subhead { font-family: var(--ax-sans); font-size: 1rem; margin: 1.5rem 0 .5rem; }
.ax-tool__notes { list-style: none; margin: 0; padding: 0; }
.ax-tool__notes li { border-top: 1px solid var(--ax-rule); font-size: .9375rem; line-height: 1.5; padding-block: .6rem; }
.ax-tool__caveat { color: var(--ax-ink-soft); font-size: .875rem; margin: .75rem 0 0; }

.ax-tool__table { border-collapse: collapse; font-variant-numeric: tabular-nums; margin-top: 1rem; width: 100%; }
.ax-tool__table th, .ax-tool__table td { border-top: 1px solid var(--ax-rule); font-size: .9375rem; padding: .55rem 0; text-align: start; vertical-align: top; }
.ax-tool__table th { font-weight: 400; padding-inline-end: 1rem; }
.ax-tool__table td { text-align: end; white-space: nowrap; }
.ax-tool__table thead th { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 700; }
.ax-tool__table--compare td, .ax-tool__table--compare thead th:not(:first-child) { text-align: end; }
.ax-tool__table--compare td + td { padding-inline-start: 1rem; }
.ax-tool__table-total th, .ax-tool__table-total td { border-top: 2px solid var(--ax-ink); font-weight: 700; }
.ax-tool__sensitivity .ax-tool-field { max-inline-size: 10rem; }

.ax-tool__summary { border-top: 2px solid var(--ax-ink); margin-top: 1.5rem; padding-top: 1rem; }
.ax-tool__summary-label { margin: 0; }
.ax-tool__summary-hint { color: var(--ax-ink-soft); font-size: .875rem; margin: .25rem 0 .6rem; }
.ax-tool__summary-text { font-family: var(--ax-mono); font-size: .8125rem; line-height: 1.5; resize: vertical; }
.ax-tool__summary-actions { display: flex; flex-wrap: wrap; gap: .5rem .75rem; margin-top: .75rem; }
.ax-tool__status { font-size: .875rem; margin: .5rem 0 0; min-height: 1.3em; }

.ax-tool__next ul { list-style: none; margin: 0; padding: 0; }
.ax-tool__next li { border-top: 1px solid var(--ax-rule); }
.ax-tool__next a { display: block; font-weight: 700; padding-block: .7rem; text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; text-underline-offset: .2em; }

/* Method, example, limits */
.ax-tool-doc { border-top: 1px solid var(--ax-rule); padding-block: clamp(2.5rem, 6vw, 5rem); }
.ax-tool-doc__grid { align-items: start; display: grid; gap: clamp(2rem, 5vw, 5rem); grid-template-columns: minmax(0, 7fr) minmax(16rem, 4fr); }
.ax-tool-doc__main { max-inline-size: var(--ax-content); }
.ax-tool-doc__main h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); margin: 0 0 1rem; scroll-margin-top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-tool-doc__main h2:not(:first-child) { margin-top: 3rem; }
.ax-tool-doc__main h3 { margin: 2rem 0 .75rem; }
.ax-tool-doc__main h2:focus { outline: none; }
.ax-tool-doc__formulas { background: var(--ax-surface-subtle); border-radius: 4px; font-family: var(--ax-mono); font-size: .875rem; line-height: 1.55; list-style: none; margin: 1.25rem 0; padding: 1rem 1.25rem; }
.ax-tool-doc__formulas li + li { border-top: 1px solid var(--ax-rule); margin-top: .5rem; padding-top: .5rem; }
.ax-tool-doc__example { border-top: 2px solid var(--ax-ink); margin: 1rem 0; }
.ax-tool-doc__example > div { border-bottom: 1px solid var(--ax-rule); display: grid; gap: .15rem 1rem; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); padding-block: .6rem; }
.ax-tool-doc__example dt { font-weight: 700; }
.ax-tool-doc__example dd { font-variant-numeric: tabular-nums; margin: 0; }
.ax-tool-doc__limits li + li, .ax-tool-doc__rules li + li { margin-top: .35rem; }

.ax-tool-related { border-top: 2px solid var(--ax-ink); padding-top: 1rem; position: sticky; top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-tool-related__title { font-size: 1.25rem; margin: 0 0 .5rem; }
.ax-tool-related__list { list-style: none; margin: 0 0 1.25rem; padding: 0; }
.ax-tool-related__list li { border-bottom: 1px solid var(--ax-rule); display: grid; gap: .15rem; padding-block: .75rem; }
.ax-tool-related__list a { font-family: var(--ax-serif); font-size: 1.15rem; font-weight: 700; }
.ax-tool-related__list span, .ax-tool-related__context, .ax-tool-related__robotics { color: var(--ax-ink-soft); font-size: .9375rem; }
.ax-tool-related__robotics a, .ax-tool-related__context a { color: var(--ax-ink); font-weight: 700; }

/* /tools/ index: a ruled list of three questions, not a card grid. */
.ax-tools-index { padding-block: clamp(1.5rem, 4vw, 3rem); }
.ax-tools-index__list { border-top: 2px solid var(--ax-ink); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.ax-tools-index__item { border-inline-start: 1px solid var(--ax-rule); padding: 1.25rem clamp(1rem, 2.5vw, 2rem) 1.5rem; }
.ax-tools-index__item:first-child { border-inline-start: 0; padding-inline-start: 0; }
.ax-tools-index__question { color: var(--ax-ink-soft); font-family: var(--ax-serif); font-size: 1.1rem; font-style: italic; margin: 0; }
.ax-tools-index__item h3 { font-size: clamp(1.5rem, 2.5vw, 2rem); margin: .4rem 0 .6rem; }
.ax-tools-index__item p { margin: 0; }
.ax-tools-index__item p + p { margin-top: .6rem; }
.ax-tools-index__inputs { color: var(--ax-ink-soft); font-size: .9375rem; }

@media (max-width: 56rem) {
    .ax-tool__grid, .ax-tool-doc__grid { grid-template-columns: minmax(0, 1fr); }
    .ax-tool__result, .ax-tool-related { position: static; }
    .ax-tools-index__list { grid-template-columns: minmax(0, 1fr); }
    .ax-tools-index__item, .ax-tools-index__item:first-child { border-bottom: 1px solid var(--ax-rule); border-inline-start: 0; padding-inline: 0; }
}

@media (max-width: 30rem) {
    .ax-tool__result { border-inline: 0; border-radius: 0; margin-inline: calc(-1 * var(--ax-gutter)); padding-inline: var(--ax-gutter); }
    .ax-tool__figure:not(.ax-tool__figure--key) { display: grid; gap: .5rem; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); }
    .ax-tool__figure:not(.ax-tool__figure--key) dd { margin: 0; text-align: end; }
    .ax-tool__actions .ax-button { flex: 1 1 100%; }
    .ax-tool__summary-actions .ax-button { flex: 1 1 0; }
    .ax-tool__table td { white-space: normal; }
    .ax-tool-doc__example > div { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
    .ax-tool__output { transition: none; }
}

/* ---------------------------------------------------------------------------
 * Robot Selector V2 app shell. Every rule below is scoped to .ax-rs so the
 * Automation Business Case Planner (same stylesheet) is unaffected.
 * ------------------------------------------------------------------------- */
.ax-rs { padding-block: clamp(1.25rem, 3vw, 2.5rem); }
.ax-rs .ax-tool__result { position: static; }

.ax-rs__app, .ax-rs__find { display: grid; gap: 1.5rem; }
.ax-rs__app > *, .ax-rs__find > *, .ax-rs__workspace > * { min-width: 0; }
.ax-rs__bar { align-items: center; border-bottom: 1px solid var(--ax-rule); display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; justify-content: space-between; padding-bottom: 1rem; }
.ax-rs__modes { border: 1px solid var(--ax-ink); border-radius: 4px; display: inline-flex; overflow: hidden; }
.ax-rs__mode { background: transparent; border: 0; color: var(--ax-ink); cursor: pointer; font-size: .9375rem; font-weight: 700; min-height: 2.75rem; padding: .5rem 1.1rem; }
.ax-rs__mode + .ax-rs__mode { border-inline-start: 1px solid var(--ax-ink); }
.ax-rs__mode[aria-pressed="true"] { background: var(--ax-ink); color: var(--ax-paper); }
.ax-rs__mode:disabled { color: var(--ax-ink-soft); cursor: not-allowed; }
.ax-rs__catalog-status { color: var(--ax-ink-soft); font-size: .875rem; margin: 0; }
.ax-rs__catalog-status.is-error, .ax-rs__unavailable.is-error { color: var(--ax-warn); font-weight: 700; }

/* Step navigation */
.ax-rs__steps ol { counter-reset: none; display: grid; gap: .5rem; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.ax-rs__progress { font-size: .875rem; font-weight: 700; margin: 0 0 .5rem; }
.ax-rs__step { align-items: center; background: none; border: 0; border-top: 3px solid var(--ax-rule); color: var(--ax-ink-soft); cursor: pointer; display: flex; font-size: .9375rem; font-weight: 700; gap: .5rem; inline-size: 100%; min-height: 2.75rem; padding: .5rem 0 0; text-align: start; }
.ax-rs__step-n { block-size: 1.6rem; border: 1px solid currentColor; border-radius: 50%; display: inline-grid; flex: none; font-family: var(--ax-mono); font-size: .8125rem; inline-size: 1.6rem; place-items: center; }
.ax-rs__step.is-done { border-top-color: var(--ax-ink); color: var(--ax-ink); }
.ax-rs__step[aria-current="step"] { border-top-color: var(--ax-signal); color: var(--ax-ink); }
.ax-rs__step[aria-current="step"] .ax-rs__step-n { background: var(--ax-ink); border-color: var(--ax-ink); color: var(--ax-paper); }

/* Workspace: active stage + compact live requirements; Results take the full width. */
.ax-rs__workspace { align-items: start; display: grid; gap: clamp(1.25rem, 3vw, 3rem); grid-template-columns: minmax(0, 2fr) minmax(15rem, 1fr); }
.ax-rs__workspace.is-results { grid-template-columns: minmax(0, 1fr); }
.ax-rs__form { gap: 1.25rem; }
.ax-rs__stage { border-top: 2px solid var(--ax-ink); display: grid; gap: 1.1rem; padding-top: .9rem; }
.ax-rs__stage-title { font-family: var(--ax-serif); font-size: clamp(1.25rem, 2.2vw, 1.6rem); margin: 0; }
.ax-rs__stage-title:focus { outline: none; }
.ax-rs__stage-title:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-rs__tip { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-steel, var(--ax-ink-soft)); font-size: .9375rem; line-height: 1.5; margin: 0; padding: .7rem .9rem; }
.ax-rs__tip:empty { display: none; }
.ax-rs__actions { align-items: center; display: flex; flex-wrap: wrap; gap: .5rem .75rem; }
.ax-rs__actions [type="submit"] { margin-inline-start: auto; }
.ax-rs__aux { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }

.ax-rs__reqs { position: sticky; top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-rs__reqs-box { background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; padding: .25rem 1rem .75rem; }
.ax-rs__reqs-box:not([open]) { padding-bottom: 0; }
.ax-rs__reqs-box > summary { cursor: pointer; font-weight: 700; min-height: 2.75rem; padding-block: .7rem .4rem; }
.ax-rs__reqs-list { margin: 0; }
.ax-rs__reqs-list > div { border-top: 1px solid var(--ax-rule); display: grid; gap: .5rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); padding-block: .45rem; }
.ax-rs__reqs-list dt { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 700; }
.ax-rs__reqs-list dd { font-size: .875rem; font-variant-numeric: tabular-nums; margin: 0; text-align: end; }

/* Results */
.ax-rs__figures { grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.ax-rs__h { font-family: var(--ax-serif); font-size: clamp(1.3rem, 2.4vw, 1.7rem); margin: 2rem 0 .75rem; }
.ax-rs__unavailable { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-warn); margin: 0; padding: .85rem 1rem; }
.ax-rs__counts { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0 0 1rem; padding: 0; }
.ax-rs__count { border: 1px solid var(--ax-rule); border-radius: 3px; font-size: .875rem; font-variant-numeric: tabular-nums; padding: .3rem .6rem; }
.ax-rs__count--nominal { border-color: var(--ax-good); }
.ax-rs__count--conditional { border-color: var(--ax-warn); }
.ax-rs__count--near, .ax-rs__count--rejected { border-style: dashed; }

.ax-rs-group { margin-top: 1.5rem; }
.ax-rs-group__title { font-family: var(--ax-sans); font-size: 1.05rem; margin: 0; }
.ax-rs-group__count { color: var(--ax-ink-soft); font-weight: 400; }
.ax-rs-group__hint { color: var(--ax-ink-soft); font-size: .875rem; margin: .25rem 0 .75rem; }
.ax-rs__cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); }

.ax-rs-card { background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; border-top: 3px solid var(--ax-rule); display: grid; gap: .6rem; min-width: 0; padding: .9rem 1rem 1rem; }
.ax-rs-card--nominal_match { border-top-color: var(--ax-good); }
.ax-rs-card--conditional_match { border-top-color: var(--ax-warn); }
/* A near miss must never read as a candidate: dashed, muted, no surface. */
.ax-rs-card--near_miss { background: transparent; border: 1px dashed var(--ax-danger); }
.ax-rs-card--catalog { border-top-color: var(--ax-ink); }
.ax-rs-card__head { display: grid; gap: .15rem; }
.ax-rs-card__maker { color: var(--ax-ink-soft); font-family: var(--ax-mono); font-size: .75rem; letter-spacing: .02em; margin: 0; text-transform: uppercase; }
.ax-rs-card__model { font-family: var(--ax-serif); font-size: 1.3rem; line-height: 1.15; margin: 0; }
.ax-rs-state { align-items: center; display: inline-flex; flex-wrap: wrap; font-size: .8125rem; font-weight: 700; gap: .35rem; margin: .2rem 0 0; }
.ax-rs-state__glyph { block-size: 1.25rem; border-radius: 50%; display: inline-grid; font-size: .75rem; inline-size: 1.25rem; place-items: center; }
.ax-rs-state--nominal_match { color: var(--ax-good); }
.ax-rs-state--nominal_match .ax-rs-state__glyph { background: var(--ax-good); color: var(--ax-paper); }
.ax-rs-state--conditional_match { color: var(--ax-warn); }
.ax-rs-state--conditional_match .ax-rs-state__glyph { border: 1px solid var(--ax-warn); }
.ax-rs-state--near_miss, .ax-rs-state--not_suitable { color: var(--ax-danger); }
.ax-rs-state--near_miss .ax-rs-state__glyph { border: 1px dashed var(--ax-danger); }
.ax-rs-state--catalog { color: var(--ax-ink-soft); }
.ax-rs-card__rank { color: var(--ax-ink-soft); font-weight: 400; }
.ax-rs-card__meta { color: var(--ax-ink-soft); font-size: .8125rem; margin: 0; }
.ax-rs-card__facts { display: grid; gap: 0 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.ax-rs-card__fact { border-top: 1px solid var(--ax-rule); min-width: 0; padding-block: .4rem; }
.ax-rs-card__fact dt { color: var(--ax-ink-soft); font-size: .75rem; font-weight: 700; }
.ax-rs-card__fact dd { font-size: .9375rem; font-variant-numeric: tabular-nums; margin: .1rem 0 0; }
.ax-rs-card__fact--key dd { font-weight: 700; }
.ax-rs-nv { color: var(--ax-ink-soft); font-style: italic; }
.ax-rs-card__label { font-size: .8125rem; font-weight: 700; margin: .4rem 0 .2rem; }
.ax-rs-card ul { font-size: .875rem; line-height: 1.45; margin: 0; padding-inline-start: 1.1rem; }
.ax-rs-card li + li { margin-top: .25rem; }
.ax-rs-card__failed { border-inline-start: 3px solid var(--ax-danger); padding-inline-start: .75rem; }
.ax-rs-card__conditions { border-inline-start: 3px solid var(--ax-warn); padding-inline-start: .75rem; }
.ax-rs-card__more > summary { cursor: pointer; font-size: .875rem; font-weight: 700; min-height: 2.75rem; padding-block: .6rem; }
.ax-rs-card__sources a { overflow-wrap: anywhere; }
.ax-rs-card__actions { display: flex; justify-content: flex-end; }
.ax-rs-card__compare { background: transparent; border: 1px solid var(--ax-ink); border-radius: 3px; color: var(--ax-ink); cursor: pointer; font-size: .875rem; font-weight: 700; min-height: 2.75rem; padding: .4rem .9rem; }
.ax-rs-card__compare[aria-pressed="true"] { background: var(--ax-ink); color: var(--ax-paper); }
.ax-rs-card__compare[aria-pressed="true"]::before { content: "✓ "; }

.ax-rs-nomatch { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-warn); margin-top: 1rem; padding: 1rem 1.25rem; }
.ax-rs-nomatch h4 { font-size: 1.05rem; margin: 0 0 .4rem; }
.ax-rs-nomatch p { margin: 0 0 .5rem; }
.ax-rs-nomatch ul { margin: 0; padding-inline-start: 1.1rem; }
.ax-rs-why { list-style: none; margin: 0; max-inline-size: 34rem; padding: 0; }
.ax-rs-why li { border-top: 1px solid var(--ax-rule); display: flex; gap: 1rem; justify-content: space-between; padding-block: .45rem; }
.ax-rs-why__more { margin-top: .5rem; }
.ax-rs-why__more > summary { cursor: pointer; font-weight: 700; min-height: 2.75rem; padding-block: .6rem; }
.ax-rs-compact { list-style: none; margin: 0; padding: 0; }
.ax-rs-compact li { border-top: 1px solid var(--ax-rule); display: grid; gap: .1rem 1rem; grid-template-columns: minmax(9rem, 14rem) minmax(0, 1fr); padding-block: .4rem; }
.ax-rs-compact__model { font-weight: 700; }
.ax-rs-compact__why { color: var(--ax-ink-soft); font-size: .875rem; }
.ax-rs__after { display: grid; gap: 1.5rem 3rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }

/* Browse + compare */
.ax-rs__panel-title { font-family: var(--ax-serif); font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin: 0; }
.ax-rs__panel-title:focus { outline: none; }
.ax-rs__panel-title:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-rs__panel-dek { color: var(--ax-ink-soft); margin: .4rem 0 1rem; max-inline-size: 48rem; }
.ax-rs__filters { align-items: end; border-top: 2px solid var(--ax-ink); display: grid; gap: .9rem 1.1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); padding-top: 1rem; }
.ax-rs__filter-search { grid-column: span 2; }
.ax-rs__filter-actions { min-height: 3rem; display: flex; align-items: center; }
.ax-rs__browse-count { font-weight: 700; margin: 1rem 0; }

.ax-rs__tray { align-items: center; background: var(--ax-surface); border: 1px solid var(--ax-ink); border-radius: 4px; bottom: .75rem; box-shadow: 0 2px 10px rgb(0 0 0 / .08); display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: .6rem .9rem; position: sticky; z-index: 5; }
.ax-rs__tray-text { flex: 1 1 14rem; font-size: .875rem; font-weight: 700; margin: 0; }
.ax-rs__compare { border-top: 2px solid var(--ax-ink); padding-top: 1rem; }
.ax-rs__table-wrap { max-inline-size: 100%; overflow-x: auto; }
.ax-rs__table-wrap:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-rs__table { border-collapse: collapse; font-size: .875rem; min-inline-size: 34rem; width: 100%; }
.ax-rs__table th, .ax-rs__table td { border-top: 1px solid var(--ax-rule); padding: .55rem .75rem .55rem 0; text-align: start; vertical-align: top; }
.ax-rs__table thead th { border-top: 0; vertical-align: bottom; }
.ax-rs__table tbody th { color: var(--ax-ink-soft); font-weight: 700; inline-size: 9rem; }
.ax-rs__table-maker { color: var(--ax-ink-soft); display: block; font-family: var(--ax-mono); font-size: .75rem; text-transform: uppercase; }
.ax-rs__table-model { display: block; font-family: var(--ax-serif); font-size: 1.1rem; }
.ax-rs__table-remove { font-size: .8125rem; }

@media (max-width: 56rem) {
    .ax-rs__workspace { grid-template-columns: minmax(0, 1fr); }
    .ax-rs__reqs { grid-row: 1; position: static; }
}

@media (max-width: 47.99rem) {
    /* The progress line names the step; the numbered rail stays compact. */
    .ax-rs__step-label { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
    /* Back / Continue / Show results stay reachable while scrolling a long stage. */
    .ax-rs__actions { background: var(--ax-paper); border-top: 1px solid var(--ax-rule); bottom: 0; margin-inline: calc(-1 * var(--ax-gutter)); padding: .6rem var(--ax-gutter); position: sticky; z-index: 4; }
    .ax-rs__actions .ax-button { flex: 1 1 0; padding-inline: .5rem; }
    .ax-rs__actions [type="submit"] { margin-inline-start: 0; }
    .ax-rs__filters { gap: .75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ax-rs__filter-search { grid-column: 1 / -1; }
    .ax-rs__filters .ax-tool-field__hint { display: none; }
    .ax-rs-compact li { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 30rem) {
    .ax-rs .ax-tool__result { border-inline: 1px solid var(--ax-rule); border-radius: 4px; margin-inline: 0; padding-inline: .9rem; }
    .ax-rs__mode { padding-inline: .8rem; }
}

@media (prefers-reduced-motion: no-preference) {
    .ax-rs-card__compare, .ax-rs__mode { transition: background-color var(--ax-fast) var(--ax-ease), color var(--ax-fast) var(--ax-ease); }
}

/* ---------------------------------------------------------------------------
 * Automation Business Case Planner. Scoped to .ax-roi / .ax-roi-*: one form,
 * controls on the left, the business-case sheet on the right (sticky while
 * it fits the viewport), the detailed business case full width below. On
 * phones everything follows DOM order: quick estimate, then the result.
 * ------------------------------------------------------------------------- */
.ax-roi { padding-block: clamp(1.25rem, 3vw, 2.5rem); }
.ax-roi__app { display: grid; gap: clamp(2rem, 4vw, 3rem); }
/* The sticky sheet is bounded by the workspace, so it never rides over the detailed case. */
.ax-roi__workspace { align-items: start; display: grid; gap: 1.75rem clamp(1.5rem, 4vw, 4rem); grid-template-areas: "quick sheet" "accuracy sheet" "acquisition sheet" "rest sheet"; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: auto auto auto 1fr; }
.ax-roi__app > *, .ax-roi__workspace > * { min-width: 0; }
.ax-roi-panel--quick { grid-area: quick; }
.ax-roi-sheet { grid-area: sheet; grid-row: 1 / 5; }
.ax-roi-panel--accuracy { grid-area: accuracy; }
.ax-roi-panel--acquisition { grid-area: acquisition; }

/* Panels: ruled sections, the quick estimate always open, the rest disclosed. */
.ax-roi-panel { border-top: 2px solid var(--ax-ink); display: grid; gap: 1.25rem; padding-top: .9rem; }
.ax-roi-panel__title { font-family: var(--ax-serif); font-size: clamp(1.45rem, 2.4vw, 1.85rem); line-height: 1.15; margin: 0; }
.ax-roi-panel__dek { color: var(--ax-ink-soft); font-size: .9375rem; line-height: 1.5; margin: -.6rem 0 0; max-inline-size: 40rem; }
.ax-roi-panel .ax-tool__group { padding-top: .75rem; border-top-width: 1px; border-top-color: var(--ax-rule); }
.ax-roi-panel .ax-tool__group > legend { font-family: var(--ax-sans); font-size: 1rem; }
.ax-roi-panel--more { gap: 0; }
.ax-roi-panel__summary { align-items: baseline; cursor: pointer; display: flex; flex-wrap: wrap; gap: .25rem 1rem; list-style: none; min-height: 2.75rem; padding-block: .1rem .6rem; }
.ax-roi-panel__summary::-webkit-details-marker { display: none; }
.ax-roi-panel__summary .ax-roi-panel__title::before { block-size: 1.3rem; border: 1px solid var(--ax-ink); border-radius: 2px; content: "+"; display: inline-grid; font-family: var(--ax-mono); font-size: .875rem; inline-size: 1.3rem; line-height: 1; margin-inline-end: .6rem; place-items: center; transform: translateY(-.15rem); }
.ax-roi-panel--more[open] .ax-roi-panel__title::before { content: "−"; }
.ax-roi-panel__summary:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-roi-panel__hint { color: var(--ax-ink-soft); font-size: .875rem; }
.ax-roi-panel__body { display: grid; gap: 1.1rem; padding-block: .4rem 1.5rem; }
.ax-roi-panel__body .ax-roi-panel__dek { margin: 0; }
.ax-roi-group__title { border-top: 1px solid var(--ax-rule); font-family: var(--ax-sans); font-size: 1rem; margin: .5rem 0 0; padding-top: .9rem; }
.ax-roi-group__dek { color: var(--ax-ink-soft); font-size: .875rem; line-height: 1.45; margin: -.6rem 0 0; }
.ax-roi-grid3 { display: grid; gap: 1rem 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.ax-roi-note { background: var(--ax-surface-subtle); border-inline-start: 3px solid var(--ax-steel); font-size: .9375rem; margin: 0; padding: .6rem .85rem; }
.ax-roi-when { display: grid; gap: .9rem; }
.ax-roi-custom .ax-tool-field { max-inline-size: 12rem; }

/* Choices: native radios inside bordered labels; the dot stays visible. */
.ax-roi-choice { border: 0; margin: 0; min-width: 0; padding: 0; }
.ax-roi-choice__legend { font-weight: 700; margin: 0 0 .45rem; padding: 0; }
.ax-roi-choice__options { display: flex; flex-wrap: wrap; gap: .5rem; }
.ax-roi-choice__option { align-items: center; background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; cursor: pointer; display: flex; gap: .6rem; min-height: 2.75rem; padding: .45rem .85rem; }
.ax-roi-choice__option input { accent-color: var(--ax-ink); block-size: 1.05rem; flex: none; inline-size: 1.05rem; margin: 0; }
.ax-roi-choice__option:hover { border-color: var(--ax-ink-soft); }
.ax-roi-choice__option:has(input:checked) { border-color: var(--ax-ink); box-shadow: inset 0 0 0 1px var(--ax-ink); }
.ax-roi-choice__option:has(input:focus-visible) { outline: 3px solid var(--ax-focus); outline-offset: 2px; }
.ax-roi-choice__text { display: grid; gap: .15rem; }
.ax-roi-choice__label { font-size: .9375rem; font-weight: 700; line-height: 1.25; }
.ax-roi-choice__desc { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 400; line-height: 1.35; }
.ax-roi-choice--cards .ax-roi-choice__options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); }
.ax-roi-choice--cards .ax-roi-choice__option { align-items: start; padding: .75rem .9rem; }
.ax-roi-choice--cards .ax-roi-choice__option input { margin-top: .15rem; }
.ax-roi-choice--status .ax-roi-choice__options { gap: 0; }
.ax-roi-choice--status .ax-roi-choice__option { border-radius: 0; font-size: .875rem; margin-inline-start: -1px; padding-inline: .7rem; }
.ax-roi-choice--status .ax-roi-choice__option:first-child { border-radius: 4px 0 0 4px; margin-inline-start: 0; }
.ax-roi-choice--status .ax-roi-choice__option:last-child { border-radius: 0 4px 4px 0; }
.ax-roi-choice--status .ax-roi-choice__option:has(input:checked) { position: relative; z-index: 1; }
.ax-roi-choice--status .ax-roi-choice__label { font-size: .875rem; }
.ax-roi-choice.is-invalid .ax-roi-choice__option { border-color: var(--ax-danger); }

/* Optional value modules */
.ax-roi-module { border-top: 1px solid var(--ax-rule); display: grid; gap: .75rem; padding-top: .9rem; }
.ax-roi-group__title + .ax-roi-module { border-top: 0; padding-top: 0; }
.ax-roi-module__head { display: grid; gap: .2rem; }
.ax-roi-module__title { font-family: var(--ax-serif); font-size: 1.15rem; margin: 0; }
.ax-roi-module__desc { color: var(--ax-ink-soft); font-size: .875rem; line-height: 1.45; margin: 0; max-inline-size: 38rem; }
.ax-roi-module__body { background: var(--ax-surface-subtle); border-radius: 4px; display: grid; gap: 1rem; padding: .9rem 1rem 1rem; }
.ax-roi-check label, .ax-roi-check__item { align-items: flex-start; cursor: pointer; display: flex; font-size: .9375rem; gap: .55rem; min-height: 2.75rem; padding-block: .55rem; }
.ax-roi-check input, .ax-roi-check__item input { accent-color: var(--ax-ink); block-size: 1.1rem; flex: none; inline-size: 1.1rem; margin: .15rem 0 0; }
.ax-roi-check.is-invalid label { color: var(--ax-danger); }
.ax-roi-includes { border: 1px solid var(--ax-rule); border-radius: 4px; margin: 0; padding: .6rem 1rem .4rem; }
.ax-roi-includes > legend { font-weight: 700; padding-inline: .3rem; }
.ax-roi-includes__list { display: grid; gap: 0 1.25rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.ax-roi-acq { display: grid; gap: 1rem; }

/* The business-case sheet */
.ax-roi .ax-roi-sheet { background: var(--ax-surface); border: 1px solid var(--ax-rule); border-radius: 4px; border-top: 3px solid var(--ax-ink); padding: clamp(1rem, 2.2vw, 1.6rem); position: static; }
.ax-roi .ax-roi-sheet.is-sticky { position: sticky; top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-roi-sheet__title { font-family: var(--ax-serif); font-size: clamp(1.35rem, 2.2vw, 1.65rem); margin: 0 0 .5rem; }
.ax-roi-sheet__title:focus { outline: none; }
.ax-roi-sheet__title:focus-visible { outline: 3px solid var(--ax-focus); outline-offset: 3px; }
.ax-roi-sheet .ax-tool__empty p { color: var(--ax-ink-soft); margin: 0; }
.ax-roi-sheet__basis { color: var(--ax-ink-soft); font-size: .8125rem; margin: 0 0 .35rem; }
.ax-roi-headline { border-inline-start: 4px solid var(--ax-signal); font-family: var(--ax-serif); font-size: clamp(1.55rem, 2.9vw, 2.2rem); font-weight: 700; line-height: 1.12; margin: 0; padding-inline-start: .8rem; text-wrap: balance; }
.ax-tool__output[data-state="weak"] .ax-roi-headline, .ax-tool__output[data-state="zero"] .ax-roi-headline { border-inline-start-color: var(--ax-danger); font-size: clamp(1.3rem, 2.3vw, 1.6rem); }
.ax-roi-headline__sub { color: var(--ax-ink-soft); font-size: .9375rem; line-height: 1.5; margin: .55rem 0 0; }
.ax-roi-figures { display: grid; gap: 0 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.1rem 0 0; }
.ax-roi-figures > div { border-top: 1px solid var(--ax-rule); padding-block: .6rem; }
.ax-roi-figures dt { color: var(--ax-ink-soft); font-size: .8125rem; font-weight: 700; }
.ax-roi-figures dd { font-size: 1.2rem; font-variant-numeric: tabular-nums; font-weight: 700; margin: .15rem 0 0; }
.ax-roi-sheet__h { font-family: var(--ax-sans); font-size: .9375rem; margin: 1.1rem 0 .35rem; }

/* The value ledger: ruled rows, each with a bar scaled to the largest line. */
.ax-roi-ledger { border-collapse: collapse; font-variant-numeric: tabular-nums; inline-size: 100%; }
.ax-roi-ledger th, .ax-roi-ledger td { border-top: 1px solid var(--ax-rule); font-size: .9375rem; padding: .45rem 0; vertical-align: middle; }
.ax-roi-ledger th { font-weight: 400; padding-inline-end: .75rem; text-align: start; }
.ax-roi-ledger td:last-child { padding-inline-start: .75rem; text-align: end; white-space: nowrap; }
.ax-roi-ledger__bar { inline-size: 32%; }
.ax-roi-ledger__bar span { background: var(--ax-ink); block-size: .45rem; border-radius: 1px; display: block; max-inline-size: 100%; min-inline-size: 1px; }
.ax-roi-ledger__row.is-negative .ax-roi-ledger__bar span { background: repeating-linear-gradient(-45deg, var(--ax-danger) 0 3px, transparent 3px 5px); outline: 1px solid var(--ax-danger); outline-offset: -1px; }
.ax-roi-ledger__row--total th, .ax-roi-ledger__row--total td { border-top: 2px solid var(--ax-ink); font-weight: 700; }
.ax-roi-ledger__row--total .ax-roi-ledger__bar span { background: var(--ax-signal); }
.ax-roi-ledger__row--total.is-negative .ax-roi-ledger__bar span { background: repeating-linear-gradient(-45deg, var(--ax-danger) 0 3px, transparent 3px 5px); }

.ax-roi-line { border-top: 1px solid var(--ax-rule); font-size: .9375rem; line-height: 1.45; margin: 0; padding-block: .6rem; }
.ax-roi-line:empty { display: none; }
.ax-roi-line--downside { border-inline-start: 3px solid var(--ax-steel); margin-top: .9rem; padding-inline-start: .7rem; }
.ax-roi-line--missing { color: var(--ax-warn); font-size: .875rem; }
.ax-roi-sheet .ax-tool__warnings { margin-top: .75rem; }
.ax-roi-sheet__actions { align-items: center; border-top: 1px solid var(--ax-rule); display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; justify-content: space-between; margin-top: .2rem; padding-top: .8rem; }
.ax-roi-sheet__more { font-weight: 700; text-decoration-color: var(--ax-signal); text-decoration-thickness: 2px; text-underline-offset: .2em; }

/* Detailed business case */
.ax-roi-detail { border-top: 2px solid var(--ax-ink); padding-top: 1rem; transition: opacity var(--ax-normal) var(--ax-ease); }
.ax-roi-detail.is-stale { opacity: .45; }
.ax-roi-detail__title { font-size: clamp(1.6rem, 3vw, 2.3rem); margin: 0 0 1rem; scroll-margin-top: calc(var(--ax-header-h, 0px) + 1rem); }
.ax-roi-detail__title:focus { outline: none; }
.ax-roi-detail__grid { align-items: start; display: grid; gap: 1.75rem clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); }
.ax-roi-block { min-width: 0; }
.ax-roi-block__title { font-family: var(--ax-sans); font-size: 1rem; margin: 0; }
.ax-roi-block .ax-tool__table { margin-top: .5rem; }
.ax-roi-block .ax-tool__table th { inline-size: 55%; padding-inline-end: 1rem; }
.ax-roi-block .ax-tool__table td { white-space: normal; }
.ax-roi-block .ax-tool__table--compare th { inline-size: auto; }
.ax-roi-block .ax-tool__table--compare td { white-space: nowrap; }
.ax-roi-block--stress .ax-tool-field { margin-top: .6rem; max-inline-size: 9rem; }
.ax-roi-complete { list-style: none; margin: .5rem 0 0; padding: 0; }
.ax-roi-complete__item { border-top: 1px solid var(--ax-rule); display: flex; flex-wrap: wrap; font-size: .9375rem; gap: .25rem 1rem; justify-content: space-between; padding-block: .45rem; }
.ax-roi-complete__status { font-weight: 700; text-align: end; }
.ax-roi-complete__item.is-not_supplied .ax-roi-complete__status { color: var(--ax-warn); }
.ax-roi-complete__item.is-excluded .ax-roi-complete__status, .ax-roi-complete__item.is-not_monetized .ax-roi-complete__status { color: var(--ax-ink-soft); }
.ax-roi-complete__item.is-included .ax-roi-complete__status, .ax-roi-complete__item.is-supplied .ax-roi-complete__status { color: var(--ax-good); }
.ax-roi-handoff { display: grid; gap: 1.5rem clamp(1.5rem, 4vw, 3.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); margin-top: 2rem; }
.ax-roi-handoff .ax-tool__summary { margin-top: 0; }
.ax-roi-handoff .ax-tool__next { border-top: 2px solid var(--ax-ink); padding-top: 1rem; }
.ax-roi-handoff .ax-tool__subhead { margin-top: 0; }
.ax-roi-disclaimer { color: var(--ax-ink-soft); font-size: .8125rem; line-height: 1.5; margin: 1.5rem 0 0; max-inline-size: 52rem; }
.ax-roi-print-only { display: none; }

@media (max-width: 56rem) {
    .ax-roi__workspace { grid-template-areas: "quick" "sheet" "accuracy" "acquisition"; grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
    .ax-roi-sheet { grid-row: auto; }
    .ax-roi .ax-roi-sheet.is-sticky { position: static; }
}

@media (max-width: 30rem) {
    .ax-roi .ax-roi-sheet { padding-inline: .95rem; }
    .ax-roi-ledger__bar { inline-size: 22%; }
    .ax-roi-figures dd { font-size: 1.05rem; }
    .ax-roi-choice--status .ax-roi-choice__option { flex: 1 1 0; justify-content: center; padding-inline: .45rem; }
    .ax-roi-sheet__actions .ax-button { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .ax-roi-detail { transition: none; }
}

/* Print: the business-case handoff — sheet + detailed case, no controls. */
@media print {
    body:has(.ax-roi) :is(.ax-site-header, .ax-site-footer, .ax-consent, .ax-tool-doc, .ax-tool-head__up, .ax-tool-head__note, .skip-link) { display: none !important; }
    .ax-roi { padding: 0; }
    .ax-roi__app, .ax-roi__workspace { display: block; }
    .ax-roi-panel, .ax-roi .ax-tool__actions, .ax-roi .ax-tool__form-status, .ax-roi-sheet__actions, .ax-roi .ax-tool__summary, .ax-roi .ax-tool__next, .ax-roi-block--stress .ax-tool-field { display: none !important; }
    .ax-roi .ax-roi-sheet { border: 0; border-top: 2px solid #000; padding: .5rem 0 0; position: static; }
    .ax-roi-detail { border-top: 2px solid #000; margin-top: 1rem; }
    .ax-roi-detail__grid, .ax-roi-handoff { display: block; }
    .ax-roi-block { break-inside: avoid; margin-top: 1rem; }
    .ax-roi-print-only { display: block; font-size: .875rem; margin: 0 0 .5rem; }
    .ax-roi-ledger__bar span, .ax-roi-ledger__row--total .ax-roi-ledger__bar span { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .ax-roi .ax-tool__table td, .ax-roi-ledger td:last-child { white-space: normal; }
    .ax-tool-head { border: 0; padding-block: 0 .5rem; }
    .ax-tool-head h1 { font-size: 1.8rem; max-inline-size: none; }
    .ax-roi-disclaimer { color: #000; }
}
