/* AI Compare. Reads the host theme's design tokens (Interrobang: --ink, --line,
   --accent…) and falls back to neutral values, so it also reads correctly in
   Ariana's built-in shell. Light and dark follow the theme. */

.aic {
  --aic-bg: var(--bg, #fff);
  --aic-sunk: var(--bg-sunk, #f4f4f5);
  --aic-raise: var(--bg-raise, #fff);
  --aic-ink: var(--ink, #0b0c0f);
  --aic-text: var(--text-2, #3f3f46);
  --aic-muted: var(--muted, #63636e);
  --aic-line: var(--line, #e4e4e7);
  --aic-line-strong: var(--line-strong, #c9c9d0);
  --aic-accent: var(--accent, #d4145a);
  --aic-accent-text: var(--accent-text, #b3104b);
  --aic-accent-soft: var(--accent-soft, #fce8ef);
  --aic-on-accent: var(--on-accent, #fff);
  --aic-r: var(--r-md, 10px);
  --aic-r-lg: var(--r-lg, 14px);
  --aic-gap: var(--gap, 1.5rem);
  --aic-ease: var(--ease, cubic-bezier(.2, .7, .2, 1));
  --aic-fast: var(--t-fast, 140ms);
  --aic-yes: #0d6b3a;
  --aic-yes-bg: #e2f3e9;
  --aic-no: #55555f;
  --aic-no-bg: #ececef;
  --aic-unk: #8a4d00;
  --aic-unk-bg: #fcefd6;
  --aic-warn: #9a3412;
  --aic-warn-bg: #fde6da;
  color: var(--aic-text);
  font-family: var(--sans, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
  font-size: var(--fs-ui, 0.9375rem);
  line-height: 1.5;
  display: grid;
  gap: clamp(1.75rem, 1.2rem + 2vw, 3rem);
  min-width: 0;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .aic {
    --aic-yes: #7fe0a8; --aic-yes-bg: rgb(52 211 153 / .14);
    --aic-no: #b4b4bd; --aic-no-bg: rgb(255 255 255 / .08);
    --aic-unk: #f6c56b; --aic-unk-bg: rgb(245 158 11 / .15);
    --aic-warn: #fdab86; --aic-warn-bg: rgb(249 115 22 / .15);
  }
}
:root[data-theme="dark"] .aic {
  --aic-yes: #7fe0a8; --aic-yes-bg: rgb(52 211 153 / .14);
  --aic-no: #b4b4bd; --aic-no-bg: rgb(255 255 255 / .08);
  --aic-unk: #f6c56b; --aic-unk-bg: rgb(245 158 11 / .15);
  --aic-warn: #fdab86; --aic-warn-bg: rgb(249 115 22 / .15);
}

.aic *, .aic *::before, .aic *::after { box-sizing: border-box; }
.aic h2, .aic h3, .aic h4 { color: var(--aic-ink); margin: 0; line-height: 1.2; letter-spacing: -0.012em; }
.aic p, .aic ul, .aic ol, .aic dl { margin: 0; }
.aic a { color: var(--aic-ink); text-decoration: underline; text-decoration-color: var(--accent-line, var(--aic-line-strong)); text-underline-offset: .18em; }
.aic a:hover { color: var(--aic-accent-text); }
.aic :focus-visible { outline: 2px solid var(--aic-accent-text); outline-offset: 2px; }
.aic svg { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.sr-only { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.aic [hidden] { display: none !important; }

/* Local navigation and the data line */
.aic-subnav ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; padding: 0; }
.aic-subnav a {
  display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1rem;
  border: 1px solid var(--aic-line); border-radius: var(--r-pill, 999px);
  color: var(--aic-ink); font-weight: 600; text-decoration: none;
  transition: border-color var(--aic-fast) var(--aic-ease), background-color var(--aic-fast) var(--aic-ease);
}
.aic-subnav a:hover { border-color: var(--aic-ink); color: var(--aic-ink); }
.aic-subnav a[aria-current="page"] { background: var(--aic-ink); border-color: var(--aic-ink); color: var(--aic-bg); }
.aic-dataline { display: flex; flex-wrap: wrap; gap: .25rem 1rem; color: var(--aic-muted); font-size: var(--fs-meta, .8125rem); margin-top: -1rem; }
.aic-dataline span + span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin-right: 1rem; border-radius: 50%; background: currentColor; vertical-align: .2em; opacity: .6; }

/* The host theme may reset list markers; these lists keep theirs. */
.aic-prose ul, .aic-opt__part ul, .aic-cf ul, .aic-decision ul, .aic-remove ul, .aic-upcoming, .aic-notice ul, .aic-kitlinks, .aic-needs-js ul { list-style: disc; }
.aic-prose ol { list-style: decimal; }

/* Links that stand alone or sit in short lines get a 24 px tall target. */
.aic-dataline a, .aic-foot a, .aic-history__dl a, .aic-dir__link, .aic-cell__meta a, .aic-byline a, .aic-kitlinks a, .aic-method-note a, .aic-sidecard > p a, .aic-sidecard__more {
  display: inline-block; padding-block: .3rem; margin-block: -.3rem;
}

/* Buttons */
.aic-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 2.75rem; padding: 0 1.1rem; border: 1px solid var(--aic-ink); border-radius: var(--r-pill, 999px);
  background: var(--aic-ink); color: var(--aic-bg); font: inherit; font-weight: 650; line-height: 1.2; cursor: pointer; text-decoration: none;
  transition: background-color var(--aic-fast) var(--aic-ease), color var(--aic-fast) var(--aic-ease), border-color var(--aic-fast) var(--aic-ease);
}
.aic a.aic-btn { color: var(--aic-bg); text-decoration: none; }
.aic-btn:hover { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent); }
.aic-btn--primary { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent); }
.aic-btn--primary:hover { background: var(--aic-ink); border-color: var(--aic-ink); color: var(--aic-bg); }
.aic-btn--ghost, .aic a.aic-btn--ghost { background: transparent; color: var(--aic-ink); border-color: var(--aic-line-strong); }
.aic-btn--ghost:hover, .aic a.aic-btn--ghost:hover { background: var(--aic-sunk); color: var(--aic-ink); border-color: var(--aic-ink); }
.aic-btn--sm { min-height: 2.75rem; padding: 0 .9rem; font-size: .875rem; font-weight: 600; }
.aic-btn[aria-pressed="true"] { background: var(--aic-ink); color: var(--aic-bg); border-color: var(--aic-ink); }
.aic-icon-btn {
  display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; flex: none;
  border: 1px solid var(--aic-line); border-radius: 50%; background: transparent; color: var(--aic-text); cursor: pointer;
}
.aic-icon-btn:hover { border-color: var(--aic-ink); color: var(--aic-ink); }

/* Pills, badges, tags */
.aic-pill { display: inline-flex; align-items: center; min-height: 1.6rem; padding: 0 .6rem; border-radius: var(--r-pill, 999px); font-size: .8125rem; font-weight: 700; line-height: 1.2; }
.aic-pill--yes { color: var(--aic-yes); background: var(--aic-yes-bg); }
.aic-pill--no { color: var(--aic-no); background: var(--aic-no-bg); }
.aic-pill--unknown { color: var(--aic-unk); background: var(--aic-unk-bg); }
.aic-pill--warn { color: var(--aic-warn); background: var(--aic-warn-bg); }
.aic-badge { display: inline-flex; align-items: center; margin-inline-start: .5rem; padding: .1rem .5rem; border-radius: 4px; background: var(--aic-accent-soft); color: var(--aic-accent-text); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; vertical-align: .1em; }
.aic-badge--ok { background: var(--aic-yes-bg); color: var(--aic-yes); }
.aic-tag { display: inline-flex; margin-inline-start: .4rem; padding: .1rem .45rem; border: 1px solid var(--aic-line); border-radius: 4px; color: var(--aic-muted); font-size: .75rem; font-weight: 600; }
.aic-kind { display: block; margin-top: .3rem; font-size: .75rem; font-weight: 700; letter-spacing: .02em; }
.aic-kind--different { color: var(--aic-accent-text); }
.aic-kind--nuance { color: var(--aic-muted); }
.aic-kind--unverified { color: var(--aic-text); }

/* Notices and small text */
.aic-notice { padding: .9rem 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); background: var(--aic-sunk); color: var(--aic-text); }
.aic-notice--warn { border-color: color-mix(in oklab, var(--aic-unk) 35%, transparent); background: var(--aic-unk-bg); color: var(--aic-ink); }
.aic-notice ul { margin-top: .5rem; padding-left: 1.2rem; }
.aic-small, .aic-hint { color: var(--aic-muted); font-size: var(--fs-meta, .8125rem); }
.aic-empty { padding: clamp(2rem, 6vw, 4rem) 1.5rem; border: 1px dashed var(--aic-line-strong); border-radius: var(--r-xl, 20px); text-align: center; display: grid; gap: .6rem; justify-items: center; }
.aic-empty-line { color: var(--aic-muted); }
.aic-section-title { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-section-lede { margin-top: .4rem; color: var(--aic-muted); }

.aic-panel { display: grid; gap: 1rem; min-width: 0; }
.aic-panel__title { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-panel__lede { color: var(--aic-text); font-size: var(--fs-dek, 1.0625rem); }

/* Compare */
.aic-cmp { display: grid; gap: 1.25rem; min-width: 0; }
.aic-cmp__controls { display: grid; gap: 1rem; }
.aic-cmp__pickers { display: grid; gap: .75rem; align-items: end; }
@media (min-width: 48em) { .aic-cmp__pickers { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); } }
.aic-picker { margin: 0; padding: 0; border: 0; min-width: 0; }
.aic-picker__legend { padding: 0; margin-bottom: .4rem; color: var(--aic-ink); font-weight: 700; }
.aic-picker__fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: .5rem; }
.aic-cmp__filters { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.aic-cmp__prio { flex: 1 1 100%; }
.aic-cmp__prio > summary { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--aic-ink); font-weight: 600; cursor: pointer; }
.aic-cmp__prio[open] > summary { margin-bottom: .5rem; }
.aic-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.aic-cmp__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .75rem; border-top: 1px solid var(--aic-line); }
.aic-cmp__summary { color: var(--aic-ink); font-weight: 600; }

.aic-cmp__table { display: grid; gap: 1.25rem; min-width: 0; }
.aic-cmp__head { display: none; }
.aic-group { display: grid; min-width: 0; }
.aic-group__title { padding-bottom: .6rem; border-bottom: 2px solid var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-row { display: grid; gap: .6rem; padding: 1rem 0; border-bottom: 1px solid var(--aic-line); min-width: 0; }
.aic-row__label { color: var(--aic-ink); font-weight: 700; }
.aic-cell { display: grid; justify-items: start; align-content: start; gap: .35rem; min-width: 0; padding: .75rem .9rem; border-radius: var(--aic-r); background: var(--aic-sunk); }
.aic-cell__plan { color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.aic-cell__state { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.aic-cell__state .aic-tag { margin: 0; }
.aic-cell__value { color: var(--aic-ink); font-size: 1.0625rem; font-weight: 750; }
.aic-cell__alt { color: var(--aic-text); font-size: .875rem; }
.aic-cell__detail { color: var(--aic-text); overflow-wrap: anywhere; }
.aic-cell__meta { color: var(--aic-muted); font-size: .8125rem; }
@media (min-width: 48em) {
  .aic-cmp__head {
    display: grid; grid-template-columns: minmax(9rem, 2.2fr) minmax(0, 4fr) minmax(0, 4fr); gap: 1rem;
    color: var(--aic-ink); font-weight: 750; font-size: 1.0625rem;
  }
  .aic-row { grid-template-columns: minmax(9rem, 2.2fr) minmax(0, 4fr) minmax(0, 4fr); gap: 1rem; padding: .9rem 0; }
  .aic-cell { padding: 0; background: none; }
  .aic-cell__plan { display: none; }
}
@media (min-width: 48em) {
  .aic-cmp__head { position: sticky; top: var(--mast-h, 4rem); z-index: 2; padding: .7rem 0; background: var(--aic-bg); border-bottom: 1px solid var(--aic-line); transition: top var(--t, 220ms) var(--aic-ease); }
  :root:has(.masthead.is-hidden) .aic-cmp__head { top: 0; }
}
.aic-row[data-kind="different"] .aic-row__label::before {
  content: ""; display: inline-block; width: .5rem; height: .5rem; margin-right: .5rem; border-radius: 50%; background: var(--aic-accent); vertical-align: .1em;
}

/* Switch */
.aic-switch { display: inline-flex; align-items: center; gap: .6rem; min-height: 2.75rem; }
.aic-switch__input { appearance: none; position: relative; width: 2.6rem; height: 1.5rem; margin: 0; border-radius: 999px; background: var(--aic-line-strong); cursor: pointer; transition: background-color var(--aic-fast) var(--aic-ease); flex: none; }
.aic-switch__input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgb(0 0 0 / .2); transition: transform var(--aic-fast) var(--aic-ease); }
.aic-switch__input:checked { background: var(--aic-accent); }
.aic-switch__input:checked::after { transform: translateX(1.1rem); }
.aic-switch label { color: var(--aic-ink); font-weight: 600; cursor: pointer; }

/* Forms */
.aic-form { display: grid; gap: 1.5rem; }
.aic-fieldset { display: grid; gap: .6rem; margin: 0; padding: 0; border: 0; min-width: 0; }
.aic-fieldset > legend { padding: 0; margin-bottom: .2rem; color: var(--aic-ink); font-weight: 750; font-size: 1.0625rem; }
.aic-field { display: grid; gap: .3rem; min-width: 0; }
.aic-field > label { color: var(--aic-ink); font-weight: 600; font-size: .875rem; }
.aic-field--inline { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .75rem; }
.aic-field--inline > label { flex: 0 0 100%; }
.aic-field--inline > .aic-input { width: 12rem; max-width: 100%; }
.aic-select, .aic-input {
  width: 100%; min-height: 2.75rem; padding: .5rem .75rem; border: 1px solid var(--aic-line-strong); border-radius: var(--r-sm, 8px);
  background: var(--aic-bg); color: var(--aic-ink); font: inherit; font-size: 1rem;
}
.aic-select { padding-right: 2rem; }
.aic-input[aria-invalid="true"], .aic-select[aria-invalid="true"] { border-color: var(--aic-accent); box-shadow: 0 0 0 1px var(--aic-accent); }
.aic-input--money { width: 7rem; }
.aic-money { display: inline-flex; align-items: center; gap: .35rem; color: var(--aic-ink); font-weight: 600; }
.aic-money > span { color: var(--aic-muted); font-weight: 500; }
.aic-error { color: var(--aic-accent-text); font-weight: 650; font-size: .875rem; }
.aic-checkgrid { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.aic-check-item { position: relative; display: flex; align-items: flex-start; gap: .65rem; min-height: 2.75rem; padding: .7rem .85rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); background: var(--aic-bg); }
.aic-check-item:has(input:checked) { border-color: var(--aic-ink); background: var(--aic-sunk); }
.aic-check-item--line { padding: .25rem 0; border: 0; background: none; align-items: center; }
.aic-check-item--line:has(input:checked) { background: none; }
.aic-check-item input, .aic-radio input { width: 1.5rem; height: 1.5rem; margin: 0; flex: none; accent-color: var(--aic-accent); }
.aic-check-item label { display: grid; gap: .15rem; color: var(--aic-ink); font-weight: 600; cursor: pointer; }
.aic-check-item:not(.aic-check-item--line) label::after { content: ""; position: absolute; inset: 0; }
.aic-check-item label small { color: var(--aic-muted); font-weight: 500; font-size: .8125rem; }
.aic-radios { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.aic-radio { display: inline-flex; align-items: center; gap: .5rem; min-height: 2.75rem; color: var(--aic-ink); font-weight: 600; }
.aic-radio input { margin: 0; }
.aic-radio--amount { flex-wrap: wrap; }
.aic-radios--tight { gap: .25rem 1rem; }
.aic-more { border-top: 1px solid var(--aic-line); padding-top: .75rem; }
.aic-more > summary { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--aic-ink); font-weight: 700; cursor: pointer; }
.aic-more[open] > summary { margin-bottom: 1rem; }
.aic-more > .aic-fieldset + .aic-fieldset, .aic-more > .aic-fieldset + .aic-check-item { margin-top: 1.25rem; }
.aic-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.aic-grid2 { display: grid; gap: .75rem 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }

/* Results */
.aic-results { display: grid; gap: 1.25rem; }
.aic-results:focus { outline: none; }
.aic-results:empty { display: none; }
.aic-results__head { display: grid; gap: .25rem; padding-top: 1.5rem; border-top: 2px solid var(--aic-ink); }
.aic-results__head h3 { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-current { display: grid; gap: .4rem; padding: 1rem 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); }
.aic-opts { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); align-items: start; }
.aic-opt { display: grid; gap: .75rem; padding: 1.25rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); background: var(--aic-bg); min-width: 0; }
.aic-opt--confirmed:first-child { border-color: var(--aic-ink); box-shadow: inset 0 3px 0 var(--aic-accent); }
.aic-opt__role { color: var(--aic-accent-text); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.aic-opt__title { font-size: 1.25rem; font-weight: 780; }
.aic-opt__cost { color: var(--aic-ink); font-weight: 650; }
.aic-opt__part { display: grid; gap: .35rem; padding-top: .75rem; border-top: 1px solid var(--aic-line); }
.aic-opt__part h4 { font-size: .8125rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: var(--aic-muted); }
.aic-opt__part ul, .aic-cf ul, .aic-decision ul, .aic-remove ul, .aic-upcoming { display: grid; gap: .3rem; padding-left: 1.1rem; }
.aic-opt__part--warn h4 { color: var(--aic-unk); }
.aic-cf { display: grid; gap: .5rem; padding: 1rem 1.1rem; border-radius: var(--aic-r); background: var(--aic-sunk); }
.aic-results__actions { display: flex; flex-wrap: wrap; gap: .5rem; }

/* Subscriptions */
.aic-add { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.aic-add .aic-field { flex: 1 1 16rem; max-width: 26rem; }
.aic-ledger { display: grid; gap: .75rem; }
.aic-entry { display: grid; gap: .9rem; padding: 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); min-width: 0; }
.aic-entry__head { display: flex; align-items: center; gap: .75rem; }
.aic-entry__head h4 { flex: 1; font-size: 1.0625rem; font-weight: 750; }
.aic-entry__price { color: var(--aic-text); font-weight: 600; }
.aic-entry__fields { display: grid; gap: .75rem 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12.5rem), 1fr)); align-items: end; }
.aic-entry__used { display: grid; gap: .4rem; }
.aic-entry__used-label { color: var(--aic-ink); font-weight: 600; font-size: .875rem; }
.aic-totals, .aic-removal, .aic-smallest { display: grid; gap: .75rem; }
.aic-totals h3, .aic-removal h3, .aic-smallest h3 { font-size: 1.25rem; font-weight: 780; }
.aic-stats { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr)); }
.aic-stats > div { padding: .9rem 1rem; border-radius: var(--aic-r); background: var(--aic-sunk); }
.aic-stats dt { color: var(--aic-muted); font-size: .8125rem; font-weight: 600; }
.aic-stats dd { margin: .15rem 0 0; color: var(--aic-ink); font-size: 1.5rem; font-weight: 780; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.aic-remove-list { display: grid; gap: .75rem; list-style: none; padding: 0; }
.aic-remove { display: grid; gap: .4rem; padding: 1rem 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); }
.aic-remove--loses { border-color: color-mix(in oklab, var(--aic-unk) 45%, var(--aic-line)); }
.aic-remove h4 { font-size: 1rem; font-weight: 750; }

/* Directory of plans */
.aic-directory { display: grid; gap: 1rem; padding-top: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-top: 1px solid var(--aic-line); }
.aic-dir { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.aic-dir__product { display: grid; gap: .75rem; align-content: start; padding: 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); }
.aic-dir__name { display: grid; font-size: 1.125rem; font-weight: 780; }
.aic-dir__name span { color: var(--aic-muted); font-size: .8125rem; font-weight: 600; letter-spacing: 0; }
.aic-dir__plans { display: grid; list-style: none; padding: 0; }
.aic-dir__plans li { display: flex; justify-content: space-between; gap: .75rem; padding: .5rem 0; border-top: 1px solid var(--aic-line); }
.aic-dir__plan { color: var(--aic-ink); font-weight: 600; }
.aic-dir__price { display: grid; justify-items: end; color: var(--aic-ink); font-variant-numeric: tabular-nums; text-align: end; }
.aic-dir__price small { color: var(--aic-muted); font-size: .75rem; }
.aic-dir__link { justify-self: start; font-weight: 600; }

/* Passport */
.aic-passport { display: grid; gap: 1rem; padding-top: clamp(1.5rem, 1rem + 2vw, 2.5rem); border-top: 1px solid var(--aic-line); scroll-margin-top: calc(var(--mast-h, 4rem) + 1rem); }
.aic-passport > div { display: grid; gap: .75rem; }
.aic-decision { display: grid; gap: .6rem; padding: 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); }
.aic-decision h3 { font-size: 1.0625rem; font-weight: 750; }
.aic-decision__actions, .aic-passport__tools { display: flex; flex-wrap: wrap; gap: .5rem; }
.aic-decision__diff:empty { display: none; }
.aic-decision__diff { display: grid; gap: .5rem; }

/* Article and pair pages */
.aic-article { display: grid; gap: 1.25rem; min-width: 0; }
.aic-byline { display: flex; flex-wrap: wrap; gap: .25rem 1rem; color: var(--aic-muted); font-size: var(--fs-meta, .8125rem); }
.aic-scope { padding: .9rem 1.1rem; border-left: 3px solid var(--aic-accent); background: var(--aic-sunk); border-radius: 0 var(--aic-r) var(--aic-r) 0; color: var(--aic-ink); }
.aic-verdict { display: grid; gap: .6rem; padding: 1.25rem; border: 1px solid var(--aic-ink); border-radius: var(--aic-r-lg); }
.aic-verdict h2 { font-size: 1.25rem; font-weight: 780; }
.aic-prose { color: var(--text, var(--aic-text)); font-family: var(--serif, Georgia, serif); font-size: var(--fs-body, 1.125rem); line-height: 1.65; }
.aic .aic-prose > * + * { margin-top: 1em; }
.aic .aic-prose h2 { margin-top: 1.8em; font-family: var(--sans, system-ui); font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic .aic-prose h3 { margin-top: 1.4em; font-family: var(--sans, system-ui); font-size: 1.1875rem; font-weight: 750; }
.aic .aic-prose ul, .aic .aic-prose ol { display: grid; gap: .45em; padding-left: 1.3em; }
.aic-prose strong { color: var(--aic-ink); }
.aic-panel--flat { padding-top: 1.5rem; border-top: 1px solid var(--aic-line); }
.aic-scenarios { display: grid; gap: 1rem; margin-top: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.aic-scenario { display: grid; gap: .4rem; padding: 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); }
.aic-scenario h3 { font-size: 1.0625rem; font-weight: 750; }
.aic-article section { display: grid; gap: .75rem; }
.aic-article section > h2 { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-kitlinks { display: grid; gap: .4rem; padding-left: 1.1rem; }
.aic-faq { display: grid; border-top: 1px solid var(--aic-line); }
.aic-faq details { border-bottom: 1px solid var(--aic-line); }
.aic-faq summary { display: flex; align-items: center; min-height: 3rem; padding: .5rem 0; color: var(--aic-ink); font-weight: 700; cursor: pointer; }
.aic-faq details p { padding-bottom: 1rem; }
.aic-method-note { color: var(--aic-muted); font-size: .875rem; }

/* Test kits */
.aic-kits { display: grid; gap: 1rem; list-style: none; padding: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); }
.aic-kitcard { display: grid; gap: .5rem; align-content: start; padding: 1.25rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); position: relative; transition: border-color var(--aic-fast) var(--aic-ease); }
.aic-kitcard:hover { border-color: var(--aic-ink); }
.aic-kitcard__title { font-size: 1.1875rem; font-weight: 780; }
.aic-kitcard__title a { text-decoration: none; }
.aic-kitcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.aic-kitcard__meta { color: var(--aic-muted); font-size: .8125rem; }
.aic-kit { display: grid; gap: clamp(1.5rem, 1rem + 2vw, 2.5rem); }
.aic-kit__steps, .aic-kit__score { display: grid; gap: 1rem; min-width: 0; }
.aic-kit h2 { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-steps { display: grid; gap: 1rem; padding-left: 1.4rem; list-style: decimal; }
.aic-steps > li { padding-left: .25rem; }
.aic-steps > li::marker { color: var(--aic-accent-text); font-weight: 800; }
.aic-files { display: grid; gap: .6rem; margin-top: .6rem; list-style: none; padding: 0; }
.aic-files li { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
.aic-files__meta { color: var(--aic-muted); font-size: .8125rem; }
.aic-files code, .aic-cite code { font-family: var(--mono, ui-monospace, monospace); font-size: .8125rem; }
.aic-prompt { display: grid; gap: .6rem; justify-items: start; margin-top: .6rem; padding: 1rem 1.1rem; border-radius: var(--aic-r); background: var(--aic-sunk); }
.aic-prompt p { color: var(--aic-ink); font-family: var(--mono, ui-monospace, monospace); font-size: .875rem; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.aic-kit__note { color: var(--aic-muted); }
.aic-checks { display: grid; list-style: none; padding: 0; border-top: 1px solid var(--aic-line); }
.aic-check { display: grid; gap: .5rem; padding: .9rem 0; border-bottom: 1px solid var(--aic-line); }
.aic-check__label { color: var(--aic-ink); font-weight: 650; }
.aic-check__controls { display: grid; gap: .4rem; }
.aic-check__result { font-weight: 650; font-size: .875rem; }
.aic-check__result.is-ok { color: var(--aic-yes); }
.aic-check__result.is-bad { color: var(--aic-accent-text); }
.aic-score { margin-top: .5rem; }
.aic-scores { display: grid; gap: .75rem; margin-top: 1.5rem; }
.aic-scorelist { display: grid; gap: .5rem; list-style: none; padding: 0; }
.aic-scoreitem { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .25rem 1rem; align-items: center; padding: .8rem 1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); }
.aic-scoreitem > :not(button) { grid-column: 1; }
.aic-scoreitem > button { grid-column: 2; grid-row: 1 / span 3; }
.aic-scoreitem.is-bad { border-color: color-mix(in oklab, var(--aic-accent) 40%, var(--aic-line)); }
.aic-reference { padding: 1rem 1.1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); }
.aic-reference summary { min-height: 2.75rem; display: flex; align-items: center; color: var(--aic-ink); font-weight: 700; cursor: pointer; }
.aic-reference p { margin-top: .5rem; }
.aic-kit__license { color: var(--aic-muted); font-size: .8125rem; }

/* Data and changes */
.aic-data { display: grid; gap: clamp(1.75rem, 1.2rem + 2vw, 3rem); }
.aic-card { display: grid; gap: .9rem; padding: clamp(1.1rem, 1rem + 1vw, 1.75rem); border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); }
.aic-card h2 { font-size: var(--fs-h2, 1.5rem); font-weight: 780; }
.aic-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.aic-cite { padding: .75rem 1rem; border-radius: var(--aic-r); background: var(--aic-sunk); overflow-wrap: anywhere; }
.aic-history, .aic-changes { display: grid; list-style: none; padding: 0; border-top: 1px solid var(--aic-line); margin-top: .75rem; }
.aic-history li, .aic-change { display: grid; gap: .25rem; padding: .9rem 0; border-bottom: 1px solid var(--aic-line); }
.aic-history__v { color: var(--aic-ink); font-weight: 750; font-variant-numeric: tabular-nums; }
.aic-history__d, .aic-history__dl { color: var(--aic-muted); font-size: .875rem; }
.aic-change__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; color: var(--aic-muted); font-size: .8125rem; }
.aic-change__meta .aic-badge { margin: 0; }
.aic-change__title { color: var(--aic-ink); font-weight: 650; }
.aic-change__values { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; font-size: .9375rem; }
.aic-change__before { color: var(--aic-muted); text-decoration: line-through; }
.aic-change__after { color: var(--aic-ink); font-weight: 600; }
.aic-change--correction .aic-badge { background: var(--aic-unk-bg); color: var(--aic-unk); }

/* ==========================================================================
   The site grid: the same 12 columns as every page of the theme. Reading
   content sits on columns 1-8, a sticky side card on 9-12 (like the
   article's "In this story"). Short ledes and the footer note end on the
   column-8 line too, so no text block has a width of its own.
   ========================================================================== */
.aic { --aic-col8: calc((100% - 11 * var(--gap, 2rem)) / 12 * 8 + 7 * var(--gap, 2rem)); }
.aic-layout { display: grid; gap: clamp(2rem, 1.5rem + 2vw, 3rem); min-width: 0; }
.aic-main { display: grid; gap: clamp(1.75rem, 1.2rem + 2vw, 3rem); align-content: start; min-width: 0; }
.aic-side { display: grid; gap: 1rem; align-content: start; min-width: 0; }
@media (min-width: 64em) {
  .aic-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap, 2rem); align-items: start; }
  .aic-main { grid-column: 1 / span 8; }
  .aic-side { grid-column: 9 / span 4; position: sticky; top: calc(var(--mast-h, 4rem) + 1.5rem); }
  :root:has(.masthead.is-hidden) .aic-side { top: 1.5rem; }
  .aic > .aic-foot, .aic-panel__lede, .aic-section-lede, .aic > .aic-notice { max-width: var(--aic-col8); }
}
.aic-sidecard { display: grid; gap: .9rem; padding: 1.25rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); background: var(--aic-bg); min-width: 0; }
.aic-sidecard > p:not(.aic-sidecard__title) { color: var(--aic-text); }
.aic-sidecard__title { display: flex; align-items: center; gap: .5rem; padding-bottom: .9rem; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-sidelinks { display: grid; gap: 2px; margin: 0 -.75rem; padding: 0; list-style: none; }
.aic .aic-sidelinks a { display: block; padding: .5rem .75rem; border-radius: var(--r-sm, 8px); color: var(--aic-text); font-size: .9375rem; font-weight: 560; line-height: 1.4; text-decoration: none; transition: background-color var(--aic-fast) var(--aic-ease), color var(--aic-fast) var(--aic-ease); }
.aic .aic-sidelinks a:hover { background: var(--aic-sunk); color: var(--aic-ink); }
.aic-sidesteps { display: grid; gap: .5rem; padding-left: 1.2rem; list-style: decimal; color: var(--aic-text); }
.aic-sidesteps li::marker { color: var(--aic-accent-text); font-weight: 800; }
.aic-sidefiles { display: grid; gap: .5rem; padding: 0; list-style: none; }
.aic-btn--block { width: 100%; }
.aic-sidefiles .aic-btn { justify-content: flex-start; overflow-wrap: anywhere; text-align: start; }
.aic .aic-sidecard__more { justify-self: start; font-weight: 600; }
.aic-glance { display: grid; gap: .75rem; }
.aic-glance > div { display: grid; gap: .1rem; padding: .75rem .9rem; border-radius: var(--aic-r); background: var(--aic-sunk); }
.aic-glance dt { color: var(--aic-muted); font-size: .8125rem; font-weight: 650; }
.aic-glance dd { margin: 0; color: var(--aic-ink); font-size: 1.125rem; font-weight: 780; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.aic-glance dd span { display: block; color: var(--aic-muted); font-size: .8125rem; font-weight: 500; letter-spacing: 0; }

/* Footer of the tool */
.aic-foot { display: grid; gap: .4rem; padding-top: 1.25rem; border-top: 1px solid var(--aic-line); color: var(--aic-muted); font-size: .875rem; }
.aic-live:empty { display: none; }
.aic-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

@media (prefers-reduced-motion: reduce) {
  .aic *, .aic *::before, .aic *::after { transition: none !important; }
}

/* Print: a saved decision prints on its own; any page prints without the controls. */
.aic-print { display: none; }
@media print {
  html.aic-printing body > *:not(.aic-print) { display: none !important; }
  html.aic-printing .aic-print { display: block; color: #000; font: 11pt/1.5 Georgia, serif; }
  .aic-print h1 { font: 700 18pt/1.2 Arial, sans-serif; margin: 0 0 6pt; }
  .aic-print h2 { font: 700 12pt/1.3 Arial, sans-serif; margin: 14pt 0 4pt; }
  .aic-print__brand { font: 600 9pt Arial, sans-serif; text-transform: uppercase; letter-spacing: .08em; }
  .aic-print ul { padding-left: 14pt; }
  .aic-subnav, .aic-cmp__controls, .aic-passport, .aic-form, .aic-btn, .aic-icon-btn { display: none !important; }
  .aic-row { break-inside: avoid; }
  .aic a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8pt; color: #444; }
}

/* Tool containers */
[data-aic-subs] { display: grid; gap: 1.25rem; min-width: 0; }

@media (max-width: 34.99em) {
  .aic-dataline { flex-direction: column; gap: .15rem; }
  .aic-dataline span + span::before { display: none; }
}


/* ==========================================================================
   1.3 design: "Find my AI" and the hub.
   One rule for shapes: actions are pills (the theme's buttons and chips);
   everything that holds data (cards, tables, matrices, marks) is square,
   ruled in ink. One accent: the site's pink marks what the reader chose and
   the option that leads; documented / not offered / not verified are told
   apart by shape (filled, outlined, hatched), never by colour alone.
   Figures use Mona Sans' wide axis and tabular numerals.
   ========================================================================== */
.aic {
  --aic-r: 0px;
  --aic-r-lg: 0px;
  --aic-rule: 2px solid var(--aic-ink);
  --aic-hatch: repeating-linear-gradient(-45deg, var(--aic-muted) 0 1.25px, transparent 1.25px 4px);
  --aic-mid: color-mix(in oklab, var(--aic-ink) 62%, var(--aic-bg));
  --aic-low: color-mix(in oklab, var(--aic-ink) 30%, var(--aic-bg));
  --aic-wide: 112%;
}
.aic-select, .aic-input { border-radius: 0; }
.aic-cell, .aic-notice, .aic-entry, .aic-decision, .aic-remove, .aic-stats > div, .aic-glance > div, .aic-sidecard, .aic-dir__product, .aic-kitcard, .aic-card, .aic-opt, .aic-current, .aic-cf { border-radius: 0; }

/* States as marks: filled = documented, outlined = documented as not offered, hatched = not verified. */
.aic-mark { display: inline-block; width: .875rem; height: .875rem; flex: none; vertical-align: -.12em; }
.aic-mark--yes { background: var(--aic-ink); }
.aic-mark--no { box-shadow: inset 0 0 0 1.5px var(--aic-line-strong); }
.aic-mark--unknown { background: var(--aic-hatch); box-shadow: inset 0 0 0 1px var(--aic-muted); }
.aic-pill { gap: .45rem; min-height: 1.5rem; padding: 0; border-radius: 0; background: none; font-size: .875rem; font-weight: 700; }
.aic-pill::before { content: ""; width: .8125rem; height: .8125rem; flex: none; }
.aic-pill--yes { color: var(--aic-ink); background: none; }
.aic-pill--yes::before { background: var(--aic-ink); }
.aic-pill--no { color: var(--aic-muted); background: none; }
.aic-pill--no::before { box-shadow: inset 0 0 0 1.5px var(--aic-line-strong); }
.aic-pill--unknown { color: var(--aic-text); background: none; }
.aic-pill--unknown::before { background: var(--aic-hatch); box-shadow: inset 0 0 0 1px var(--aic-muted); }
.aic-pill--warn { color: var(--aic-accent-text); background: none; }
.aic-pill--warn::before { background: var(--aic-accent); }
.aic-tag { border-radius: 0; }
@media (min-width: 48em) {
  .aic-cmp__head { position: sticky; top: var(--mast-h, 4rem); z-index: 2; padding: .7rem 0; background: var(--aic-bg); border-bottom: 1px solid var(--aic-line); transition: top var(--t, 220ms) var(--aic-ease); }
  :root:has(.masthead.is-hidden) .aic-cmp__head { top: 0; }
}
.aic-row[data-kind="different"] .aic-row__label::before { border-radius: 0; }
.aic-legend { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; color: var(--aic-muted); font-size: .8125rem; }
.aic-legend > span { display: inline-flex; align-items: center; gap: .45rem; }

/* Section heads shared by the hub */
.aic-section { display: grid; gap: clamp(1rem, .8rem + 1vw, 1.5rem); padding-top: clamp(1.75rem, 1.2rem + 2vw, 2.75rem); border-top: var(--aic-rule); min-width: 0; }
.aic-section__head { display: grid; gap: .35rem; }
.aic-section-title, .aic-stage__title, .aic-tool__title, .aic-j__title { font-stretch: 106%; letter-spacing: -0.018em; }
.aic-btn--lg { min-height: 3.25rem; padding: 0 1.6rem; font-size: 1.0625rem; }
.aic-btn svg { width: 1.15em; height: 1.15em; }

/* ------------------------------------------------------------- the hub -- */
.aic-hub { display: grid; gap: clamp(1.75rem, 1.2rem + 2vw, 3rem); min-width: 0; }
.aic-stage, .aic-tool { display: grid; gap: clamp(1.1rem, .9rem + 1vw, 1.75rem); min-width: 0; scroll-margin-top: calc(var(--mast-h, 4rem) + 1rem); }
.aic-stage__head, .aic-tool__head { display: grid; gap: .45rem; justify-items: start; }
.aic-stage__title, .aic-tool__title { font-size: clamp(1.5rem, 1.18rem + 1.4vw, 2.375rem); font-weight: 790; line-height: 1.08; }
.aic-stage__title:focus, .aic-tool__title:focus, .aic-j__title:focus { outline: none; }
.aic-stage__lede, .aic-tool__lede { color: var(--aic-text); font-family: var(--serif, Georgia, serif); font-size: var(--fs-dek, 1.0625rem); max-width: 46ch; }
.aic-hub:not(.is-live) .aic-tool { padding-top: 2rem; border-top: var(--aic-rule); }
.aic-back { display: inline-flex; align-items: center; gap: .4rem; min-height: 2.75rem; color: var(--aic-text); font-weight: 650; text-decoration: none; }
.aic .aic-back { text-decoration: none; }
.aic-back:hover { color: var(--aic-ink); }

/* The uses: one ruled grid of toggles. */
.aic-uses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: var(--aic-rule); border-left: 1px solid var(--aic-line); min-width: 0; }
@media (min-width: 48em) { .aic-uses { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aic-use {
  position: relative; display: grid; grid-template-rows: auto auto 1fr auto; align-content: start; gap: .45rem; min-width: 0; min-height: 10.5rem;
  margin: 0; padding: clamp(.9rem, .75rem + .6vw, 1.35rem); border: 0; border-right: 1px solid var(--aic-line); border-bottom: 1px solid var(--aic-line); border-radius: 0;
  background: var(--aic-bg); color: var(--aic-text); font: inherit; text-align: start; cursor: pointer;
  transition: background-color var(--aic-fast) var(--aic-ease), box-shadow var(--aic-fast) var(--aic-ease);
}
li.aic-use { cursor: default; }
button.aic-use:hover { background: var(--aic-sunk); }
button.aic-use:active { transform: translateY(1px); }
.aic-use[aria-pressed="true"] { z-index: 1; background: var(--aic-accent-soft); box-shadow: inset 0 0 0 2px var(--aic-accent); }
.aic-use[aria-pressed="true"]:hover { background: var(--aic-accent-soft); }
.aic-use:focus-visible { outline-offset: -4px; }
.aic-use__top { display: flex; align-items: flex-start; justify-content: space-between; gap: .5rem; }
.aic-use__icon { display: inline-grid; place-items: center; width: 2.75rem; height: 2.75rem; margin: -.35rem 0 .15rem -.35rem; color: var(--aic-ink); }
.aic-use__icon .aic-glyph, li.aic-use > .aic-use__icon .aic-glyph { width: 1.85rem; height: 1.85rem; stroke-width: 1.6; stroke-linecap: square; stroke-linejoin: miter; }
.aic-use[aria-pressed="true"] .aic-use__icon { color: var(--aic-accent-text); }
/* "Select" / "Selected": the card says what a click does. */
.aic-use__select { display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .65rem .3rem .4rem; border: 1px solid var(--aic-line-strong); border-radius: var(--r-pill, 999px); color: var(--aic-text); font-size: .8125rem; font-weight: 700; white-space: nowrap; transition: background-color var(--aic-fast) var(--aic-ease), border-color var(--aic-fast) var(--aic-ease), color var(--aic-fast) var(--aic-ease); }
button.aic-use:hover .aic-use__select { border-color: var(--aic-ink); color: var(--aic-ink); }
.aic-use__tick { display: inline-grid; place-items: center; width: 1.125rem; height: 1.125rem; border: 1.5px solid currentColor; border-radius: 50%; color: inherit; }
.aic-use__tick svg { width: .75rem; height: .75rem; stroke-width: 3; opacity: 0; transform: scale(.6); transition: opacity var(--aic-fast) var(--aic-ease), transform var(--aic-fast) var(--aic-ease); }
.aic-use[aria-pressed="true"] .aic-use__select { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent); }
.aic-use[aria-pressed="true"] .aic-use__tick { border-color: var(--aic-on-accent); }
.aic-use[aria-pressed="true"] .aic-use__tick svg { opacity: 1; transform: none; }
button.aic-use:hover { box-shadow: inset 0 0 0 1px var(--aic-ink); }
button.aic-use[aria-pressed="true"]:hover { box-shadow: inset 0 0 0 2px var(--aic-accent); }
.aic-use__name { color: var(--aic-ink); font-size: clamp(1.0625rem, .98rem + .4vw, 1.3125rem); font-weight: 760; font-stretch: 104%; line-height: 1.15; letter-spacing: -0.012em; }
.aic-use__examples { color: var(--aic-muted); font-size: .875rem; line-height: 1.4; }
.aic-use__meta { margin-top: .35rem; padding-top: .6rem; border-top: 1px solid var(--aic-line); color: var(--aic-muted); font-size: .8125rem; line-height: 1.35; }
.aic-use__meta b { color: var(--aic-ink); font-size: 1rem; font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; }
.aic-use[aria-pressed="true"] .aic-use__meta { border-top-color: var(--aic-accent-line, var(--aic-line)); }
@media (max-width: 29.99em) { .aic-use { min-height: 0; } .aic-use__examples { display: none; } }
.aic-uses--more { border-top-width: 1px; }
.aic-uses-tools { display: flex; justify-content: flex-start; margin-top: -.25rem; }
.aic-uses-more { display: grid; gap: .9rem; }
.aic-uses-more__title { font-size: 1rem; font-weight: 750; }
.aic-uses-more__planned { color: var(--aic-muted); font-size: .875rem; max-width: var(--aic-col8, 60rem); }
.aic-uses-more__planned strong { color: var(--aic-ink); }
.aic-hub.is-live .aic-uses-more__title { display: none; }
.aic-usesbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: 1rem 1.15rem; border: 1px solid var(--aic-line); background: var(--aic-sunk); }
.aic-usesbar__info { display: grid; gap: .2rem; flex: 1 1 20rem; min-width: 0; }
.aic-usesbar__count { color: var(--aic-text); font-weight: 600; }
.aic-usesbar__count strong { color: var(--aic-ink); font-weight: 800; }
.aic-usesbar__hint { color: var(--aic-muted); font-size: .8125rem; }
.aic-usesbar .aic-btn[aria-disabled="true"] { background: var(--aic-line-strong); border-color: var(--aic-line-strong); color: var(--aic-text); cursor: not-allowed; }
.aic-usesbar .aic-btn[aria-disabled="true"]:hover { background: var(--aic-line-strong); border-color: var(--aic-line-strong); color: var(--aic-text); }

/* How it works, in three steps, above the cards */
.aic-how { display: grid; gap: 0; margin: 0 0 .75rem; padding: 0; list-style: none; border-top: var(--aic-rule); width: 100%; }
@media (min-width: 48em) { .aic-how { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aic-how__step { display: grid; grid-template-columns: 2rem minmax(0, 1fr); gap: .75rem; align-items: start; padding: .9rem 1rem .9rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-muted); }
@media (min-width: 48em) { .aic-how__step { border-bottom: 0; } .aic-how__step + .aic-how__step { padding-left: 1rem; border-left: 1px solid var(--aic-line); } }
.aic-how__n { display: grid; place-items: center; width: 2rem; height: 2rem; border: 1.5px solid var(--aic-line-strong); border-radius: 50%; color: var(--aic-text); font-weight: 800; font-variant-numeric: tabular-nums; }
.aic-how__step.is-now .aic-how__n { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent); }
.aic-how__text { display: grid; gap: .1rem; font-size: .875rem; }
.aic-how__text strong { color: var(--aic-ink); font-size: 1rem; font-weight: 750; }
@media (max-width: 47.99em) {
  .aic-usesbar.has-picks {
    position: sticky; bottom: 0; z-index: 4; margin-inline: calc(-1 * var(--gutter, 1rem)); padding: .7rem var(--gutter, 1rem) calc(.7rem + var(--safe-b, 0px));
    background: var(--bg-glass, var(--aic-bg)); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); border-top: 1px solid var(--aic-line);
  }
  .aic-usesbar .aic-btn--lg { flex: 1 1 auto; }
  /* Pinned to the bottom of the screen: one short line and the button, nothing that covers the cards. */
  .aic-usesbar.has-picks { flex-wrap: nowrap; gap: .75rem; border-width: 1px 0 0; }
  .aic-usesbar.has-picks .aic-usesbar__hint { display: none; }
  .aic-usesbar.has-picks .aic-usesbar__info { flex: 1 1 auto; }
  .aic-usesbar.has-picks .aic-usesbar__count { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; }
  .aic-usesbar.has-picks .aic-btn--lg { flex: 0 0 auto; min-height: 2.75rem; padding: 0 1.1rem; font-size: .9375rem; }
}
.aic-alt { display: grid; gap: .9rem; padding-top: 1.5rem; border-top: 1px solid var(--aic-line); }
.aic-alt__title { color: var(--aic-ink); font-size: 1.125rem; font-weight: 760; }
.aic-alt__list { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 48em) { .aic-alt__list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aic .aic-alt__card { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; gap: .85rem; align-items: center; height: 100%; padding: 1rem 1.1rem; border: 1px solid var(--aic-line-strong); color: var(--aic-text); text-decoration: none; transition: border-color var(--aic-fast) var(--aic-ease), background-color var(--aic-fast) var(--aic-ease); }
.aic .aic-alt__card:hover { border-color: var(--aic-ink); background: var(--aic-sunk); color: var(--aic-text); }
.aic-alt__icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--aic-line); color: var(--aic-ink); }
.aic-alt__icon .aic-glyph { width: 1.35rem; height: 1.35rem; stroke-width: 1.75; }
.aic-alt__text { display: grid; gap: .15rem; font-size: .875rem; line-height: 1.4; }
.aic-alt__text strong { color: var(--aic-ink); font-size: 1rem; font-weight: 750; }
.aic-alt__go { color: var(--aic-accent-text); transition: transform var(--aic-fast) var(--aic-ease); }
.aic .aic-alt__card:hover .aic-alt__go { transform: translateX(3px); }
.aic .aic-alt__link {
  display: inline-flex; align-items: center; gap: .55rem; min-height: 2.75rem; padding: 0 1rem 0 .85rem; border: 1px solid var(--aic-line-strong); border-radius: var(--r-pill, 999px);
  color: var(--aic-ink); font-weight: 650; text-decoration: none; transition: border-color var(--aic-fast) var(--aic-ease), background-color var(--aic-fast) var(--aic-ease);
}
.aic .aic-alt__link:hover { border-color: var(--aic-ink); background: var(--aic-sunk); color: var(--aic-ink); }
.aic-alt__link .aic-glyph { width: 1.25rem; height: 1.25rem; stroke-width: 1.75; }

/* ------------------------------------------------------- journey frame -- */
.aic-j { display: grid; gap: clamp(1.5rem, 1rem + 2vw, 2.5rem); min-width: 0; }
.aic-j__main { display: grid; gap: clamp(1.1rem, .9rem + .8vw, 1.6rem); align-content: start; min-width: 0; }
.aic-j__side { min-width: 0; }
.aic-j--uses .aic-j__side { display: none; }
@media (min-width: 64em) {
  .aic-j:not(.aic-j--uses) { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gap, 2rem); align-items: start; }
  .aic-j:not(.aic-j--uses) .aic-j__main { grid-column: 1 / span 8; }
  .aic-j__side { grid-column: 9 / span 4; position: sticky; top: calc(var(--mast-h, 4rem) + 1.5rem); }
  :root:has(.masthead.is-hidden) .aic-j__side { top: 1.5rem; }
}
.aic-j__head { display: grid; gap: .4rem; }
.aic-j__title { font-size: clamp(1.375rem, 1.12rem + 1.1vw, 2.125rem); font-weight: 790; line-height: 1.1; }
.aic-j__lede { color: var(--aic-text); font-family: var(--serif, Georgia, serif); font-size: var(--fs-dek, 1.0625rem); }
.aic-j__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; padding-top: 1.1rem; border-top: 1px solid var(--aic-line); }
.aic-j__nav-end { display: flex; flex-wrap: wrap; gap: .5rem; margin-inline-start: auto; }

/* Progress rail */
.aic-railwrap { display: grid; gap: .5rem; }
.aic-rail__count { color: var(--aic-ink); font-size: .8125rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.aic-rail { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3px; margin: 0; padding: 0; list-style: none; }
.aic-rail__item { min-width: 0; border-top: 3px solid var(--aic-line); }
.aic-rail__item.is-done, .aic-rail__item.is-here { border-top-color: var(--aic-ink); }
.aic-rail__item.is-here { border-top-color: var(--aic-accent); }
.aic-rail__link { display: flex; align-items: center; gap: .45rem; min-height: 2.5rem; padding-top: .35rem; color: var(--aic-muted); font-size: .8125rem; font-weight: 650; text-decoration: none; }
.aic .aic-rail__link { text-decoration: none; }
a.aic-rail__link { color: var(--aic-ink); }
a.aic-rail__link:hover .aic-rail__label { text-decoration: underline; }
.aic-rail__item.is-here .aic-rail__link { color: var(--aic-ink); }
.aic-rail__n { display: inline-grid; place-items: center; width: 1.375rem; height: 1.375rem; flex: none; border: 1.5px solid currentColor; font-size: .75rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.aic-rail__n svg { width: .85rem; height: .85rem; stroke-width: 2.6; }
.aic-rail__item.is-done .aic-rail__n { background: var(--aic-ink); border-color: var(--aic-ink); color: var(--aic-bg); }
.aic-rail__item.is-here .aic-rail__n { background: var(--aic-accent); border-color: var(--aic-accent); color: var(--aic-on-accent); }
.aic-rail__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 47.99em) { .aic-rail__label { display: none; } .aic-rail__link { justify-content: center; } }
@media (min-width: 48em) { .aic-rail__count { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } }

/* Ticks: checkbox rows */
.aic-tick { position: relative; min-width: 0; }
.aic-tick__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; top: 1.4rem; left: .6rem; pointer-events: none; }
.aic-tick__label { display: grid; grid-template-columns: 1.375rem minmax(0, 1fr); column-gap: .85rem; padding: .95rem 0; border-bottom: 1px solid var(--aic-line); cursor: pointer; }
.aic-tick--compact .aic-tick__label { padding: .7rem 0; }
.aic-tick__box { display: grid; place-items: center; width: 1.375rem; height: 1.375rem; margin-top: .05rem; border: 1.5px solid var(--aic-line-strong); color: var(--aic-bg); transition: background-color var(--aic-fast) var(--aic-ease), border-color var(--aic-fast) var(--aic-ease); }
.aic-tick__box svg { width: .95rem; height: .95rem; stroke-width: 2.6; opacity: 0; }
.aic-tick__input:checked + .aic-tick__label .aic-tick__box { background: var(--aic-ink); border-color: var(--aic-ink); }
.aic-tick__input:checked + .aic-tick__label .aic-tick__box svg { opacity: 1; }
.aic-tick__input:focus-visible + .aic-tick__label .aic-tick__box { outline: 2px solid var(--aic-accent-text); outline-offset: 2px; }
.aic-tick__label:hover .aic-tick__box { border-color: var(--aic-ink); }
.aic-tick__text { display: grid; gap: .2rem; min-width: 0; }
.aic-tick__title { color: var(--aic-ink); font-weight: 700; line-height: 1.3; }
.aic-tick__hint { color: var(--aic-text); font-size: .9375rem; }
.aic-tick--compact .aic-tick__hint { font-size: .8125rem; color: var(--aic-muted); }
.aic-tick__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; color: var(--aic-muted); font-size: .8125rem; }
.aic-badge-kit { display: inline-flex; padding: .05rem .4rem; border: 1px solid var(--aic-accent-line, var(--aic-line-strong)); color: var(--aic-accent-text); font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.aic-taskgroups { display: grid; gap: 1.75rem; }
.aic-taskgroup, .aic-reqgroup, .aic-paylist__group, .aic-usedfor__group { margin: 0; padding: 0; border: 0; min-width: 0; }
.aic .aic-taskgroup__legend, .aic .aic-reqgroup__legend, .aic .aic-fieldset__legend, .aic .aic-paylist__group > legend, .aic .aic-usedfor__group > legend {
  display: block; width: 100%; padding: 0 0 .55rem; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
}
@media (min-width: 48em) {
  .aic-taskgroup, .aic-reqgroup { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
  .aic-taskgroup > legend { grid-column: 1 / -1; }
}
.aic-taskgroup__note { grid-column: 1 / -1; padding-top: .7rem; color: var(--aic-muted); font-size: .8125rem; }
.aic-reqs { display: grid; gap: 1.5rem; }
.aic-reqs__essential { display: grid; gap: .2rem; padding: 1rem 1.1rem; border-left: 3px solid var(--aic-ink); background: var(--aic-sunk); }

/* Segmented control: three levels of importance */
.aic-seg { display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); border: 1px solid var(--aic-line-strong); background: var(--aic-bg); min-width: 0; }
.aic-seg__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.aic-seg__label {
  display: grid; place-items: center; min-height: 2.75rem; padding: .35rem .85rem; border-left: 1px solid var(--aic-line-strong);
  color: var(--aic-text); font-size: .875rem; font-weight: 650; line-height: 1.2; text-align: center; cursor: pointer; white-space: nowrap;
  transition: background-color var(--aic-fast) var(--aic-ease), color var(--aic-fast) var(--aic-ease);
}
.aic-seg__input:first-child + .aic-seg__label { border-left: 0; }
.aic-seg__label:hover { background: var(--aic-sunk); color: var(--aic-ink); }
.aic-seg__input:checked + .aic-seg__label { background: var(--aic-ink); color: var(--aic-bg); }
.aic-seg__input:checked + .aic-seg__label--essential { background: var(--aic-accent); color: var(--aic-on-accent); }
.aic-seg__input:focus-visible + .aic-seg__label { outline: 2px solid var(--aic-accent-text); outline-offset: -4px; }
.aic-seg__input:disabled + .aic-seg__label { cursor: not-allowed; opacity: .55; }
.aic-seg__short { display: none; }
@media (max-width: 35.99em) { .aic-seg__full { display: none; } .aic-seg__short { display: inline; } .aic-seg { display: grid; width: 100%; } }
.aic-seg--compact .aic-seg__label { min-height: 2.5rem; padding-inline: .6rem; font-size: .8125rem; }

.aic-prio { display: grid; border-top: var(--aic-rule); }
.aic-prio__row { display: grid; gap: .6rem 1.25rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--aic-line); }
@media (min-width: 36em) { .aic-prio__row { grid-template-columns: minmax(0, 1fr) auto; } }
.aic-prio__row:has(.aic-prio__pct) { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48em) { .aic-prio__row:has(.aic-prio__pct) { grid-template-columns: minmax(0, 1fr) auto auto; } }
.aic-prio__task { display: grid; gap: .1rem; min-width: 0; }
.aic-prio__cat { color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.aic-prio__name { color: var(--aic-ink); font-weight: 700; }
.aic-prio__pct { display: inline-flex; align-items: center; gap: .4rem; color: var(--aic-ink); font-weight: 650; }
.aic-prio__pct label { color: var(--aic-muted); font-size: .8125rem; }
.aic-input--pct { width: 5.25rem; text-align: end; font-variant-numeric: tabular-nums; }
.aic-prio__adv { margin-top: -.25rem; }
.aic-prio__bar { display: grid; gap: .6rem; }
.aic-prio__bar-label { color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-prio__note { padding: .75rem 1rem; border-left: 3px solid var(--aic-ink); background: var(--aic-sunk); color: var(--aic-text); font-size: .9375rem; }

/* Weight bar: one segment per task, as wide as its weight, as dark as its importance */
.aic-wbar { display: flex; gap: 2px; height: 2.5rem; min-width: 0; }
.aic-wbar--compact { height: .5rem; }
.aic-wbar__seg { display: flex; align-items: center; min-width: 3px; padding-inline: .55rem; overflow: hidden; background: var(--aic-low); color: var(--aic-ink); transition: flex-grow var(--t, 220ms) var(--aic-ease); }
.aic-wbar__seg--very { background: var(--aic-mid); color: var(--aic-bg); }
.aic-wbar__seg--essential { background: var(--aic-ink); color: var(--aic-bg); }
.aic-wbar__pct { font-size: .8125rem; font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; white-space: nowrap; }
.aic-wlegend { display: grid; gap: .1rem 1.5rem; margin: 0; padding: 0; list-style: none; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
.aic-wlegend__item { display: grid; grid-template-columns: .75rem minmax(0, 1fr) auto; align-items: center; gap: .55rem; padding: .35rem 0; border-bottom: 1px solid var(--aic-line); font-size: .875rem; }
.aic-wlegend__item b { color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; }
.aic-wlegend__sw { width: .75rem; height: .75rem; background: var(--aic-low); }
.aic-wlegend__item--very .aic-wlegend__sw { background: var(--aic-mid); }
.aic-wlegend__item--essential .aic-wlegend__sw { background: var(--aic-ink); }

/* Choices (radio rows) and money */
.aic-fieldset__legend { margin-bottom: .2rem; }
.aic-choice { display: grid; }
.aic-choice__item { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; border-bottom: 1px solid var(--aic-line); min-width: 0; }
.aic-choice__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.aic-choice__label { position: relative; display: grid; grid-template-columns: 1.375rem minmax(0, 1fr); column-gap: .85rem; align-items: start; padding: .8rem 0; flex: 1 1 13rem; cursor: pointer; min-width: 0; }
.aic-choice__label::before { content: ""; grid-row: 1 / span 2; width: 1.375rem; height: 1.375rem; border: 1.5px solid var(--aic-line-strong); border-radius: 50%; box-shadow: inset 0 0 0 4px var(--aic-bg); transition: background-color var(--aic-fast) var(--aic-ease); }
.aic-choice__label:hover::before { border-color: var(--aic-ink); }
.aic-choice__input:checked + .aic-choice__label::before { background: var(--aic-ink); border-color: var(--aic-ink); }
.aic-choice__input:focus-visible + .aic-choice__label::before { outline: 2px solid var(--aic-accent-text); outline-offset: 2px; }
.aic-choice__title { color: var(--aic-ink); font-weight: 700; }
.aic-choice__hint { grid-column: 2; color: var(--aic-muted); font-size: .875rem; }
@media (min-width: 48em) {
  .aic-choice--row { display: flex; flex-wrap: wrap; gap: 0 2rem; border-bottom: 1px solid var(--aic-line); }
  .aic-choice--row .aic-choice__item { border-bottom: 0; flex: 0 1 auto; }
  .aic-choice--row .aic-choice__label { flex: 0 1 auto; }
}
.aic-money .aic-input--money { width: 6.5rem; font-variant-numeric: tabular-nums; }
.aic-paying { display: grid; gap: 1rem; }
.aic-paying:empty { display: none; }
.aic-paylist { display: grid; gap: 1.25rem; max-height: 26rem; overflow-y: auto; padding-right: .25rem; overscroll-behavior: contain; }
@media (min-width: 48em) { .aic-paylist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; } }

/* One AI or a few */
.aic-setup { display: grid; gap: .75rem; }
@media (min-width: 48em) { .aic-setup { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-left: 1px solid var(--aic-line); border-top: var(--aic-rule); } }
.aic-setup__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.aic-setup__card { display: grid; gap: .45rem; align-content: start; min-height: 8.5rem; padding: 1.15rem; border: 1px solid var(--aic-line); background: var(--aic-bg); cursor: pointer; transition: background-color var(--aic-fast) var(--aic-ease); }
@media (min-width: 48em) { .aic-setup__card { border-width: 0 1px 1px 0; } }
.aic-setup__card:hover { background: var(--aic-sunk); }
.aic-setup__input:checked + .aic-setup__card { position: relative; z-index: 1; background: var(--aic-accent-soft); box-shadow: inset 0 0 0 2px var(--aic-accent); }
.aic-setup__input:focus-visible + .aic-setup__card { outline: 2px solid var(--aic-accent-text); outline-offset: -5px; }
.aic-setup__icon .aic-glyph { width: 2.25rem; height: 2.25rem; stroke-width: 1.5; stroke-linejoin: miter; color: var(--aic-ink); }
.aic-setup__input:checked + .aic-setup__card .aic-glyph { color: var(--aic-accent-text); }
.aic-setup__title { color: var(--aic-ink); font-size: 1.125rem; font-weight: 760; }
.aic-setup__hint { color: var(--aic-text); font-size: .9375rem; }
.aic-setup__remember { margin-top: -.25rem; }

/* Your needs (side card) */
.aic-needs { display: grid; gap: .75rem; padding: 1.15rem 1.2rem 1.25rem; border: 1px solid var(--aic-line); border-top: var(--aic-rule); background: var(--aic-bg); }
.aic-needs__title { color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-needs__list { display: grid; gap: 0; }
.aic-needs__row { display: grid; gap: .2rem; padding: .7rem 0; border-top: 1px solid var(--aic-line); }
.aic-needs__row dt { color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.aic-needs__row dd { position: relative; margin: 0; padding-right: 2.25rem; color: var(--aic-ink); font-size: .9375rem; font-weight: 600; }
.aic .aic-needs__edit { position: absolute; top: -1.6rem; right: -.4rem; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: var(--aic-muted); text-decoration: none; }
.aic .aic-needs__edit:hover { color: var(--aic-accent-text); }
.aic-needs__edit svg { width: 1rem; height: 1rem; }
.aic-needs__tasks { display: grid; gap: .35rem; margin: .15rem 0 0; padding: 0; list-style: none; }
.aic-needs__tasks li { display: grid; grid-template-columns: minmax(0, 1fr) 5.5rem; gap: .5rem; align-items: center; font-size: .875rem; font-weight: 600; }
.aic-needs__task { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aic-needs__w { display: grid; grid-template-columns: 1fr 2.4rem; align-items: center; gap: .4rem; color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; text-align: end; font-size: .8125rem; }
.aic-needs__wbar { height: .375rem; justify-self: start; background: var(--aic-low); }
.aic-needs__wbar--very { background: var(--aic-mid); }
.aic-needs__wbar--essential { background: var(--aic-ink); }
@media (max-width: 63.99em) {
  .aic-j:not(.aic-j--results) .aic-j__side { display: none; }
  .aic-needs { padding: .9rem 1rem; }
}
.aic-rsummary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .25rem 1rem; padding: .6rem 0; border-block: 1px solid var(--aic-line); color: var(--aic-ink); font-size: .875rem; font-weight: 650; }
.aic .aic-rsummary__edit { display: inline-flex; align-items: center; gap: .35rem; min-height: 2.5rem; color: var(--aic-accent-text); font-weight: 700; text-decoration: none; }
.aic-rsummary__edit svg { width: 1rem; height: 1rem; }
@media (min-width: 64em) { .aic-rsummary { display: none; } }

/* ------------------------------------------------------------- results -- */
.aic-scope { padding: .75rem 1rem; border-left: 3px solid var(--aic-ink); background: var(--aic-sunk); color: var(--aic-text); font-size: .9375rem; }
.aic-opts2 { display: grid; gap: 1.25rem; min-width: 0; }
@media (min-width: 48em) {
  .aic-opts2.has-alts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aic-opt2--lead, .aic-opt2--wide { grid-column: 1 / -1; }
  .aic-opt2--wide .aic-opt2__body { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; }
  .aic-opt2--wide .aic-opt2__figures { max-width: 40rem; }
}
.aic-opt2 { display: grid; gap: 1rem; align-content: start; min-width: 0; padding: 1.15rem 1.2rem 1rem; border: 1px solid var(--aic-line); border-top: 3px solid var(--aic-ink); background: var(--aic-bg); }
.aic-opt2--lead { gap: 1.2rem; padding: clamp(1.2rem, 1rem + 1vw, 1.75rem); border-top-color: var(--aic-accent); }
.aic-opt2__head { display: grid; gap: .3rem; }
.aic-opt2__role { color: var(--aic-accent-text); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-opt2:not(.aic-opt2--lead) .aic-opt2__role { color: var(--aic-muted); }
.aic-opt2__name { font-size: 1.375rem; font-weight: 790; font-stretch: 106%; line-height: 1.12; letter-spacing: -0.018em; overflow-wrap: anywhere; }
.aic-opt2--lead .aic-opt2__name { font-size: clamp(1.5rem, 1.15rem + 1.5vw, 2.375rem); }
.aic-opt2__ties { color: var(--aic-text); font-size: .875rem; }
.aic-opt2__figures { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, .7fr); border-top: 1px solid var(--aic-line); }
.aic-figure { display: grid; align-content: start; gap: .2rem; padding: .8rem .75rem .1rem 0; min-width: 0; }
.aic-figure + .aic-figure { padding-left: .9rem; border-left: 1px solid var(--aic-line); }
.aic-figure__value { color: var(--aic-ink); font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); font-weight: 760; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: -0.02em; }
.aic-opt2--lead .aic-figure__value { font-size: clamp(1.875rem, 1.4rem + 2vw, 3rem); }
.aic-opt2--lead .aic-figure:first-child .aic-figure__value { color: var(--aic-accent-text); }
.aic-figure__label { color: var(--aic-muted); font-size: .8125rem; line-height: 1.3; }
.aic-strip { display: flex; gap: 2px; height: .625rem; min-width: 0; }
.aic-opt2--lead .aic-strip { height: .875rem; }
.aic-strip__seg { min-width: 3px; background: var(--aic-hatch); box-shadow: inset 0 0 0 1px var(--aic-muted); }
.aic-strip__seg--yes { background: var(--aic-ink); box-shadow: none; }
.aic-opt2--lead .aic-strip__seg--yes { background: var(--aic-accent); }
.aic-strip__seg--no { background: none; box-shadow: inset 0 0 0 1.5px var(--aic-line-strong); }
.aic-opt2__body { display: grid; gap: 0; }
@media (min-width: 48em) { .aic-opt2--lead .aic-opt2__body { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; } }
.aic-opt2__part { display: grid; gap: .3rem; align-content: start; padding: .75rem 0; border-top: 1px solid var(--aic-line); }
.aic-opt2__part h4 { color: var(--aic-muted); font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.aic-opt2__part ul { display: grid; gap: .25rem; padding-left: 1.05rem; list-style: square; }
.aic-opt2__part li::marker { color: var(--aic-ink); }
.aic-opt2__part--limit h4 { color: var(--aic-ink); }
.aic-opt2__vs { color: var(--aic-text); font-size: .875rem; }
.aic-opt2__foot { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; padding-top: .75rem; border-top: 1px solid var(--aic-line); }
.aic .aic-opt2__link { display: inline-flex; align-items: center; gap: .35rem; min-height: 2rem; font-size: .875rem; font-weight: 650; }
.aic-opt2__link svg { width: .9rem; height: .9rem; color: var(--aic-muted); }

.aic-rsec { display: grid; gap: .9rem; padding-top: 1.4rem; border-top: var(--aic-rule); min-width: 0; }
.aic-rsec__title { font-size: clamp(1.1875rem, 1.05rem + .6vw, 1.5rem); font-weight: 780; font-stretch: 106%; letter-spacing: -0.015em; }
.aic-rsec__lede { color: var(--aic-text); }
.aic-rsec > .aic-btn, .aic-rsec > div > .aic-btn { justify-self: start; }
.aic-rsec h4 { font-size: 1rem; font-weight: 750; }
.aic-rsec--warn { border-top-color: var(--aic-accent); }
.aic-rsec ul:not([class]) { display: grid; gap: .35rem; padding-left: 1.1rem; list-style: square; }
.aic-condlist { display: grid; gap: .5rem; padding-left: 1.1rem; list-style: square; }

/* Task-by-task matrix and the cost table */
.aic-mx__wrap { min-width: 0; overflow-x: auto; }
.aic-mx, .aic-costs, .aic-vs, .aic-evtable, .aic-explain__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-mx__caption, .aic-explain__table caption, .aic-evtable caption { padding-bottom: .6rem; color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-align: start; text-transform: uppercase; }
.aic-mx thead th { padding: 0 .6rem .55rem; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: .8125rem; font-weight: 750; text-align: center; vertical-align: bottom; }
.aic-mx thead th:first-child { text-align: start; padding-left: 0; }
.aic-mx th.is-now, .aic-mx td.is-now { background: var(--aic-sunk); }
.aic-mx tbody th { padding: .6rem .75rem .6rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; font-weight: 650; color: var(--aic-ink); }
.aic-mx__task { display: block; }
.aic-mx__w { color: var(--aic-muted); font-size: .8125rem; font-weight: 700; }
.aic-mx__cell { padding: .6rem; border-bottom: 1px solid var(--aic-line); text-align: center; vertical-align: middle; font-size: .8125rem; color: var(--aic-text); }
.aic-mx__cell .aic-mark { width: 1.125rem; height: 1.125rem; }
.aic-mx__text { display: block; margin-top: .25rem; }
.aic-mx__short { display: none; }
.aic-mx tfoot th, .aic-mx tfoot td { padding: .65rem .6rem; border-top: var(--aic-rule); color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); text-align: center; }
.aic-mx tfoot th { text-align: start; padding-left: 0; font-stretch: normal; font-size: .875rem; }
@media (max-width: 47.99em) {
  .aic-mx__full { display: none; } .aic-mx__short { display: inline; }
  .aic-mx__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .aic-mx__cell { padding: .55rem .3rem; }
}
.aic-costs__wrap { display: grid; gap: .5rem; margin-top: .75rem; }
.aic-costs th { width: 38%; padding: .55rem 1rem .55rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-size: .875rem; font-weight: 650; text-align: start; }
.aic-costs td { padding: .55rem 0; border-bottom: 1px solid var(--aic-line); vertical-align: middle; }
.aic-costs__bar { width: 40%; }
.aic-costs__fill { display: block; height: .875rem; min-width: 2px; background: var(--aic-ink); }
.aic-costs__fill.is-annual { background: repeating-linear-gradient(-45deg, var(--aic-ink) 0 3px, transparent 3px 6px); box-shadow: inset 0 0 0 1.5px var(--aic-ink); }
.aic-costs tr.is-now .aic-costs__fill { background: var(--aic-mid); }
.aic-costs__unknown { color: var(--aic-muted); font-size: .8125rem; }
.aic-costs__value { padding-left: 1rem !important; text-align: end; white-space: nowrap; }
.aic-costs__value b { display: block; color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); }
.aic-costs__value span { color: var(--aic-muted); font-size: .75rem; }
@media (max-width: 35.99em) { .aic-costs th { width: auto; } .aic-costs__bar { width: 30%; } }

/* Measured performance */
.aic-perf { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-perf thead th { padding: 0 .75rem .55rem 0; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: .8125rem; font-weight: 750; text-align: start; vertical-align: bottom; }
.aic-perf__task { display: block; }
.aic-perf tbody th { padding: .65rem .75rem .65rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-weight: 700; text-align: start; }
.aic-perf td { padding: .65rem .75rem .65rem 0; border-bottom: 1px solid var(--aic-line); vertical-align: middle; font-size: .8125rem; color: var(--aic-muted); min-width: 7rem; }
.aic-perf__bar { display: block; height: .5rem; margin-bottom: .3rem; background: var(--aic-ink); }
.aic-perf tr.is-lead .aic-perf__bar { background: var(--aic-accent); }
.aic-perf__val { display: block; color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); font-size: .9375rem; }
.aic-perf__runs { display: block; }
.aic-perf__total { color: var(--aic-ink) !important; font-size: 1.25rem !important; font-weight: 800; font-stretch: var(--aic-wide); white-space: nowrap; }
.aic-perf tr.is-lead .aic-perf__total { color: var(--aic-accent-text) !important; }
.aic-perf__close { display: block; color: var(--aic-muted); font-size: .75rem; font-weight: 650; }

/* What changes */
.aic-adjust { display: grid; border-top: 1px solid var(--aic-line); }
.aic-adjust__row { display: grid; gap: .5rem 1rem; align-items: center; padding: .55rem 0; border-bottom: 1px solid var(--aic-line); }
@media (min-width: 36em) { .aic-adjust__row { grid-template-columns: minmax(0, 1fr) auto; } }
.aic-adjust__task { display: flex; justify-content: space-between; gap: .75rem; color: var(--aic-ink); font-weight: 650; }
.aic-adjust__task b { font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; }
@media (min-width: 36em) { .aic-adjust__task b { min-width: 3rem; text-align: end; } }
.aic-presets { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.aic-presets__label { color: var(--aic-muted); font-size: .8125rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-right: .25rem; }
.aic-whatif { display: grid; gap: .5rem; padding: 1rem 1.1rem; background: var(--aic-sunk); }
.aic-whatif ul { display: grid; gap: .55rem; padding-left: 1.1rem; list-style: square; }
.aic-whatif li .aic-btn { margin-left: .25rem; min-height: 2.25rem; vertical-align: middle; }
.aic-explain { display: grid; gap: .75rem; padding: 1.1rem 1.2rem; border-left: 3px solid var(--aic-accent); background: var(--aic-accent-soft); }
.aic-explain:focus { outline: none; }
.aic-explain__title { font-size: 1.125rem; font-weight: 780; }
.aic-explain__wrap { overflow-x: auto; }
.aic-explain__table caption { font-size: .8125rem; letter-spacing: .02em; text-transform: none; }
.aic-explain__table th, .aic-explain__table td { padding: .4rem .6rem .4rem 0; border-bottom: 1px solid color-mix(in oklab, var(--aic-ink) 14%, transparent); font-size: .8125rem; text-align: end; white-space: nowrap; }
.aic-explain__table th:first-child, .aic-explain__table thead th:first-child { text-align: start; white-space: normal; }
.aic-explain__table thead th { color: var(--aic-muted); font-weight: 700; }
.aic-explain__table td.is-up { color: var(--aic-ink); font-weight: 800; }
.aic-explain__table td.is-down { color: var(--aic-muted); }
.aic-vs { table-layout: fixed; }
.aic-vs thead td { width: 28%; }
.aic-vs__split { display: grid; gap: .3rem; margin: 0; padding: 0; list-style: none; font-weight: 500; }
.aic-vs__split strong { font-weight: 750; }
.aic-vs th, .aic-vs td { padding: .6rem .75rem .6rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; vertical-align: top; }
.aic-vs thead th { border-bottom: var(--aic-rule); color: var(--aic-ink); font-weight: 750; }
.aic-vs tbody th { overflow-wrap: anywhere; color: var(--aic-muted); font-size: .8125rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.aic-vs td { color: var(--aic-ink); font-weight: 600; }

.aic-also { width: 100%; border-collapse: collapse; border-top: 1px solid var(--aic-line); }
.aic-also th, .aic-also td { padding: .55rem 1rem .55rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; }
.aic-also th { color: var(--aic-ink); font-weight: 700; }
.aic-also td:nth-child(2) { color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); font-variant-numeric: tabular-nums; white-space: nowrap; }
.aic-also td:last-child { text-align: end; }

/* Test, trial plan, actions, evidence */
.aic-kitlist { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--aic-line); }
.aic .aic-kitlist__link { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; align-items: center; padding: .85rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); text-decoration: none; }
.aic-kitlist__title { font-weight: 750; }
.aic-kitlist__for { grid-column: 1; color: var(--aic-muted); font-size: .875rem; }
.aic-kitlist__link svg { grid-row: 1 / span 2; grid-column: 2; color: var(--aic-accent-text); transition: transform var(--aic-fast) var(--aic-ease); }
.aic .aic-kitlist__link:hover svg { transform: translateX(3px); }
.aic-trial { display: grid; gap: .7rem; margin: 0; padding: 0; list-style: none; counter-reset: aic-trial; }
.aic-trial li { position: relative; padding-left: 2.6rem; counter-increment: aic-trial; color: var(--aic-ink); }
.aic-trial li::before { content: counter(aic-trial); position: absolute; left: 0; top: -.05rem; display: grid; place-items: center; width: 1.75rem; height: 1.75rem; background: var(--aic-ink); color: var(--aic-bg); font-size: .875rem; font-weight: 800; font-stretch: var(--aic-wide); }
.aic-ractions { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: .5rem; }
.aic-ractions--side { display: grid; gap: .4rem; padding-top: .75rem; border-top: 1px solid var(--aic-line); }
.aic-ractions--side .aic-btn { justify-content: flex-start; }
.aic-evidence { border-top: 1px solid var(--aic-line); }
.aic-evidence > summary { display: flex; align-items: center; min-height: 3rem; color: var(--aic-ink); font-weight: 750; cursor: pointer; }
.aic-evidence[open] > summary { margin-bottom: .75rem; }
.aic-evidence > .aic-mx__wrap + .aic-mx__wrap { margin-top: 1.5rem; }
.aic-evtable th, .aic-evtable td { padding: .55rem .75rem .55rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; vertical-align: top; font-size: .8125rem; }
.aic-evtable thead th { border-bottom: var(--aic-rule); color: var(--aic-ink); font-weight: 750; }
.aic-evtable tbody th { color: var(--aic-ink); font-weight: 700; min-width: 9rem; }
.aic-evtable__w, .aic-evtable__detail { display: block; color: var(--aic-muted); font-weight: 500; }
.aic-evtable td a { display: inline-block; margin-left: .35rem; padding-block: .3rem; }
.aic-evidence__meta a { display: inline-block; padding-block: .3rem; }
.aic-evidence__meta { display: grid; gap: .4rem; margin-top: 1rem; color: var(--aic-muted); font-size: .8125rem; }

/* ------------------------------------------ head-to-head grid and lists -- */
.aic-pairgrid { min-width: 0; }
.aic-pairgrid__table { display: none; }
@media (min-width: 48em) {
  .aic-pairgrid__table { display: table; width: 100%; border-collapse: collapse; table-layout: fixed; }
  .aic-pairlist { display: none !important; }
}
.aic-pairgrid__table thead th { padding: 0 .5rem .55rem; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: .875rem; font-weight: 750; text-align: center; vertical-align: bottom; overflow-wrap: anywhere; }
.aic-pairgrid__table thead td { width: 18%; border-bottom: var(--aic-rule); }
.aic-pairgrid__table tbody th { padding: 0 1rem 0 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-size: .9375rem; font-weight: 750; text-align: start; }
.aic-pairgrid__table td { height: 3.5rem; padding: 0; border: 1px solid var(--aic-line); border-top: 0; }
.aic-pairgrid__table td.is-self { background: var(--aic-sunk); }
.aic-pairgrid__table td.is-empty { background: repeating-linear-gradient(-45deg, var(--aic-line) 0 1px, transparent 1px 7px); }
.aic .aic-pairgrid__table td.is-pair a {
  display: flex; align-items: center; justify-content: center; gap: .4rem; width: 100%; height: 100%; min-height: 3.5rem;
  color: var(--aic-ink); font-weight: 800; text-decoration: none; transition: background-color var(--aic-fast) var(--aic-ease), color var(--aic-fast) var(--aic-ease);
}
.aic-pairgrid__vs { font-stretch: var(--aic-wide); letter-spacing: .02em; }
.aic-pairgrid__table td.is-pair svg { color: var(--aic-accent-text); transition: transform var(--aic-fast) var(--aic-ease); }
.aic .aic-pairgrid__table td.is-pair a:hover { background: var(--aic-ink); color: var(--aic-bg); }
.aic .aic-pairgrid__table td.is-pair a:hover svg { color: var(--aic-bg); transform: translateX(2px); }
.aic-pairgrid__table td.is-pair a:focus-visible { outline-offset: -3px; }
.aic-pairlist { display: grid; margin: 0; padding: 0; list-style: none; border-top: var(--aic-rule); }
.aic .aic-pairlist__link { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.25rem; padding: .75rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-weight: 700; text-decoration: none; }
.aic-pairlist__link svg { color: var(--aic-accent-text); }

/* Price ladder */
.aic-ladder { margin: 0; display: grid; gap: .6rem; min-width: 0; }
.aic-ladder__plot { min-width: 0; }
.aic .aic-ladder__svg { stroke: none; }
.aic .aic-ladder__svg text { stroke: none; }
.aic .aic-ladder__svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--sans, system-ui, sans-serif); }
.aic-ladder__tick { fill: var(--aic-muted); font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.aic-ladder__grid { stroke: var(--aic-line); stroke-width: 1; }
.aic-ladder__break { stroke: var(--aic-line-strong); stroke-width: 1; stroke-dasharray: 2 3; }
.aic-ladder__sep { stroke: var(--aic-line); stroke-width: 1; }
.aic-ladder__product { fill: var(--aic-ink); font-size: 13px; font-weight: 760; }
.aic-ladder__span { stroke: var(--aic-ink); stroke-width: 1.5; }
.aic-ladder__mark { fill: var(--aic-ink); }
.aic-ladder__mark.is-free { fill: var(--aic-bg); stroke: var(--aic-ink); stroke-width: 1.5; }
.aic-ladder__label { fill: var(--aic-ink); font-size: 11px; font-weight: 560; font-variant-numeric: tabular-nums; }
.aic-ladder__note { color: var(--aic-muted); font-size: .8125rem; max-width: var(--aic-col8, 60rem); }
.aic-dir__fold > summary { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--aic-ink); font-weight: 700; cursor: pointer; }
.aic-dir__fold[open] > summary { margin-bottom: 1rem; }
.aic-dir__product { border-top: var(--aic-rule); }

/* Subscriptions: the "used for" disclosure */
.aic-usedfor > summary { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--aic-ink); font-weight: 700; cursor: pointer; }
.aic-usedfor[open] { display: grid; gap: 1rem; }
.aic-usedfor__group { display: grid; gap: .1rem; }
@media (min-width: 48em) { .aic-usedfor[open] { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; } .aic-usedfor > summary { grid-column: 1 / -1; } }
.aic-usedfor .aic-check-item { padding: .45rem 0; border: 0; min-height: 2.5rem; align-items: center; }
.aic-usedfor .aic-check-item:has(input:checked) { background: none; }
.aic-decision__more > summary { display: inline-flex; align-items: center; min-height: 2.75rem; font-weight: 700; color: var(--aic-ink); cursor: pointer; }
.aic-decision__sec { display: grid; gap: .25rem; padding: .5rem 0; border-top: 1px solid var(--aic-line); }
.aic-decision__sec h4 { font-size: .8125rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; color: var(--aic-muted); }
.aic-decision__sec ul { display: grid; gap: .2rem; padding-left: 1.1rem; list-style: square; font-size: .875rem; }

/* Enter: a step arrives quickly from just below; reduced motion shows it at once. */
@media (prefers-reduced-motion: no-preference) {
  .aic-j__main > * { animation: aic-rise 280ms var(--ease-out, cubic-bezier(.16, 1, .3, 1)) both; }
  .aic-j__main > *:nth-child(2) { animation-delay: 30ms; }
  .aic-j__main > *:nth-child(3) { animation-delay: 60ms; }
  .aic-j__main > *:nth-child(n+4) { animation-delay: 90ms; }
}
@keyframes aic-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

@media print {
  .aic-alt, .aic-usesbar, .aic-railwrap, .aic-j__nav, .aic-j__side, .aic-adjust, .aic-presets, .aic-ladder { display: none !important; }
  .aic-opt2, .aic-rsec { break-inside: avoid; }
  .aic-print__section { break-inside: avoid; }
}


/* ==========================================================================
   1.4: product pages, use pages and the tools list. Same rules as the hub:
   square data surfaces ruled in ink, pills for actions, one pink accent.
   ========================================================================== */
.aic-idstrip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; border-top: var(--aic-rule); border-bottom: 1px solid var(--aic-line); }
@media (min-width: 48em) { .aic-idstrip { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.aic-idstrip > div { display: grid; gap: .15rem; padding: .75rem .9rem .8rem 0; min-width: 0; }
.aic-idstrip > div + div { padding-left: .9rem; border-left: 1px solid var(--aic-line); }
@media (max-width: 47.99em) { .aic-idstrip > div:nth-child(3) { padding-left: 0; border-left: 0; } .aic-idstrip > div:nth-child(n+3) { border-top: 1px solid var(--aic-line); } }
.aic-idstrip dt { color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.aic-idstrip dd { margin: 0; color: var(--aic-ink); font-weight: 750; font-variant-numeric: tabular-nums; }

.aic-sl { display: grid; gap: 1.25rem; }
@media (min-width: 48em) { .aic-sl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; } }
.aic-sl__col { display: grid; gap: .5rem; align-content: start; min-width: 0; }
.aic .aic-sl__title { display: flex; align-items: center; gap: .5rem; padding-bottom: .5rem; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.aic-sl__title--plus::before, .aic-sl__title--minus::before { content: ""; width: .75rem; height: .75rem; flex: none; }
.aic-sl__title--plus::before { background: var(--aic-accent); }
.aic-sl__title--minus::before { box-shadow: inset 0 0 0 1.5px var(--aic-ink); }
.aic .aic-sl__list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.aic-sl__list li { display: grid; gap: .2rem; padding: .7rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-text); }
.aic-sl__list li strong { color: var(--aic-ink); font-weight: 750; }
.aic-sl__list--plain li { position: relative; padding-left: 1.1rem; }
.aic-sl__list--plain li::before { content: ""; position: absolute; left: 0; top: 1.2rem; width: .45rem; height: .45rem; background: var(--aic-ink); }

.aic-tsec { display: grid; gap: .8rem; padding-top: 1.4rem; border-top: var(--aic-rule); min-width: 0; }
.aic .aic-tsec__title { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); font-weight: 780; font-stretch: 106%; letter-spacing: -0.015em; }
.aic-tsec__lede { color: var(--aic-text); }
.aic-tablewrap { min-width: 0; }
.aic-tablewrap--scroll { overflow-x: auto; overscroll-behavior-x: contain; }
.aic-tablewrap--scroll:focus-visible { outline-offset: 4px; }

.aic-plans { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-plans th, .aic-plans td { padding: .7rem .9rem .7rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; vertical-align: top; }
.aic-plans thead th { padding-top: 0; border-bottom: var(--aic-rule); color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.aic-plans tbody th { color: var(--aic-ink); font-weight: 750; }
.aic-plans__note { display: block; margin-top: .2rem; color: var(--aic-muted); font-size: .8125rem; font-weight: 500; }
.aic-plans__price { color: var(--aic-ink); font-weight: 800; font-stretch: var(--aic-wide); white-space: nowrap; }
.aic-plans__src { color: var(--aic-muted); font-size: .8125rem; white-space: nowrap; }
.aic-plans td { white-space: nowrap; }
.aic-plans__src a { display: inline-block; margin-left: .35rem; padding-block: .3rem; }
@media (max-width: 47.99em) {
  .aic-plans thead { display: none; }
  .aic-plans tr { display: grid; grid-template-columns: 1fr auto; padding: .6rem 0; border-bottom: 1px solid var(--aic-line); }
  .aic-plans th, .aic-plans td { padding: .1rem 0; border: 0; }
  .aic-plans tbody th { grid-column: 1 / -1; }
  .aic-plans td:nth-of-type(2) { text-align: end; }
  .aic-plans td:nth-of-type(3) { grid-column: 1 / -1; }
}

.aic-fm { width: 100%; min-width: calc(11rem + var(--plans, 4) * 7.5rem); border-collapse: collapse; }
.aic-fm--tasks { min-width: 46rem; }
.aic-fm th, .aic-fm td { padding: .55rem .75rem .55rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; vertical-align: top; font-size: .875rem; }
.aic-fm thead th { border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: .8125rem; font-weight: 750; vertical-align: bottom; }
.aic-fm tbody th { color: var(--aic-ink); font-weight: 650; }
.aic-fm thead th:first-child, .aic-fm tbody th { position: sticky; left: 0; z-index: 1; background: var(--aic-bg); min-width: 10rem; }
.aic-fm__group th { padding-top: 1rem; color: var(--aic-muted) !important; font-size: .75rem !important; font-weight: 800 !important; letter-spacing: .07em; text-transform: uppercase; border-bottom: 1px solid var(--aic-line-strong); }
.aic-fm .aic-pill { font-size: .8125rem; white-space: nowrap; }
.aic-fm__price { display: block; margin-top: .15rem; color: var(--aic-muted); font-size: .8125rem; }
.aic-fm tbody th a { font-weight: 750; }

.aic .aic-uselist, .aic .aic-tasklist, .aic .aic-altlist, .aic .aic-changelist, .aic .aic-sources { display: grid; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--aic-line); }
.aic-uselist li, .aic-tasklist li, .aic-altlist li { display: grid; gap: .2rem; padding: .75rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-text); }
.aic-uselist strong, .aic-tasklist strong, .aic-altlist strong { color: var(--aic-ink); font-weight: 750; }
.aic-uselist span { color: var(--aic-muted); font-size: .875rem; }
.aic-tasklist__meta { color: var(--aic-muted); font-size: .8125rem; }
.aic-tasklist__meta a { display: inline-block; padding-block: .3rem; }
@media (min-width: 48em) { .aic .aic-tasklist { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; } }
.aic-altlist__links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: .875rem; font-weight: 650; }
.aic-altlist__links a { display: inline-block; padding-block: .3rem; }
.aic-changelist li { padding: .55rem 0; border-bottom: 1px solid var(--aic-line); font-size: .875rem; color: var(--aic-text); overflow-wrap: anywhere; }
.aic-changelist time { margin-right: .5rem; color: var(--aic-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.aic-sources li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .1rem 1rem; padding: .5rem 0; border-bottom: 1px solid var(--aic-line); font-size: .875rem; }
.aic-sources li a { display: inline-block; padding-block: .25rem; overflow-wrap: anywhere; }
.aic-sources li span { color: var(--aic-muted); font-size: .8125rem; }
.aic-sidecard__sub { margin-top: .25rem; padding-top: .75rem; border-top: 1px solid var(--aic-line); color: var(--aic-ink); font-size: var(--fs-kicker, .75rem); font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

/* Links in short lines get a 24 px tall target, as elsewhere. */
.aic-small a, .aic-article > section > p > a, .aic-fm tbody th a, .aic-tsec p a, .aic-dir__name a { display: inline-block; padding-block: .3rem; margin-block: -.3rem; }

/* The tools list */
.aic .aic-toolgrid { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: var(--aic-rule); border-left: 1px solid var(--aic-line); }
@media (min-width: 48em) { .aic .aic-toolgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 64em) { .aic .aic-toolgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.aic-toolcard { position: relative; display: grid; align-content: start; gap: .4rem; padding: 1.2rem 3.5rem 1.3rem 1.2rem; border-right: 1px solid var(--aic-line); border-bottom: 1px solid var(--aic-line); transition: background-color var(--aic-fast) var(--aic-ease); }
.aic-toolcard:hover { background: var(--aic-sunk); }
.aic .aic-toolcard__name { font-size: 1.375rem; font-weight: 790; font-stretch: 106%; letter-spacing: -0.015em; }
.aic .aic-toolcard__name a { color: var(--aic-ink); text-decoration: none; }
.aic .aic-toolcard__name a::after { content: ""; position: absolute; inset: 0; }
.aic-toolcard__by { color: var(--aic-muted); font-size: .8125rem; font-weight: 650; }
.aic-toolcard__sum { color: var(--aic-text); }
.aic-toolcard__price { color: var(--aic-ink); font-weight: 750; }
.aic-toolcard__uses { color: var(--aic-muted); font-size: .8125rem; }
.aic-toolcard__go { position: absolute; top: 1.2rem; right: 1.1rem; color: var(--aic-accent-text); }
.aic-toolcard:hover .aic-toolcard__go { transform: translateX(3px); }

/* ==========================================================================
   Hero animation (hub): two answers compared row by row. Placed by
   aic-app.js into columns 9-12 of the theme's 12-column hero, beside the
   title; it never adds height to the hero.
   ========================================================================== */
.aic-hero-art { display: none; }
.aic-hero-art.is-placed {
  --art-accent: var(--accent, #d4145a);
  --art-accent-text: var(--accent-text, #b3104b);
  --art-soft: var(--accent-soft, #fce8ef);
  --art-ink: var(--ink, #0b0c0f);
  --art-card: var(--bg-raise, var(--bg, #fff));
  --art-sunk: var(--bg-sunk, #f4f4f5);
  --art-line: var(--line, #e4e4e7);
  --art-skel: var(--line-strong, #cfcfd6);
  --art-muted: var(--muted, #71717a);
  --art-yes: #16a34a; --art-yes-soft: #e3f4ea;
  --art-unk: #d97706; --art-unk-soft: #fcefd6;
  display: block;
  grid-column: 9 / span 4;
  grid-row: 1 / span 3;
  position: relative;
  min-height: 0;
  align-self: stretch;
  pointer-events: none;
  user-select: none;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .aic-hero-art.is-placed { --art-yes: #4ade80; --art-yes-soft: rgb(74 222 128 / .14); --art-unk: #fbbf24; --art-unk-soft: rgb(251 191 36 / .15); }
}
:root[data-theme="dark"] .aic-hero-art.is-placed { --art-yes: #4ade80; --art-yes-soft: rgb(74 222 128 / .14); --art-unk: #fbbf24; --art-unk-soft: rgb(251 191 36 / .15); }
@media (max-width: 63.99em) { .aic-hero-art.is-placed { display: none; } }
.aic-hero-art .aic-art { position: absolute; inset: 0 0 auto 0; width: 100%; height: 100%; overflow: visible; }
.aic-art text { font-family: var(--sans, system-ui, sans-serif); }
.aic-art *, .aic-art { transform-box: fill-box; }

.aic-art__dot { fill: var(--art-skel); opacity: .55; }
.aic-art__panel { fill: var(--art-card); stroke: var(--art-line); stroke-width: 1; }
.aic-art__shadow { fill: var(--art-ink); opacity: .05; }
.aic-art__avatar { fill: var(--art-soft); }
.aic-art__avatar--b { fill: var(--art-sunk); stroke: var(--art-line); }
.aic-art__letter { fill: var(--art-accent-text); font-size: 10px; font-weight: 800; }
.aic-art__letter--b { fill: var(--art-ink); }
.aic-art__skel { fill: var(--art-line); }
.aic-art__skel--strong, .aic-art__menu { fill: var(--art-skel); }
.aic-art__rule { stroke: var(--art-line); stroke-width: 1; }
.aic-art__line { fill: var(--art-skel); transform-origin: left center; }
.aic-art__line--accent { fill: var(--art-accent); opacity: .6; }
.aic-art__state--yes { fill: var(--art-yes); }
.aic-art__state--no { fill: var(--art-muted); opacity: .55; }
.aic-art__state--unk { fill: var(--art-unk); }
.aic-art__price { fill: var(--art-sunk); }
.aic-art__beam-stop { stop-color: var(--art-accent); }
.aic-art__link { fill: none; stroke: var(--art-skel); stroke-width: 1.3; stroke-linecap: round; stroke-dasharray: 100; }
.aic-art__link--diff { stroke: var(--art-accent); opacity: .85; }
.aic-art__spark { fill: var(--art-ink); opacity: .5; }
.aic-art__spark--accent { fill: var(--art-accent); opacity: .9; }
.aic-art__badge { transform-origin: center; }
.aic-art__badge-bg { stroke-width: 1.2; }
.aic-art__badge-bg--same { fill: var(--art-card); stroke: var(--art-skel); }
.aic-art__badge-bg--unk { fill: var(--art-unk-soft); stroke: var(--art-unk); }
.aic-art__badge-bg--diff { fill: var(--art-soft); stroke: var(--art-accent); }
.aic-art__badge-bg--yes { fill: var(--art-yes-soft); stroke: var(--art-yes); }
.aic-art__glyph { fill: none; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.aic-art__glyph--same { stroke: var(--art-muted); }
.aic-art__glyph--unk { stroke: var(--art-unk); }
.aic-art__glyph--diff { stroke: var(--art-accent); }
.aic-art__glyph--yes { stroke: var(--art-yes); }
.aic-art__seal-bg { fill: var(--art-card); }
.aic-art__halo-stop { stop-color: var(--art-accent); }
.aic-art__focus { fill: var(--art-soft); opacity: 0; }
.aic-art__seal-ring { fill: none; stroke: var(--art-accent); stroke-width: 1.6; }
.aic-art__orbit { fill: none; stroke: var(--art-accent); stroke-width: 1; stroke-dasharray: 1.5 4.6; opacity: .5; transform-origin: center; }
.aic-art__vs { fill: var(--art-ink); font-size: 11px; font-weight: 800; letter-spacing: .06em; }
.aic-art__satellite { fill: var(--art-accent); }
.aic-art__track-a { stop-color: var(--art-skel); }
.aic-art__track-b { stop-color: var(--art-accent); }
.aic-art__tick { stroke: var(--art-ink); stroke-width: 1; opacity: .3; }
.aic-art__tick--soft { opacity: .15; }
.aic-art__knob-bg { fill: var(--art-card); stroke: var(--art-accent); stroke-width: 1.6; }
.aic-art__knob-dot { fill: var(--art-accent); }
.aic-art__end { fill: var(--art-muted); font-size: 9px; font-weight: 700; }

/* Motion: one 9-second cycle; every part shares the period, so offsets hold. */
@media (prefers-reduced-motion: no-preference) {
  .aic-art__card { animation: aic-float 7s ease-in-out infinite alternate; }
  .aic-art__card--b { animation-delay: -3.5s; }
  .aic-art__row { animation: aic-row 9s cubic-bezier(.2, .7, .2, 1) infinite both; animation-delay: calc(var(--i) * .42s); }
  .aic-art__row .aic-art__line { animation: aic-type 9s cubic-bezier(.2, .7, .2, 1) infinite both; animation-delay: calc(var(--i) * .42s + .08s); }
  .aic-art__row .aic-art__state { transform-origin: center; animation: aic-pop 9s cubic-bezier(.3, 1.5, .5, 1) infinite both; animation-delay: calc(var(--i) * .42s); }
  .aic-art__link { animation: aic-draw 9s cubic-bezier(.4, 0, .2, 1) infinite both; animation-delay: calc(var(--i) * .42s); }
  .aic-art__focus { animation: aic-focus 9s ease-out infinite both; animation-delay: calc(var(--i) * .42s); }
  .aic-art__halo { transform-origin: center; animation: aic-breathe 4.5s ease-in-out infinite; }
  .aic-art__badge { animation: aic-badge 9s cubic-bezier(.3, 1.6, .5, 1) infinite both; animation-delay: calc(var(--i) * .42s); }
  .aic-art__beam { animation: aic-beam 9s cubic-bezier(.45, 0, .2, 1) infinite both; }
  .aic-art__beam--b { animation-delay: .25s; }
  .aic-art__orbit { animation: aic-spin 22s linear infinite; }
  .aic-art__satellite { transform-box: view-box; animation: aic-spin 7s linear infinite; }
  .aic-art__seal-ring { transform-origin: center; animation: aic-breathe 4.5s ease-in-out infinite; }
  .aic-art__knob { animation: aic-knob 9s cubic-bezier(.5, 0, .2, 1) infinite both; }
  .aic-art__spark { animation: aic-spark 9s linear infinite both; }
}
@keyframes aic-float { from { transform: translateY(-1.5px); } to { transform: translateY(1.5px); } }
@keyframes aic-row { 0% { opacity: 0; transform: translateX(-4px); } 6% { opacity: 1; transform: none; } 84% { opacity: 1; } 94%, 100% { opacity: 0; } }
@keyframes aic-type { 0% { transform: scaleX(0); } 8% { transform: scaleX(1); } 100% { transform: scaleX(1); } }
@keyframes aic-pop { 0%, 2% { transform: scale(0); } 8% { transform: scale(1.3); } 11%, 100% { transform: scale(1); } }
@keyframes aic-draw { 0%, 20% { stroke-dashoffset: 100; opacity: 0; } 22% { opacity: 1; } 34% { stroke-dashoffset: 0; } 84% { stroke-dashoffset: 0; opacity: 1; } 94%, 100% { stroke-dashoffset: 0; opacity: 0; } }
@keyframes aic-badge { 0%, 32% { transform: scale(0); opacity: 0; } 38% { transform: scale(1.2); opacity: 1; } 42%, 84% { transform: scale(1); opacity: 1; } 94%, 100% { transform: scale(.6); opacity: 0; } }
@keyframes aic-beam { 0% { transform: translateY(var(--beam-from, 64px)); opacity: 0; } 5% { opacity: 1; } 46% { transform: translateY(var(--beam-to, 186px)); opacity: 1; } 52%, 100% { transform: translateY(var(--beam-to, 186px)); opacity: 0; } }
@keyframes aic-focus { 0%, 33% { opacity: 0; } 39% { opacity: .9; } 56%, 100% { opacity: 0; } }
@keyframes aic-spin { to { transform: rotate(360deg); } }
@keyframes aic-breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes aic-knob { 0%, 46% { transform: translateX(0); } 55% { transform: translateX(31px); } 60% { transform: translateX(19px); } 64%, 84% { transform: translateX(23px); } 96%, 100% { transform: translateX(0); } }
@keyframes aic-spark { 0%, 30% { opacity: 0; } 36%, 84% { opacity: .9; } 92%, 100% { opacity: 0; } }

/* Reduced motion: the finished frame, still. */
@media (prefers-reduced-motion: reduce) {
  .aic-art__beam, .aic-art__spark, .aic-art__satellite { display: none; }
  .aic-art__knob { transform: translateX(23px); }
}

/* ------------------------------------------------------- product logos -- */
/* Each product's official mark (views/partials/logos.blade.php), always next to its name and
   never larger than the site's own logo. Monochrome marks take the ink colour: the vendor's
   black version in light mode, its white version in dark mode. */
.aic-logos { position: absolute; width: 0; height: 0; overflow: hidden; }
.aic .aic-logo { fill: currentColor; stroke: none; display: inline-block; flex: none; width: 1.125em; height: 1.125em; margin-inline-end: .45em; color: var(--aic-ink); vertical-align: -.2em; }
.aic .aic-logo--tile { box-sizing: border-box; width: 3rem; height: 3rem; margin: 0; padding: .6rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); background: var(--aic-raise); vertical-align: middle; }
.aic-toolcard__logo { display: block; margin-bottom: .35rem; line-height: 0; }
.aic .aic-dir__name .aic-logo--tile { margin-bottom: .45rem; }
.aic-sidecard__title--brand { gap: .75rem; }
.aic .aic-sidecard__title--brand .aic-logo--tile { width: 2.5rem; height: 2.5rem; padding: .5rem; }
.aic .aic-pairgrid__table thead th .aic-logo { display: block; width: 1.5rem; height: 1.5rem; margin: 0 auto .45rem; }
.aic-opt2__name { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .8rem; }
.aic-opt2__logos { display: inline-flex; gap: .4rem; }
.aic-opt2__logos:empty { display: none; }
.aic .aic-cell__plan .aic-logo { width: 1.35em; height: 1.35em; margin-inline-end: .4em; vertical-align: -.35em; }
.aic .aic-btn .aic-logo { margin-inline-end: .1em; }
.aic .aic-ladder__logo { color: var(--aic-ink); fill: currentColor; stroke: none; }
.aic-foot__marks { font-size: .8125rem; }
@media print { .aic-logo--tile { border-color: #999; } }

/* ---------------------------------------------------- stage 3: kits -- */
.aic-kitgroup { display: grid; gap: 1rem; margin-top: clamp(2rem, 4vw, 3rem); }
.aic-kitgroup__n { margin-inline-start: .5rem; color: var(--aic-muted); font-size: .875rem; font-weight: 650; letter-spacing: 0; }
.aic-kitcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; }
.aic-kitcard__tag { display: inline-block; padding: .1rem .5rem; border: 1px solid var(--aic-line-strong); border-radius: var(--aic-r-pill, 999px); color: var(--aic-ink); font-size: .75rem; font-weight: 700; }
.aic-steps__hint { display: block; margin-top: .25rem; color: var(--aic-muted); font-size: .875rem; }

.aic-kit__blind { display: grid; gap: 1rem; padding-top: 1.5rem; border-top: var(--aic-rule); }
.aic-blind { display: grid; gap: 1rem; }
.aic-blind__entry { display: grid; gap: .75rem; }
.aic .aic-blind__paste { min-height: 8rem; font-family: var(--mono, ui-monospace, monospace); font-size: .875rem; line-height: 1.5; resize: vertical; }
.aic-blind__title { font-size: 1.125rem; font-weight: 780; outline: none; }
.aic-blind__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); }
.aic-blind__card { display: grid; gap: .75rem; align-content: start; min-width: 0; padding: 1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r-lg); }
.aic-blind__name { font-size: 1rem; font-weight: 800; letter-spacing: .02em; }
.aic-blind__text { max-height: 18rem; overflow: auto; padding: .75rem; border-radius: var(--aic-r); background: var(--aic-sunk); color: var(--aic-text); font-family: var(--mono, ui-monospace, monospace); font-size: .8125rem; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.aic-blind__text:focus-visible { outline: 2px solid var(--aic-accent); outline-offset: 2px; }
.aic-blind__checks { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.aic-blind__check { display: grid; gap: .35rem; padding-top: .6rem; border-top: 1px solid var(--aic-line); }
.aic-blind__label { color: var(--aic-ink); font-size: .875rem; font-weight: 600; }
.aic-blind__label .aic-badge { margin-inline-start: .4rem; }
.aic-blind__table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-blind__table th, .aic-blind__table td { padding: .6rem .75rem .6rem 0; border-bottom: 1px solid var(--aic-line); text-align: start; }
.aic-blind__table thead th { border-bottom: var(--aic-rule); color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.aic-blind__table tr.is-bad td:last-child { color: var(--aic-accent-text); font-weight: 750; }

/* --------------------------------------- stage 3: coverage and change -- */
.aic-cov__box { display: grid; gap: .6rem; margin-top: 1.25rem; }
.aic-cov { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-cov thead th { padding: 0 .6rem .55rem; border-bottom: var(--aic-rule); color: var(--aic-ink); font-size: .8125rem; font-weight: 750; text-align: start; vertical-align: bottom; }
.aic-cov thead th:first-child { padding-left: 0; }
.aic-cov tbody th { padding: .6rem .75rem .6rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-weight: 650; text-align: start; }
.aic-cov td { padding: .6rem; border-bottom: 1px solid var(--aic-line); font-size: .8125rem; vertical-align: middle; }
.aic-cov__w { color: var(--aic-muted); font-weight: 700; }
.aic-cov__cell { white-space: nowrap; }
.aic-cov__cell .aic-mark { margin-inline-end: .45rem; }
.aic-cov__cell--yes { color: var(--aic-ink); font-weight: 750; box-shadow: inset 3px 0 0 var(--aic-accent); }
.aic-cov__cell--also { color: var(--aic-text); }
.aic-cov__cell--also .aic-mark { opacity: .4; }
.aic-cov__cell--unknown, .aic-cov__cell--no { color: var(--aic-muted); }
.aic-cov__sum th, .aic-cov__sum td { border-bottom: 0; border-top: var(--aic-rule); color: var(--aic-ink); font-weight: 800; }

.aic-cchart { display: grid; gap: .6rem; margin: 0; padding: .9rem 1rem; border: 1px solid var(--aic-line); border-radius: var(--aic-r); background: var(--aic-bg); }
.aic-cchart__cap { color: var(--aic-text); font-size: .875rem; }
.aic-cchart__cap strong { display: block; color: var(--aic-ink); }
.aic-cchart__key { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .5rem; color: var(--aic-muted); font-size: .75rem; font-weight: 700; }
.aic-cchart__sw { display: inline-block; width: .9rem; height: .5rem; }
.aic-cchart__sw--before, .aic-cchart__bar--before { background: var(--aic-line-strong); }
.aic-cchart__sw--after, .aic-cchart__bar--after { background: var(--aic-accent); }
.aic-cchart__sw--after { margin-inline-start: .5rem; }
.aic-cchart__rows { display: grid; gap: .55rem; }
.aic-cchart__row { display: grid; grid-template-columns: minmax(0, 13rem) minmax(0, 1fr) auto; gap: .35rem .75rem; align-items: center; font-size: .8125rem; }
.aic-cchart__task { color: var(--aic-ink); font-weight: 650; }
.aic-cchart__bars { display: grid; gap: 3px; }
.aic-cchart__bar { display: block; height: .5rem; min-width: 0; transition: width var(--aic-fast) var(--aic-ease); }
.aic-cchart__val { color: var(--aic-text); font-variant-numeric: tabular-nums; white-space: nowrap; }
.aic-cchart__row.is-none .aic-cchart__task, .aic-cchart__row.is-none .aic-cchart__val { color: var(--aic-muted); }
.aic-cchart__total { color: var(--aic-muted); font-size: .8125rem; }
@media (max-width: 40em) {
  .aic-cchart__row { grid-template-columns: minmax(0, 1fr) auto; }
  .aic-cchart__bars { grid-column: 1 / -1; grid-row: 2; }
}
@media (prefers-reduced-motion: reduce) { .aic-cchart__bar { transition: none; } }
.aic-kit__blind [data-aic-blind-body] { display: grid; gap: 1rem; }
@media (max-width: 40em) {
  .aic-cov, .aic-cov tbody, .aic-cov tr, .aic-cov th, .aic-cov td, .aic-cov caption { display: block; }
  .aic-cov thead { display: none; }
  .aic-cov tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .75rem; padding: .75rem 0; border-bottom: 1px solid var(--aic-line); }
  .aic-cov tbody th, .aic-cov td { padding: 0; border: 0; }
  .aic-cov__w { grid-column: 2; grid-row: 1; text-align: end; }
  .aic-cov__w:empty { display: none; }
  .aic-cov td[data-label] { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; white-space: normal; }
  .aic-cov td[data-label]::before { content: attr(data-label); flex: 0 0 8.5rem; color: var(--aic-muted); font-weight: 650; }
  .aic-cov__cell--yes { box-shadow: none; }
  .aic-cov__cell--yes span:last-child { box-shadow: inset 0 -2px 0 var(--aic-accent); }
  .aic-cov__sum { border-top: var(--aic-rule); border-bottom: 0 !important; }
}

/* ------------------------------------------------ stage 4: models ---- */
.aic-modelgrid { display: grid; gap: 0; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); border-top: var(--aic-rule); border-left: 1px solid var(--aic-line); }
.aic-modelplan { display: grid; gap: .6rem; align-content: start; padding: 1rem 1.1rem 1.1rem; border-right: 1px solid var(--aic-line); border-bottom: 1px solid var(--aic-line); min-width: 0; }
.aic-modelplan__name { font-size: 1rem; font-weight: 800; }
.aic-modellist { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.aic-modellist__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem .6rem; align-items: baseline; }
.aic-modellist__model { color: var(--aic-ink); font-weight: 650; overflow-wrap: anywhere; }
.aic-modellist__maker { margin-inline-start: .4rem; color: var(--aic-muted); font-size: .75rem; font-weight: 650; }
.aic-modellist__access { color: var(--aic-text); font-size: .75rem; font-weight: 700; white-space: nowrap; }
.aic-modellist__access--limited, .aic-modellist__access--credits, .aic-modellist__access--extra_cost, .aic-modellist__access--auto_only { color: var(--aic-accent-text); }
.aic-modellist__detail { grid-column: 1 / -1; color: var(--aic-muted); font-size: .8125rem; }
.aic-modellist__detail a { display: inline-block; padding-block: .3rem; margin-block: -.3rem; }

/* ------------------------------------------------ stage 4: API costs -- */
.aic-api { display: grid; gap: 1rem; }
.aic-api__fields { display: grid; gap: .9rem 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.aic-api__fields .aic-hint { margin-top: .25rem; font-size: .8125rem; }
.aic-api__summary { color: var(--aic-text); }
.aic-apitable, .aic-apicost { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.aic-apitable thead th, .aic-apicost thead th { padding: 0 .75rem .55rem 0; border-bottom: var(--aic-rule); color: var(--aic-muted); font-size: .75rem; font-weight: 700; letter-spacing: .05em; text-align: start; text-transform: uppercase; white-space: nowrap; }
.aic-apitable th[scope="row"], .aic-apicost th[scope="row"] { padding: .65rem .75rem .65rem 0; border-bottom: 1px solid var(--aic-line); color: var(--aic-ink); font-weight: 700; text-align: start; vertical-align: top; min-width: 11rem; }
.aic-apitable td, .aic-apicost td { padding: .65rem .75rem .65rem 0; border-bottom: 1px solid var(--aic-line); vertical-align: top; }
.aic-apitable td { white-space: nowrap; }
.aic-apitable__id { display: block; margin-top: .15rem; color: var(--aic-muted); font-family: var(--mono, ui-monospace, monospace); font-size: .75rem; font-weight: 500; }
.aic-apitable__notes, .aic-apicost__why { color: var(--aic-muted); font-size: .8125rem; white-space: normal !important; min-width: 14rem; }
.aic-apitable__notes span, .aic-apicost__why span { display: block; }
.aic-apitable__notes a { display: inline-block; padding-block: .3rem; margin-block: -.1rem; }
.aic-apicost__total { color: var(--aic-ink); font-weight: 800; white-space: nowrap; }
.aic-apicost__barcell { width: 22%; min-width: 6rem; vertical-align: middle !important; }
.aic-apicost__bar { display: block; height: .6rem; background: var(--aic-accent); }
.aic-apicost tr.is-open .aic-apicost__total { color: var(--aic-muted); font-weight: 650; }
@media (max-width: 40em) {
  .aic-apicost, .aic-apicost tbody, .aic-apicost tr, .aic-apicost th, .aic-apicost td, .aic-apicost caption { display: block; }
  .aic-apicost thead { display: none; }
  .aic-apicost tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; padding: .75rem 0; border-bottom: 1px solid var(--aic-line); }
  .aic-apicost th[scope="row"], .aic-apicost td { padding: 0; border: 0; min-width: 0; }
  .aic-apicost__total { grid-column: 2; grid-row: 1; text-align: end; }
  .aic-apicost td:nth-of-type(2) { grid-column: 1 / -1; color: var(--aic-muted); font-size: .8125rem; }
  .aic-apicost td:nth-of-type(2)::before { content: "Per 1,000 requests: "; }
  .aic-apicost__barcell { grid-column: 1 / -1; width: auto; }
  .aic-apicost__why { grid-column: 1 / -1; min-width: 0; }
}
.aic-api__result { display: grid; gap: .75rem; }

/* 1.10: the fast path's note above the first shortlist. */
.aic .aic-quicknote { margin: 0 0 1rem; padding: .65rem .9rem; border-left: 3px solid var(--aic-accent, #D4145A); background: var(--aic-sunk); font-size: .9375rem; }
.aic .aic-quicknote a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* 1.10: the third figure names the apps, so it gets equal room; on a phone it takes its own row. */
.aic .aic-opt2__figures { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr); }
@media (max-width: 30rem) {
  .aic .aic-opt2__figures { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .aic .aic-opt2__figures > .aic-figure:nth-child(3) { grid-column: 1 / -1; border-left: 0; padding-left: 0; border-top: 1px solid var(--aic-line); padding-bottom: .6rem; }
}

/* 1.11: the goal in the visitor's own words, above the use cards. */
.aic .aic-goal { display: grid; gap: .45rem; margin: 0 0 1.25rem; padding: 1rem 1.1rem; border: 1px solid var(--aic-line); background: var(--aic-sunk); }
.aic .aic-goal__label { font-weight: 650; color: var(--aic-ink); }
.aic .aic-goal__row { display: flex; gap: .5rem; align-items: stretch; }
.aic .aic-goal__input { flex: 1 1 auto; min-width: 0; }
.aic .aic-goal__out { display: grid; gap: .6rem; }
.aic .aic-goal__out:empty { display: none; }
.aic .aic-goal__tasks { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; border: 0; }
.aic .aic-goal__legend { width: 100%; margin-bottom: .35rem; font-size: .8125rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--aic-muted); }
.aic .aic-goal__gap, .aic .aic-goal__none, .aic .aic-goal__project { margin: 0; font-size: .9375rem; }
.aic .aic-goal__gap { padding-left: .75rem; border-left: 3px solid var(--aic-line); }
.aic .aic-goal__project a { color: var(--aic-accent-text); font-weight: 600; }
.aic .aic-goal__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .25rem; }
.aic .aic-tick--chip .aic-tick__label { padding: .35rem .7rem .35rem .45rem; border: 1px solid var(--aic-line); border-radius: 999px; background: var(--aic-bg); }
@media (max-width: 30rem) { .aic .aic-goal__row { flex-direction: column; } }

/* 1.11: project presets under the use cards. */
.aic .aic-projects { margin: 1.25rem 0 0; }
.aic .aic-projects__label { margin: 0 0 .5rem; font-size: .8125rem; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; color: var(--aic-muted); }
.aic .aic-projects__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--aic-line); border-left: 1px solid var(--aic-line); }
.aic .aic-projects__link { display: grid; gap: .2rem; height: 100%; padding: .8rem .9rem; border-right: 1px solid var(--aic-line); border-bottom: 1px solid var(--aic-line); color: inherit; text-decoration: none; }
.aic .aic-projects__link:hover { background: var(--aic-sunk); }
.aic .aic-projects__link strong { color: var(--aic-ink); }
.aic .aic-projects__link span { color: var(--aic-muted); font-size: .875rem; }
.aic .aic-projects__link:focus-visible { outline: 2px solid var(--aic-accent-text); outline-offset: -3px; }

/* 1.11: a project plan, stage by stage. */
.aic .aic-proj__controls { display: grid; gap: .75rem; margin-bottom: 1rem; }
.aic .aic-proj__have { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; border: 0; }
.aic .aic-proj__have legend { width: 100%; margin-bottom: .35rem; font-weight: 650; }
.aic .aic-proj__choice { max-width: 26rem; }
.aic .aic-proj__figures { margin-bottom: 1rem; }
.aic .aic-proj__stages { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.aic .aic-proj__stage { padding: .9rem 1rem; border: 1px solid var(--aic-line); background: var(--aic-bg); }
.aic .aic-proj__stage.is-covered { border-left: 3px solid var(--aic-accent); }
.aic .aic-proj__stage.is-gap { border-style: dashed; background: var(--aic-sunk); }
.aic .aic-proj__stage.is-have { opacity: .8; }
.aic .aic-proj__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .65rem; }
.aic .aic-proj__n { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border: 1px solid var(--aic-line); font-size: .8125rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.aic .aic-proj__title { margin: 0; font-size: 1.0625rem; }
.aic .aic-proj__badge { padding: .1rem .55rem; border: 1px solid currentColor; border-radius: 999px; font-size: .8125rem; font-weight: 600; color: var(--aic-ink); }
.aic .aic-proj__stage.is-covered .aic-proj__badge { color: var(--aic-accent-text); }
.aic .aic-proj__stage.is-gap .aic-proj__badge, .aic .aic-proj__stage.is-unverified .aic-proj__badge, .aic .aic-proj__stage.is-missing .aic-proj__badge { color: var(--aic-muted); border-style: dashed; }
.aic .aic-proj__opt { font-size: .8125rem; color: var(--aic-muted); }
.aic .aic-proj__detail, .aic .aic-proj__output { margin: .35rem 0 0; font-size: .9375rem; }
.aic .aic-proj__output span { color: var(--aic-muted); }
.aic .aic-proj__handoff { position: relative; margin: 0 0 0 1.75rem; padding: .55rem 0 .55rem 1.1rem; border-left: 2px solid var(--aic-line); font-size: .875rem; color: var(--aic-muted); }
.aic .aic-proj__handoff.is-same_app { border-left-color: var(--aic-accent); }
.aic .aic-proj__handoff.is-unresolved { border-left-style: dashed; }
.aic .aic-proj__alts { margin-top: 1.25rem; }
.aic .aic-proj__alts h3 { font-size: 1rem; margin: 0 0 .4rem; }
.aic .aic-proj__alts ul { margin: 0; padding-left: 1.1rem; }
.aic .aic-tick--chip .aic-tick__label { column-gap: .45rem; grid-template-columns: 1.125rem auto; }
.aic .aic-goal__row .aic-btn { white-space: nowrap; flex: 0 0 auto; }

/* 1.16: project pages: numbered stages as plain sections. */
.aic-stages { list-style: none; margin: 0; padding: 0; }
.aic-stages > li { margin: 0; }
.aic-stages .aic-tasklist li.aic-named { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.aic-fm--one { min-width: 0; }
.aic-fm--one thead th:first-child, .aic-fm--one tbody th { min-width: 0; position: static; }
.aic-fm--one .aic-fm__price { display: block; }
/* 1.16: links in task and project lists get a 24px+ target without moving the text (WCAG 2.5.8). */
.aic-tasklist li > a, .aic-tasklist strong > a, .aic-stages .aic-tasklist a { display: inline-block; padding-block: .3rem; margin-block: -.3rem; }
.aic-pairgrid__more { margin-top: 1rem; color: var(--aic-muted); font-size: .9375rem; }
.aic-pairgrid__more a { font-weight: 650; }
