/* ============================================================
   Visibility Scan — namespaced vs-* (avoid styles.css collisions)
   ============================================================ */
:root{
  --vs-good:#3f9e5f;
  --vs-good-soft:rgba(63,158,95,.16);
  --vs-amber:#d9a13c;
  --vs-bad:var(--crimson-bright,#c0392b);
  --vs-ink:#221a10;
}

/* ---------- form ---------- */
.vs-shell{max-width:760px;margin:0 auto}
.vs-form{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:34px}
.vs-form h3{font-size:21px;color:var(--gold-bright);margin-bottom:4px}
.vs-form .vs-sub{color:var(--muted-2);font-size:13.5px;margin-bottom:22px}
.vs-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vs-field{margin-bottom:16px}
.vs-field label{display:block;font-weight:600;font-size:13.5px;color:var(--cream);margin-bottom:7px}
.vs-field label small{color:var(--muted-2);font-weight:500}
.vs-field input{width:100%;padding:13px 15px;border-radius:10px;border:1px solid var(--line);background:var(--black-2);color:var(--cream);font-size:15px;font-family:inherit;outline:none;transition:border-color .18s}
.vs-field input:focus{border-color:var(--gold)}
.vs-err{display:none;background:rgba(165,29,45,.14);border:1px solid var(--crimson);border-radius:10px;padding:12px 16px;color:#eab6bd;font-size:14px;margin-bottom:14px}
.vs-hint{color:var(--muted-2);font-size:12.5px;text-align:center;margin-top:12px}

/* ---------- loading ---------- */
.vs-loading{display:none;text-align:center;padding:70px 20px}
.vs-loading .vs-ring-spin{width:64px;height:64px;margin:0 auto 22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--gold);animation:vs-spin 1s linear infinite}
@keyframes vs-spin{to{transform:rotate(360deg)}}
.vs-loading h3{color:var(--gold-bright);font-size:20px;margin-bottom:8px}
.vs-loading p{color:var(--muted);font-size:14.5px;min-height:22px}

/* ---------- report ---------- */
.vs-report{display:none;max-width:900px;margin:0 auto}
.vs-paper{background:linear-gradient(180deg,var(--card-2),var(--card));border:1px solid var(--line-strong);border-radius:var(--radius);overflow:hidden}
.vs-masthead{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:22px 34px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(212,175,55,.12),rgba(165,29,45,.06))}
.vs-masthead .vs-brand{display:flex;align-items:center;gap:11px;font-family:'Cinzel',serif;font-weight:800;font-size:18px;color:var(--cream)}
.vs-masthead .vs-brand img{width:34px;height:34px}
.vs-masthead .vs-brand b{color:var(--gold-bright)}
.vs-masthead .vs-doc{font-family:'Cinzel',serif;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);text-align:right}
.vs-biz{padding:26px 34px 6px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}
.vs-biz h2{font-size:26px;color:var(--cream);line-height:1.2}
.vs-biz .vs-meta{color:var(--muted-2);font-size:13.5px;margin-top:5px}
.vs-biz .vs-date{color:var(--muted-2);font-size:12.5px;text-align:right}
.vs-section{padding:24px 34px;border-top:1px solid var(--line)}
.vs-section > h4{font-family:'Cinzel',serif;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}

/* score hero */
.vs-hero{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center;padding:26px 34px}
.vs-ringwrap{position:relative;width:190px;height:190px}
.vs-ringwrap svg{width:100%;height:100%;transform:rotate(-90deg)}
.vs-ringnum{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.vs-ringnum .n{font-family:'Cinzel',serif;font-weight:800;font-size:44px;line-height:1;color:var(--gold-bright)}
.vs-ringnum .d{color:var(--muted-2);font-size:12.5px;margin-top:3px}
.vs-gradepill{display:inline-block;font-family:'Cinzel',serif;font-weight:700;font-size:14px;padding:6px 18px;border-radius:50px;border:1px solid currentColor;margin-bottom:10px}
.vs-read{color:var(--muted);font-size:15px;line-height:1.65;max-width:520px}
.vs-read b{color:var(--cream)}

/* family tiles */
.vs-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vs-tile{background:var(--black-2);border:1px solid var(--line);border-radius:12px;padding:16px;text-align:center}
.vs-tile .t{color:var(--muted-2);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;min-height:28px;display:flex;align-items:center;justify-content:center}
.vs-tile .v{font-family:'Cinzel',serif;font-weight:800;font-size:30px;line-height:1}
.vs-tile .s{color:var(--muted-2);font-size:11px;margin-top:6px}

/* factor bars */
.vs-bars{display:flex;flex-direction:column;gap:11px}
.vs-bar{display:grid;grid-template-columns:215px 1fr 44px;gap:14px;align-items:center}
.vs-bar .l{font-size:13.5px;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vs-bar .l small{display:block;color:var(--muted-2);font-size:11px}
.vs-bar .track{height:11px;border-radius:6px;background:var(--black-2);border:1px solid var(--line);overflow:hidden}
.vs-bar .track i{display:block;height:100%;border-radius:6px;transition:width .6s ease}
.vs-bar .v{font-family:'Cinzel',serif;font-weight:700;font-size:14px;text-align:right}

/* competitor table */
.vs-table{width:100%;border-collapse:collapse;font-size:13.5px}
.vs-table th{font-family:'Cinzel',serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);text-align:left;padding:9px 10px;border-bottom:1px solid var(--line-strong)}
.vs-table td{padding:11px 10px;border-bottom:1px solid var(--line);color:var(--muted)}
.vs-table td:first-child{color:var(--muted-2)}
.vs-table .num{text-align:right}
.vs-table th.num{text-align:right}
.vs-table tr.you td{background:rgba(212,175,55,.10);color:var(--cream);font-weight:600}
.vs-table tr.you td:nth-child(2)::after{content:" — you";color:var(--gold-bright);font-family:'Cinzel',serif;font-size:11px}

/* heatmap grid */
.vs-heatwrap{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}
.vs-heat{display:grid;gap:5px;flex:0 0 auto}
.vs-cell{width:44px;height:44px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-family:'Cinzel',serif;font-weight:700;font-size:14px;color:#fff}
.vs-cell.good{background:var(--vs-good)}
.vs-cell.mid{background:var(--vs-amber);color:var(--vs-ink)}
.vs-cell.bad{background:var(--vs-bad)}
.vs-cell.none{background:var(--black-2);border:1px solid var(--line);color:var(--muted-2);font-size:11px}
.vs-heatside{flex:1;min-width:220px}
.vs-legend{display:flex;flex-direction:column;gap:9px;font-size:13px;color:var(--muted)}
.vs-legend i{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:9px;vertical-align:-2px}
.vs-solv{margin-top:18px;background:var(--black-2);border:1px solid var(--line);border-radius:12px;padding:15px 18px}
.vs-solv .n{font-family:'Cinzel',serif;font-weight:800;font-size:26px;color:var(--gold-bright)}
.vs-solv .t{color:var(--muted-2);font-size:12px;margin-top:2px}

/* opportunities */
.vs-opps{display:flex;flex-direction:column;gap:12px;counter-reset:opp}
.vs-opp{display:flex;gap:15px;background:var(--black-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.vs-opp::before{counter-increment:opp;content:counter(opp);flex:0 0 30px;height:30px;border-radius:50%;background:var(--grad-gold);color:var(--vs-ink);font-family:'Cinzel',serif;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center}
.vs-opp b{color:var(--gold-bright);font-family:'Cinzel',serif;font-size:14.5px}
.vs-opp p{color:var(--muted);font-size:13.5px;margin-top:4px;line-height:1.55}
.vs-opp .sc{margin-left:auto;flex:0 0 auto;font-family:'Cinzel',serif;font-weight:700;color:var(--muted-2);font-size:13px;white-space:nowrap}

/* confidence + cta */
.vs-conf{color:var(--muted-2);font-size:12px;line-height:1.6}
.vs-cta{padding:30px 34px;text-align:center;background:linear-gradient(135deg,rgba(212,175,55,.14),rgba(165,29,45,.08));border-top:1px solid var(--line-strong)}
.vs-cta h3{font-size:22px;color:var(--cream);margin-bottom:8px}
.vs-cta p{color:var(--muted);font-size:14.5px;margin-bottom:18px}
.vs-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:26px 0 8px}
.vs-footer{padding:18px 34px;color:var(--muted-2);font-size:11.5px;text-align:center;border-top:1px solid var(--line)}

@media(max-width:760px){
  .vs-grid2{grid-template-columns:1fr}
  .vs-hero{grid-template-columns:1fr;text-align:center;justify-items:center}
  .vs-tiles{grid-template-columns:repeat(2,1fr)}
  .vs-bar{grid-template-columns:1fr 60px;grid-template-rows:auto auto}
  .vs-bar .l{grid-column:1/-1}
  .vs-cell{width:34px;height:34px;font-size:12px}
  .vs-masthead,.vs-biz,.vs-section,.vs-hero,.vs-cta{padding-left:20px;padding-right:20px}
}

/* ---------- print (Download PDF = window.print) ---------- */
@media print{
  @page{margin:12mm}
  body{background:#fff !important;color:#221a10 !important}
  header,footer,.vs-form,.vs-loading,.vs-actions,.vs-cta .btn,.subhero,.no-print{display:none !important}
  .vs-report{display:block !important;max-width:none}
  .vs-paper{background:#fff;border:none;border-radius:0}
  .vs-masthead{background:#faf6ec;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-bottom:2px solid #d9b44a}
  .vs-masthead .vs-brand{color:#221a10}
  .vs-biz h2,.vs-read b,.vs-tile .v,.vs-opp b,.vs-cta h3{color:#221a10}
  .vs-read,.vs-opp p,.vs-table td{color:#4a4133}
  .vs-section{border-top:1px solid #e5dcc3;page-break-inside:avoid}
  .vs-tile,.vs-solv,.vs-opp{background:#faf6ec;border-color:#e5dcc3;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .vs-bar .track{background:#efe9d8;border-color:#e5dcc3}
  .vs-cell,.vs-bar .track i,.vs-gradepill,.vs-opp::before,.vs-legend i{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .vs-cell.none{background:#efe9d8;color:#8d8268}
  .vs-table th{color:#8d8268;border-color:#d9b44a}
  .vs-table tr.you td{background:#f5ecd2}
  .vs-ringnum .n{color:#a9842b}
  .vs-conf{color:#8d8268}
  .vs-cta{background:#faf6ec;border-top:2px solid #d9b44a;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .vs-cta p{color:#4a4133}
  .vs-footer{color:#8d8268;border-color:#e5dcc3}
}
