/**
 * Webshape AI Visibility Check.
 *
 * Built on the webshape-dev2 v2 tokens (--ws-*) and components, like the AI
 * Assistant Demo, whose overlay, spinner and dialog patterns this follows.
 * Mobile first: most visitors arrive from LinkedIn on a phone.
 */

.wsav {
    position: relative; z-index: 1;
    --wsav-green: #1f9d63; --wsav-amber: #d98a00; --wsav-red: #e8425e;
    /* Surfaces this plugin paints itself. Text on them always uses the
       matching --wsav-on-* colour, never the theme's inherited one, so
       nothing disappears when the theme switches the page to dark. */
    --wsav-surface: #ffffff;            /* overlay card, dialog */
    --wsav-surface-soft: rgba(255, 255, 255, .78);
    --wsav-chip: #f2f1f7;
    --wsav-input: #ffffff;
    --wsav-input-line: #dcd9e6;
    --wsav-on: #211e30;
    --wsav-on-2: #5b566f;
    --wsav-on-muted: #7a7590;
    --wsav-on-line: rgba(23, 20, 42, .1);
    --wsav-backdrop: rgba(242, 241, 247, .78);
}
html.ws-dark .wsav, .body-section.dark .wsav {
    --wsav-surface: #1d1936;
    --wsav-surface-soft: rgba(255, 255, 255, .06);
    --wsav-chip: rgba(255, 255, 255, .08);
    --wsav-input: rgba(255, 255, 255, .06);
    --wsav-input-line: rgba(255, 255, 255, .18);
    --wsav-on: #ffffff;
    --wsav-on-2: #c9c5da;
    --wsav-on-muted: #9a95b3;
    --wsav-on-line: rgba(255, 255, 255, .12);
    --wsav-backdrop: rgba(23, 20, 42, .82);
}
.wsav [hidden] { display: none !important; }
.wsav .wsav-h2 { font-size: 28px; line-height: 1.2; margin: 10px 0 14px; }
.wsav .wsav-h3 { font-size: 21px; line-height: 1.25; margin: 8px 0 6px; }
.wsav-muted { color: var(--ws-text-2); font-size: 14px; margin: 0; }
.wsav-small { font-size: 12.5px; color: var(--ws-muted); margin: 0; }
.wsav-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wsav .is-busy { opacity: .75; cursor: progress; }
.wsav-link {
    background: none; border: 0; padding: 0; cursor: pointer;
    font: 500 13.5px var(--ws-font); color: var(--ws-accent-dark);
    text-decoration: underline; text-underline-offset: 3px; text-decoration-color: rgba(200, 45, 68, .35);
}
.wsav-link:hover { color: var(--ws-ink); }

/* ─── Hero (form page) ─── */
.wsav .b-page-head h1 { font-size: clamp(34px, 5.4vw, 64px); }
.wsav-badge { margin-bottom: 22px; }
.wsav-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ws-accent); box-shadow: 0 0 0 4px var(--ws-accent-soft); animation: wsav-pulse 2s infinite; }
@keyframes wsav-pulse { 50% { box-shadow: 0 0 0 7px rgba(232, 66, 94, .05); } }

/* ─── Form ─── */
.wsav-intro-grid { display: grid; gap: 32px; max-width: 1120px; margin: 0 auto; }
.wsav-steps { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 20px; }
.wsav-steps li { display: flex; gap: 16px; align-items: flex-start; }
.wsav-steps strong { font-size: 16.5px; font-weight: 600; display: block; margin-bottom: 2px; }
.wsav-steps p { margin: 0; color: var(--ws-text-2); font-size: 14.5px; }
.wsav-step-num {
    flex: none; width: 44px; height: 44px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--ws-mono); font-size: 13px; font-weight: 500;
    background: var(--wsav-surface); border: 1px solid var(--wsav-on-line); color: var(--ws-accent); box-shadow: var(--ws-shadow-card);
}
.wsav-panel { position: relative; }
.wsav .form-field { margin-top: 14px; }
.wsav .form-field > label, .wsav .wsav-radios legend { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 500; color: var(--ws-text); }
.wsav .form-panel input[type="text"], .wsav .form-panel input[type="email"] { width: 100%; }
.wsav .form-panel input:focus { border-color: var(--ws-accent); box-shadow: 0 0 0 4px var(--ws-accent-soft); }
.wsav .form-field .wsav-small { margin-top: 6px; }
.wsav-radios { border: 0; padding: 0; margin: 14px 0 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.wsav-radios legend { padding: 0; grid-column: 1 / -1; }
.wsav-radio { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1.5px solid var(--wsav-input-line); border-radius: 12px; background: var(--wsav-input); color: var(--wsav-on); cursor: pointer; font-size: 13.5px; transition: border-color .2s ease, background .2s ease; }
.wsav-radio input { accent-color: var(--ws-accent); width: 16px; height: 16px; margin: 0; flex: none; }
.wsav-radio:has(input:checked) { border-color: var(--ws-accent); background: var(--ws-accent-soft); }
.wsav-radio:focus-within { box-shadow: 0 0 0 4px var(--ws-accent-soft); }
.wsav-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 13px; line-height: 1.5; color: var(--ws-text-2); cursor: pointer; }
.wsav-check input { margin-top: 3px; accent-color: var(--ws-accent); width: 16px; height: 16px; flex: none; }
.wsav-turnstile { margin-top: 16px; }
.wsav-turnstile:empty { display: none; }
.wsav-submit { margin-top: 18px; width: 100%; justify-content: center; }
.wsav-privacy { margin-top: 14px; line-height: 1.5; }
.wsav-form-error {
    margin: 14px 0 0; padding: 10px 14px; border-radius: 12px;
    background: rgba(232, 66, 94, .08); border: 1px solid rgba(232, 66, 94, .3);
    color: var(--ws-accent-dark); font-size: 13.5px;
}

/* ─── FAQs ─── */
.wsav-faqs { max-width: 860px; margin: 24px auto 0; }
.wsav-faq { border-top: 1px solid var(--ws-line); padding: 4px 0; }
.wsav-faq:last-child { border-bottom: 1px solid var(--ws-line); }
.wsav-faq summary { cursor: pointer; padding: 16px 32px 16px 0; font-weight: 600; font-size: 16px; position: relative; list-style: none; }
.wsav-faq summary::-webkit-details-marker { display: none; }
.wsav-faq summary::after { content: "+"; position: absolute; right: 4px; top: 12px; font-size: 22px; color: var(--ws-accent); }
.wsav-faq[open] summary::after { content: "–"; }
.wsav-faq-a p { margin: 0 0 16px; color: var(--ws-text-2); }

/* ─── Working screen (as the demo's scan overlay) ─── */
.wsav-overlay {
    position: fixed; inset: 0; z-index: 1000003;
    display: flex; align-items: center; justify-content: center; padding: 16px;
    background: var(--wsav-backdrop); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .3s ease, visibility .3s;
    font-family: var(--ws-font, 'Poppins', sans-serif);
}
.wsav-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
html.wsav-working { overflow: hidden; }
.wsav-overlay-card {
    width: min(460px, 90vw); max-width: 90vw; max-height: 90vh; max-height: 90dvh; overflow-y: auto; margin: auto;
    box-sizing: border-box; text-align: center; background: var(--wsav-surface); color: var(--wsav-on);
    border: 1px solid var(--wsav-on-line); border-radius: 28px; padding: 32px 26px 24px;
    box-shadow: 0 30px 80px rgba(23, 20, 42, .18); transform: translateY(10px); transition: transform .35s ease;
}
.wsav-overlay.is-open .wsav-overlay-card { transform: none; }
.wsav-spinner { position: relative; width: 60px; height: 60px; margin: 0 auto 16px; }
.wsav-spinner::before, .wsav-spinner span { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 4px solid var(--ws-accent-soft, rgba(232, 66, 94, .12)); }
.wsav-spinner span { border-color: transparent; border-top-color: var(--ws-accent, #e8425e); border-right-color: var(--ws-accent, #e8425e); animation: wsav-spin .9s linear infinite; }
.wsav-overlay.is-done .wsav-spinner span { animation: none; border-color: var(--wsav-green); }
.wsav-overlay.is-done .wsav-spinner::after { content: "✓"; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 700; color: var(--wsav-green); }
@keyframes wsav-spin { to { transform: rotate(360deg); } }
.wsav-overlay-step { font-family: var(--ws-mono, monospace); font-size: 11.5px; letter-spacing: 2px; text-transform: uppercase; color: var(--ws-accent, #e8425e); margin: 0 0 6px; }
.wsav .wsav-overlay-title { font-size: 21px; line-height: 1.25; margin: 0 0 10px; color: var(--wsav-on); }
.wsav-overlay-question { margin: 0 0 12px; padding: 10px 14px; border-radius: 14px; background: var(--wsav-chip); font-size: 14px; font-style: italic; color: var(--wsav-on); animation: wsav-in .4s ease; }
.wsav-overlay-list { list-style: none; margin: 8px 0 14px; padding: 0; text-align: left; display: grid; gap: 8px; font-size: 14px; color: var(--wsav-on-muted); }
.wsav-overlay-list li { display: flex; align-items: center; gap: 10px; }
.wsav-dot { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--wsav-on-line); flex: none; }
.wsav-overlay-list li.is-active { color: var(--wsav-on); font-weight: 500; }
.wsav-overlay-list li.is-active .wsav-dot { border-color: var(--ws-accent); border-top-color: transparent; animation: wsav-spin .8s linear infinite; }
.wsav-overlay-list li.is-done { color: var(--wsav-on); }
.wsav-overlay-list li.is-done .wsav-dot { background: var(--wsav-green); border-color: var(--wsav-green); }
.wsav-overlay-list li.is-failed .wsav-dot { background: var(--wsav-on-line); border-color: var(--wsav-on-line); }
.wsav-overlay-time { margin: 0; font-size: 12px; color: var(--wsav-on-muted); }
.wsav-overlay-time span { font-family: var(--ws-mono, monospace); color: var(--wsav-on); }
@keyframes wsav-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ─── Result: evidence ─── */
.wsav-hero { position: relative; overflow: hidden; }
.wsav-hero::after {
    /* W watermark (Webshape branding: icon as a watermark only). */
    content: ""; position: absolute; right: -40px; bottom: -60px; width: 320px; height: 320px; pointer-events: none;
    background: var(--wsav-watermark) center / contain no-repeat; opacity: .05;
}
.wsav-hero .crumbs { margin-bottom: 18px; }
.wsav-band { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; font-family: var(--ws-mono); font-size: 11.5px; letter-spacing: 1.8px; text-transform: uppercase; font-weight: 500; }
.wsav-band::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.wsav-band--invisible { background: rgba(232, 66, 94, .12); color: var(--ws-accent-dark); }
.wsav-band--occasional { background: rgba(217, 138, 0, .14); color: #9a6200; }
.wsav-band--established { background: rgba(31, 157, 99, .14); color: #17784b; }
.wsav-asked { margin: 18px 0 4px; color: var(--ws-text-2); font-size: 15px; }
.wsav .wsav-question { font-size: clamp(24px, 4.2vw, 44px); line-height: 1.2; font-style: italic; font-weight: 500; margin: 0 0 18px; max-width: 980px; }
.wsav-headline { margin: 0; font-size: 17px; line-height: 1.55; max-width: 860px; }
.wsav-headline strong { display: block; font-size: clamp(22px, 3vw, 30px); line-height: 1.25; margin-bottom: 6px; }
.wsav-headline span { color: var(--ws-text-2); }
.wsav-cached-note { margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: var(--ws-accent-soft); font-size: 13.5px; }

.wsav-cards { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.wsav-card { padding: 20px 20px 18px !important; position: relative; }
.wsav-card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.wsav .wsav-card-title { font-size: 19px; margin: 0; }
.wsav-mark { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px; flex: none; }
.wsav-card.is-named .wsav-mark { background: rgba(31, 157, 99, .14); color: var(--wsav-green); }
.wsav-card.is-not-named .wsav-mark { background: rgba(232, 66, 94, .12); color: var(--ws-accent-dark); }
.wsav-card.is-error .wsav-mark { background: var(--ws-line-soft); color: var(--ws-muted); }
.wsav-card-status { margin: 8px 0 10px; font-weight: 500; font-size: 14.5px; }
.wsav-names { list-style: none; margin: 6px 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.wsav-names li { padding: 5px 10px; border-radius: 999px; background: var(--wsav-chip); color: var(--wsav-on); font-size: 13px; }
.wsav-names .wsav-more { background: transparent; color: var(--ws-muted); }
.wsav-dfs { margin: 22px 0 0; font-size: 15px; line-height: 1.6; max-width: 860px; }
.wsav-dfs .wsav-small { display: block; margin-top: 4px; }
.wsav-cited { margin-top: 14px; max-width: 860px; }
.wsav-cited ul { margin: 6px 0 0; padding-left: 18px; font-size: 14px; }
.wsav-cited li { margin-bottom: 4px; }

/* ─── Hero: the status ─── */
.wsav-hero-grid { display: grid; gap: 26px; align-items: center; }
.wsav-status {
    --wsav-band: var(--wsav-red); --wsav-band-soft: rgba(232, 66, 94, .14);
    position: relative; overflow: hidden; border-radius: 28px; padding: 24px 22px 22px;
    container-type: inline-size; /* the label sizes to the card, not the window */
    background: var(--wsav-surface); color: var(--wsav-on); border: 1px solid var(--wsav-on-line);
    box-shadow: 0 30px 80px rgba(23, 20, 42, .14);
}
.wsav-status::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 6px; background: var(--wsav-band); }
.wsav-status::after { content: ""; position: absolute; right: -90px; top: -90px; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, var(--wsav-band-soft), transparent 68%); pointer-events: none; }
.wsav-status--occasional { --wsav-band: var(--wsav-amber); --wsav-band-soft: rgba(217, 138, 0, .16); }
.wsav-status--established { --wsav-band: var(--wsav-green); --wsav-band-soft: rgba(31, 157, 99, .16); }
.wsav-status-kicker { font-family: var(--ws-mono); font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--wsav-on-muted); }
.wsav-status-row { display: flex; align-items: center; gap: 16px; margin: 0 0 18px; position: relative; z-index: 1; }
.wsav-ring {
    --p: 0; flex: none; width: 92px; height: 92px; border-radius: 50%;
    background: conic-gradient(var(--wsav-band) calc(var(--p) * 1%), var(--wsav-band-soft) 0);
    display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative;
}
.wsav-ring::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: var(--wsav-surface); }
.wsav-ring-num, .wsav-ring-cap { position: relative; }
.wsav-ring-num { font-size: 28px; font-weight: 700; line-height: 1; color: var(--wsav-on); }
.wsav-ring-num small { font-size: 16px; font-weight: 500; color: var(--wsav-on-muted); }
.wsav-ring-cap { font-family: var(--ws-mono); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--wsav-on-muted); margin-top: 4px; }
.wsav-status-label {
    display: block; position: relative; z-index: 1; margin: 10px 0 16px;
    font-size: 38px; /* fallback without container units */
    font-size: clamp(28px, 13cqi, 56px);
    line-height: 1.02; font-weight: 700; letter-spacing: -.5px; color: var(--wsav-band);
    overflow-wrap: normal; word-break: keep-all; /* wrap between words, never inside one */
}
.wsav-status-line { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--wsav-on-2); flex: 1; min-width: 0; }
.wsav-status-cta { width: 100%; justify-content: center; position: relative; z-index: 1; white-space: nowrap; }

/* ─── Reasons ─── */
.wsav-reasons { display: grid; gap: 14px; margin-top: 18px; }
.wsav-reason { padding: 22px 20px !important; border-left: 5px solid var(--ws-line) !important; display: flex; flex-direction: column; }
.wsav-reason--red { border-left-color: var(--wsav-red) !important; }
.wsav-reason--amber { border-left-color: var(--wsav-amber) !important; }
.wsav-reason--green { border-left-color: var(--wsav-green) !important; }
.wsav-reason-head { display: flex; gap: 14px; align-items: flex-start; }
.wsav-light { width: 16px; height: 16px; border-radius: 50%; margin-top: 5px; flex: none; background: var(--ws-line); }
.wsav-reason--red .wsav-light { background: var(--wsav-red); box-shadow: 0 0 0 5px rgba(232, 66, 94, .14); }
.wsav-reason--amber .wsav-light { background: var(--wsav-amber); box-shadow: 0 0 0 5px rgba(217, 138, 0, .14); }
.wsav-reason--green .wsav-light { background: var(--wsav-green); box-shadow: 0 0 0 5px rgba(31, 157, 99, .14); }
.wsav-light-label { font-family: var(--ws-mono); font-size: 11px; letter-spacing: 1.6px; text-transform: uppercase; color: var(--ws-muted); }
.wsav .wsav-reason-title { font-size: 19px; line-height: 1.3; margin: 2px 0 0; }
.wsav-reason-lines { margin: 14px 0 0; display: grid; gap: 4px; }
.wsav-reason-lines dt { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--ws-accent-dark); margin-top: 8px; }
.wsav-reason-lines dd { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--ws-text); }
.wsav-readiness { margin: 20px 0 0; font-size: 15px; color: var(--ws-text-2); }
.wsav-readiness strong { color: var(--ws-text); font-size: 18px; }

/* ─── The ask: discovery call, email as the fallback ─── */
.wsav-help {
    position: relative; overflow: hidden; border-radius: 32px; padding: 34px 20px;
    background: linear-gradient(160deg, #1d1936, #17142a); color: #fff; border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: 0 40px 90px rgba(23, 20, 42, .35);
    /* Always a dark panel, so it sets its own text colours. */
    --ws-text: #ffffff; --ws-text-2: #c9c5da; --ws-muted: #9a95b3; --ws-line: rgba(255, 255, 255, .14);
    --wsav-surface-soft: rgba(255, 255, 255, .06); --wsav-on: #ffffff; --wsav-on-line: rgba(255, 255, 255, .12);
}
.wsav-help::after { content: ""; position: absolute; right: -180px; top: -180px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(232, 66, 94, .28), transparent 65%); pointer-events: none; }
.wsav-help > * { position: relative; z-index: 1; }
.wsav-help .wsav-h2, .wsav-help .wsav-h3 { color: #fff; }
.wsav-help .small-title { color: #f2647c; }
.wsav-help-head { max-width: 760px; }
.wsav .wsav-help .wsav-h2 { font-size: clamp(30px, 4.6vw, 48px); line-height: 1.12; }
.wsav-help-lede { margin: 0; font-size: 17px; line-height: 1.6; color: #c9c5da; }
.wsav-help-grid { display: grid; gap: 28px; margin-top: 30px; align-items: start; }
.wsav-help-cta { width: 100%; justify-content: center; font-size: 16px !important; padding-top: 16px !important; padding-bottom: 16px !important; }
.wsav-reassure { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; color: #c9c5da; }
.wsav-reassure li::before { content: "✓"; color: #34c98a; font-weight: 700; margin-right: 6px; }
.wsav-help .wsav-actions li::before { background: #f2647c; }
.wsav-help .wsav-tag--quick-win { background: rgba(52, 201, 138, .16); color: #6be0ad; }
.wsav-help .wsav-tag--project { background: rgba(242, 100, 124, .16); color: #ff8fa3; }
/* The email form stays a light card on the dark panel. */
.wsav-help .form-panel {
    --ws-text: #211e30; --ws-text-2: #5b566f; --ws-muted: #7a7590; --ws-line: rgba(23, 20, 42, .1);
    background: #fff; color: #211e30; border-radius: 24px;
}
.wsav-help .form-panel .wsav-h3 { color: #211e30; }
.wsav-help .form-panel .small-title { color: var(--ws-accent-dark, #c82d44); }
.wsav-help .form-panel input[type="text"], .wsav-help .form-panel input[type="email"] { background: #fff; color: #211e30; border-color: #dcd9e6; }
.wsav-help .form-panel .wsav-check { color: #5b566f; }
.wsav-actions-grid { display: grid; gap: 28px; align-items: start; }
.wsav-actions { list-style: none; counter-reset: wsav; margin: 16px 0 22px; padding: 0; display: grid; gap: 12px; }
.wsav-actions li { counter-increment: wsav; display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; align-items: start; padding: 14px 16px; border-radius: 16px; background: var(--wsav-surface-soft); color: var(--wsav-on); border: 1px solid var(--wsav-on-line); font-size: 14.5px; line-height: 1.5; }
.wsav-actions li::before { content: counter(wsav); grid-row: span 2; width: 28px; height: 28px; border-radius: 50%; background: var(--ws-ink); color: #fff; display: flex; align-items: center; justify-content: center; font: 600 13px var(--ws-mono); }
.wsav-tag { justify-self: start; font-family: var(--ws-mono); font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; }
.wsav-tag--quick-win { background: rgba(31, 157, 99, .14); color: #17784b; }
.wsav-tag--project { background: var(--ws-accent-soft); color: var(--ws-accent-dark); }

/* ─── Appendix ─── */
.wsav-appendix { border: 1px solid var(--wsav-on-line); border-radius: 18px; background: var(--wsav-surface-soft); color: var(--wsav-on); padding: 0 18px; }
.wsav-appendix summary { cursor: pointer; padding: 16px 0; font-weight: 600; }
.wsav-appendix > .wsav-small { margin-bottom: 10px; }
.wsav-table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin-bottom: 18px; }
.wsav-table th, .wsav-table td { text-align: left; padding: 9px 8px; border-top: 1px solid var(--ws-line); vertical-align: top; }
.wsav-table th { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--ws-muted); }
.wsav-chk-status { font-family: var(--ws-mono); font-size: 11px; letter-spacing: 1px; text-transform: uppercase; padding: 3px 8px; border-radius: 999px; background: var(--ws-line-soft); white-space: nowrap; }
.wsav-table tr.is-pass .wsav-chk-status { background: rgba(31, 157, 99, .14); color: #17784b; }
.wsav-table tr.is-warn .wsav-chk-status { background: rgba(217, 138, 0, .14); color: #9a6200; }
.wsav-table tr.is-fail .wsav-chk-status { background: rgba(232, 66, 94, .12); color: var(--ws-accent-dark); }
.wsav-foot { margin-top: 16px; }
.wsav-notice-card { max-width: 720px; margin: 0 auto; text-align: center; }

/* ─── Full answer dialog (as the demo's transcript dialog) ─── */
.wsav-dialog {
    border: 0; padding: 0; border-radius: 24px; width: min(760px, calc(100vw - 24px)); max-height: min(88vh, 900px);
    background: var(--wsav-surface); color: var(--wsav-on); box-shadow: 0 40px 120px rgba(23, 20, 42, .35); font-family: var(--ws-font);
    --ws-text: var(--wsav-on); --ws-text-2: var(--wsav-on-2); --ws-muted: var(--wsav-on-muted); --ws-line: var(--wsav-on-line);
}
.wsav-dialog::backdrop { background: rgba(23, 20, 42, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.wsav-dialog-inner { display: flex; flex-direction: column; max-height: min(88vh, 900px); }
.wsav-dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 20px 20px 12px; border-bottom: 1px solid var(--wsav-on-line); }
.wsav .wsav-dialog-head .wsav-h3 { color: var(--wsav-on); }
.wsav-dialog-close { border: 0; background: var(--wsav-chip); width: 40px; height: 40px; border-radius: 50%; font-size: 24px; cursor: pointer; flex: none; color: var(--wsav-on); }
.wsav-dialog-body { padding: 16px 20px 22px; overflow-y: auto; font-size: 14.5px; line-height: 1.6; }
.wsav-answer-text p { margin: 0 0 10px; }
.wsav-answer-text ul { margin: 0 0 10px; padding-left: 20px; }
.wsav-sources-title { font-size: 14px; text-transform: uppercase; letter-spacing: 1px; color: var(--ws-muted); margin: 18px 0 6px; }
.wsav-sources { margin: 0; padding-left: 20px; font-size: 13.5px; }
.wsav-src-host { color: var(--ws-muted); font-size: 12px; }

/* ─── Larger screens ─── */
@media (min-width: 768px) {
    .wsav .wsav-h2 { font-size: 34px; }
    .wsav-help { padding: 52px 48px; }
    .wsav-status { padding: 28px 28px 26px; }
    .wsav-reason { padding: 26px 28px !important; }
    .wsav-dialog-head, .wsav-dialog-body { padding-left: 26px; padding-right: 26px; }
}
@media (min-width: 992px) {
    .wsav-intro-grid { grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: start; }
    .wsav-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 48px; }
    .wsav-reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
    .wsav-help-grid { grid-template-columns: 1.1fr 1fr; gap: 44px; }
    .wsav-actions-grid { grid-template-columns: 1.1fr 1fr; gap: 48px; }
}
/* One card per assistant asked: a single answer gets the full row, names in a line. */
.wsav-cards:has(> .wsav-card:only-child) .wsav-names { margin-bottom: 10px; }
@media (max-width: 479px) {
    .wsav-radios { grid-template-columns: 1fr; }
    .wsav-ring { width: 80px; height: 80px; }
    .wsav-ring-num { font-size: 24px; }
    .wsav-table th:nth-child(3), .wsav-table td:nth-child(3) { font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .wsav *, .wsav *::before, .wsav *::after { animation: none !important; transition: none !important; }
    .wsav-spinner span { animation: wsav-spin 2.4s linear infinite !important; }
}

/* The light email card inside the dark help panel must win over the theme's
   dark-page form rules (html.ws-dark .form-panel …). */
html .wsav .wsav-help .form-panel { background: #fff; color: #211e30; border: 0; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); }
html .wsav .wsav-help .form-panel .wsav-h3 { color: #211e30; }
html .wsav .wsav-help .form-panel .wsav-muted, html .wsav .wsav-help .form-panel .wsav-check { color: #5b566f; }
html .wsav .wsav-help .form-panel .small-title { color: #c82d44; }
html .wsav .wsav-help .form-panel label, html .wsav .wsav-help .form-panel legend { color: #211e30; }
html .wsav .wsav-help .form-panel input[type="text"], html .wsav .wsav-help .form-panel input[type="email"] { background: #fff; color: #211e30; border-color: #dcd9e6; }

/* ─── Admin re-scan (logged-in admins only) ─── */
.wsav-admin-bar {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 18px; padding: 10px 14px;
    border-radius: 14px; border: 1px dashed var(--wsav-on-line); background: var(--wsav-surface-soft); color: var(--wsav-on);
    font-size: 13px;
}
.wsav-admin-btn {
    border: 0; border-radius: 999px; padding: 8px 16px; cursor: pointer;
    font: 600 13px var(--ws-font); background: var(--wsav-on); color: var(--wsav-surface);
}
.wsav-admin-btn:hover { opacity: .85; }
.wsav-admin-error { color: var(--ws-accent); font-size: 13px; }
.wsav-admin-check { padding: 10px 12px; border-radius: 12px; border: 1px dashed var(--wsav-input-line); }

/* ─── Beyond this one question: AI mentions card ─── */
.wsav-mentions {
    margin-top: 26px; padding: 24px 20px; border-radius: 26px;
    background: var(--wsav-surface-soft); color: var(--wsav-on); border: 1px solid var(--wsav-on-line);
    box-shadow: var(--ws-shadow-card);
}
.wsav-mentions-head { max-width: 720px; }
.wsav .wsav-mentions .wsav-h3 { font-size: 24px; color: var(--wsav-on); }
.wsav-stats { display: grid; gap: 12px; margin-top: 18px; }
.wsav-stat { padding: 18px 18px 16px; border-radius: 18px; background: var(--wsav-chip); border-top: 4px solid var(--wsav-green); }
.wsav-stat.is-none { border-top-color: var(--wsav-red); }
.wsav-stat-num { display: block; font-size: 44px; line-height: 1; font-weight: 700; color: var(--wsav-on); letter-spacing: -1px; }
.wsav-stat-label { display: block; margin-top: 6px; font-size: 14.5px; line-height: 1.4; color: var(--wsav-on-2); }
.wsav-stat-split { list-style: none; margin: 12px 0 0; padding: 10px 0 0; border-top: 1px solid var(--wsav-on-line); display: grid; gap: 4px; font-size: 12.5px; color: var(--wsav-on-muted); }
.wsav-stat-split li { display: flex; justify-content: space-between; gap: 10px; }
.wsav-stat-split strong { color: var(--wsav-on); font-weight: 600; }
.wsav-mentions-line { margin: 18px 0 0; padding: 12px 14px; border-radius: 14px; background: var(--ws-accent-soft); color: var(--wsav-on); font-size: 15px; line-height: 1.55; font-weight: 500; }
.wsav .wsav-mentions-sub { font-size: 15px; margin: 22px 0 10px; color: var(--wsav-on); }
.wsav-quoted { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.wsav-quoted li { padding: 12px 14px; border-radius: 14px; background: var(--wsav-chip); }
.wsav-quoted-title { display: block; font-size: 14px; line-height: 1.4; color: var(--wsav-on); }
.wsav-quoted-meta { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 4px; }
.wsav-quoted-q { font-size: 13px; color: var(--wsav-on-2); }
.wsav-quoted-plat { font-family: var(--ws-mono); font-size: 10.5px; letter-spacing: 1px; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--wsav-on-line); color: var(--wsav-on-muted); }
.wsav-mentions-note { margin-top: 16px; }
@media (min-width: 768px) {
    .wsav-mentions { padding: 30px 30px 26px; }
    .wsav-stats { grid-template-columns: 1fr 1fr; gap: 16px; }
}
@media (min-width: 992px) {
    .wsav-mentions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 0 36px; align-items: start; }
    .wsav-mentions-head, .wsav-stats, .wsav-mentions-line { grid-column: 1; }
    .wsav-mentions-sub, .wsav-quoted { grid-column: 2; }
    .wsav-mentions-sub { grid-row: 1; margin-top: 4px; align-self: end; }
    .wsav-quoted { grid-row: 2 / span 2; }
    .wsav-mentions-note { grid-column: 1 / -1; }
}

.wsav-admin-link { background: none; border: 0; padding: 0; cursor: pointer; font: 500 13px var(--ws-font); color: var(--wsav-on); text-decoration: underline; text-underline-offset: 3px; }
.wsav-admin-form { flex-basis: 100%; display: grid; gap: 10px; margin-top: 4px; padding-top: 12px; border-top: 1px dashed var(--wsav-on-line); }
.wsav-admin-field { display: grid; gap: 4px; font-size: 12px; font-weight: 600; color: var(--wsav-on-2); }
.wsav-admin-field input, .wsav-admin-field select, .wsav-admin-field textarea {
    width: 100%; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--wsav-input-line);
    background: var(--wsav-input); color: var(--wsav-on); font: 400 14px var(--ws-font);
}
.wsav-admin-hint { margin: 0; font-size: 12px; color: var(--wsav-on-muted); }
.wsav-admin-form .wsav-admin-btn { justify-self: start; }
@media (min-width: 768px) {
    .wsav-admin-form { grid-template-columns: 1fr 1fr 1fr; }
    .wsav-admin-wide { grid-column: 1 / -1; }
}

/* Radios and tick boxes inside the theme's .form-panel: the theme sets
   ".form-panel label { display: block }", which removed the flex layout.
   The control is centred on the first line of text (20px line box). */
.wsav .form-panel .wsav-radio,
.wsav .form-panel .wsav-check {
    display: flex; align-items: flex-start; gap: 12px; margin-bottom: 0;
    line-height: 20px;
}
.wsav .form-panel .wsav-radio { padding: 13px 14px; }
.wsav .form-panel .wsav-check { margin-top: 16px; }
.wsav .form-panel .wsav-radio input,
.wsav .form-panel .wsav-check input {
    flex: none; width: 18px; height: 18px; margin: 1px 0 0; /* (20 - 18) / 2 */
    accent-color: var(--ws-accent);
}
.wsav .form-panel .wsav-radio span,
.wsav .form-panel .wsav-check span { flex: 1; min-width: 0; }
.wsav .form-panel .wsav-admin-check { padding: 12px 14px; }

/* ─── Mobile refinements (767px and below) ─── */
@media (max-width: 767px) {
    /* Form panels: the theme's 34px 36px is a lot on a phone. */
    .wsav .form-panel.wsav-panel { padding: 22px 18px 20px; }

    /* Status label: smaller on phones, still sized to the card. */
    .wsav-status-label { font-size: 30px; font-size: clamp(24px, 10cqi, 36px); margin: 8px 0 14px; }

    /* Appendix: each check becomes a card instead of a table row. */
    .wsav-appendix { padding: 0 14px; }
    .wsav-table, .wsav-table tbody, .wsav-table tr, .wsav-table td { display: block; width: 100%; }
    .wsav-table thead { display: none; }
    .wsav-table tr {
        margin: 0 0 10px; padding: 12px 14px; border-radius: 14px;
        background: var(--wsav-chip); border-left: 4px solid var(--wsav-on-line);
    }
    .wsav-table tr.is-pass { border-left-color: var(--wsav-green); }
    .wsav-table tr.is-warn { border-left-color: var(--wsav-amber); }
    .wsav-table tr.is-fail { border-left-color: var(--wsav-red); }
    .wsav-table td { border: 0; padding: 0; overflow-wrap: anywhere; }
    .wsav-table td[data-label="Check"] { font-weight: 600; font-size: 14px; color: var(--wsav-on); padding-right: 90px; position: relative; }
    .wsav-table td[data-label="Result"] { margin-top: -20px; text-align: right; }
    .wsav-table td[data-label="Detail"] { margin-top: 8px; font-size: 12.5px; line-height: 1.5; color: var(--wsav-on-2); }
}

/* The overlay is moved to <body> when it opens (wsav.js), outside .wsav, so it
   carries its own copy of the plugin's surface tokens, light and dark. */
.wsav-overlay {
    --wsav-green: #1f9d63; --wsav-surface: #ffffff; --wsav-chip: #f2f1f7; --wsav-on: #211e30; --wsav-on-2: #5b566f;
    --wsav-on-muted: #7a7590; --wsav-on-line: rgba(23, 20, 42, .1); --wsav-backdrop: rgba(242, 241, 247, .78);
    z-index: 2147483000; box-sizing: border-box;
}
html.ws-dark .wsav-overlay {
    --wsav-surface: #1d1936; --wsav-chip: rgba(255, 255, 255, .08); --wsav-on: #ffffff; --wsav-on-2: #c9c5da;
    --wsav-on-muted: #9a95b3; --wsav-on-line: rgba(255, 255, 255, .12); --wsav-backdrop: rgba(23, 20, 42, .82);
}
.wsav-overlay .wsav-overlay-title { font-size: 21px; line-height: 1.25; margin: 0 0 10px; color: var(--wsav-on); font-family: var(--ws-font, 'Poppins', sans-serif); }
@media (max-width: 767px) {
    .wsav-overlay { padding: 0; }
    .wsav-overlay-card { padding: 26px 18px 20px; border-radius: 22px; }
    .wsav-overlay .wsav-overlay-title { font-size: 19px; }
}
.wsav-overlay [hidden] { display: none !important; }
@media (prefers-reduced-motion: reduce) {
    .wsav-overlay, .wsav-overlay-card, .wsav-overlay * { transition: none !important; animation-duration: 2.4s !important; }
}
