:root{--bg:#0B0E11;--bg2:#141820;--bg3:#1C2230;--border:rgba(108,92,231,0.15);--border2:rgba(108,92,231,0.35);--t1:#F0ECF6;--t2:#A8A3C0;--t3:#6E698A;--primary:#6C5CE7;--secondary:#A29BFE;--accent:#00CEC9;--green:#4ADE80;--yellow:#FFD93D;--orange:#FB923C;--red:#EF4444;--r:12px;--tr:0.25s ease;--f:'Inter',-apple-system,sans-serif;--m:'SF Mono','Fira Code',monospace}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--f);background:var(--bg);color:var(--t1);-webkit-font-smoothing:antialiased;min-height:100vh}
.app-container{max-width:800px;margin:0 auto;padding:0 20px 40px}
.app-header{padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:32px}
.logo-group{display:flex;align-items:center;gap:14px}
.logo-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,rgba(108,92,231,0.15),rgba(0,206,201,0.1));border-radius:var(--r);border:1px solid var(--border)}
h1{font-size:1.2rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:8px;font-family:var(--f);font-size:0.8rem;font-weight:600;cursor:pointer;transition:all var(--tr)}
.btn-ghost{background:transparent;color:var(--t3)}
.btn-ghost:hover{color:var(--t2);background:rgba(255,255,255,0.05)}
.btn-sm{padding:6px 10px;font-size:0.85rem}
.input-section{margin-bottom:28px}
.password-box{display:flex;align-items:center;gap:8px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:4px;transition:border-color var(--tr)}
.password-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(108,92,231,0.15)}
.password-input{flex:1;padding:12px 16px;background:transparent;border:none;color:var(--t1);font-family:var(--m);font-size:1rem;outline:none}
.password-input::placeholder{color:var(--t3)}
.strength-bar-wrapper{margin-top:12px;height:6px;background:var(--bg3);border-radius:3px;overflow:hidden}
.strength-bar{height:100%;width:0;border-radius:3px;transition:width 0.5s ease,background 0.5s ease}
.score-label{margin-top:8px;font-size:0.85rem;font-weight:600;color:var(--t3);text-align:center}
.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px}
.stat-card{padding:16px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);text-align:center}
.stat-value{font-size:1.5rem;font-weight:800;font-family:var(--m);color:var(--accent);margin-bottom:4px}
.stat-label{font-size:0.75rem;color:var(--t3);text-transform:uppercase;letter-spacing:0.06em}
.detail-panels{display:flex;flex-direction:column;gap:16px}
.detail-panel{padding:16px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--r)}
.panel-title{font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:var(--t3);margin-bottom:10px}
.check-list{display:flex;flex-direction:column;gap:6px}
.check-item{display:flex;align-items:center;gap:10px;font-size:0.85rem;color:var(--t2);padding:4px 0}
.check-icon{font-size:0.9rem;flex-shrink:0}
.check-pass{color:var(--green)}
.check-fail{color:var(--red)}
.check-warn{color:var(--yellow)}
.check-info{color:var(--accent)}
