/* Copyright 2026 Assistance.email Tous droits réservés. */
*,::after,::before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#ffffff;--surface:#f5f5f5;--surface-hover:#ffffff;--fg:#000000;--muted:#8c8c8c;--border:#dbdbdb;--accent:#10b3d6;--accent-secondary:#04e2ff;--hero-start:#10b3d6;--hero-end:#1d2746;--footer-bg:#1d2746;--radius:8px;--radius-sm:6px;--shadow:0 1px 4px rgba(0,0,0,0.06);--shadow-lg:0 8px 32px rgba(0,0,0,0.08);--transition:200ms ease;--font-display:'Fira Sans',Arial,Helvetica,sans-serif;--font-body:'Roboto',Arial,Helvetica,sans-serif;--sidebar-width:420px}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-hover:#0f172a;--fg:#f1f5f9;--muted:#94a3b8;--border:#334155;--shadow:0 1px 4px rgba(0,0,0,0.3);--shadow-lg:0 8px 32px rgba(0,0,0,0.4)}html{font-size:15px;scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--fg);line-height:1.5;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.hidden{display:none!important}.check-bad{color:#dc2626;font-weight:600}.check-good{color:#10b981;font-weight:600}.help-content{font-size:.85rem;color:var(--muted);line-height:1.7}.help-steps{list-style:decimal;padding-left:1.1rem}.help-steps li{margin-bottom:.5rem;font-size:.82rem}.help-steps li strong{color:var(--fg)}.skip-link{position:absolute;top:-100%;left:1rem;background:var(--accent);color:#fff;padding:.5rem 1rem;border-radius:0 0 var(--radius-sm) var(--radius-sm);font-weight:600;font-size:.85rem;z-index:1000;transition:top .2s}.skip-link:focus{top:0;outline:0;box-shadow:0 0 0 3px rgba(16,179,214,.3)}.app-header{background:linear-gradient(135deg,var(--hero-start),var(--hero-end));color:#fff;padding:1.75rem 2rem 1.25rem;position:sticky;top:0;z-index:100}.app-header-inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;position:relative}.app-logo img{height:40px;width:auto;display:block}.app-header h1{font-family:var(--font-display);font-size:1.3rem;font-weight:700;letter-spacing:-.01em}.app-subtitle{font-size:.85rem;opacity:.75;width:100%;margin-top:-.35rem;font-weight:300}.header-actions{display:flex;gap:.5rem;align-items:center;position:absolute;right:0;top:0}.header-actions+.nav-tools{right:44px}.header-btn{display:inline-flex;align-items:center;gap:.35rem;line-height:1;padding:.35rem .65rem;font-size:.75rem;font-weight:600;font-family:var(--font-body);border:1.5px solid rgba(255,255,255,.25);border-radius:var(--radius-sm);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;white-space:nowrap;transition:var(--transition);text-decoration:none}.header-btn:hover{background:rgba(255,255,255,.18)}.header-btn svg{flex-shrink:0}.nav-tools{position:absolute;right:0;top:0}.nav-tools-btn{display:inline-flex;align-items:center;gap:.35rem;line-height:1;padding:.35rem .65rem;font-size:.75rem;font-weight:600;font-family:var(--font-body);border:1.5px solid rgba(255,255,255,.25);border-radius:var(--radius-sm);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;white-space:nowrap;transition:var(--transition)}.nav-tools-btn:hover{background:rgba(255,255,255,.18)}.nav-tools-btn svg{flex-shrink:0}.nav-tools-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:220px;background:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:.4rem;opacity:0;visibility:hidden;transform:translateY(-6px);transition:all .2s ease;z-index:200}.nav-tools-dropdown.open{opacity:1;visibility:visible;transform:translateY(0)}.nav-tools-link{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;font-size:.85rem;font-weight:500;color:var(--fg);border-radius:var(--radius-sm);text-decoration:none;transition:var(--transition)}.nav-tools-link:hover{background:var(--surface);text-decoration:none;color:var(--accent)}.nav-tools-link.active{background:rgba(16,179,214,.06);color:var(--accent);font-weight:600}.app-container{display:flex;max-width:1400px;margin:0 auto;padding:1.5rem;gap:1.5rem;min-height:calc(100vh - 140px)}.sidebar{width:var(--sidebar-width);flex-shrink:0;position:sticky;top:1.5rem;align-self:flex-start;max-height:calc(100vh - 3rem);overflow-y:auto;scrollbar-width:thin}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-inner{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem}.main-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.25rem}.form-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.form-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.section-title{font-family:var(--font-display);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:1rem}.form-group{margin-bottom:.875rem}.form-group label{display:block;font-size:.8rem;font-weight:600;color:var(--muted);margin-bottom:.35rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}input,input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{width:100%;padding:.6rem .75rem;font-size:.9rem;font-family:var(--font-body);border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--fg);transition:var(--transition);outline:0}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(16,179,214,.12)}textarea{resize:vertical;min-height:48px}.toggle-group{margin-bottom:.5rem}.form-group .toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer;user-select:none}.toggle input{display:none}.toggle-slider{position:relative;width:40px;height:22px;background:var(--border);border-radius:11px;transition:var(--transition);flex-shrink:0}.toggle-slider::after{content:'';position:absolute;width:18px;height:18px;border-radius:50%;background:#fff;top:2px;left:2px;transition:var(--transition);box-shadow:0 1px 3px rgba(0,0,0,.15)}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider::after{left:20px}.toggle-label{font-size:.85rem;font-weight:500;color:var(--fg)}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.mode-card{background:var(--bg);border:2px solid var(--border);border-radius:var(--radius);padding:.75rem .5rem;cursor:pointer;transition:var(--transition);text-align:center;font-size:.7rem;font-weight:600;color:var(--muted)}.mode-card:hover{border-color:var(--accent)}.mode-card.active{border-color:var(--accent);color:var(--accent);background:rgba(16,179,214,.04)}.mode-card-icon{font-size:1.25rem;margin-bottom:.25rem;display:block}.range-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--border);outline:0;transition:var(--transition)}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:var(--transition)}.range-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.2)}.range-slider:focus{outline:0}.range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:.2rem}.range-value{color:var(--accent);font-weight:700}.strength-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.strength-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.strength-item{background:var(--surface-hover);border-radius:var(--radius-sm);padding:.6rem .75rem}.strength-item-label{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.15rem}.strength-item-value{font-size:.85rem;font-weight:700;color:var(--fg)}.strength-bar{height:6px;border-radius:3px;background:var(--border);margin-top:.35rem;overflow:hidden}.strength-bar-fill{height:100%;border-radius:3px;transition:all .4s ease;width:0%}.password-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.password-display-area{padding:1.25rem 1.5rem;display:flex;align-items:center;gap:.75rem}.password-text{flex:1;font-family:'Courier New',Consolas,monospace;font-size:1.1rem;word-break:break-all;min-height:1.5em;color:var(--fg);line-height:1.4}.password-actions{display:flex;gap:.5rem;flex-shrink:0}.password-btn-icon{width:36px;height:36px;border-radius:50%;border:none;background:var(--surface-hover);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition);font-size:.9rem}.password-btn-icon:hover{background:var(--border);color:var(--fg)}.passphrase-words-box{margin:0 1.5rem 1rem;padding:.6rem .75rem;background:var(--surface-hover);border-radius:var(--radius-sm);font-size:.8rem;color:var(--muted)}.action-bar{display:flex;flex-wrap:wrap;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--border)}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.85rem;font-weight:600;font-family:var(--font-body);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#0ea5c4;box-shadow:var(--shadow)}.btn-primary:active{background:#0c94b0;transform:scale(.98)}.btn-outline{background:var(--bg);color:var(--muted);border:1.5px solid var(--border)}.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:var(--surface)}.btn-outline:active{background:var(--surface);transform:scale(.98)}.btn-sm{padding:.4rem .85rem;font-size:.78rem}.btn-icon{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}.multi-password-section{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem}.multi-password-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.multi-password-header .section-title{margin-bottom:0}.multi-password-list{display:flex;flex-direction:column;gap:.4rem;max-height:300px;overflow-y:auto}.multi-password-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:var(--surface-hover);border-radius:var(--radius-sm);font-family:'Courier New',Consolas,monospace;font-size:.82rem;word-break:break-all}.multi-password-item .btn-icon{width:28px;height:28px;font-size:.75rem;flex-shrink:0}.history-section{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem}.history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.history-header .section-title{margin-bottom:0}.history-list{display:flex;flex-direction:column;gap:.4rem}.history-empty{color:var(--muted);font-size:.85rem;text-align:center;padding:1rem}.history-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .75rem;background:var(--surface-hover);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}.history-item:hover{background:rgba(16,179,214,.04)}.history-item-password{flex:1;font-family:'Courier New',Consolas,monospace;font-size:.82rem;word-break:break-all;min-width:0}.history-item-date{font-size:.65rem;color:var(--muted);white-space:nowrap;flex-shrink:0}.history-item .btn-icon{width:28px;height:28px;font-size:.75rem;flex-shrink:0}.check-panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.5rem}.check-input-area{background:var(--surface-hover);border-radius:var(--radius-sm);padding:.75rem;display:flex;align-items:center;gap:.5rem}.check-input-area input{border:none;background:0 0;padding:0;font-size:1rem;font-family:'Courier New',Consolas,monospace;outline:0;flex:1}.check-input-area input:focus{box-shadow:none;border:none}.check-char-count{font-size:.7rem;color:var(--muted);white-space:nowrap}.check-analysis{margin-top:.75rem;padding:.75rem;background:var(--surface-hover);border-radius:var(--radius-sm);font-size:.82rem}.check-analysis-row{display:flex;justify-content:space-between;padding:.2rem 0}.check-crack-time{margin-top:.75rem;padding:.75rem;background:rgba(16,179,214,.04);border-radius:var(--radius-sm);border-left:3px solid var(--accent)}.check-crack-time-label{font-size:.7rem;font-weight:600;color:var(--muted);text-transform:uppercase;margin-bottom:.15rem}.check-crack-time-value{font-size:1.1rem;font-weight:700;color:var(--fg)}.crack-tier{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.85rem}.crack-tier+.crack-tier{border-top:1px solid var(--border);margin-top:.2rem;padding-top:.35rem}.crack-tier-label{color:var(--muted);font-weight:500}.crack-tier-value{color:var(--fg);font-weight:700;font-family:'Courier New',Consolas,monospace}.pin-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background:var(--accent);color:#fff;border-radius:4px;flex-shrink:0}.pin-password-text{font-size:1.5rem;letter-spacing:.2em;font-family:'Courier New',Consolas,monospace}.pin-options{display:flex;align-items:center;gap:.5rem;margin-left:auto}.pin-opt{display:flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--muted)}.pin-opt select{padding:.3rem .5rem;font-size:.85rem;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);font-family:var(--font-body);outline:0;cursor:pointer}.pin-opt select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(16,179,214,.12)}.passphrase-info{padding:.75rem;background:rgba(16,179,214,.04);border-radius:var(--radius-sm);font-size:.8rem;color:var(--muted);line-height:1.5}.passphrase-info strong{color:var(--fg)}.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(80px);background:var(--hero-end);color:#fff;padding:.75rem 1.5rem;border-radius:var(--radius);font-size:.85rem;font-weight:600;box-shadow:var(--shadow-lg);opacity:0;transition:all .3s ease;z-index:999;pointer-events:none}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast.error{background:#dc2626}.toast.success{background:#16a34a}.app-footer{background:var(--footer-bg);color:rgba(255,255,255,.7);padding:1.5rem 2rem}.footer-inner{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:.8rem}.app-footer nav{display:flex;gap:1.25rem}.app-footer a{color:rgba(255,255,255,.7)}.app-footer a:hover{color:#fff;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header-btn:focus-visible,.nav-tools-btn:focus-visible{outline:2px solid rgba(255,255,255,.8);outline-offset:2px}@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes slide-up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fade-up .45s ease both}.animate-in-d1{animation:fade-up .45s .08s ease both}.btn:active{transform:scale(.97)}.header-btn:active,.nav-tools-btn:active{transform:scale(.95)}#toast.show{animation:slide-up .25s ease both}@media(prefers-reduced-motion:reduce){*,::after,::before{animation-duration:NaNs!important;animation-iteration-count:1!important;transition-duration:NaNs!important}.animate-in,.animate-in-d1{animation:none!important;opacity:1!important;transform:none!important}}@media(max-width:1024px){.app-container{flex-direction:column}.sidebar{width:100%;position:static;max-height:none}.form-row{grid-template-columns:1fr}}@media(max-width:640px){.app-header{padding:1.25rem 1rem}.app-header-inner{flex-direction:column;align-items:flex-start}.app-header h1{font-size:1.05rem;padding-right:100px}.app-subtitle{padding-right:100px}.header-actions{top:.5rem}.header-actions+.nav-tools{top:.5rem;right:48px}.nav-tools{top:.5rem}.app-container{padding:1rem;gap:1rem}.mode-grid{grid-template-columns:repeat(3,1fr)}.strength-grid{grid-template-columns:1fr}.action-bar{flex-direction:column}.action-bar .btn{justify-content:center}.password-display-area{flex-direction:column;gap:.5rem}.password-actions{align-self:flex-end}.footer-inner{flex-direction:column;gap:.75rem;text-align:center}}