*{box-sizing:border-box}html,body{margin:0;padding:0}body{font:13px Segoe UI,Arial;color:#10213e;background:#f5f8fb}#ippbxDeveloperCredit{position:relative;display:block;width:100%;margin:0;padding:3px 9px 4px;font:10px/1.2 Arial;color:rgba(255,255,255,.78);background:#07192b;white-space:nowrap}header{height:58px;background:linear-gradient(100deg,#07192b,#12385a);color:#fff;display:flex;align-items:center;padding:0 22px;gap:14px}header b{font-size:28px}header b span{color:#65c9e7}header small{color:#d7e1eb}header a{margin-left:auto;color:#fff;text-decoration:none;border:1px solid #39627d;border-radius:7px;padding:9px 14px;font-weight:700}main{max-width:1500px;margin:auto}.hero{min-height:175px;background:linear-gradient(110deg,#071729,#103451);color:#fff;display:grid;grid-template-columns:170px 390px 1fr;align-items:center;padding:12px 28px}.ring{width:135px;height:135px;border:12px solid #42e86e;border-radius:50%;display:grid;place-content:center;text-align:center;box-shadow:0 0 20px #38e86b55}.ring strong{font-size:34px}.ring span{font-size:9px;font-weight:800}.hero h2{margin:0}.hero h1{color:#4aee6d;margin:4px 0;font-size:28px}.hero p{color:#d7e1eb}.facts{border-left:1px solid #39627d;padding-left:25px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.facts small{display:block;color:#9fb0c8;font-size:9px}.facts b{display:block;margin-top:5px}.phase{min-height:40px;background:#fff;display:flex;gap:16px;align-items:center;padding:8px 15px;border-bottom:1px solid #e3eaf1}.phase span{color:#64748b}.workspace{padding:10px 14px 30px}.panel,.result-hero,.disclaimer{background:#fff;border:1px solid #dce5ee;border-radius:9px;padding:16px;margin-bottom:9px}.panel-head,.endpoint-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.panel h3,.endpoint-head h3{margin:3px 0 7px}.panel p{color:#64748b}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.08em;color:#197cf2}.badge{padding:8px 11px;border-radius:6px;font-weight:800}.waiting{background:#effbf5;color:#16913a}.form-grid{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin-top:14px}.wide{grid-column:1/-1}label{font-size:11px;font-weight:800;color:#42556d}input,select{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid #cbd7e3;border-radius:7px;background:#fff;color:#10213e;font:13px Segoe UI,Arial}input:focus,select:focus{outline:2px solid #197cf233;border-color:#197cf2}.endpoint-head{margin-top:18px}.endpoint{display:grid;grid-template-columns:1.5fr 1fr auto;gap:8px;align-items:end;margin:8px 0}.actions{display:flex;align-items:center;gap:14px;margin-top:16px}button{border:0;border-radius:7px;background:#197cf2;color:#fff;font-weight:700;padding:10px 22px;cursor:pointer}.secondary,.remove{background:#eef4fa;color:#173a5d;border:1px solid #cbd7e3}.remove{padding:11px 14px}.scope-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.scope-grid div{background:#effbf5;padding:9px;border-radius:6px;font-weight:700;color:#16913a}.result-hero{background:linear-gradient(110deg,#071729,#103451);color:#fff;padding:22px}.result-hero h2{color:#4aee6d;margin:5px 0}.result-hero a{display:inline-block;margin-top:8px;color:#fff;background:#197cf2;padding:10px 14px;border-radius:7px;text-decoration:none;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.metrics div{background:#f5f8fb;border:1px solid #e1e8ef;border-radius:7px;padding:10px}.metrics span{display:block;font-size:9px;font-weight:800;color:#64748b;text-transform:uppercase}.metrics b{display:block;font-size:22px;margin-top:5px}.family-card{background:#fff;border:1px solid #dce5ee;border-radius:9px;padding:14px;margin-bottom:9px}.family-card h3{margin:3px 0 9px}.family-card .metrics{grid-template-columns:repeat(9,1fr)}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.service{background:#f5f8fb;border:1px solid #e1e8ef;border-radius:7px;padding:10px}.service b{display:block;font-size:17px;margin:3px 0}.disclaimer{color:#64748b;line-height:1.5}li{margin:7px 0}.error{color:#b42318;font-weight:700}
@media(max-width:950px){.hero{grid-template-columns:150px 1fr}.facts{grid-column:1/-1;border:0;padding:8px 0}.metrics,.family-card .metrics,.scope-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.hero{display:block}.ring{margin-bottom:15px}.facts{grid-template-columns:1fr}.form-grid,.endpoint,.two{grid-template-columns:1fr}.wide{grid-column:auto}.metrics,.family-card .metrics,.scope-grid{grid-template-columns:1fr}.actions{align-items:flex-start;flex-direction:column}}

.endpoint-link-card{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;align-items:center;padding:10px;background:#f5f8fb;border:1px solid #e1e8ef;border-radius:7px;margin:8px 0}.endpoint-link-card small{display:block;color:#64748b;margin-top:3px}.endpoint-link-card input{margin:0;font-size:11px}@media(max-width:700px){.endpoint-link-card{grid-template-columns:1fr}}

/* IPPBXHOST-PBXDIAG-V22-TOOLTIPS */
.ippbx-tip{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:17px;
  height:17px;
  margin-left:5px;
  padding:0;
  border:1px solid #9db2c7;
  border-radius:50%;
  background:#fff;
  color:#197cf2;
  font:800 10px/1 Segoe UI,Arial,sans-serif;
  vertical-align:middle;
  cursor:help;
}
.ippbx-tip:hover,.ippbx-tip:focus{
  border-color:#197cf2;
  outline:2px solid rgba(25,124,242,.14);
  outline-offset:1px;
}
#ippbxTipBubble{
  position:fixed;
  z-index:99999;
  display:none;
  width:min(360px,calc(100vw - 24px));
  padding:11px 13px;
  border:1px solid #bfd0df;
  border-radius:8px;
  background:#07192b;
  color:#fff;
  box-shadow:0 10px 28px rgba(7,25,43,.25);
  font:12px/1.45 Segoe UI,Arial,sans-serif;
  text-align:left;
  pointer-events:none;
}
.ippbx-help-heading{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:2px;
}

/* IPPBXHOST-PBXDIAG-V23 */
.report-download{display:inline-block;margin-top:12px;padding:9px 13px;border:1px solid #197cf2;border-radius:7px;color:#197cf2;text-decoration:none;font-weight:700;background:#fff}.report-download:hover{background:#eef6ff}.scope-note{margin-top:12px;padding:10px 12px;background:#f5f8fb;border-left:3px solid #9db2c7;color:#526579;font-size:12px;line-height:1.5}

/* IPPBXHOST-PBXDIAG-V23-WAN-IP */
.ippbx-wan-helper{margin:5px 0 0;font-size:12px;color:#64748b}.ippbx-wan-fill{padding:0;border:0;background:transparent;color:#197cf2;font:700 12px Segoe UI,Arial,sans-serif;text-decoration:underline;cursor:pointer}.ippbx-wan-fill:disabled{opacity:.65;cursor:default}

/* IPPBXHOST-PBXDIAG-V232-PROGRESS */
.pbxdiag-progress-wrap{margin:18px 0 20px;padding:15px 18px 13px;background:#fff;border:1px solid #dce5ed;border-radius:9px;box-shadow:0 2px 8px rgba(7,25,43,.06)}
.pbxdiag-progress-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;color:#526579;font-size:11px;font-weight:800;letter-spacing:.45px}
.pbxdiag-track{height:12px;background:#dce8f3;border-radius:999px;position:relative;overflow:visible}
.pbxdiag-progress-bar{height:100%;width:0;background:#197cf2;border-radius:999px;transition:width .28s ease}
.pbxdiag-status-marker{position:absolute;z-index:3;left:0;top:-39px;transform:translateX(-50%);white-space:nowrap;background:#ffeb00;color:#10213e;border:2px solid #5b4a00;padding:6px 11px;border-radius:6px;font-size:11px;font-weight:800;line-height:1;box-shadow:0 3px 8px rgba(0,0,0,.18);transition:left .28s ease}
.pbxdiag-status-marker:after{content:"";position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #5b4a00}
.pbxdiag-progress-text{margin-top:9px;color:#526579;font-size:12px}
@media(max-width:600px){.pbxdiag-status-marker{font-size:9px;padding:5px 8px}}
@media(prefers-reduced-motion:reduce){.pbxdiag-progress-bar,.pbxdiag-status-marker{transition:none}}

/* IPPBXHOST-PBXDIAG-V24-PUBLIC-HARDENING */
.pbxdiag-auth-notice{margin:12px 0;padding:10px 12px;background:#f5f8fb;border-left:3px solid #197cf2;color:#526579;font-size:12px;line-height:1.5}.pbxdiag-auth-notice b{color:#10213e}

/* IPPBXHOST-PBXDIAG-V241-WAN-HELPER-ABOVE */
.ippbx-wan-helper{display:block;margin:0 0 5px 0;min-height:16px;line-height:16px}
