[data-tool=password-generator]{--pg-space-sm: 8px;--pg-space-md: 16px;--pg-space-lg: 24px;--pg-space-xl: 32px;--pg-color-error: var(--color-danger);--pg-color-success: var(--live);--pg-color-fair: oklch(84% .12 85);--pg-ease-out: cubic-bezier(.16, 1, .3, 1);--pg-duration: .12s}[data-tool=password-generator] [hidden]{display:none!important}.pg-workspace{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.2fr);grid-template-areas:"controls results";gap:var(--pg-space-lg);align-items:start}.pg-controls{grid-area:controls}.pg-results{grid-area:results}.pg-results,.pg-controls{min-width:0;padding:var(--pg-space-lg);border:1px solid var(--color-rule);border-radius:var(--radius-lg);background:var(--color-surface)}.pg-results{border-color:var(--color-console);background:var(--color-console);color:var(--color-console-ink)}.pg-results :focus-visible{outline-color:var(--color-console-focus)!important}.pg-app label,.pg-app legend{font:500 var(--text-sm) / 1.5 var(--font-sans);color:var(--color-ink)}.pg-app label:not(.pg-check),.pg-app legend{display:block;margin-block-end:var(--pg-space-sm)}.pg-results-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--pg-space-sm) var(--pg-space-md)}[data-tool=password-generator] .pg-results-title{margin:0;color:var(--color-console-muted);font:500 var(--text-sm) / 1.4 var(--font-sans);letter-spacing:0}.pg-strength{display:inline-flex;align-items:center;gap:var(--pg-space-sm);margin:0;color:var(--color-console-ink);font:500 var(--text-xs) / 1.2 var(--font-mono);font-variant-numeric:tabular-nums}.pg-meter{display:inline-grid;grid-template-columns:repeat(4,18px);gap:3px}.pg-meter span{height:6px;border-radius:var(--radius-pill);background:var(--color-console-rule)}.pg-strength[data-level="1"] .pg-meter span:nth-child(-n+1){background:var(--color-console-danger)}.pg-strength[data-level="2"] .pg-meter span:nth-child(-n+2){background:var(--pg-color-fair)}.pg-strength[data-level="3"] .pg-meter span:nth-child(-n+3),.pg-strength[data-level="4"] .pg-meter span{background:var(--color-highlight)}.pg-result-list{display:grid;gap:var(--pg-space-sm);max-height:26rem;margin:var(--pg-space-md) 0;padding:0;overflow-y:auto;overscroll-behavior:contain;list-style:none}.pg-result-list:empty{display:none}.pg-result-row{display:grid;grid-template-columns:2rem minmax(0,1fr) 40px;align-items:center;gap:var(--pg-space-sm);padding:var(--pg-space-sm) var(--pg-space-sm) var(--pg-space-sm) var(--pg-space-md);border:1px solid var(--color-console-rule);border-radius:var(--radius-md);background:var(--color-console-2);transition:border-color var(--dur-1) var(--ease-out)}.pg-result-row:hover,.pg-result-row:focus-within{border-color:var(--color-console-muted)}.pg-result-index{color:var(--color-console-muted);font:500 var(--text-xs) / 1 var(--font-mono);font-variant-numeric:tabular-nums}.pg-result-value{min-width:0;color:var(--color-console-ink);font:500 clamp(1.0625rem,.6vw + .9rem,1.375rem) / 1.45 var(--font-mono);letter-spacing:.01em;overflow-wrap:anywhere;-webkit-user-select:all;-moz-user-select:all;user-select:all}.pg-result-value--words{overflow-wrap:normal;word-break:normal}.pg-result-value--words span{display:inline-block}.pg-result-value[data-decoding],.pg-result-value [data-decoding]{color:var(--color-highlight)}.pg-result-value::-moz-selection,.pg-result-value *::-moz-selection{background:var(--color-highlight);color:var(--color-on-highlight)}.pg-result-value::selection,.pg-result-value *::selection{background:var(--color-highlight);color:var(--color-on-highlight)}.pg-row-copy{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-console-muted);cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.pg-row-copy:hover{background:var(--color-console-3);color:var(--color-console-ink)}.pg-row-copy.is-copied{color:var(--color-highlight)}.pg-icon--check,.pg-row-copy.is-copied .pg-icon--copy{display:none}.pg-row-copy.is-copied .pg-icon--check{display:block}.pg-empty{margin:var(--pg-space-md) 0;padding:var(--pg-space-lg);border:1px dashed var(--color-console-rule);border-radius:var(--radius-md);color:var(--color-console-muted)}.pg-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--pg-space-sm)}.pg-actions button{min-height:44px;padding:0 18px;color:var(--color-console-ink);border:1px solid var(--color-console-rule);background:var(--color-console-2);border-radius:var(--radius-sm);font:500 var(--text-sm) / 1.3 var(--font-sans);white-space:nowrap;transition:background-color var(--dur-1) var(--ease-out),transform var(--pg-duration) var(--pg-ease-out)}.pg-actions button.pg-primary{background:var(--color-highlight);border-color:var(--color-highlight);color:var(--color-on-highlight);font-weight:600}.pg-actions button:active:not(:disabled){transform:translateY(1px)}.pg-actions button:disabled{opacity:.55;cursor:not-allowed}.pg-app :is(input,select,button):focus-visible,.pg-faq summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.pg-controls>label:first-child{margin-block-start:0}.pg-controls :is(select,input[type=number]){width:100%;min-height:44px;padding:8px 12px;font:400 var(--text-base) / 1.5 var(--font-sans);background:var(--color-surface);border:1px solid var(--color-field-rule);border-radius:var(--radius-sm);color:var(--color-ink);margin-block-end:var(--pg-space-md)}.pg-controls>select{margin-block-end:var(--pg-space-md)}.pg-length-heading{display:flex;gap:var(--pg-space-md);align-items:center;justify-content:space-between}.pg-length-heading input[type=number]{width:90px;flex-shrink:0;margin:0}.pg-controls input[type=range]{width:100%;min-height:44px;accent-color:var(--color-control)}.pg-controls :is(select,input[type=number]):hover{border-color:var(--color-ink-2)}.pg-controls :is(select,input[type=number]):active{border-color:var(--accent)}.pg-controls input:disabled{opacity:.55;cursor:not-allowed}.pg-controls fieldset{margin:0;padding:0;border:0}.pg-check{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.pg-check input{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--color-control)}.pg-exclude{margin-block:var(--pg-space-md) var(--pg-space-lg);border-block-start:1px solid var(--rule);padding-block-start:var(--pg-space-sm)}.pg-hint,.pg-privacy{font:400 var(--text-xs) / 1.6 var(--font-sans);color:var(--color-muted);margin-block:0 var(--pg-space-md)}.pg-results .pg-privacy{color:var(--color-console-muted)}.pg-status{font:500 var(--text-sm) / 1.6 var(--font-sans);min-height:24px;color:var(--color-highlight);margin-block:var(--pg-space-md)}.pg-guidance{font:400 var(--text-sm) / 1.6 var(--font-sans);margin-block:var(--pg-space-md);color:var(--color-console-muted)}.pg-error{background:var(--color-danger-soft);border:1px solid var(--color-danger-rule);border-radius:var(--radius-md);padding:12px 16px;color:var(--pg-color-error);font:500 var(--text-sm) / 1.6 var(--font-sans)}.pg-how,.pg-faq,.pg-sources{padding-block:var(--pg-space-xl);border-block-end:1px solid var(--rule)}[data-tool=password-generator] h2{font:650 clamp(1.375rem,1vw + 1rem,1.875rem) / 1.2 var(--font-sans);letter-spacing:-.03em;color:var(--ink);margin-block:0 var(--pg-space-md);overflow-wrap:anywhere;min-width:0}.pg-how ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pg-space-xl);padding-inline-start:var(--pg-space-lg);margin-block-end:var(--pg-space-xl);font:400 16px/1.7 var(--font-primary)}.pg-how li::marker{color:var(--accent);font-weight:600}.pg-flow{max-width:660px;margin:0 auto;color:var(--forest)}.pg-flow svg{display:block;width:100%;height:auto}.pg-flow-arrow{stroke:var(--accent)}.pg-flow-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--pg-space-md);text-align:center;font:600 15px/1.5 var(--font-primary)}.pg-flow figcaption{text-align:center;margin-block-start:var(--pg-space-md);font:400 14px/1.6 var(--font-primary);color:var(--muted-ink)}.pg-reading{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:clamp(32px,6vw,96px);column-gap:clamp(32px,6vw,96px);padding-block-start:var(--pg-space-xl)}.pg-reading section{margin-block-end:var(--pg-space-xl)}.pg-reading p,.pg-faq p,.pg-sources p{font:400 16px/1.8 var(--font-primary);color:var(--muted-ink);max-width:74ch}.pg-faq details{border-block-start:1px solid var(--rule);padding-block:var(--pg-space-md)}.pg-faq summary{cursor:pointer;font:600 17px/1.6 var(--font-primary);color:var(--ink)}.pg-faq p{margin-block:var(--pg-space-md) 0}.pg-sources ul{display:flex;flex-wrap:wrap;gap:12px 28px;list-style:none;padding:0;font-size:15px}.pg-sources a,.pg-related a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.pg-related{display:flex;flex-wrap:wrap;gap:var(--pg-space-lg);padding-block-start:var(--pg-space-lg)}[dir=rtl] .pg-flow svg{transform:scaleX(-1)}@media (max-width: 800px){.pg-workspace{grid-template-columns:minmax(0,1fr);grid-template-areas:"results" "controls";gap:var(--pg-space-lg)}.pg-controls,.pg-results{padding:var(--pg-space-lg)}.pg-how ol,.pg-reading{grid-template-columns:minmax(0,1fr)}.pg-how ol{gap:var(--pg-space-md)}.pg-result-row{grid-template-columns:1.5rem minmax(0,1fr) 40px;padding-inline-start:var(--pg-space-sm)}}@media (prefers-reduced-motion: reduce){.pg-result-row,.pg-row-copy,.pg-actions button{transition:none}.pg-actions button:active:not(:disabled){transform:none}}.pg-results>label{color:var(--color-console-muted);font-size:var(--text-sm);font-weight:500}.pg-app .pg-actions button{min-width:0;font-size:14px;cursor:pointer}.pg-app .pg-actions button.pg-primary:hover:not(:disabled){background:var(--color-highlight-hover);border-color:var(--color-highlight-hover)}.pg-app .pg-actions button:not(.pg-primary):hover:not(:disabled){background:var(--color-console-3)}.pg-results .pg-actions>[data-copy]{flex:1}.pg-check{padding-block:4px}.pg-guidance{padding:var(--pg-space-md);border:1px solid var(--color-console-rule);border-radius:var(--radius-md);background:transparent}.pg-guidance:empty{display:none}.pg-privacy{margin-block-end:0}.pg-app[aria-busy=true] .pg-status{color:var(--color-console-muted)}.pg-faq summary{min-height:44px}@media (max-width: 480px){.pg-controls,.pg-results{padding:var(--pg-space-md)}.pg-results .pg-actions>[data-copy]{flex-basis:100%}.pg-results .pg-actions>:is([data-generate],[data-clear]){flex:1}}
