[data-tool=password-generator] .pg-layout{gap:var(--s-4);align-items:start;display:grid}[data-tool=password-generator] .pg-main{gap:var(--s-4);min-width:0;display:grid}[data-tool=password-generator] .pg-grid-2,[data-tool=password-generator] .pg-grid-3{gap:var(--s-4);grid-template-columns:1fr;display:grid}@media (width>=560px){[data-tool=password-generator] .pg-grid-2{grid-template-columns:1fr 1fr}[data-tool=password-generator] .pg-grid-3{grid-template-columns:repeat(3,1fr)}}@media (width>=1040px){[data-tool=password-generator] .pg-layout{grid-template-columns:minmax(0,1fr) 340px}[data-tool=password-generator] .pg-aside{top:calc(var(--header-h) + 12px);position:sticky}}[data-tool=password-generator] .field,[data-tool=password-generator] .field-switch{flex-direction:column;gap:6px;min-width:0;display:flex}[data-tool=password-generator] .field>span:first-child,[data-tool=password-generator] .field>label,[data-tool=password-generator] .field-switch>span:first-child{color:var(--text);font-size:.9rem;font-weight:600}[data-tool=password-generator] .field-help{color:var(--text-3);font-size:.8rem;font-weight:400}[data-tool=password-generator] label.field>.field-help{order:3}[data-tool=password-generator] .field.error .input,[data-tool=password-generator] .field.error .textarea{border-color:var(--danger)}[data-tool=password-generator] .field.error>span:first-child,[data-tool=password-generator] .field.error>label,[data-tool=password-generator] .field-switch.error-switch>span:first-child{color:var(--danger)}[data-tool=password-generator] .mode-panel{margin-top:var(--s-4)}[data-tool=password-generator] .mode-panel.is-hidden{display:none}[data-tool=password-generator] .mode-panel h3{margin-bottom:var(--s-3);font-size:1rem}[data-tool=password-generator] .custom-transforms{margin-top:var(--s-4)}[data-tool=password-generator] .custom-transforms h3,[data-tool=password-generator] .mode-panel+h3{margin:var(--s-4) 0 var(--s-3);font-size:1rem}[data-tool=password-generator] .pg-ref dt{font-weight:700}[data-tool=password-generator] .pg-ref code{white-space:nowrap}[data-tool=password-generator] .rule-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));display:grid}[data-tool=password-generator] .rule-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:var(--s-3);transition:border-color .15s,box-shadow .15s}[data-tool=password-generator] .rule-card:hover:not(.is-disabled){border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}[data-tool=password-generator] .rule-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}[data-tool=password-generator] .rule-card.is-disabled{opacity:.5}[data-tool=password-generator] .rule-card header{justify-content:space-between;align-items:flex-start;gap:var(--s-3);display:flex}[data-tool=password-generator] .rule-card h3{margin:0 0 4px;font-size:.92rem}[data-tool=password-generator] .rule-card p{color:var(--text-3);margin:0;font-size:.8rem}[data-tool=password-generator] .rule-card button{border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);min-height:30px;color:var(--text-2);flex-shrink:0;padding:0 10px;font-size:.8rem;font-weight:600}[data-tool=password-generator] .rule-card.active button{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}[data-tool=password-generator] .summary{margin-bottom:var(--s-4);flex-wrap:wrap;gap:6px;display:flex}[data-tool=password-generator] .summary-chip{border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border);height:24px;color:var(--text-2);align-items:center;padding:0 10px;font-size:.78rem;font-weight:600;display:inline-flex}[data-tool=password-generator] .progress-wrapper{padding:var(--s-3) 0;border-top:1px solid var(--border)}[data-tool=password-generator] .metrics{gap:var(--s-3);margin:var(--s-4) 0 0;grid-template-columns:repeat(3,1fr);display:grid}[data-tool=password-generator] .metrics div{text-align:center;padding:var(--s-3) var(--s-2);border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2)}[data-tool=password-generator] .metrics dt{font-size:.72rem;font-family:var(--mono);letter-spacing:0;color:var(--text-3);font-weight:700}[data-tool=password-generator] .metrics dd{font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:1.1rem;font-weight:700}[data-tool=password-generator] .pg-log-panel{margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--border)}[data-tool=password-generator] .pg-log-panel h3{margin:0;font-size:.92rem}[data-tool=password-generator] .log{margin:var(--s-3) 0 0;max-height:280px;font-family:var(--mono);flex-direction:column;gap:4px;padding:0;font-size:.78rem;list-style:none;display:flex;overflow:auto}[data-tool=password-generator] .log li{border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-2);word-break:break-word;padding:6px 8px}[data-tool=password-generator] .log li strong{color:var(--text-3);font-weight:600}[data-tool=password-generator] .log li[data-level=error]{background:var(--danger-soft);color:var(--danger)}[data-tool=password-generator] .log li[data-level=warn]{background:var(--warning-soft);color:var(--warning)}[data-tool=password-generator] .log li[data-level=success]{background:var(--success-soft);color:var(--success)}
