/* Instant AI visibility scanner (2026-11-14). Light theme, solid surfaces: no glass, no glow, no neon. Tokens from site.css. */
.scan-sec { padding-top: var(--s-6); }
.scan { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: var(--s-7); align-items: start;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-3); padding: var(--s-6);
  box-shadow: 0 1px 2px rgba(15,42,85,.04), 0 18px 40px -28px rgba(15,42,85,.25); }
.scan__intro h2 { margin: .5rem 0 .75rem; }
.scan__intro .lede { margin: 0 0 var(--s-4); }
.scan__list { margin: 0; padding-left: 1.25rem; display: grid; gap: .45rem; color: var(--ink-2); font-size: .97rem; }
.scan__list li::marker { color: var(--signal); font: 600 .85rem var(--f-mono); }
.scan__form { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-3); padding: var(--s-5); }
.scan__form select { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--line-2); border-radius: var(--r-2); padding: .85rem .95rem; width: 100%; }
.scan__form select:focus { outline: none; border-color: var(--signal); box-shadow: 0 0 0 4px var(--signal-soft); }
.scan__form .btn { justify-content: center; width: 100%; }
.scan__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.scan.is-busy .scan__form { opacity: .75; }
.scan.is-busy .scan__form .btn { cursor: progress; }
@media (max-width: 860px) { .scan { grid-template-columns: 1fr; padding: var(--s-5); gap: var(--s-5); } .scan__form { padding: var(--s-4); } }

.scan-out { display: grid; gap: var(--s-4); margin-top: var(--s-6); outline: none; scroll-margin-top: 90px; }
.scan-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-3); padding: var(--s-5) var(--s-6); }
.scan-card h3 { margin: 0 0 .6rem; }
.scan-card p { margin: .35rem 0 0; color: var(--ink-2); }
.scan-card--note { border-color: var(--line-2); background: var(--surface-2); }

.scan-score { display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: var(--s-6); align-items: center; }
.scan-score__ring { position: relative; width: 148px; height: 148px; }
.scan-ring { width: 100%; height: 100%; transform: rotate(-90deg); }
.scan-ring circle { fill: none; stroke-width: 10; }
.scan-ring__bg { stroke: var(--surface-2); }
.scan-ring__fg { stroke: var(--signal); stroke-linecap: round; transition: stroke-dashoffset 1.1s cubic-bezier(.2,.8,.2,1); }
.scan-score__num { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; }
.scan-score__num strong { font: 700 2.6rem/1 var(--f-display); letter-spacing: -.03em; color: var(--ink); }
.scan-score__num span { font: 500 .7rem var(--f-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3); margin-top: .3rem; }
.scan-score__txt h3 { margin: .4rem 0 .2rem; font-size: 1.5rem; overflow-wrap: anywhere; }
.scan-score__counts { font-weight: 700; color: var(--ink) !important; }
@media (max-width: 600px) { .scan-score { grid-template-columns: 1fr; justify-items: start; gap: var(--s-4); } .scan-card { padding: var(--s-5); } }

.scan-fixes { margin: 0; padding: 0; list-style: none; counter-reset: fx; display: grid; gap: var(--s-3); }
.scan-fixes li { counter-increment: fx; display: grid; grid-template-columns: 2rem minmax(0, 1fr); column-gap: .75rem; row-gap: .15rem; }
.scan-fixes li::before { content: counter(fx); grid-row: span 2; width: 2rem; height: 2rem; border-radius: 50%; display: grid; place-items: center;
  background: var(--signal); color: #fff; font: 700 .95rem var(--f-display); }
.scan-fixes strong { color: var(--ink); }
.scan-fixes span { color: var(--ink-2); }

.scan-checks { list-style: none; margin: 0; padding: 0; }
.scan-check { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--s-4); padding: var(--s-4) 0; border-top: 1px solid var(--line); }
.scan-check:first-child { border-top: 0; padding-top: .25rem; }
.scan-check strong { color: var(--ink); }
.scan-check p { margin: .2rem 0 0; overflow-wrap: anywhere; }
.scan-check__fix { color: var(--ink) !important; font-weight: 600; font-size: .96rem; }
.scan-check__note { font-size: .88rem; color: var(--ink-3) !important; }
.scan-pill { justify-self: start; align-self: start; font: 600 .7rem/1 var(--f-mono); letter-spacing: .08em; text-transform: uppercase;
  padding: .45rem .6rem; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
.scan-pill--pass { color: #116149; background: #E7F6EF; border-color: #BFE6D4; }
.scan-pill--info { color: #4A4A4A; background: #F1F0EC; border-color: #DCDAD3; }
.scan-pill--warn { color: #7A4B00; background: #FFF4DE; border-color: #F3D9A4; }
.scan-pill--fail { color: #A3221B; background: #FDECEA; border-color: #F5C2BD; }
@media (max-width: 600px) { .scan-check { grid-template-columns: 1fr; gap: .5rem; } }

.scan-ai { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: .35rem 1rem; margin: .75rem 0 0; padding: var(--s-4);
  background: var(--surface-2); border-radius: var(--r-2); font-size: .95rem; }
.scan-ai dt { color: var(--ink-3); }
.scan-ai dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
@media (max-width: 600px) { .scan-ai { grid-template-columns: 1fr; } .scan-ai dd { margin-bottom: .4rem; } }

.scan-offer { background: var(--band); border-color: var(--line-2); }
.scan-offer h3 { margin-top: .4rem; }
.scan-offer .btn-row { margin: var(--s-4) 0 var(--s-2); }
.scan-lead .form { margin-top: var(--s-4); max-width: 640px; }

/* ---- v2 (2026-11-14): progress panel, share row, friendly errors, chat-bubble clearance, AA contrast ---- */
.scan__panel { position: relative; }
.scan-prog { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-3); padding: var(--s-5); }
.scan-prog__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s-3); }
.scan-prog__head h3 { margin: 0; font-size: 1.15rem; overflow-wrap: anywhere; }
.scan-prog__count { font: 600 .8rem var(--f-mono); color: var(--ink-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.scan-bar { height: 6px; border-radius: 999px; background: var(--line); overflow: hidden; margin: var(--s-3) 0 var(--s-2); }
.scan-bar span { display: block; height: 100%; width: 100%; background: var(--signal); transform-origin: left center; transform: scaleX(0);
  transition: transform .35s cubic-bezier(.2,.8,.2,1); }
.scan-prog__step { margin: 0 0 var(--s-3); color: var(--ink-2); font-size: .95rem; min-height: 1.5em; overflow-wrap: anywhere; }
.scan-prog__list { list-style: none; margin: 0 0 var(--s-3); padding: 0; display: grid; gap: .1rem; }
.scan-prog__list li { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .45rem 0;
  border-top: 1px solid var(--line); font-size: .95rem; color: var(--ink-2); transition: color .2s; }
.scan-prog__list li:first-child { border-top: 0; }
.scan-prog__list li.is-done { color: var(--ink); }
.scan-prog__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--line-2); transition: background .2s; }
.scan-prog__list li.is-pass .scan-prog__dot { background: #1E8A63; }
.scan-prog__list li.is-warn .scan-prog__dot { background: #C27C0E; }
.scan-prog__list li.is-fail .scan-prog__dot { background: #C8352C; }
.scan-pill--wait { color: var(--ink-2); background: var(--surface); border-color: var(--line); }
.scan-prog .form__fine, .scan__form .form__fine { color: var(--ink-2); }
@media (prefers-reduced-motion: reduce) { .scan-bar span, .scan-prog__list li, .scan-prog__dot, .scan-ring__fg { transition: none; } }

.scan-share { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s-2) var(--s-4);
  padding: var(--s-3) var(--s-5); border: 1px dashed var(--line-2); border-radius: var(--r-3); background: var(--surface); }
.scan-share p { margin: 0; color: var(--ink-2); overflow-wrap: anywhere; }
.scan-share__url { font-weight: 650; color: var(--signal-strong, var(--signal)); }
.btn--sm { min-height: 44px; padding: .55rem 1rem; font-size: .92rem; }

.scan-err { border-color: var(--line-2); background: var(--surface-2); }
.scan-err h3 { outline: none; }
.scan-err .btn-row { margin: var(--s-4) 0 var(--s-2); }
.scan-err .muted, .scan-card--note .muted, .scan-offer .muted, .scan-ai dt { color: var(--ink-2); }
#scan-result-h { outline: none; }

/* Shared link: keep room for the saved result while it loads (no layout shift above the fold). */
.scan-shared .scan-out[hidden] { display: block; min-height: 70vh; }

/* Results column: a readable measure, and clear of the "Ask AdvanceAI" bubble (fixed bottom-right). */
.scan-out { max-width: 1040px; margin-inline: auto; }
@media (min-width: 641px) and (max-width: 1359px) {
  body .aai-launch .aai-label { display: none; }
  body .aai-launch { padding: 8px; }
}
body:has(.scan-out:not([hidden])) .aai-teaser { display: none !important; }
@media (min-width: 641px) and (max-width: 1139px) { .scan-out { padding-right: 64px; } }
/* Phones: the form comes before the long list of checks (lede, form, then the list). */
@media (max-width: 860px) {
  .scan__intro { display: contents; }
  .scan__intro > .label, .scan__intro > h2, .scan__intro > .lede { order: 0; }
  .scan__panel { order: 1; scroll-margin-top: 84px; }
  .scan__list { order: 2; }
  .scan__intro .lede { margin-bottom: 0; }
}
@media (max-width: 860px) { .scan { row-gap: var(--s-2); } .scan__panel, .scan__list { margin-top: var(--s-4); } .scan__intro h2 { margin-bottom: .25rem; } }
