.pvbt {
  --pvbt-bg:#f5f7fb;
  --pvbt-card:#fff;
  --pvbt-text:#17304e;
  --pvbt-muted:#667085;
  --pvbt-border:#dbe3ef;
  --pvbt-primary:#2563eb;
  --pvbt-primary-dark:#1d4ed8;
  --pvbt-good:#14804a;
  --pvbt-good-bg:#ecf9f2;
  --pvbt-warn:#8a6200;
  --pvbt-warn-bg:#fff7dc;
  --pvbt-bad:#aa2d2d;
  --pvbt-bad-bg:#fff0f0;
  width:100%; max-width:100%; margin:28px 0; padding:clamp(15px,2.5vw,28px);
  color:var(--pvbt-text); background:var(--pvbt-bg); border:1px solid var(--pvbt-border);
  border-radius:20px; box-sizing:border-box; overflow:hidden; font-family:inherit;
}
.pvbt *, .pvbt *::before, .pvbt *::after { box-sizing:border-box; min-width:0; }
.pvbt [hidden] { display:none !important; }
.pvbt__topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
.pvbt__eyebrow { display:inline-block; color:var(--pvbt-primary); font-size:12px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pvbt__eyebrow span { color:#0f766e; }
.pvbt__topbar h2 { margin:7px 0 8px; font-size:clamp(27px,4vw,42px); line-height:1.12; overflow-wrap:anywhere; }
.pvbt__topbar p { margin:0; max-width:820px; color:var(--pvbt-muted); line-height:1.6; }
.pvbt__lang { display:flex; gap:6px; flex:0 0 auto; }
.pvbt__lang-btn { padding:7px 11px; border:1px solid var(--pvbt-border); border-radius:9px; background:#fff; color:var(--pvbt-text); font:inherit; font-weight:750; cursor:pointer; }
.pvbt__lang-btn.is-active { color:#fff; background:var(--pvbt-primary); border-color:var(--pvbt-primary); }
.pvbt__hero { margin:0 0 18px; border-radius:16px; overflow:hidden; border:1px solid var(--pvbt-border); background:#fff; }
.pvbt__hero img { display:block; width:100%; height:auto; }
.pvbt__notice, .pvbt__footer-note { padding:13px 15px; border:1px solid #cdd8ef; border-radius:12px; background:#eef4ff; line-height:1.5; overflow-wrap:anywhere; }
.pvbt__notice--privacy { margin-bottom:18px; }
.pvbt__notice--danger { background:var(--pvbt-bad-bg); border-color:#efc4c4; color:#7e2626; }
.pvbt__tool-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0 0 18px; }
.pvbt__tool-card { position:relative; display:grid; grid-template-columns:auto 1fr; gap:7px 11px; align-items:start; min-height:155px; padding:17px; text-align:left; color:var(--pvbt-text); background:#fff; border:1px solid var(--pvbt-border); border-radius:14px; cursor:pointer; box-shadow:0 4px 14px rgba(23,48,78,.04); transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.pvbt__tool-card:hover { transform:translateY(-2px); border-color:#a9bce8; box-shadow:0 10px 24px rgba(23,48,78,.08); }
.pvbt__tool-number { display:grid; place-items:center; width:27px; height:27px; border-radius:8px; color:#fff; background:var(--pvbt-primary); font-size:13px; font-weight:850; }
.pvbt__tool-icon { font-size:25px; line-height:1; justify-self:end; }
.pvbt__tool-card strong { grid-column:1/-1; font-size:17px; line-height:1.25; }
.pvbt__tool-card small { grid-column:1/-1; color:var(--pvbt-muted); line-height:1.45; font-size:13px; }
.pvbt__workspace { width:100%; }
.pvbt__section { display:none; padding:clamp(16px,2.6vw,24px); background:var(--pvbt-card); border:1px solid var(--pvbt-border); border-radius:16px; overflow:hidden; }
.pvbt__section.is-active { display:block; }
.pvbt__section-head { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:start; margin-bottom:18px; }
.pvbt__section-icon { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#edf3ff; font-size:23px; }
.pvbt__section-head h3 { margin:0 0 6px; font-size:clamp(22px,3vw,30px); line-height:1.18; overflow-wrap:anywhere; }
.pvbt__section-head p { margin:0; color:var(--pvbt-muted); line-height:1.55; }
.pvbt__back { align-self:start; padding:8px 11px; border:1px solid var(--pvbt-border); border-radius:9px; background:#fff; color:var(--pvbt-primary); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.pvbt[data-tool]:not([data-tool="all"]) .pvbt__back { display:none; }
.pvbt__form-grid { display:grid; gap:13px; margin:14px 0; }
.pvbt__form-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.pvbt__form-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.pvbt__form-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.pvbt__field { display:block; margin:12px 0; }
.pvbt__field > span { display:block; margin-bottom:7px; font-weight:730; }
.pvbt input, .pvbt select, .pvbt textarea { width:100%; max-width:100%; padding:11px 12px; color:var(--pvbt-text); background:#fff; border:1px solid var(--pvbt-border); border-radius:10px; font:inherit; }
.pvbt textarea { resize:vertical; overflow-wrap:anywhere; }
.pvbt select + input { margin-top:8px; }
.pvbt__checks { display:flex; flex-wrap:wrap; gap:10px 18px; margin:12px 0 4px; }
.pvbt__checks label { display:flex; align-items:flex-start; gap:7px; color:var(--pvbt-text); }
.pvbt__checks input { width:auto; margin-top:3px; }
.pvbt__button-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:14px; }
.pvbt__primary, .pvbt__secondary { max-width:100%; padding:11px 15px; border-radius:10px; font:inherit; font-weight:760; cursor:pointer; overflow-wrap:anywhere; }
.pvbt__primary { color:#fff; background:var(--pvbt-primary); border:1px solid var(--pvbt-primary); }
.pvbt__primary:hover { background:var(--pvbt-primary-dark); border-color:var(--pvbt-primary-dark); }
.pvbt__secondary { color:var(--pvbt-primary); background:#fff; border:1px solid #b8c7e8; }
.pvbt__code { margin-top:13px; min-height:160px; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace !important; font-size:12px !important; line-height:1.5; white-space:pre; overflow:auto; background:#111827 !important; color:#e5eefc !important; border-color:#111827 !important; }
.pvbt__details { margin:12px 0; padding:11px 13px; background:#f7f9fc; border-radius:10px; }
.pvbt__details summary { cursor:pointer; font-weight:760; }
.pvbt__details ol { margin-bottom:0; padding-left:22px; }
.pvbt__result { margin-top:16px; padding:16px; background:#f8fafc; border:1px solid var(--pvbt-border); border-radius:12px; line-height:1.55; overflow-wrap:anywhere; }
.pvbt__result h4 { margin:0 0 8px; font-size:19px; }
.pvbt__result h5 { margin:14px 0 6px; font-size:16px; }
.pvbt__result ul, .pvbt__result ol { margin:8px 0 0; padding-left:21px; }
.pvbt__result li { margin:6px 0; }
.pvbt__result.is-good { background:var(--pvbt-good-bg); border-color:#c6e8d8; color:#0e6b3f; }
.pvbt__result.is-warn { background:var(--pvbt-warn-bg); border-color:#eadb9e; color:#755500; }
.pvbt__result.is-bad { background:var(--pvbt-bad-bg); border-color:#efc4c4; color:#8c2929; }
.pvbt__checklist { display:grid; gap:9px; margin-top:10px; }
.pvbt__checkitem { display:grid; grid-template-columns:auto 1fr; gap:9px; align-items:start; padding:10px 12px; background:#fff; border:1px solid var(--pvbt-border); border-radius:9px; }
.pvbt__checkitem input { width:auto; margin-top:4px; }
.pvbt__metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }
.pvbt__metric { padding:12px; background:#fff; border:1px solid var(--pvbt-border); border-radius:10px; }
.pvbt__metric span, .pvbt__metric strong { display:block; }
.pvbt__metric span { color:var(--pvbt-muted); font-size:12px; }
.pvbt__metric strong { margin-top:4px; font-size:20px; }
.pvbt__glossary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.pvbt__term { padding:13px 14px; background:#fff; border:1px solid var(--pvbt-border); border-radius:11px; }
.pvbt__term summary { cursor:pointer; font-weight:780; }
.pvbt__term p { margin:9px 0 0; color:var(--pvbt-muted); line-height:1.5; }
.pvbt__footer-note { margin-top:18px; background:#fff7dc; border-color:#eadb9e; color:#6f5200; }
.pvbt__toast { position:fixed; right:18px; bottom:18px; z-index:99999; max-width:min(360px,calc(100vw - 36px)); padding:12px 14px; color:#fff; background:#172033; border-radius:10px; box-shadow:0 12px 32px rgba(0,0,0,.18); }
@media (max-width:1100px) {
  .pvbt__tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pvbt__form-grid--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pvbt__form-grid--3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:760px) {
  .pvbt__topbar { flex-direction:column; }
  .pvbt__tool-grid, .pvbt__form-grid--2, .pvbt__form-grid--3, .pvbt__form-grid--4, .pvbt__metric-grid, .pvbt__glossary { grid-template-columns:1fr; }
  .pvbt__section-head { grid-template-columns:auto 1fr; }
  .pvbt__back { grid-column:1/-1; justify-self:start; }
  .pvbt__button-row { flex-direction:column; }
  .pvbt__primary, .pvbt__secondary { width:100%; }
}

.pvbt__cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 11px 16px;
  color: #fff !important;
  background: var(--pvbt-primary, #3157d5);
  border-radius: 10px;
  font-weight: 750;
  text-decoration: none !important;
}
.pvbt__cta-link:hover { filter: brightness(.94); color: #fff !important; }
@media (max-width: 620px) { .pvbt__cta-link { width: 100%; } }

/* Emulator catalog recommendations */
.pvbt .pvbt__server-recommendations { margin-top:20px; padding-top:18px; border-top:1px solid var(--pvbt-border); color:var(--pvbt-text); }
.pvbt .pvbt__server-heading h4 { margin:5px 0 6px; color:var(--pvbt-text); font-size:clamp(20px,2.4vw,27px); }
.pvbt .pvbt__server-heading p { margin:0 0 14px; color:var(--pvbt-muted); }
.pvbt .pvbt__server-kicker { color:var(--pvbt-primary); font-size:11px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.pvbt .pvbt__server-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pvbt .pvbt__server-card { display:flex; flex-direction:column; min-height:100%; padding:15px; color:var(--pvbt-text); background:#fff; border:1px solid var(--pvbt-border); border-radius:13px; box-shadow:0 5px 16px rgba(23,48,78,.06); }
.pvbt .pvbt__server-card.is-conditional { border-style:dashed; }
.pvbt .pvbt__server-card-top { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.pvbt .pvbt__server-badge { display:inline-flex; padding:5px 8px; color:#174ea6; background:#eaf1ff; border-radius:999px; font-size:11px; font-weight:800; }
.pvbt .pvbt__server-type { color:var(--pvbt-muted); font-size:11px; font-weight:700; }
.pvbt .pvbt__server-card h5 { margin:12px 0 10px; color:var(--pvbt-text); font-size:18px; line-height:1.25; }
.pvbt .pvbt__server-specs { display:grid; gap:6px; color:var(--pvbt-muted); font-size:13px; }
.pvbt .pvbt__server-specs span { display:block; }
.pvbt .pvbt__server-specs strong { color:var(--pvbt-text); }
.pvbt .pvbt__server-capacity { display:flex; justify-content:space-between; align-items:end; gap:10px; margin:14px 0; padding:10px 11px; background:#f4f7fc; border-radius:10px; }
.pvbt .pvbt__server-capacity span { color:var(--pvbt-muted); font-size:12px; }
.pvbt .pvbt__server-capacity strong { color:var(--pvbt-primary); font-size:22px; }
.pvbt .pvbt__server-buy { display:flex; justify-content:space-between; align-items:end; gap:10px; margin-top:auto; padding-top:12px; border-top:1px solid var(--pvbt-border); }
.pvbt .pvbt__server-buy > div span, .pvbt .pvbt__server-buy > div strong { display:block; }
.pvbt .pvbt__server-buy > div span { color:var(--pvbt-muted); font-size:11px; }
.pvbt .pvbt__server-buy > div strong { margin-top:2px; color:var(--pvbt-text); font-size:20px; }
.pvbt .pvbt__server-buy small { font-size:11px; font-weight:650; }
.pvbt .pvbt__server-order { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:9px 11px; color:#fff !important; background:var(--pvbt-primary); border:1px solid var(--pvbt-primary); border-radius:9px; font-size:12px; font-weight:800; line-height:1.2; text-align:center; text-decoration:none !important; }
.pvbt .pvbt__server-order:hover { color:#fff !important; background:var(--pvbt-primary-dark); border-color:var(--pvbt-primary-dark); }
.pvbt .pvbt__catalog-note, .pvbt .pvbt__catalog-alert { margin-top:12px; padding:12px 14px; border-radius:11px; }
.pvbt .pvbt__catalog-note { color:#5e4b00; background:#fff9e6; border:1px solid #eadb9e; }
.pvbt .pvbt__catalog-note ul { margin:0 0 8px; }
.pvbt .pvbt__catalog-note p { margin:0; font-size:12px; }
.pvbt .pvbt__catalog-alert { display:grid; gap:4px; margin-bottom:12px; color:#8c2929; background:#fff0f0; border:1px solid #efc4c4; }
@media (max-width:1100px) { .pvbt .pvbt__server-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .pvbt .pvbt__server-grid { grid-template-columns:1fr; } .pvbt .pvbt__server-buy { align-items:stretch; flex-direction:column; } .pvbt .pvbt__server-order { width:100%; } }


.pvbt .pvbt__server-total { margin-top:5px; color:var(--pvbt-muted); font-size:11px; }
.pvbt .pvbt__server-total b { color:var(--pvbt-text); font-size:13px; }
.pvbt .pvbt__server-config-note { color:var(--pvbt-primary); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.035em; }


/* v1.5.0: replace decorative hero with a real quick launcher */
.pvbt__quick-launch{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.72fr) auto;gap:14px;align-items:center;margin:0 0 18px;padding:20px;border:1px solid #cfe0f7;border-radius:18px;background:linear-gradient(135deg,#eef6ff,#fff);box-shadow:0 12px 30px rgba(16,72,145,.07)}
.pvbt__quick-launch>div strong,.pvbt__quick-launch>div span{display:block}.pvbt__quick-launch>div strong{margin-bottom:4px;color:#0b2c5b;font-size:20px}.pvbt__quick-launch>div span{color:#5f7595;font-size:14px}
.pvbt__quick-select{margin:0!important}.pvbt__quick-select select{width:100%;min-height:46px;border:1px solid #bdd1ea;border-radius:10px;background:#fff;color:#183b65;padding:10px 12px;font:inherit;font-weight:700}
.pvbt__quick-launch>.pvbt__primary{min-height:46px;white-space:nowrap}
@media(max-width:820px){.pvbt__quick-launch{grid-template-columns:1fr 1fr}.pvbt__quick-launch>div{grid-column:1/-1}.pvbt__quick-launch>.pvbt__primary{width:100%}}
@media(max-width:560px){.pvbt__quick-launch{grid-template-columns:1fr;padding:16px}.pvbt__quick-launch>div{grid-column:auto}}

/* v1.8: dynamic emulator catalog and provider-neutral support-confirmation state */
.pvbt .pvbt__server-count { display:inline-flex; margin-top:4px; padding:6px 9px; color:#174ea6; background:#eef4ff; border-radius:999px; font-size:12px; font-weight:800; }
.pvbt .pvbt__server-list { margin-top:16px; }
.pvbt .pvbt__server-list-title { margin:0 0 9px; color:var(--pvbt-text); font-size:15px; }
.pvbt .pvbt__server-list-note { margin:-3px 0 10px; color:#785800; font-size:13px; }
.pvbt .pvbt__server-card.needs-support { border-color:#e5bd57; background:#fffdf5; }
.pvbt .pvbt__server-card.needs-support .pvbt__server-badge { color:#735000; background:#fff0b8; }
.pvbt .pvbt__server-support { padding:8px 9px; color:#735000; background:#fff3c9; border:1px solid #ecd281; border-radius:8px; font-weight:750; }
.pvbt .pvbt__server-support b { margin-right:4px; }

