.pw-page-hero .hero__grid{row-gap:32px}.pw{--pw-status:var(--success);grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);display:grid}.pw>:not(.studio-mast,.pw__modes){grid-column:1/-1}.pw>.studio-mast{padding-block:16px}.pw>.studio-mast .studio-mast__title{font-size:1.375rem}.pw .input{font-size:1rem}.pw__modes{padding:14px var(--studio-pad) 14px 0;border:0;border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.pw__mode{border:1px solid var(--border-input);border-radius:var(--r-md);cursor:pointer;align-items:center;gap:8px;min-width:0;min-height:64px;padding:10px;transition:background .15s,border-color .15s;display:flex;position:relative}.pw__mode input{opacity:0;width:1px;height:1px;position:absolute}.pw__mode:has(:checked){background:var(--accent-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pw__mode:has(:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.pw__mode>svg{flex-shrink:0}.pw__mode strong{font-size:.9375rem;font-weight:600;display:block}.pw__mode small{color:var(--text-muted);margin-top:3px;font-size:.625rem;line-height:1.4;display:block}.pw__radio{border:1px solid var(--border-input);border-radius:50%;flex:0 0 14px;width:14px;height:14px;margin-left:auto}.pw__mode:has(:checked) .pw__radio{border:4px solid var(--accent)}.pw__work.studio-body{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);padding:0;display:grid}.pw__result{min-width:0;padding:22px var(--studio-pad)}.pw__result-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pw__local{color:var(--text-muted);align-items:center;gap:5px;font-size:.6875rem;display:flex}.pw__secret-wrap{align-items:center;min-height:96px;padding-block:16px;display:grid}.pw__secret{min-width:0;max-width:100%;font:500 clamp(1.4rem, 1.1rem + 2cqi, 2.375rem)/1.6 var(--font-mono);letter-spacing:-.035em;overflow-wrap:anywhere;white-space:pre-wrap;font-variant-ligatures:none;user-select:all;display:block}.pw__result-tools{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-block:8px 0;font-size:.75rem;display:flex}.pw__result-tools>div{gap:12px;display:flex}.pw__text-button{border:0;border-bottom:1px solid var(--border-input);min-height:44px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;padding:2px}.pw__text-button:hover{color:var(--text);border-color:var(--text)}.pw__text-button:disabled{opacity:.5;cursor:default}.pw__actions{flex-wrap:wrap;gap:10px;display:flex}.pw__actions>.btn:first-child{flex:180px}.pw__actions>.btn{min-height:48px}.pw__randomness{border-top:1px solid var(--border);margin-top:28px;padding-top:20px}.pw__randomness[data-level=low]{--pw-status:var(--danger)}.pw__randomness:is([data-level=limited],[data-level=pin]){--pw-status:var(--warning)}.pw__randomness-head{justify-content:space-between;align-items:center;gap:12px;font-size:.8125rem;display:flex}.pw__randomness-head>strong{color:var(--pw-status);font-weight:600}.pw__randomness-head>span{color:var(--text-muted);font-family:var(--font-mono)}.pw__randomness-head b{color:var(--text);font-size:1rem;font-weight:500}.pw__meter{grid-template-columns:repeat(20,1fr);gap:4px;height:7px;margin:12px 0;display:grid}.pw__meter i{background:var(--border);border-radius:2px;transition:background .18s}.pw__meter .is-lit{background:var(--pw-status)}.pw__help{color:var(--text-muted);margin:8px 0 0;font-size:.75rem;line-height:1.65}.pw__math{margin-top:10px;font-size:.75rem;line-height:1.65}.pw__math summary{cursor:pointer;width:fit-content;color:var(--text-muted);text-decoration:underline;text-decoration-color:var(--border-input);text-underline-offset:3px}.pw__math p{color:var(--text-muted);margin:10px 0}.pw__spelling{border-top:1px solid var(--border);margin-top:18px;padding-top:14px;font-size:.8125rem}.pw__spelling summary{cursor:pointer;min-height:28px}.pw__spelling ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 16px;max-height:270px;margin:12px 0 0;padding:0;list-style:none;display:grid;overflow-y:auto}.pw__spelling li{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-width:0;padding:7px 0;display:flex}.pw__spelling code{overflow-wrap:anywhere;background:0 0;min-width:20px;padding:0;font-size:.9375rem}.pw__spelling li span{color:var(--text-muted);font-size:.6875rem}[data-concealed=true] .pw__spelling{display:none}.pw__status{min-height:1.6em;color:var(--text-muted);margin:16px 0 0;font-size:.75rem;line-height:1.6}.pw__status[data-error=true]{border:1px solid var(--danger);border-radius:var(--r-sm);color:var(--danger);background:var(--danger-soft);padding:10px 12px}.pw__manual{margin-top:16px}.pw__manual label{font-size:.8125rem}.pw__manual textarea{min-height:110px;font-family:var(--font-mono);margin-top:10px}.pw__settings{padding:26px var(--studio-pad) 22px;border-left:1px solid var(--border);background:var(--bg-subtle);min-width:0}.pw__length-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.pw__length-head>label{font-size:.875rem;font-weight:600}.pw__length-head>div{align-items:center;gap:8px;display:flex}.pw__length-head span{color:var(--text-muted);font-size:.6875rem}.pw .pw__number{width:80px;min-height:44px;font:500 1.375rem/1.2 var(--font-mono);text-align:center;padding:5px 7px}.pw__range{width:100%;height:32px;accent-color:var(--accent);cursor:pointer;margin:10px 0 0}.pw__presets{gap:7px;margin:2px 0 22px;display:flex}.pw__presets button{border:1px solid var(--border-input);border-radius:var(--r-sm);background:var(--surface);min-height:40px;color:var(--text-muted);font:400 .75rem var(--font-mono);cursor:pointer;flex:1}.pw__presets button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--text);box-shadow:inset 0 0 0 1px var(--accent)}.pw__types{border:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:0 0 14px;padding:0;display:grid}.pw__types legend{padding:0 0 10px;font-size:.8125rem;font-weight:600}.pw__types label{border:1px solid var(--border-input);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;flex-direction:column;align-items:center;padding:10px 3px;display:flex;position:relative}.pw__types label:has(:checked){background:var(--accent-soft);border-color:var(--accent)}.pw__types input{accent-color:var(--accent);width:15px;height:15px;margin:0 0 7px}.pw__types span{justify-items:center;gap:2px;display:grid}.pw__types strong{font:500 .875rem var(--font-mono)}.pw__types small{color:var(--text-muted);font-size:.625rem}.pw__check{cursor:pointer;align-items:flex-start;gap:9px;padding:10px 0;font-size:.8125rem;line-height:1.5;display:flex}.pw__check input{width:16px;height:16px;accent-color:var(--accent);flex:0 0 16px;margin:2px 0 0}.pw__check small{font:.6875rem var(--font-mono);color:var(--text-muted);margin-left:5px}.pw__rules{border-block:1px solid var(--border);margin-top:12px}.pw__rules>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:48px;font-size:.8125rem;font-weight:600;display:flex}.pw__rules>summary:before{content:"+";font:1.125rem var(--font-mono)}.pw__rules[open]>summary:before{content:"−"}.pw__rules>summary span{color:var(--text-muted);margin-left:auto;font-size:.6875rem;font-weight:400}.pw__field{gap:7px;margin:16px 0;display:grid}.pw__field label{font-size:.8125rem;font-weight:600}.pw__field .pw__help{margin-top:0}.pw .pw__charset{font-family:var(--font-mono);font-size:1rem}.pw__rule-note{color:var(--text-muted);margin:12px 0 0;font-size:.6875rem;line-height:1.6}.pw__pin-note{border-radius:var(--r-md);color:var(--warning);background:var(--warning-soft);margin:20px 0 10px;padding:16px;font-size:.8125rem;line-height:1.7}.pw__pin-note strong{display:block}.pw__batch{border-top:1px solid var(--border)}.pw__batch>summary{padding:18px var(--studio-pad);cursor:pointer;align-items:center;gap:12px;font-size:.8125rem;font-weight:600;display:flex}.pw__batch>summary:before{content:"+";font:1.125rem var(--font-mono)}.pw__batch[open]>summary:before{content:"−"}.pw__batch>summary span{font:.6875rem var(--font-mono);color:var(--text-muted);margin-left:auto}.pw__batch-body{padding:0 var(--studio-pad) 20px}.pw__batch-actions{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:15px;display:flex}.pw__batch-actions label{align-items:center;gap:10px;font-size:.8125rem;display:flex}.pw__batch-actions input{width:80px}.pw__batch-list{max-height:420px;margin:18px 0 0;padding-left:28px;list-style:decimal-leading-zero;overflow-y:auto}.pw__batch-list li{border-bottom:1px solid var(--border);color:var(--text-subtle);font:.6875rem var(--font-mono);padding:10px 4px}.pw__batch-list code{overflow-wrap:anywhere;white-space:pre-wrap;vertical-align:middle;width:calc(100% - 75px);color:var(--text);user-select:all;background:0 0;padding:0 10px 0 0;font-size:.875rem;display:inline-block}.pw__batch-list button{vertical-align:middle}.pw__host>.pw{height:100%}.pw__host>.pw:focus-within{box-shadow:none}.workspace .pw__modes,:root[data-embed=desk] .pw__modes{padding-inline:var(--studio-pad);grid-column:1/-1}.pw__noscript{padding:16px var(--studio-pad);color:var(--warning);background:var(--warning-soft);margin:0;font-size:.875rem}@container studio (width<=780px){.pw>.studio-mast,.pw__modes{grid-column:1/-1}.pw__modes{padding:12px var(--studio-pad);gap:7px}.pw__mode{gap:8px;min-height:62px;padding:11px}.pw__mode small{display:none}.pw__work.studio-body{grid-template-columns:1fr}.pw__settings{border-left:0;border-top:1px solid var(--border)}.pw__secret-wrap{min-height:110px}.pw__result{padding-top:20px}.pw__randomness{margin-top:22px}}@container studio (width<=430px){.pw__mode{justify-content:center;gap:6px;min-height:52px;padding:10px 7px}.pw__mode strong{font-size:.75rem}.pw__mode svg{width:16px;height:16px}.pw__radio{display:none}.pw__result-head{gap:5px}.pw__local{font-size:.625rem}.pw__actions{gap:8px}.pw__actions>.btn:first-child{flex-basis:155px}.pw__actions>.btn{padding-inline:12px;font-size:.8125rem}.pw__secret{font-size:1.5rem}.pw__spelling ol{grid-template-columns:1fr}.pw__length-head span{display:none}}.tm-password__rules{animation:6s ease-in-out infinite pw-rules}.tm-password__secret{animation:6s ease-in-out infinite pw-secret}.tm-password__copy{animation:6s ease-in-out infinite pw-copy}.tm-password__tick{animation:6s ease-in-out infinite pw-tick}@keyframes pw-rules{0%,12%{opacity:.3;transform:translateY(5px)}24%,88%{opacity:1;transform:translateY(0)}to{opacity:.3;transform:translateY(5px)}}@keyframes pw-secret{0%,30%{opacity:0;transform:translateY(6px)}48%,90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(6px)}}@keyframes pw-copy{0%,55%{opacity:.3}68%,90%{opacity:1}to{opacity:.3}}@keyframes pw-tick{0%,65%{opacity:0;transform:translateY(5px)}78%,90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(5px)}}@media (prefers-reduced-motion:reduce){.pw *,.tm--password *{transition:none!important;animation:none!important}}
