/* Twaino Password Generator */

.tw-pg-app{max-width:1200px;margin:0 auto;padding-top:20px;font-family:inherit;color:#1a1a2e}
.tw-pg-app *,.tw-pg-app *::before,.tw-pg-app *::after{box-sizing:border-box}

/* Header */
.tw-pg-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px;flex-wrap:wrap}
.tw-pg-header-left{display:flex;align-items:center;gap:14px}
.tw-pg-label{font-size:15px;font-weight:700;color:#1a1a2e}
.tw-pg-header-actions{display:flex;gap:6px}
.tw-pg-btn-action{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;color:#6b7280;background:#fff;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1}
.tw-pg-btn-action:hover{background:#f3f4f6;color:#1a1a2e;border-color:#d1d5db}
.tw-pg-btn-action svg{flex-shrink:0}
.tw-pg-btn-generate{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;font-size:12px;font-weight:600;color:#56aea4;background:#fff;border:1.5px solid #56aea4;border-radius:6px;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1}
.tw-pg-btn-generate:hover{background:#56aea4;color:#fff}
.tw-pg-btn-generate svg{flex-shrink:0}

/* ═══ BLOC 1 : Mot de passe + jauge ═══ */
.tw-pg-block1{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;margin-bottom:10px}
.tw-pg-display-area{padding:16px 20px 10px;text-align:center}
.tw-pg-password-output{font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:20px;line-height:1.4;letter-spacing:2px;color:#1a1a2e;background:#fafbfc;border:1px solid #e5e7eb;border-radius:8px;padding:14px 16px;word-break:break-all;user-select:all;min-height:52px;display:flex;align-items:center;justify-content:center}
.tw-pg-password-output.tw-pg-empty{color:#b0b5c0;font-size:14px;letter-spacing:0}
.tw-pg-strength-bar-wrap{display:flex;align-items:center;gap:10px;padding:0 20px 14px}
.tw-pg-strength-bar{flex:1;height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden}
.tw-pg-strength-fill{height:100%;width:0;border-radius:2px;transition:width .3s ease,background .3s ease}
.tw-pg-strength-label{font-size:12px;font-weight:600;white-space:nowrap;min-width:70px;text-align:right}

/* ═══ BLOC 2 : Options 50/50 ═══ */
.tw-pg-block2{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;margin-bottom:10px}
.tw-pg-block2-left{padding:16px 20px;border-right:1px solid #e5e7eb}
.tw-pg-block2-right{padding:16px 20px}

/* Sliders */
.tw-pg-option-group{margin-bottom:14px}
.tw-pg-option-group:last-child{margin-bottom:0}
.tw-pg-option-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.tw-pg-option-label{font-size:13px;font-weight:600;color:#1a1a2e}
.tw-pg-option-value{font-size:12px;font-weight:700;color:#56aea4;background:#f0fdf8;padding:1px 7px;border-radius:4px;min-width:32px;text-align:center}
.tw-pg-slider{-webkit-appearance:none;appearance:none;width:100%;height:5px;background:#e5e7eb;border-radius:3px;outline:none;cursor:pointer}
.tw-pg-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#56aea4;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15);cursor:pointer;transition:transform .15s}
.tw-pg-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}
.tw-pg-slider::-moz-range-thumb{width:16px;height:16px;background:#56aea4;border-radius:50%;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15);cursor:pointer}
.tw-pg-slider::-moz-range-track{height:5px;background:#e5e7eb;border-radius:3px}

/* Stats sous les sliders */
.tw-pg-block2-stats{display:flex;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid #f0f0f0}
.tw-pg-stat{font-size:12px;color:#6b7280}
.tw-pg-stat strong{color:#1a1a2e;font-weight:700}

/* Checkboxes */
.tw-pg-checkbox-label{display:flex;align-items:center;gap:7px;font-size:13px;color:#1a1a2e;cursor:pointer;padding:4px 0;user-select:none}
.tw-pg-checkbox{position:absolute;opacity:0;width:0;height:0}
.tw-pg-checkbox-custom{width:16px;height:16px;border:1.5px solid #d1d5db;border-radius:3px;background:#fff;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;position:relative}
.tw-pg-checkbox:checked+.tw-pg-checkbox-custom{background:#56aea4;border-color:#56aea4}
.tw-pg-checkbox:checked+.tw-pg-checkbox-custom::after{content:'';display:block;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-1px}
.tw-pg-checkbox-exclude{margin-top:4px;padding-top:6px;border-top:1px solid #f0f0f0}
.tw-pg-charset-hint{color:#6b7280;font-size:10px;font-family:'SF Mono','Fira Code','Consolas',monospace}

/* ═══ BLOC 3 : Temps de crack — en ligne ═══ */
.tw-pg-block3{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:12px 20px;margin-bottom:10px}
.tw-pg-crack-label-row{font-size:11px;font-weight:600;color:#6b7280;margin-bottom:8px}
.tw-pg-crack-row{display:flex;gap:20px;flex-wrap:wrap}
.tw-pg-crack-item{display:flex;align-items:baseline;gap:5px}
.tw-pg-crack-val{font-size:13px;font-weight:700;color:#1a1a2e}
.tw-pg-crack-val.tw-pg-crack-instant{color:#16a34a}
.tw-pg-crack-unit{font-size:12px;color:#6b7280}
.tw-pg-crack-note{font-size:10px;color:#9ca3af;margin-top:6px}

/* Password list */
.tw-pg-password-list-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 20px;max-height:200px;overflow-y:auto;margin-bottom:10px}
.tw-pg-password-list{display:flex;flex-direction:column;gap:4px}
.tw-pg-password-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#fafbfc;border:1px solid #e5e7eb;border-radius:6px}
.tw-pg-password-item-text{flex:1;font-family:'SF Mono','Fira Code','Consolas',monospace;font-size:12px;color:#1a1a2e;word-break:break-all;letter-spacing:1px;user-select:all}
.tw-pg-password-item-num{font-size:10px;font-weight:700;color:#6b7280;min-width:18px}
.tw-pg-password-item-copy{background:none;border:1px solid #e5e7eb;border-radius:4px;padding:3px 5px;cursor:pointer;color:#6b7280;transition:all .15s;display:flex;align-items:center;flex-shrink:0}
.tw-pg-password-item-copy:hover{background:#f3f4f6;color:#1a1a2e;border-color:#d1d5db}
.tw-pg-password-item-copy.tw-pg-copied{color:#16a34a;border-color:#bbf7d0}

/* ═══ ARTICLE TOGGLE ═══ */
.tw-pg-article-toggle{margin-top:4px;margin-bottom:12px}
.tw-pg-toggle-btn{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:#fff;border:1.5px solid #56aea4;border-radius:10px;cursor:pointer;font-size:14px;font-weight:600;color:#56aea4;font-family:inherit;transition:all .15s;text-align:left}
.tw-pg-toggle-btn:hover{background:#f0fdf8;border-color:#4a9e94;color:#4a9e94}
.tw-pg-toggle-chevron{transition:transform .25s ease;flex-shrink:0;color:#56aea4}
.tw-pg-toggle-btn:hover .tw-pg-toggle-chevron{color:#4a9e94}
.tw-pg-toggle-btn.tw-pg-toggle-open .tw-pg-toggle-chevron{transform:rotate(180deg)}
.tw-pg-h1{font-size:14px;font-weight:600;margin:0;padding:0;color:inherit;font-family:inherit;line-height:1.4}

/* ═══ Responsive ═══ */
@media(max-width:880px){
  .tw-pg-block2{grid-template-columns:1fr}
  .tw-pg-block2-left{border-right:none;border-bottom:1px solid #e5e7eb}
}
@media(max-width:500px){
  .tw-pg-header{flex-direction:column;align-items:stretch}
  .tw-pg-header-actions{flex-wrap:wrap;justify-content:flex-end}
  .tw-pg-password-output{font-size:16px;padding:12px;letter-spacing:1px}
  .tw-pg-display-area{padding:12px 14px 8px}
  .tw-pg-block2-left,.tw-pg-block2-right{padding:12px 14px}
  .tw-pg-crack-row{flex-direction:column;gap:6px}
}
