/* Scoped, responsive styles for PTCLSpeedTest IP Address Validator. */
.ptcl-ipv {box-sizing:border-box; max-width:900px; margin:24px auto; padding:clamp(18px,3.3vw,32px); border:1px solid #dbe4ef; background:#fff; border-radius:18px; color:#142a42; font:inherit; box-shadow:0 8px 28px rgba(16,41,73,.05)}
.ptcl-ipv *, .ptcl-ipv *::before, .ptcl-ipv *::after {box-sizing:border-box}
.ptcl-ipv__intro {margin-bottom:22px}
.ptcl-ipv__eyebrow {display:inline-block; margin-bottom:9px; color:#006f80; font-size:12px; letter-spacing:.09em; font-weight:700; text-transform:uppercase}
.ptcl-ipv__heading {font-weight:750; font-size:clamp(23px,3vw,29px); line-height:1.25; margin:0 0 10px; color:#0f2440}
.ptcl-ipv__intro p {font-size:15px; line-height:1.65; margin:0; color:#4b6175}
.ptcl-ipv__label {display:block; font-weight:700; margin-bottom:9px; font-size:14px}
.ptcl-ipv__input-row {display:flex; gap:9px; align-items:stretch; flex-wrap:wrap}
.ptcl-ipv__input {flex:1 1 270px; width:auto; min-width:0; border:1px solid #b9cadd; border-radius:9px; background:#fff; color:#152b40; padding:12px 13px; font-size:15px; line-height:1.4; font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.ptcl-ipv__input:focus {outline:3px solid rgba(0,122,166,.19); border-color:#007ea5}
.ptcl-ipv__input[aria-invalid=true] {border-color:#b42318}
.ptcl-ipv__button {border-radius:9px; border:1px solid #cad5e3; padding:11px 16px; font-weight:700; font-size:14px; line-height:1.45; cursor:pointer; font-family:inherit; background:#fff; color:#203950; white-space:nowrap; transition:background .13s}
.ptcl-ipv__button:hover {background:#eff5f9}
.ptcl-ipv__button:focus-visible,.ptcl-ipv__examples button:focus-visible {outline:3px solid rgba(0,122,166,.35);outline-offset:3px}
.ptcl-ipv__button--primary {background:#066e88; border-color:#066e88; color:#fff}
.ptcl-ipv__button--primary:hover {background:#075c74;color:#fff}
.ptcl-ipv__help {font-size:12px; line-height:1.55; margin:9px 0 0; color:#65798b}
.ptcl-ipv__examples {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0 0;font-size:13px;color:#5a6d7c}
.ptcl-ipv__examples button {cursor:pointer; background:#eef5f8; color:#115c72; border:1px solid #daeaf1; border-radius:100px; padding:7px 11px; font:600 12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}
.ptcl-ipv__examples button:hover {background:#dfeef4}
.ptcl-ipv__status {font-size:14px; font-weight:650; color:#12704b; margin:16px 0 0; min-height:0}
.ptcl-ipv__status:empty {display:none}
.ptcl-ipv__status--error {color:#ab2620}
.ptcl-ipv__result[hidden] {display:none!important}
.ptcl-ipv__result {border:1px solid #cadddf; background:#f5fbfb; border-radius:12px; padding:19px; margin-top:12px}
.ptcl-ipv__result-top {display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.ptcl-ipv__result-top strong {font-size:17px; color:#125343}
.ptcl-ipv__pill {background:#d7f0e7; color:#116047; border-radius:100px; padding:5px 10px; font-size:12px; font-weight:750}
.ptcl-ipv__details {margin:15px 0; display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ptcl-ipv__details div {min-width:0}
.ptcl-ipv__details dt {font-size:12px;letter-spacing:.015em;color:#607586;margin-bottom:4px}
.ptcl-ipv__details dd {margin:0;font-weight:700;overflow-wrap:anywhere}
.ptcl-ipv__details code {font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#172b46;background:transparent;border:0;padding:0;font-size:14px;white-space:normal}
.ptcl-ipv__explanation {line-height:1.65;font-size:14px;color:#394f60;margin:0 0 15px}
.ptcl-ipv__button--copy {padding:9px 13px; color:#07677e; border-color:#b7d2da}
.ptcl-ipv__privacy {margin:17px 0 0; padding-top:15px; border-top:1px solid #e6edf3; font-size:12px;line-height:1.7;color:#607283}
@media (max-width:600px) {.ptcl-ipv__input-row{display:grid;grid-template-columns:1fr 1fr}.ptcl-ipv__input{grid-column:1/-1;width:100%;flex:none}.ptcl-ipv__details{grid-template-columns:1fr}.ptcl-ipv__button--primary,.ptcl-ipv__button--quiet{white-space:normal}}
@media (prefers-reduced-motion:reduce) {.ptcl-ipv__button{transition:none}}
