:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0f1117;--surface:#1a1d27;--surface-2:#242936;--surface-raised:#222633;--text:#e8eaed;--muted:#9aa0a6;--accent:#6ea8fe;--border:#2a2f3a;--success:#3dd68c;--warning:#f5a623;--danger:#f28b82}body{background:var(--bg);color:var(--text);margin:0}.privacy-chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;display:inline-flex}:root{color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input{font:inherit}.app-chrome{flex-direction:column;min-height:100vh;display:flex}.app-header,.app-footer,.related-tools{width:min(1120px,100% - 32px);margin:0 auto}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.app-header__brand,.app-footer,.related-tools{align-items:center;gap:12px;display:flex}.app-header__brand strong{font-size:.9375rem}.app-header a,.app-footer a,.related-tools a{color:var(--muted);font-size:.875rem;text-decoration:none}.app-header a:hover,.app-footer a:hover,.related-tools a:hover{color:var(--accent)}.app-header a:focus-visible,.app-footer a:focus-visible,.related-tools a:focus-visible,.button:focus-visible,.password-input:focus-visible,.generator-controls input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-chrome>main{flex:1}.container{width:min(760px,100%);margin:0 auto;padding:32px 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:24px}h1{margin:0 0 4px;font-size:1.75rem;line-height:1.2}h2{margin:20px 0 8px;font-size:1.0625rem;line-height:1.2}.intro{color:var(--muted);margin:0 0 16px}.input-label{margin-bottom:4px;font-weight:600;display:block}.input-row{gap:8px;display:flex}.password-input{border:1px solid var(--border);background:var(--surface-raised);min-width:0;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:12px}.password-input::placeholder{color:var(--muted)}.button{border:1px solid var(--accent);background:var(--accent);color:var(--bg);cursor:pointer;font:inherit;border-radius:8px;padding:12px 16px;font-weight:600;transition:opacity .18s ease-out}.button:hover{opacity:.88}.button:active{opacity:.76}.button:disabled{cursor:not-allowed;opacity:.5}.button.secondary{border-color:var(--border);background:var(--surface-raised);color:var(--text)}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.copy-status{min-height:1.5em;color:var(--muted);font-size:.875rem}.generator-controls{border:1px solid var(--border);border-radius:8px;gap:12px;margin:16px 0 0;padding:12px;display:grid}.generator-controls legend{padding:0 4px;font-weight:600}.length-control,.charset-options label{align-items:center;gap:8px;display:flex}.length-control input{border:1px solid var(--border);background:var(--surface-raised);width:76px;color:var(--text);border-radius:4px;margin-left:4px;padding:4px 8px}.charset-options{flex-wrap:wrap;gap:8px 16px;display:flex}.strength-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.strength-header p{color:var(--muted);margin:0}.meter{background:var(--surface-2);border-radius:999px;width:100%;height:8px;overflow:hidden}.meter span{background:var(--meter-color,var(--danger));height:100%;transition:width .15s ease-out,background-color .15s ease-out;display:block}.checklist,.suggestions{margin:0;padding-left:0;list-style:none}.checklist li,.suggestions li{border-bottom:1px dashed var(--border);padding:8px 0}.marker{width:20px;display:inline-block}.checklist .pass{color:var(--success)}.checklist .fail{color:var(--warning)}.related-tools{border-top:1px solid var(--border);flex-wrap:wrap;padding:16px 0}.app-footer{color:var(--muted);flex-wrap:wrap;padding:16px 0 24px;font-size:.75rem}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start}.input-row,.strength-header{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.button,.meter span{transition:none}}
