/* ==========================================================================
   VerityLoft Diagnostic Suite - shared stylesheet
   Upload to: /wp-content/uploads/verityloft/verityloft-suite.css

   One stylesheet serves the Tools hub and all seven diagnostics. Every rule is
   scoped to #vl-tool, so nothing here can reach the surrounding theme and the
   theme cannot easily reach in. The container also carries a vl-t-<tool> class;
   that is used only where two tools genuinely need the same class name to look
   different, which is rare and always marked below.

   Pure ASCII by design. WordPress installations vary in how they declare the
   page charset, and a stylesheet that only renders correctly under UTF-8 is a
   stylesheet that renders wrongly on somebody's site.
   ========================================================================== */

#vl-tool{
  /* ============ VERITYLOFT BRAND PALETTE (Canadian spellings) ============
     Deep Space Blue #1E293B - Porcelain #FAF8F4 - Graphite #333333
     Metallic Gold  #DDB849 - Soft Linen #E6E2DA
     Gold is a fill and a rule, never small text on a light ground: gold on
     porcelain measures about 1.9:1, well under the 4.5:1 floor. Every colour
     below is declared once and inherited by all seven diagnostics. */
  --vl-navy:#1E293B; --vl-porcelain:#FAF8F4; --vl-graphite:#333333;
  --vl-gold:#DDB849; --vl-linen:#E6E2DA;
  --vl-primary:var(--vl-navy); --vl-primary-dark:#111C2E;
  --vl-primary-soft:#EDEFF3; --vl-primary-line:#C7CDD8; --vl-focus:rgba(30,41,59,.16);
  --vl-accent:var(--vl-gold); --vl-accent-soft:#FBF3DE; --vl-accent-line:#EFD9A0; --vl-accent-ink:#7A5F12;
  --vl-ink:var(--vl-navy); --vl-body:var(--vl-graphite);
  --vl-slate:#5A5750; --vl-muted:#6F6A60;
  --vl-line:var(--vl-linen); --vl-line-soft:#F0EDE7;
  --vl-bg:#FFFFFF; --vl-bg-alt:var(--vl-porcelain);
  --vl-alert-bg:#FBEAE6; --vl-alert-line:#F0C4BA; --vl-alert-ink:#8C2F1E;
  --vl-good-bg:#E8EFE4; --vl-good-line:#C3D5B8; --vl-good-ink:#3D5A2E;
  --vl-warn-bg:var(--vl-accent-soft); --vl-warn-line:var(--vl-accent-line); --vl-warn-ink:var(--vl-accent-ink);
  --vl-s1:#8C2F1E; --vl-s2:#B8703A; --vl-s3:#DDB849; --vl-s4:#3D5A2E;
  --vl-radius:14px; --vl-radius-sm:9px;
  --vl-shadow:0 1px 2px rgba(30,41,59,.05), 0 8px 24px -12px rgba(30,41,59,.20);
  /* ============================================================ */
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Noto Sans",sans-serif;
  color:var(--vl-body); background:var(--vl-porcelain);
  line-height:1.5; font-size:15px; max-width:1120px; margin:0 auto;
  padding:10px 14px 18px; border-radius:var(--vl-radius); -webkit-font-smoothing:antialiased;
}

/* ---------------- reset ---------------- */
#vl-tool *,#vl-tool *::before,#vl-tool *::after{box-sizing:border-box;}
#vl-tool p,#vl-tool h2,#vl-tool h3,#vl-tool h4,#vl-tool ol,#vl-tool li,
#vl-tool dl,#vl-tool dd,#vl-tool dt{margin:0;padding:0;}
#vl-tool ol{list-style:none;}
#vl-tool a{color:var(--vl-primary);}
#vl-tool button{font-family:inherit;font-size:inherit;cursor:pointer;border:0;background:none;color:inherit;}
#vl-tool input,#vl-tool select,#vl-tool textarea{font-family:inherit;font-size:inherit;color:inherit;}
#vl-tool input[type=number]{-moz-appearance:textfield;}
#vl-tool input[type=number]::-webkit-outer-spin-button,
#vl-tool input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
#vl-tool input[type=checkbox]{width:17px;height:17px;flex-shrink:0;accent-color:var(--vl-primary);cursor:pointer;margin:0;}
#vl-tool .vl-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}

/* ---------------- header ---------------- */
#vl-tool .vl-head{text-align:center;padding:26px 16px 16px;}
/* display:table shrink-wraps and takes its own line, so the back link sits
   above the eyebrow rather than beside it. */
#vl-tool .vl-back{display:table;margin:0 auto 14px;font-size:12.5px;font-weight:650;color:var(--vl-slate);
  text-decoration:none;padding:5px 12px;border:1px solid var(--vl-line);
  border-radius:99px;background:var(--vl-bg);transition:background .15s,border-color .15s;}
#vl-tool .vl-back:hover{background:var(--vl-bg-alt);border-color:var(--vl-muted);}
#vl-tool .vl-eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:var(--vl-accent-ink);background:var(--vl-accent-soft);border:1px solid var(--vl-accent-line);
  padding:5px 11px;border-radius:99px;}
#vl-tool .vl-title{font-size:30px;line-height:1.18;font-weight:750;letter-spacing:-.022em;color:var(--vl-ink);margin-top:12px;}
#vl-tool .vl-title::after{content:"";display:block;width:52px;height:3px;background:var(--vl-accent);border-radius:2px;margin:14px auto 0;}
#vl-tool .vl-sub{margin-top:10px;color:var(--vl-slate);font-size:15px;max-width:700px;margin-left:auto;margin-right:auto;}

/* ---------------- mode bar, segments ---------------- */
#vl-tool .vl-modebar{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:18px;flex-wrap:wrap;}
#vl-tool .vl-modelbl{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-seg{display:flex;gap:6px;flex-wrap:wrap;}
#vl-tool .vl-seg button{flex:1;min-width:104px;padding:8px 15px;border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);
  font-size:13px;font-weight:600;color:var(--vl-slate);background:var(--vl-bg);transition:all .15s;text-align:center;}
#vl-tool .vl-seg button[aria-pressed="true"]{background:var(--vl-navy);color:#fff;border-color:var(--vl-navy);}
/* The wide segmented controls share the row equally (flex:1 above). The small
   self/client toggle must not - equal shares squeeze "My own practice" until it
   clips, so these two size to their own labels instead. */
#vl-tool .vl-seg-sm button{flex:0 0 auto;min-width:0;padding:7px 15px;font-size:13px;white-space:nowrap;}
#vl-tool .vl-viewtoggle{display:inline-flex;background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:99px;padding:4px;gap:4px;margin-top:18px;}
#vl-tool .vl-viewtoggle button{padding:9px 22px;border-radius:99px;font-size:14px;font-weight:600;color:var(--vl-slate);transition:background .15s,color .15s;white-space:nowrap;}
#vl-tool .vl-viewtoggle button[aria-pressed="true"]{background:var(--vl-navy);color:#fff;}
#vl-tool .vl-viewtoggle button:focus-visible{outline:2px solid var(--vl-primary);outline-offset:2px;}

/* ---------------- practitioner bar ---------------- */
#vl-tool .vl-pract-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;}
#vl-tool .vl-pract-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--vl-line-soft);}
#vl-tool .vl-pract-foot .vl-btn{padding:8px 14px;font-size:13px;}

/* ---------------- cards and fields ---------------- */
#vl-tool .vl-card{background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:var(--vl-radius);
  box-shadow:var(--vl-shadow);margin-bottom:14px;padding:18px 20px;}
#vl-tool .vl-card-label{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--vl-muted);margin-bottom:5px;}
#vl-tool .vl-card-note{font-size:12.5px;color:var(--vl-slate);margin-bottom:14px;}
#vl-tool .vl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:15px;}
#vl-tool .vl-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;align-items:start;}
#vl-tool .vl-full{grid-column:1/-1;}
#vl-tool .vl-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--vl-ink);}
#vl-tool .vl-hint{font-size:11.5px;color:var(--vl-muted);margin-top:5px;line-height:1.4;}
#vl-tool .vl-opt-lbl{font-weight:400;color:var(--vl-muted);}
#vl-tool .vl-input-shell{display:flex;align-items:center;border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);
  background:var(--vl-bg);transition:border-color .15s,box-shadow .15s;overflow:hidden;}
#vl-tool .vl-input-shell:focus-within{border-color:var(--vl-primary);box-shadow:0 0 0 3px var(--vl-focus);}
#vl-tool .vl-input-shell input{border:0;outline:0;padding:10px 11px;width:100%;background:transparent;font-weight:600;min-width:0;}
#vl-tool .vl-affix{padding:0 10px;color:var(--vl-muted);font-size:14px;font-weight:600;background:var(--vl-bg-alt);
  align-self:stretch;display:flex;align-items:center;border-right:1px solid var(--vl-line);white-space:nowrap;}
#vl-tool .vl-affix.vl-suffix{border-right:0;border-left:1px solid var(--vl-line);}
#vl-tool select.vl-sel{width:100%;padding:10px 9px;border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);
  background:var(--vl-bg);font-size:14px;font-weight:600;outline:0;cursor:pointer;}
#vl-tool select.vl-sel:focus{border-color:var(--vl-primary);box-shadow:0 0 0 3px var(--vl-focus);}
#vl-tool select.vl-sel:disabled{background:var(--vl-line-soft);color:var(--vl-muted);cursor:not-allowed;}
#vl-tool .vl-tierbox{background:var(--vl-primary-soft);border:1px solid var(--vl-primary-line);border-radius:var(--vl-radius-sm);padding:11px 13px;}
#vl-tool .vl-tiername{font-size:13px;font-weight:750;color:var(--vl-ink);}
#vl-tool .vl-tierdet{font-size:12px;color:var(--vl-slate);margin-top:4px;}

/* ---------------- headline result ---------------- */
#vl-tool .vl-headline{background:var(--vl-navy);color:#fff;border-radius:var(--vl-radius);padding:30px 26px;
  text-align:center;margin-bottom:14px;box-shadow:var(--vl-shadow);}
#vl-tool .vl-headline.clear,#vl-tool .vl-headline.ready{background:#26402A;}
#vl-tool .vl-headline.clear .vl-qstat,#vl-tool .vl-headline.ready .vl-qstat{background:#31503550;}
#vl-tool .vl-hl-eyebrow{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vl-gold);}
#vl-tool .vl-hl-num{font-size:57px;font-weight:800;letter-spacing:-.035em;line-height:1;margin:12px 0 6px;color:var(--vl-gold);}
#vl-tool .vl-hl-txt{font-size:17px;font-weight:600;max-width:650px;margin:0 auto;line-height:1.45;}
#vl-tool .vl-hl-sub{font-size:13px;color:#B9C0CC;max-width:700px;margin:12px auto 0;line-height:1.5;}
#vl-tool .vl-qstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;
  background:rgba(255,255,255,.16);border-radius:var(--vl-radius-sm);overflow:hidden;margin-top:22px;}
#vl-tool .vl-qstat{background:#25324a;padding:12px 10px;}
#vl-tool .vl-qstat dt{font-size:9.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#9AA3B2;}
#vl-tool .vl-qstat dd{margin:4px 0 0;font-size:17px;font-weight:750;color:#fff;letter-spacing:-.02em;}
#vl-tool .vl-qstat dd small{display:block;font-size:10.5px;font-weight:600;color:#9AA3B2;letter-spacing:0;margin-top:2px;}
#vl-tool .vl-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px;}

/* ---------------- metrics and pills ---------------- */
#vl-tool .vl-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;}
#vl-tool .vl-metric{background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:var(--vl-radius);
  padding:16px 15px;box-shadow:var(--vl-shadow);position:relative;overflow:hidden;}
#vl-tool .vl-metric::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--vl-primary);}
#vl-tool .vl-metric.vl-m-good::before{background:var(--vl-good-ink);}
#vl-tool .vl-metric.vl-m-warn::before{background:var(--vl-accent);}
#vl-tool .vl-metric.vl-m-bad::before{background:var(--vl-alert-ink);}
#vl-tool .vl-metric.vl-m-gold::before{background:var(--vl-accent);}
#vl-tool .vl-metric.vl-m-gold{background:linear-gradient(180deg,var(--vl-accent-soft) 0%,var(--vl-bg) 70%);border-color:var(--vl-accent-line);}
#vl-tool .vl-m-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vl-muted);min-height:28px;}
#vl-tool .vl-m-value{font-size:26px;font-weight:750;letter-spacing:-.025em;margin-top:6px;line-height:1.1;color:var(--vl-ink);}
#vl-tool .vl-m-note{font-size:12px;color:var(--vl-slate);margin-top:6px;}
#vl-tool .vl-pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px;border:1px solid transparent;}
#vl-tool .vl-pill-good{background:var(--vl-good-bg);color:var(--vl-good-ink);border-color:var(--vl-good-line);}
#vl-tool .vl-pill-warn{background:var(--vl-warn-bg);color:var(--vl-warn-ink);border-color:var(--vl-warn-line);}
#vl-tool .vl-pill-bad{background:var(--vl-alert-bg);color:var(--vl-alert-ink);border-color:var(--vl-alert-line);}

/* ---------------- readouts (bar-backed secondary metrics) ---------------- */
#vl-tool .vl-readouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;}
#vl-tool .vl-ro{background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);padding:13px 14px;}
#vl-tool .vl-ro-label{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-ro-value{font-size:19px;font-weight:750;color:var(--vl-ink);margin-top:5px;letter-spacing:-.02em;}
#vl-tool .vl-ro-note{font-size:11px;color:var(--vl-muted);margin-top:4px;line-height:1.4;}
#vl-tool .vl-bar{height:5px;border-radius:99px;background:var(--vl-line-soft);margin-top:8px;overflow:hidden;}
#vl-tool .vl-bar i{display:block;height:100%;border-radius:99px;background:var(--vl-primary);transition:width .25s;}
#vl-tool .vl-bar.vl-b-good i{background:var(--vl-good-ink);}
#vl-tool .vl-bar.vl-b-warn i{background:var(--vl-accent);}
#vl-tool .vl-bar.vl-b-bad i{background:var(--vl-alert-ink);}

/* ---------------- alerts ---------------- */
#vl-tool .vl-alerts{display:grid;gap:10px;margin-bottom:14px;}
#vl-tool .vl-alert{border-radius:var(--vl-radius-sm);padding:13px 15px;font-size:14px;display:flex;gap:11px;align-items:flex-start;border:1px solid;}
#vl-tool .vl-alert-red{background:var(--vl-alert-bg);border-color:var(--vl-alert-line);color:var(--vl-alert-ink);}
#vl-tool .vl-alert-gold{background:var(--vl-accent-soft);border-color:var(--vl-accent-line);color:var(--vl-accent-ink);}
#vl-tool .vl-alert-blue{background:var(--vl-primary-soft);border-color:var(--vl-primary-line);color:var(--vl-navy);}
#vl-tool .vl-alert-green{background:var(--vl-good-bg);border-color:var(--vl-good-line);color:var(--vl-good-ink);}
#vl-tool .vl-alert-icon{font-size:15px;line-height:1.4;flex-shrink:0;}
#vl-tool .vl-alert-body{min-width:0;}
#vl-tool .vl-alert strong{font-weight:750;}
#vl-tool .vl-legal{background:var(--vl-alert-bg);border:1px solid var(--vl-alert-line);color:var(--vl-alert-ink);
  border-radius:var(--vl-radius-sm);padding:13px 15px;font-size:13px;margin-bottom:14px;line-height:1.5;}

/* ---------------- section heads, buttons, share ---------------- */
#vl-tool .vl-sechead{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:20px 0 10px;flex-wrap:wrap;}
#vl-tool .vl-sectitle{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-linkbtn{font-size:13px;font-weight:600;color:var(--vl-primary);padding:5px 9px;border-radius:7px;transition:background .15s;}
#vl-tool .vl-linkbtn:hover{background:var(--vl-primary-soft);}
#vl-tool .vl-linkmini{display:inline-block;font-size:12.5px;font-weight:600;color:var(--vl-primary);text-decoration:underline;padding:0;}
#vl-tool.vl-t-stack .vl-linkmini{margin-top:5px;}
#vl-tool .vl-btn{border:1px solid var(--vl-line);border-radius:9px;padding:10px 18px;font-size:13.5px;font-weight:650;
  color:var(--vl-ink);background:var(--vl-bg);transition:all .15s;}
#vl-tool .vl-btn:hover{background:var(--vl-bg-alt);border-color:var(--vl-muted);}
#vl-tool .vl-btn-gold{background:var(--vl-gold);border-color:var(--vl-gold);color:var(--vl-navy);}
#vl-tool .vl-btn-gold:hover{background:#c9a63c;border-color:#c9a63c;}
#vl-tool .vl-btn-ghost{background:transparent;border-color:rgba(255,255,255,.35);color:#fff;}
#vl-tool .vl-btn-ghost:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6);}
#vl-tool .vl-btns,#vl-tool .vl-share-btns{display:flex;gap:9px;flex-wrap:wrap;}
#vl-tool .vl-share{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:var(--vl-radius);padding:15px 18px;
  margin-top:16px;box-shadow:var(--vl-shadow);}
#vl-tool .vl-share-t{font-size:13.5px;color:var(--vl-slate);}
#vl-tool .vl-share-t b{color:var(--vl-ink);font-weight:750;display:block;font-size:14.5px;margin-bottom:2px;}
#vl-tool .vl-copied{color:var(--vl-good-ink);font-weight:700;}

/* ---------------- remediation sequence ---------------- */
#vl-tool .vl-seq{counter-reset:vlseq;display:grid;gap:9px;}
#vl-tool .vl-seq li{counter-increment:vlseq;display:flex;gap:13px;align-items:flex-start;background:var(--vl-bg);
  border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);padding:13px 15px;}
#vl-tool .vl-seq li::before{content:counter(vlseq);flex-shrink:0;width:25px;height:25px;border-radius:50%;
  background:var(--vl-navy);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;}
#vl-tool .vl-seq.vl-seq-red li::before{background:var(--vl-alert-ink);}
#vl-tool .vl-seq li.vl-done,#vl-tool .vl-seq li.done{background:var(--vl-good-bg);border-color:var(--vl-good-line);}
#vl-tool .vl-seq li.vl-done::before,#vl-tool .vl-seq li.done::before{background:var(--vl-good-ink);}
#vl-tool .vl-seq-t{font-weight:750;color:var(--vl-ink);font-size:14px;}
#vl-tool .vl-seq-d{font-size:12.5px;color:var(--vl-slate);margin-top:3px;}

/* ---------------- footer ---------------- */
#vl-tool .vl-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;
  padding:18px 4px 8px;border-top:1px solid var(--vl-line);margin-top:18px;}
#vl-tool .vl-note{font-size:11.5px;color:var(--vl-muted);max-width:790px;line-height:1.55;}
#vl-tool .vl-note em{font-style:normal;color:var(--vl-slate);font-weight:600;}
#vl-tool .vl-reset{border:1px solid var(--vl-line);border-radius:8px;padding:8px 15px;font-size:13px;font-weight:600;
  color:var(--vl-slate);background:var(--vl-bg);transition:background .15s,border-color .15s;flex-shrink:0;}
#vl-tool .vl-reset:hover{background:var(--vl-bg-alt);border-color:var(--vl-muted);}
#vl-tool .vl-printhead{display:none;}

/* ---------------- tables (generic) ---------------- */
#vl-tool .vl-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
#vl-tool .vl-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
#vl-tool th.vl-num{text-align:right;}
#vl-tool .vl-mini{display:block;font-size:11px;color:var(--vl-muted);font-weight:600;margin-top:2px;}

/* ==========================================================================
   THE TOOLS HUB
   ========================================================================== */
#vl-tool .vl-hubgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px;}
#vl-tool .vl-hc{display:flex;flex-direction:column;background:var(--vl-bg);border:1px solid var(--vl-line);
  border-radius:var(--vl-radius);box-shadow:var(--vl-shadow);padding:20px 21px;text-decoration:none;color:inherit;
  transition:border-color .15s,box-shadow .15s,transform .15s;position:relative;overflow:hidden;}
#vl-tool .vl-hc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--vl-linen);transition:background .15s;}
#vl-tool .vl-hc:hover{border-color:var(--vl-primary-line);transform:translateY(-2px);
  box-shadow:0 1px 2px rgba(30,41,59,.05),0 14px 30px -14px rgba(30,41,59,.32);}
#vl-tool .vl-hc:hover::before{background:var(--vl-accent);}
#vl-tool .vl-hc:focus-visible{outline:2px solid var(--vl-primary);outline-offset:2px;}
#vl-tool .vl-hc.vl-hc-used::before{background:var(--vl-good-ink);}
#vl-tool .vl-hc-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:9px;}
#vl-tool .vl-hc-zone{font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  background:var(--vl-primary-soft);color:var(--vl-navy);border:1px solid var(--vl-primary-line);padding:3px 8px;border-radius:5px;}
#vl-tool .vl-hc-done{font-size:9.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:var(--vl-good-bg);color:var(--vl-good-ink);border:1px solid var(--vl-good-line);padding:3px 8px;border-radius:5px;}
#vl-tool .vl-hc-n{font-size:19px;font-weight:750;letter-spacing:-.02em;color:var(--vl-ink);line-height:1.25;}
#vl-tool .vl-hc-q{font-size:13.5px;color:var(--vl-slate);margin-top:7px;line-height:1.5;flex:1;}
#vl-tool .vl-hc-q b{color:var(--vl-ink);font-weight:700;}
#vl-tool .vl-hc-f{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:15px;padding-top:12px;border-top:1px solid var(--vl-line-soft);}
#vl-tool .vl-hc-time{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-hc-go{font-size:13px;font-weight:700;color:var(--vl-primary);}
#vl-tool .vl-hc-go::after{content:" \2192";font-weight:800;}
#vl-tool .vl-hubnote{margin-top:16px;}
#vl-tool .vl-roster{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  background:var(--vl-primary-soft);border:1px solid var(--vl-primary-line);border-radius:var(--vl-radius);
  padding:14px 18px;margin-bottom:14px;font-size:13.5px;color:var(--vl-navy);}
#vl-tool .vl-roster b{font-weight:750;}
#vl-tool .vl-start{background:var(--vl-navy);color:#fff;border-radius:var(--vl-radius);padding:22px 24px;margin-bottom:14px;}
#vl-tool .vl-start b{display:block;font-size:11px;font-weight:750;color:var(--vl-gold);
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;}
#vl-tool .vl-start p{font-size:14.5px;line-height:1.55;max-width:800px;}
#vl-tool .vl-start a{color:var(--vl-gold);font-weight:700;}

/* ==========================================================================
   TOOL 1 - Tech Stack and Software Overhead Auditor (vl-t-stack)
   ========================================================================== */
#vl-tool .vl-zone{border:1px solid var(--vl-line);border-radius:var(--vl-radius);background:var(--vl-bg);
  margin-bottom:12px;box-shadow:var(--vl-shadow);overflow:hidden;}
#vl-tool .vl-zone.vl-active{border-color:var(--vl-accent-line);box-shadow:0 1px 2px rgba(30,41,59,.05),0 8px 24px -12px rgba(221,184,73,.45);}
#vl-tool .vl-zone-head{width:100%;display:flex;align-items:center;gap:14px;padding:15px 17px;text-align:left;transition:background .15s;}
#vl-tool .vl-zone-head:hover{background:var(--vl-bg-alt);}
#vl-tool .vl-zone-head:focus-visible{outline:2px solid var(--vl-primary);outline-offset:-2px;}
#vl-tool .vl-badge{flex-shrink:0;font-size:10px;font-weight:800;letter-spacing:.08em;background:var(--vl-linen);
  color:var(--vl-navy);padding:6px 9px;border-radius:7px;line-height:1;transition:background .15s;}
#vl-tool .vl-zone.vl-active .vl-badge{background:var(--vl-accent);}
#vl-tool .vl-zone-txt{flex:1;min-width:0;}
#vl-tool .vl-zone-name{display:block;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--vl-ink);}
#vl-tool .vl-zone-fn{display:block;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--vl-accent-ink);margin-top:4px;}
#vl-tool .vl-zone-desc{display:block;font-size:13px;color:var(--vl-slate);margin-top:3px;}
#vl-tool .vl-zone-meta{flex-shrink:0;text-align:right;font-size:12px;color:var(--vl-muted);font-weight:600;}
#vl-tool .vl-zone-meta b{display:block;font-size:15px;color:var(--vl-ink);font-weight:750;}
#vl-tool .vl-chev{flex-shrink:0;width:17px;height:17px;border-right:2px solid var(--vl-muted);border-bottom:2px solid var(--vl-muted);
  transform:rotate(45deg) translate(-3px,-3px);transition:transform .2s;}
#vl-tool .vl-zone-head[aria-expanded="true"] .vl-chev{transform:rotate(225deg) translate(-3px,-3px);}
#vl-tool .vl-zone-body{border-top:1px solid var(--vl-line);padding:0 17px 15px;}
#vl-tool .vl-zone-body[hidden]{display:none;}
#vl-tool .vl-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--vl-line);
  border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);overflow:hidden;margin:14px 0 4px;}
#vl-tool .vl-strip div{background:var(--vl-bg-alt);padding:9px 11px;}
#vl-tool .vl-strip dt{font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-strip dd{font-size:12px;font-weight:600;color:var(--vl-ink);margin:3px 0 0;line-height:1.35;}
#vl-tool .vl-tierpat{font-size:12px;color:var(--vl-slate);background:var(--vl-accent-soft);border:1px solid var(--vl-accent-line);
  border-radius:var(--vl-radius-sm);padding:8px 11px;margin-top:8px;}
#vl-tool .vl-tierpat b{color:var(--vl-accent-ink);font-weight:750;}
#vl-tool .vl-colhead,#vl-tool .vl-fn-grid{display:grid;grid-template-columns:minmax(0,1.6fr) 92px 104px 132px 128px 96px;gap:9px;}
#vl-tool .vl-colhead{padding:14px 2px 8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--vl-muted);border-bottom:1px solid var(--vl-line-soft);}
#vl-tool .vl-colhead span:last-child{text-align:right;}
#vl-tool .vl-fn-grid{align-items:center;}
#vl-tool .vl-fn{border-bottom:1px solid var(--vl-line-soft);padding:11px 2px;}
#vl-tool .vl-fn:last-child{border-bottom:0;}
#vl-tool .vl-fn-name{display:flex;align-items:flex-start;gap:10px;min-width:0;cursor:pointer;}
#vl-tool .vl-fn-name input{margin-top:2px;}
#vl-tool .vl-fn-txt{min-width:0;display:block;}
#vl-tool .vl-fn-title{display:block;font-weight:650;color:var(--vl-ink);line-height:1.3;}
#vl-tool .vl-fn-gloss{display:block;font-size:12px;color:var(--vl-slate);margin-top:3px;line-height:1.45;}
#vl-tool .vl-eg{display:block;font-size:11.5px;color:var(--vl-muted);margin-top:4px;font-style:italic;line-height:1.4;}
#vl-tool .vl-sm-shell{display:flex;align-items:center;border:1px solid var(--vl-line);border-radius:7px;overflow:hidden;background:var(--vl-bg);}
#vl-tool .vl-sm-shell:focus-within{border-color:var(--vl-primary);box-shadow:0 0 0 3px var(--vl-focus);}
#vl-tool .vl-sm-shell span{padding-left:8px;color:var(--vl-muted);font-size:13px;font-weight:600;}
#vl-tool .vl-sm-shell input{border:0;outline:0;padding:7px 8px;width:100%;background:transparent;font-size:14px;font-weight:600;min-width:0;}
#vl-tool .vl-sm-shell.vl-dis{background:var(--vl-line-soft);color:var(--vl-muted);cursor:not-allowed;}
#vl-tool .vl-sm-shell.vl-dis input{cursor:not-allowed;}
#vl-tool .vl-annual{text-align:right;font-weight:750;font-size:15px;white-space:nowrap;color:var(--vl-ink);}
#vl-tool .vl-annual.vl-inc{font-size:11px;font-weight:700;color:var(--vl-good-ink);text-transform:uppercase;letter-spacing:.05em;}
#vl-tool .vl-fn.vl-off{opacity:.5;}
#vl-tool .vl-fn.vl-flagged{background:var(--vl-alert-bg);border-radius:8px;padding-left:9px;padding-right:9px;}
#vl-tool .vl-fn.vl-manual{box-shadow:inset 3px 0 0 var(--vl-accent);border-radius:3px;padding-left:9px;}
#vl-tool .vl-tag-red{background:var(--vl-alert-ink);color:#fff;}
#vl-tool .vl-tag-gold{background:var(--vl-accent);color:var(--vl-navy);}
#vl-tool .vl-absorb{margin-top:10px;padding-left:27px;}
#vl-tool .vl-absorb-lbl{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--vl-muted);margin-bottom:6px;}
#vl-tool .vl-chips{display:flex;flex-wrap:wrap;gap:6px;}
#vl-tool .vl-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--vl-slate);
  background:var(--vl-bg-alt);border:1px solid var(--vl-line);border-radius:99px;padding:4px 10px 4px 7px;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;}
#vl-tool .vl-chip:has(input:checked){background:var(--vl-primary-soft);border-color:var(--vl-primary-line);color:var(--vl-primary-dark);}
#vl-tool .vl-chip input{width:13px;height:13px;}
#vl-tool .vl-qgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;}
#vl-tool .vl-qfull{grid-column:1/-1;}
#vl-tool .vl-ptable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:720px;}
#vl-tool .vl-ptable th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--vl-muted);padding:13px 12px;border-bottom:1px solid var(--vl-line);background:var(--vl-bg-alt);white-space:nowrap;}
#vl-tool .vl-ptable td{padding:12px;border-bottom:1px solid var(--vl-line-soft);vertical-align:middle;}
#vl-tool .vl-ptable tr:last-child td{border-bottom:0;}
#vl-tool .vl-ptable tbody tr:hover{background:var(--vl-bg-alt);}
#vl-tool .vl-ptable td b{color:var(--vl-ink);font-weight:700;}
#vl-tool .vl-ptable .vl-good{color:var(--vl-good-ink);font-weight:700;}
#vl-tool .vl-ptable .vl-warn{color:var(--vl-accent-ink);font-weight:700;}
#vl-tool .vl-ptable .vl-bad{color:var(--vl-alert-ink);font-weight:700;}
/* The stack auditor packs six controls into one row, so its selects and card
   labels run tighter than the single-column tools. */
#vl-tool.vl-t-stack select.vl-sel{padding:7px 6px;font-size:12.5px;border-radius:7px;}
/* The advisory tool runs four segment buttons across one field. */
#vl-tool.vl-t-adv .vl-seg button{min-width:100px;padding:8px 13px;font-size:12.5px;}
#vl-tool.vl-t-stack .vl-card-label{margin-bottom:14px;}

/* ==========================================================================
   TOOL 2 - Scope Leakage Calculator (vl-t-leak)
   ========================================================================== */
#vl-tool .vl-wf{display:flex;height:38px;border-radius:8px;overflow:hidden;border:1px solid var(--vl-line);background:var(--vl-line-soft);}
#vl-tool .vl-wf i{display:block;height:100%;transition:width .25s;}
#vl-tool .vl-wf .s1{background:var(--vl-s1);} #vl-tool .vl-wf .s2{background:var(--vl-s2);}
#vl-tool .vl-wf .s3{background:var(--vl-s3);} #vl-tool .vl-wf .s4{background:var(--vl-s4);}
#vl-tool .vl-wfkey,#vl-tool .vl-lkey{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;margin-top:14px;}
#vl-tool .vl-wfi,#vl-tool .vl-lki{border-left:3px solid;padding:2px 0 2px 11px;}
#vl-tool .vl-wfi.k1{border-color:var(--vl-s1);} #vl-tool .vl-wfi.k2{border-color:var(--vl-s2);}
#vl-tool .vl-wfi.k3{border-color:var(--vl-s3);} #vl-tool .vl-wfi.k4{border-color:var(--vl-s4);}
#vl-tool .vl-wfi b,#vl-tool .vl-lki b{display:block;font-size:16.5px;font-weight:750;color:var(--vl-ink);letter-spacing:-.02em;}
#vl-tool .vl-wfi span,#vl-tool .vl-lki span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--vl-muted);margin-top:3px;}
#vl-tool .vl-wfi em,#vl-tool .vl-lki em{display:block;font-style:normal;font-size:12px;color:var(--vl-slate);margin-top:4px;line-height:1.4;}

/* ==========================================================================
   TOOL 3 - Pricing Model Transition Modeller (vl-t-price)
   ========================================================================== */
#vl-tool .vl-scen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;}
#vl-tool .vl-sc,#vl-tool .vl-opt{background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:var(--vl-radius);
  box-shadow:var(--vl-shadow);overflow:hidden;display:flex;flex-direction:column;}
#vl-tool .vl-sc-head,#vl-tool .vl-opt-head{padding:14px 16px;border-bottom:1px solid var(--vl-line);}
#vl-tool .vl-sc.base .vl-sc-head{background:var(--vl-bg-alt);}
#vl-tool .vl-sc.bad .vl-sc-head{background:var(--vl-alert-bg);}
#vl-tool .vl-sc.good .vl-sc-head{background:var(--vl-good-bg);}
#vl-tool .vl-sc-t{font-size:14px;font-weight:750;color:var(--vl-ink);}
#vl-tool .vl-sc-d,#vl-tool .vl-opt-d{font-size:11.5px;color:var(--vl-slate);margin-top:3px;line-height:1.4;}
#vl-tool .vl-sc-body,#vl-tool .vl-opt-body{padding:14px 16px;flex:1;}
#vl-tool .vl-sc-row,#vl-tool .vl-opt-row{display:flex;justify-content:space-between;gap:10px;padding:7px 0;
  font-size:13.5px;border-bottom:1px solid var(--vl-line-soft);}
#vl-tool .vl-sc-row:last-child,#vl-tool .vl-opt-row:last-child{border-bottom:0;}
#vl-tool .vl-sc-row span,#vl-tool .vl-opt-row span{color:var(--vl-slate);}
#vl-tool .vl-sc-row b,#vl-tool .vl-opt-row b{font-weight:700;color:var(--vl-ink);font-variant-numeric:tabular-nums;}
#vl-tool .vl-sc-margin,#vl-tool .vl-opt-hero{margin-top:10px;padding-top:12px;border-top:2px solid var(--vl-line);}
#vl-tool .vl-sc-big{font-size:24px;font-weight:800;letter-spacing:-.025em;color:var(--vl-ink);}
#vl-tool .vl-sc-delta{font-size:12.5px;font-weight:700;margin-top:4px;}
#vl-tool .vl-up{color:var(--vl-good-ink);} #vl-tool .vl-down{color:var(--vl-alert-ink);} #vl-tool .vl-flat{color:var(--vl-muted);}
#vl-tool .vl-gauge{position:relative;height:44px;border-radius:8px;overflow:hidden;border:1px solid var(--vl-line);
  background:linear-gradient(90deg,var(--vl-alert-bg) 0%,var(--vl-alert-bg) var(--be),var(--vl-good-bg) var(--be),var(--vl-good-bg) 100%);}
#vl-tool .vl-gauge i{position:absolute;top:0;bottom:0;width:3px;background:var(--vl-navy);}
#vl-tool .vl-gauge i::after{content:attr(data-l);position:absolute;top:50%;transform:translateY(-50%);left:8px;
  white-space:nowrap;font-size:11.5px;font-weight:750;color:var(--vl-ink);}
#vl-tool .vl-gauge i.right::after{left:auto;right:8px;}
#vl-tool .vl-gauge u{position:absolute;top:-1px;bottom:-1px;width:5px;background:var(--vl-accent);
  box-shadow:0 0 0 1.5px var(--vl-accent-ink);border-radius:3px;}
#vl-tool .vl-gaugekey{display:flex;justify-content:space-between;font-size:11px;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--vl-muted);margin-top:8px;}

/* ==========================================================================
   TOOL 4 - Capacity and Hiring Decision Model (vl-t-cap)
   ========================================================================== */
#vl-tool .vl-ledger{display:flex;height:40px;border-radius:8px;overflow:hidden;border:1px solid var(--vl-line);background:var(--vl-line-soft);}
#vl-tool .vl-ledger i{display:block;height:100%;transition:width .25s;}
#vl-tool .vl-ledger .lc{background:var(--vl-navy);}
#vl-tool .vl-ledger .lt{background:var(--vl-alert-ink);}
#vl-tool .vl-ledger .lh{background:var(--vl-good-ink);}
#vl-tool .vl-lki.kc{border-color:var(--vl-navy);}
#vl-tool .vl-lki.kt{border-color:var(--vl-alert-ink);}
#vl-tool .vl-lki.kh{border-color:var(--vl-good-ink);}
#vl-tool .vl-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;}
#vl-tool .vl-opt.win{border-color:var(--vl-good-line);box-shadow:0 1px 2px rgba(30,41,59,.05),0 8px 24px -12px rgba(61,90,46,.5);}
#vl-tool .vl-opt-head{background:var(--vl-bg-alt);}
#vl-tool .vl-opt.win .vl-opt-head{background:var(--vl-good-bg);}
#vl-tool .vl-opt-t{font-size:15px;font-weight:750;color:var(--vl-ink);}
#vl-tool .vl-opt-hero span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-opt-big{font-size:26px;font-weight:800;letter-spacing:-.025em;color:var(--vl-ink);margin-top:3px;}
#vl-tool .vl-verdict{border-radius:var(--vl-radius);padding:18px 20px;font-size:15px;border:2px solid;margin-bottom:14px;}
#vl-tool .vl-verdict b{display:block;font-size:17px;font-weight:800;margin-bottom:5px;}
#vl-tool .vl-verdict.ok{background:var(--vl-good-bg);border-color:var(--vl-good-ink);color:var(--vl-good-ink);}
#vl-tool .vl-verdict.fix{background:var(--vl-accent-soft);border-color:var(--vl-accent-ink);color:var(--vl-accent-ink);}
#vl-tool .vl-verdict.hire{background:var(--vl-primary-soft);border-color:var(--vl-navy);color:var(--vl-navy);}
/* Only the capacity tool uses vl-badge as a "recommended option" flag; the stack
   auditor uses the same class for its zone numerals. Scoped so both can exist. */
#vl-tool.vl-t-cap .vl-badge{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  background:var(--vl-good-ink);color:#fff;padding:3px 8px;border-radius:5px;margin-left:8px;vertical-align:middle;line-height:1.4;}

/* ==========================================================================
   TOOL 5 - Client Profitability and Realization Analyzer (vl-t-prof)
   ========================================================================== */
#vl-tool textarea.vl-paste{width:100%;min-height:112px;border:1px solid var(--vl-line);border-radius:var(--vl-radius-sm);
  padding:11px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.55;
  resize:vertical;outline:0;background:var(--vl-bg);}
#vl-tool textarea.vl-paste:focus{border-color:var(--vl-primary);box-shadow:0 0 0 3px var(--vl-focus);}
#vl-tool .vl-dist{display:flex;height:44px;border-radius:8px;overflow:hidden;border:1px solid var(--vl-line);background:var(--vl-line-soft);}
#vl-tool .vl-dist i{display:block;height:100%;border-right:1px solid rgba(255,255,255,.55);}
#vl-tool .vl-dist i.pos{background:var(--vl-good-ink);}
#vl-tool .vl-dist i.thin{background:var(--vl-accent);}
#vl-tool .vl-dist i.neg{background:var(--vl-alert-ink);}
#vl-tool .vl-distkey{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:11.5px;font-weight:650;color:var(--vl-slate);}
#vl-tool .vl-distkey span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;}
#vl-tool .vl-distkey .k1::before{background:var(--vl-good-ink);}
#vl-tool .vl-distkey .k2::before{background:var(--vl-accent);}
#vl-tool .vl-distkey .k3::before{background:var(--vl-alert-ink);}
#vl-tool .vl-dtable{width:100%;border-collapse:collapse;font-size:13.5px;}
#vl-tool .vl-dtable th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
  color:var(--vl-muted);padding:11px 9px;border-bottom:1px solid var(--vl-line);background:var(--vl-bg-alt);white-space:nowrap;}
#vl-tool .vl-dtable td{padding:7px 9px;border-bottom:1px solid var(--vl-line-soft);vertical-align:middle;}
#vl-tool .vl-dtable tr:last-child td{border-bottom:0;}
#vl-tool .vl-dtable tr.rowloss td{background:rgba(140,47,30,.05);}
#vl-tool .vl-entry input{width:100%;min-width:64px;border:1px solid transparent;border-radius:6px;padding:6px 7px;
  background:transparent;font-weight:600;outline:0;font-size:13px;}
#vl-tool .vl-entry input:hover{border-color:var(--vl-line);}
#vl-tool .vl-entry input:focus{border-color:var(--vl-primary);box-shadow:0 0 0 2px var(--vl-focus);background:var(--vl-bg);}
#vl-tool .vl-entry input.vl-name{min-width:150px;text-align:left;}
#vl-tool .vl-entry input[type=number]{text-align:right;}
#vl-tool .vl-del{color:var(--vl-muted);font-size:16px;line-height:1;padding:4px 7px;border-radius:6px;}
#vl-tool .vl-del:hover{background:var(--vl-alert-bg);color:var(--vl-alert-ink);}
#vl-tool .vl-rank{color:var(--vl-muted);font-weight:700;font-size:12px;width:28px;}
#vl-tool .vl-pos{color:var(--vl-good-ink);font-weight:700;}
#vl-tool .vl-negv{color:var(--vl-alert-ink);font-weight:700;}
#vl-tool .vl-empty{text-align:center;padding:34px 20px;color:var(--vl-slate);}
#vl-tool .vl-tag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  padding:3px 7px;border-radius:5px;white-space:nowrap;}
#vl-tool .vl-tag.ok{background:var(--vl-good-bg);color:var(--vl-good-ink);}
#vl-tool .vl-tag.thin{background:var(--vl-accent-soft);color:var(--vl-accent-ink);}
#vl-tool .vl-tag.loss{background:var(--vl-alert-ink);color:#fff;}
/* The stack auditor hangs its tags off the end of a function title rather than
   sitting them in a table cell, so it needs the inline offset. */
#vl-tool.vl-t-stack .vl-tag{padding:3px 6px;margin-left:7px;vertical-align:middle;}

/* ==========================================================================
   TOOL 6 - Substrate and Compliance Readiness Check (vl-t-sub)
   ========================================================================== */
#vl-tool .vl-jurs{display:flex;flex-wrap:wrap;gap:8px;}
#vl-tool .vl-jur{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:650;color:var(--vl-slate);
  background:var(--vl-bg);border:1px solid var(--vl-line);border-radius:99px;padding:8px 15px 8px 11px;cursor:pointer;transition:all .15s;}
#vl-tool .vl-jur:has(input:checked){background:var(--vl-primary-soft);border-color:var(--vl-primary-line);color:var(--vl-navy);}
#vl-tool .vl-jur input{width:15px;height:15px;accent-color:var(--vl-primary);margin:0;cursor:pointer;}
#vl-tool .vl-tests{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;}
#vl-tool .vl-test{border:2px solid var(--vl-line);border-radius:var(--vl-radius);padding:17px 19px;background:var(--vl-bg);}
#vl-tool .vl-test.pass{border-color:var(--vl-good-line);background:var(--vl-good-bg);}
#vl-tool .vl-test.part{border-color:var(--vl-accent-line);background:var(--vl-accent-soft);}
#vl-tool .vl-test.fail{border-color:var(--vl-alert-line);background:var(--vl-alert-bg);}
#vl-tool .vl-test-k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-test-q{font-size:15.5px;font-weight:750;color:var(--vl-ink);margin-top:6px;line-height:1.35;}
#vl-tool .vl-test-d{font-size:12.5px;color:var(--vl-slate);margin-top:7px;line-height:1.45;}
#vl-tool .vl-test-v{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;margin-top:10px;}
#vl-tool .vl-test.pass .vl-test-v{color:var(--vl-good-ink);}
#vl-tool .vl-test.part .vl-test-v{color:var(--vl-accent-ink);}
#vl-tool .vl-test.fail .vl-test-v{color:var(--vl-alert-ink);}
#vl-tool .vl-grp{border:1px solid var(--vl-line);border-radius:var(--vl-radius);background:var(--vl-bg);
  margin-bottom:12px;box-shadow:var(--vl-shadow);overflow:hidden;}
#vl-tool .vl-grp-h{display:flex;align-items:center;gap:13px;padding:14px 17px;background:var(--vl-bg-alt);border-bottom:1px solid var(--vl-line);}
#vl-tool .vl-grp-n{font-size:15px;font-weight:750;color:var(--vl-ink);flex:1;}
#vl-tool .vl-grp-s{font-size:12px;font-weight:700;color:var(--vl-muted);white-space:nowrap;}
#vl-tool .vl-ctl{padding:14px 17px;border-bottom:1px solid var(--vl-line-soft);display:grid;
  grid-template-columns:minmax(0,1fr) 232px;gap:16px;align-items:start;}
#vl-tool .vl-ctl:last-child{border-bottom:0;}
#vl-tool .vl-ctl.gap{background:rgba(140,47,30,.04);}
#vl-tool .vl-ctl-l{font-size:14px;font-weight:650;color:var(--vl-ink);line-height:1.35;}
#vl-tool .vl-ctl-d{font-size:12.5px;color:var(--vl-slate);margin-top:4px;line-height:1.45;}
#vl-tool .vl-cites{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
#vl-tool .vl-cite{font-size:10.5px;font-weight:650;padding:3px 8px;border-radius:5px;
  background:var(--vl-primary-soft);color:var(--vl-navy);border:1px solid var(--vl-primary-line);}
#vl-tool .vl-cite.vl{background:var(--vl-accent-soft);color:var(--vl-accent-ink);border-color:var(--vl-accent-line);}
#vl-tool .vl-ynp{display:flex;gap:5px;}
#vl-tool .vl-ynp button{flex:1;padding:8px 4px;border:1px solid var(--vl-line);border-radius:7px;font-size:12px;
  font-weight:650;color:var(--vl-slate);background:var(--vl-bg);transition:all .15s;}
#vl-tool .vl-ynp button[aria-pressed="true"][data-v="y"]{background:var(--vl-good-ink);border-color:var(--vl-good-ink);color:#fff;}
#vl-tool .vl-ynp button[aria-pressed="true"][data-v="p"]{background:var(--vl-accent);border-color:var(--vl-accent);color:var(--vl-navy);}
#vl-tool .vl-ynp button[aria-pressed="true"][data-v="n"]{background:var(--vl-alert-ink);border-color:var(--vl-alert-ink);color:#fff;}

/* ==========================================================================
   TOOL 7 - Advisory Readiness and Revenue Model (vl-t-adv)
   ========================================================================== */
#vl-tool .vl-gate{border-radius:var(--vl-radius);padding:20px 22px;border:2px solid;margin-bottom:14px;}
#vl-tool .vl-gate.pass{background:var(--vl-good-bg);border-color:var(--vl-good-ink);}
#vl-tool .vl-gate.fail{background:var(--vl-alert-bg);border-color:var(--vl-alert-ink);}
#vl-tool .vl-gate-k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--vl-muted);}
#vl-tool .vl-gate-t{font-size:19px;font-weight:800;margin-top:6px;letter-spacing:-.02em;}
#vl-tool .vl-gate-b{font-size:14px;margin-top:8px;line-height:1.5;}
#vl-tool .vl-gate.pass .vl-gate-t,#vl-tool .vl-gate.pass .vl-gate-b{color:var(--vl-good-ink);}
#vl-tool .vl-gate.fail .vl-gate-t,#vl-tool .vl-gate.fail .vl-gate-b{color:var(--vl-alert-ink);}
#vl-tool .vl-meter{height:9px;border-radius:99px;background:rgba(0,0,0,.09);margin-top:14px;overflow:hidden;}
#vl-tool .vl-meter i{display:block;height:100%;border-radius:99px;transition:width .25s;}
#vl-tool .vl-gate.pass .vl-meter i{background:var(--vl-good-ink);}
#vl-tool .vl-gate.fail .vl-meter i{background:var(--vl-alert-ink);}
#vl-tool .vl-meter-l{display:flex;justify-content:space-between;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;margin-top:7px;opacity:.75;}
#vl-tool .vl-case{width:100%;border-collapse:collapse;font-size:14px;}
#vl-tool .vl-case td{padding:10px 12px;border-bottom:1px solid var(--vl-line-soft);}
#vl-tool .vl-case td:last-child{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--vl-ink);}
#vl-tool .vl-case tr.sum td{border-top:2px solid var(--vl-line);border-bottom:0;padding-top:14px;font-size:16px;font-weight:750;}
#vl-tool .vl-case tr.sum td:last-child{font-size:20px;font-weight:800;letter-spacing:-.02em;}
#vl-tool .vl-case .neg{color:var(--vl-alert-ink);}
#vl-tool .vl-case .sub{font-size:12px;color:var(--vl-slate);display:block;margin-top:2px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:980px){
  #vl-tool .vl-metrics,#vl-tool .vl-readouts{grid-template-columns:repeat(2,minmax(0,1fr));}
  #vl-tool .vl-scen,#vl-tool .vl-opts{grid-template-columns:1fr;}
  #vl-tool .vl-colhead{display:none;}
  #vl-tool .vl-fn-grid{grid-template-columns:1fr 1fr;gap:8px;}
  #vl-tool .vl-fn-name{grid-column:1/-1;}
  #vl-tool .vl-annual{grid-column:1/-1;text-align:left;padding-left:27px;font-size:14px;color:var(--vl-slate);}
  #vl-tool .vl-zone-desc{display:none;}
  #vl-tool .vl-absorb{padding-left:0;}
}
@media (max-width:820px){
  #vl-tool .vl-tests{grid-template-columns:1fr;}
  #vl-tool .vl-ctl{grid-template-columns:1fr;gap:11px;}
}
@media (max-width:560px){
  #vl-tool{padding:8px 10px 14px;}
  #vl-tool .vl-title{font-size:23px;}
  #vl-tool .vl-metrics,#vl-tool .vl-readouts{grid-template-columns:1fr;}
  #vl-tool .vl-zone-head{padding:13px;gap:10px;}
  #vl-tool .vl-zone-body{padding:0 13px 13px;}
  #vl-tool .vl-annual{padding-left:0;}
  #vl-tool.vl-t-stack select.vl-sel{font-size:12px;padding:7px 4px;}
  #vl-tool .vl-viewtoggle{width:100%;}
  #vl-tool .vl-viewtoggle button{flex:1;padding:9px 10px;}
  #vl-tool .vl-headline{padding:24px 16px;}
  #vl-tool .vl-hl-num{font-size:43px;}
  #vl-tool .vl-hl-txt{font-size:15px;}
  #vl-tool .vl-share{flex-direction:column;align-items:stretch;}
  #vl-tool .vl-share-btns button{flex:1;}
  #vl-tool .vl-hubgrid{grid-template-columns:1fr;}
}

/* ==========================================================================
   PRINT / PDF REPORT
   Everything interactive drops away; what is left is the finding, the evidence
   and the parties. Hidden panels are forced open so a report is never partial.
   ========================================================================== */
@media print{
  #vl-tool{max-width:none;padding:0;background:#fff;font-size:11px;border-radius:0;}
  #vl-tool.vl-t-prof,#vl-tool.vl-t-sub{font-size:10.5px;}
  #vl-tool .vl-printhead{display:block;border-bottom:2px solid var(--vl-navy);padding-bottom:10px;margin-bottom:16px;}
  #vl-tool .vl-printhead h3{font-size:18px;font-weight:750;color:var(--vl-navy);}
  #vl-tool .vl-printhead p{font-size:11px;color:#555;margin-top:4px;}
  #vl-tool .vl-printhead #vl-print-parties{font-size:12px;color:var(--vl-ink);margin-top:5px;}
  #vl-tool .vl-printhead .vl-attrib{font-size:9.5px;color:#666;margin-top:6px;}
  #vl-tool .vl-head,#vl-tool .vl-share,#vl-tool .vl-modebar,#vl-tool .vl-viewtoggle,#vl-tool .vl-reset,
  #vl-tool .vl-linkbtn,#vl-tool .vl-linkmini,#vl-tool .vl-cta,#vl-tool .vl-chev,#vl-tool .vl-btns,
  #vl-tool .vl-del,#vl-tool .vl-ynp,#vl-tool .vl-pract-foot,#vl-tool .vl-pract-grid,
  #vl-tool #vl-pract,#vl-tool #vl-storewarn,#vl-tool #vl-entrycard{display:none !important;}
  #vl-tool.vl-t-adv .vl-seg{display:none !important;}
  #vl-tool .vl-card,#vl-tool .vl-metric,#vl-tool .vl-ro,#vl-tool .vl-zone,#vl-tool .vl-alert,#vl-tool .vl-seq li,
  #vl-tool .vl-sc,#vl-tool .vl-opt,#vl-tool .vl-verdict,#vl-tool .vl-grp,#vl-tool .vl-test,#vl-tool .vl-gate{
    box-shadow:none !important;break-inside:avoid;page-break-inside:avoid;}
  #vl-tool tr{break-inside:avoid;}
  #vl-tool .vl-zone{page-break-inside:auto;}
  #vl-tool .vl-zone-body[hidden]{display:block !important;}   /* force every zone open */
  #vl-tool .vl-fn.vl-off{display:none !important;}            /* omit uninstrumented rows */
  #vl-tool .vl-ctl{grid-template-columns:1fr !important;}
  #vl-tool .vl-ctl:not(.gap){display:none !important;}        /* the printed report is the gap list */
  #vl-tool .vl-metrics,#vl-tool .vl-readouts{grid-template-columns:repeat(4,1fr) !important;}
  #vl-tool .vl-scen{grid-template-columns:repeat(3,1fr) !important;}
  #vl-tool .vl-opts{grid-template-columns:repeat(2,1fr) !important;}
  #vl-tool .vl-m-value{font-size:19px;}
  #vl-tool .vl-ptable{min-width:0;font-size:10px;}
  #vl-tool .vl-ptable th,#vl-tool .vl-ptable td{padding:6px 7px;}
  #vl-tool .vl-headline{background:#fff !important;color:var(--vl-navy) !important;border:2px solid var(--vl-navy);padding:18px;}
  #vl-tool .vl-hl-num{color:var(--vl-navy) !important;font-size:37px;}
  #vl-tool .vl-hl-eyebrow{color:var(--vl-accent-ink) !important;}
  #vl-tool .vl-hl-sub,#vl-tool .vl-qstat dt,#vl-tool .vl-qstat dd small{color:#555 !important;}
  #vl-tool .vl-qstat{background:#F4F2ED !important;}
  #vl-tool .vl-qstat dd{color:var(--vl-navy) !important;}
  #vl-tool input,#vl-tool select{border:0 !important;box-shadow:none !important;background:transparent !important;
    -webkit-appearance:none;appearance:none;font-weight:650;padding:0 !important;color:var(--vl-ink) !important;}
  #vl-tool .vl-sm-shell,#vl-tool .vl-input-shell{border:0 !important;}
  #vl-tool .vl-affix{background:transparent !important;border:0 !important;padding:0 3px 0 0;}
  #vl-tool input[type=checkbox]{display:none;}
  #vl-tool .vl-fn-name{padding-left:0;}
  #vl-tool .vl-absorb{page-break-inside:avoid;}
  #vl-tool .vl-foot{border-top:1px solid #ccc;}
  #vl-tool .vl-note{font-size:8.5px;max-width:none;}
  #vl-tool .vl-sechead{page-break-after:avoid;}
  @page{margin:13mm;}
}
