/* Password Generator & Strength Tester landing page only (/tools/password-generator-tester).
   The live generator sits in the hero; ids are shared with /assets/tools/password-generator-tester.js. */

.tp-pw{--pw-ink:#071b35;--pw-muted:#52647b;--pw-line:#d7e1ee;--pw-blue:#1f5cf0;--pw-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.tp-pw.mt-public{padding-top:clamp(20px,3.2vw,44px)}
.tp-pw code{font-family:var(--pw-mono);font-size:.9em;overflow-wrap:anywhere}

.tp-pw-hero{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,4vw,56px);align-items:start}
.tp-pw-intro{min-width:0;padding-top:6px}
.tp-pw-intro h1{margin:10px 0 14px;font-size:clamp(2.1rem,3.6vw,3.3rem);line-height:1.04;letter-spacing:-.05em;overflow-wrap:anywhere}
.tp-pw-lede{margin:0 0 18px;color:var(--pw-muted);font-size:1.06rem;line-height:1.6}
.tp-pw-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 18px;padding:10px 14px;border:1px solid var(--pw-line);border-radius:12px;background:#fff}
.tp-pw-price b{font-size:1.05rem}
.tp-pw-price span{color:var(--pw-muted);font-size:.9rem;font-weight:650}
.tp-pw-facts{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:9px}
.tp-pw-facts li{position:relative;padding-left:22px;line-height:1.5;font-size:.95rem}
.tp-pw-facts li::before{content:"";position:absolute;left:4px;top:.55em;width:8px;height:8px;border-radius:2px;background:var(--pw-blue)}
.tp-pw-more{display:flex;flex-wrap:wrap;gap:0 20px;margin:0}
.tp-pw-more a{display:inline-flex;align-items:center;min-height:44px;color:var(--pw-blue);font-weight:800;text-underline-offset:3px}
.tp-pw-more a:focus-visible{outline:2px solid var(--pw-blue);outline-offset:2px}

/* generator card */
.tp-pw-tool{min-width:0;border:1px solid #bfd0e5;border-radius:20px;background:#fff;box-shadow:0 22px 55px rgba(9,34,70,.12);padding:20px}
.tp-pw-title{margin:0 0 12px;font-size:1.1rem}
.tp-pw-label,.tp-pw-sets legend{display:block;margin:14px 0 6px;font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--pw-muted)}
.tp-pw-tool>.tp-pw-label:first-of-type,.tp-pw-panel>.tp-pw-label:first-of-type{margin-top:0}
.tp-pw-label output{color:var(--pw-ink);font-size:.9rem;letter-spacing:0}
.tp-pw-out{display:block;width:100%;box-sizing:border-box;min-height:64px;padding:12px 14px;border:1px solid var(--pw-line);border-radius:12px;background:#f4f7fc;color:var(--pw-ink);font-family:var(--pw-mono);font-size:1.12rem;line-height:1.45;resize:none;overflow-wrap:anywhere;word-break:break-all}
.tp-pw-input{width:100%;box-sizing:border-box;min-height:46px;padding:10px 12px;border:1px solid var(--pw-line);border-radius:10px;background:#fff;color:var(--pw-ink);font:inherit;font-size:.95rem}
input.tp-pw-input{font-family:var(--pw-mono)}
.tp-pw-out:focus-visible,.tp-pw-input:focus-visible,.tp-pw-range:focus-visible,.tp-pw-sets input:focus-visible,.tp-pw-details summary:focus-visible{outline:2px solid var(--pw-blue);outline-offset:2px}

.tp-pw-actions{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:10px}
.tp-pw-btn{min-height:44px;padding:0 16px;border:1px solid var(--pw-line);border-radius:10px;background:#fff;color:var(--pw-ink);font:inherit;font-size:.92rem;font-weight:800;cursor:pointer}
.tp-pw-btn:hover{border-color:var(--pw-blue);color:var(--pw-blue)}
.tp-pw-btn--main{background:var(--pw-blue);border-color:var(--pw-blue);color:#fff}
.tp-pw-btn--main:hover{background:#1548c7;border-color:#1548c7;color:#fff}
.tp-pw-btn:focus-visible{outline:2px solid var(--pw-blue);outline-offset:2px}
.tp-pw-actions .tp-pw-btn--main{flex:1 1 auto}

.tp-pw-err{margin:10px 0 0;padding:10px 12px;border-radius:9px;border:1px solid #f0b4b4;background:#fdf1f1;color:#8c2b2b;font-size:.86rem}
.tp-pw-err[hidden]{display:none}

.tp-pw-range{display:block;width:100%;min-height:32px;margin:0;accent-color:var(--pw-blue)}

.tp-pw-sets{margin:0;padding:0;border:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.tp-pw-sets legend{float:left;width:100%;grid-column:1/-1}
.tp-pw-sets label{display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px;border:1px solid var(--pw-line);border-radius:10px;background:#fff;font-size:.88rem;line-height:1.3;cursor:pointer}
.tp-pw-sets label:has(input:checked){border-color:#9db7ee;background:#f1f5ff}
.tp-pw-sets input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--pw-blue)}
.tp-pw-sets span{min-width:0;overflow-wrap:anywhere}
.tp-pw-sets code{font-size:.95em}

/* stats rendered by the tool script as dt/dd pairs; the rating (last pair) is shown first */
.tp-pw-stats{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:0;margin:14px 0 0;border:1px solid var(--pw-line);border-radius:12px;overflow:hidden;font-size:.86rem}
.tp-pw-stats:empty{display:none}
.tp-pw-stats dt,.tp-pw-stats dd{margin:0;padding:8px 12px;border-top:1px solid var(--pw-line);line-height:1.45}
.tp-pw-stats dt{color:var(--pw-muted);font-weight:750;white-space:nowrap}
.tp-pw-stats dd{min-width:0;color:var(--pw-ink);overflow-wrap:anywhere}
.tp-pw-stats dt:last-of-type{order:-2;border-top:0;background:#f7f9fc}
.tp-pw-stats dd:last-of-type{order:-1;border-top:0;background:#f7f9fc}

.tp-pw .bt-ok{color:#1c7a45;font-weight:800}
.tp-pw .bt-bad{color:#b3261e;font-weight:800}
.tp-pw .bt-warn{color:#8a6100;font-weight:800}

/* test your own password */
.tp-pw-test{margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--pw-line)}
.tp-pw-subtitle{margin:0 0 4px;font-size:1rem}
.tp-pw-subtitle label{cursor:pointer}
.tp-pw-hint{margin:0 0 10px;color:var(--pw-muted);font-size:.86rem;line-height:1.5}
.tp-pw-row{display:flex;gap:8px}
.tp-pw-row .tp-pw-input{flex:1 1 auto;min-width:0}
.tp-pw-row .tp-pw-btn{flex:0 0 auto}
.tp-pw-verdict{margin:10px 0 0;font-size:.9rem;line-height:1.5}
.tp-pw-verdict:empty{display:none}
.tp-pw-details{margin:10px 0 0}
.tp-pw-details summary{display:flex;align-items:center;min-height:40px;color:var(--pw-blue);font-weight:800;font-size:.9rem;cursor:pointer}
.tp-pw-flags{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:.86rem;line-height:1.5;color:var(--pw-ink)}
.tp-pw-flags:empty{display:none}

/* passphrase + what you get */
.tp-pw-band{margin:clamp(40px,6vw,64px) 0 0}
.tp-pw-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:18px;align-items:start}
.tp-pw-panel{min-width:0;border:1px solid var(--pw-line);border-radius:16px;background:#fff;padding:20px;scroll-margin-top:80px}
.tp-pw-panel h2{margin:0 0 6px;font-size:1.25rem}
.tp-pw-sub{margin:0 0 14px;color:var(--pw-muted);font-size:.92rem;line-height:1.55}
.tp-pw-get ul{margin:12px 0 14px;padding:0;list-style:none;display:grid;gap:12px}
.tp-pw-get li{padding-left:14px;border-left:3px solid var(--pw-blue);font-size:.9rem;line-height:1.5;color:var(--pw-muted)}
.tp-pw-get li b{display:block;color:var(--pw-ink);font-size:.95rem}
.tp-pw-get .tp-pw-sub{margin:0}

/* this page runs fully in the browser and keeps no results */
.tp-pw-page .wt-foot-note{display:none}

@media (max-width:900px){
  .tp-pw-hero{grid-template-columns:minmax(0,1fr);gap:14px}
  .tp-pw-intro{display:contents}
  .tp-pw-intro>.mt-eyebrow{order:1;margin:0}
  .tp-pw-intro>h1{order:2;margin:0}
  .tp-pw-lede{order:3;margin:0;font-size:1rem}
  .tp-pw-tool{order:4}
  .tp-pw-price{order:5;margin:0}
  .tp-pw-facts{order:6;margin:4px 0 0}
  .tp-pw-more{order:7}
  .tp-pw-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .tp-pw.mt-public{padding-top:16px}
  .tp-pw-intro h1{font-size:clamp(1.75rem,8.4vw,2.3rem);letter-spacing:-.04em}
  .tp-pw-lede{font-size:.95rem;line-height:1.5}
  .tp-pw-tool,.tp-pw-panel{padding:14px;border-radius:16px}
  .tp-pw-out{font-size:1rem}
  .tp-pw-stats{grid-template-columns:minmax(0,1fr)}
  .tp-pw-stats dt{padding-bottom:0;white-space:normal}
  .tp-pw-stats dd{border-top:0;padding-top:2px}
  .tp-pw-stats dt:last-of-type{order:-2}
  .tp-pw-stats dd:last-of-type{order:-1}
}
@media (max-width:420px){
  .tp-pw-sets{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .tp-pw *{transition:none;scroll-behavior:auto}
}
