.fj-keygen-wrapper{max-width:var(--container-max-width);margin:0 auto;padding:var(--spacing-md);box-sizing:border-box;}
.tool-security-notice{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:rgba(0,166,81,0.1);border:1px solid rgba(0,166,81,0.3);border-radius:var(--border-radius-md);color:var(--primary-green);font-size:0.9rem;font-weight:600;margin:var(--spacing-md) 0 var(--spacing-lg) 0;text-align:center;box-sizing:border-box;}
.tool-security-notice svg{flex-shrink:0;color:var(--primary-green);}
.fj-keygen-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-sm);border:1px solid var(--color-border);}
.fj-keygen-actions button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:linear-gradient(135deg,var(--primary-green),var(--dark-green));color:var(--white);cursor:pointer;border-radius:var(--border-radius-md);font-weight:600;transition:all var(--transition-normal);box-shadow:0 2px 8px rgba(0,166,81,0.2);display:inline-flex;align-items:center;gap:var(--spacing-xs);justify-content:center;}
.fj-keygen-actions button svg{flex-shrink:0;}
.fj-keygen-actions button:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,166,81,0.3);background:linear-gradient(135deg,var(--dark-green),#006030);}
.fj-keygen-actions button:active{transform:translateY(0);}
.fj-keygen-actions input[type="text"]{flex:1;min-width:200px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);cursor:text;border-radius:var(--border-radius-md);transition:all var(--transition-fast);font-size:0.95rem;}
.fj-keygen-actions input[type="text"]:focus{outline:none;border-color:var(--primary-green);box-shadow:0 0 0 3px rgba(0,166,81,0.1);}
.fj-keygen-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:var(--spacing-sm);}
.fj-keygen-row{display:grid;grid-template-columns:180px 1fr auto auto;gap:var(--spacing-sm);align-items:center;padding:var(--spacing-sm);background:var(--color-bg-card);border-radius:var(--border-radius-md);border:1px solid var(--color-border);transition:all var(--transition-fast);}
.fj-keygen-row:hover{box-shadow:var(--box-shadow-sm);border-color:var(--primary-green);}
.fj-keygen-label{white-space:nowrap;font-weight:600;color:var(--color-text);font-size:0.95rem;}
.fj-keygen-output{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);box-sizing:border-box;border-radius:var(--border-radius-sm);font-family:'Courier New',monospace;font-size:0.9rem;transition:all var(--transition-fast);}
.fj-keygen-output:focus{outline:none;border-color:var(--primary-blue);box-shadow:0 0 0 3px rgba(0,114,188,0.1);}
.fj-keygen-copy{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:linear-gradient(135deg,var(--primary-blue),var(--dark-blue));color:var(--white);cursor:pointer;border-radius:var(--border-radius-md);font-weight:600;transition:all var(--transition-normal);white-space:nowrap;box-shadow:0 2px 8px rgba(0,114,188,0.2);display:inline-flex;align-items:center;gap:var(--spacing-xs);justify-content:center;}
.fj-keygen-copy svg{flex-shrink:0;}
.fj-keygen-copy:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,114,188,0.3);background:linear-gradient(135deg,var(--dark-blue),#004a7a);}
.fj-keygen-copy:active{transform:translateY(0);}
.fj-keygen-generate{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:linear-gradient(135deg,var(--primary-green),var(--dark-green));color:var(--white);cursor:pointer;border-radius:var(--border-radius-md);font-weight:600;transition:all var(--transition-normal);white-space:nowrap;box-shadow:0 2px 8px rgba(0,166,81,0.2);display:inline-flex;align-items:center;gap:var(--spacing-xs);justify-content:center;}
.fj-keygen-generate svg{flex-shrink:0;}
.fj-keygen-generate:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,166,81,0.3);background:linear-gradient(135deg,var(--dark-green),#006030);}
.fj-keygen-generate:active{transform:translateY(0);}
.fj-keygen-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md);margin-top:var(--spacing-lg);}
.fj-keygen-card{border:1px solid var(--color-border);padding:var(--spacing-lg);background:var(--color-bg-card);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow-sm);position:relative;}
.fj-keygen-card h2{margin-bottom:var(--spacing-md);color:var(--color-text);font-size:1.3rem;font-weight:700;}
.fj-keygen-custom-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-md);}
.fj-keygen-custom-controls label{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text);font-size:0.95rem;cursor:pointer;transition:color var(--transition-fast);}
.fj-keygen-custom-controls label:hover{color:var(--primary-green);}
.fj-keygen-custom-controls input[type="checkbox"]{cursor:pointer;}
.fj-keygen-custom-controls input[type="number"]{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:var(--border-radius-md);transition:all var(--transition-fast);font-size:0.95rem;}
.fj-keygen-custom-controls input[type="number"]:focus{outline:none;border-color:var(--primary-green);box-shadow:0 0 0 3px rgba(0,166,81,0.1);}
.fj-keygen-custom-controls.error{border:2px solid var(--color-error);border-radius:var(--border-radius-md);padding:var(--spacing-sm);background:rgba(220,53,69,0.05);animation:shake 0.5s ease-in-out;}
.fj-keygen-custom-controls.error label{color:var(--color-error);}
.fj-keygen-entropy-meter{grid-column:1/-1;display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm);}
.fj-entropy-info{display:flex;align-items:center;gap:var(--spacing-xs);font-size:0.9rem;}
.fj-entropy-label-text{color:var(--color-text);font-weight:600;}
.fj-entropy-label{color:var(--color-text);font-weight:700;}
.fj-entropy-bits{color:var(--color-text-secondary);font-weight:500;}
.fj-entropy-bar-container{width:100%;height:8px;background:var(--color-bg);border-radius:var(--border-radius-sm);overflow:hidden;border:1px solid var(--color-border);}
.fj-entropy-bar{height:100%;width:0%;transition:width 0.3s ease,background 0.3s ease;border-radius:var(--border-radius-sm);}
.fj-entropy-bar.weak{background:linear-gradient(135deg,#dc3545,#c82333);}
.fj-entropy-bar.medium{background:linear-gradient(135deg,#ffc107,#e0a800);}
.fj-entropy-bar.strong{background:linear-gradient(135deg,#17a2b8,#138496);}
.fj-entropy-bar.very-strong{background:linear-gradient(135deg,#28a745,#1e7e34);}
.fj-keygen-error-message{grid-column:1/-1;color:var(--color-error);font-size:0.9rem;font-weight:600;text-align:center;padding:var(--spacing-sm);background:rgba(220,53,69,0.1);border-radius:var(--border-radius-sm);border:1px solid var(--color-error);margin-top:var(--spacing-sm);display:none;}
.fj-keygen-error-message.show{display:block;animation:fadeIn 0.3s ease-in-out;}
@keyframes shake{0%,100%{transform:translateX(0);}25%{transform:translateX(-5px);}75%{transform:translateX(5px);}}
@keyframes fadeIn{from{opacity:0;transform:translateY(-10px);}to{opacity:1;transform:translateY(0);}}
.fj-keygen-custom-actions{display:flex;gap:var(--spacing-sm);align-items:center;margin-top:var(--spacing-md);}
.fj-keygen-custom-actions button{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);background:linear-gradient(135deg,var(--primary-green),var(--dark-green));color:var(--white);cursor:pointer;border-radius:var(--border-radius-md);font-weight:600;transition:all var(--transition-normal);white-space:nowrap;box-shadow:0 2px 8px rgba(0,166,81,0.2);display:inline-flex;align-items:center;gap:var(--spacing-xs);justify-content:center;}
.fj-keygen-custom-actions button svg{flex-shrink:0;}
.fj-keygen-custom-actions button:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,166,81,0.3);background:linear-gradient(135deg,var(--dark-green),#006030);}
.fj-keygen-custom-actions input{flex:1;}
/* Estilos específicos para botões de ações */
#fj-copy-all{background:linear-gradient(135deg,var(--primary-blue),var(--dark-blue))!important;box-shadow:0 2px 8px rgba(0,114,188,0.2)!important;}
#fj-copy-all:hover{background:linear-gradient(135deg,var(--dark-blue),#004a7a)!important;box-shadow:0 4px 12px rgba(0,114,188,0.3)!important;}
#fj-copy-custom{background:linear-gradient(135deg,var(--primary-blue),var(--dark-blue))!important;box-shadow:0 2px 8px rgba(0,114,188,0.2)!important;}
#fj-copy-custom:hover{background:linear-gradient(135deg,var(--dark-blue),#004a7a)!important;box-shadow:0 4px 12px rgba(0,114,188,0.3)!important;}
/* Estado de sucesso para o botão de copiar custom */
#fj-copy-custom[style*="background"]{background:linear-gradient(135deg,#28a745,#1e7e34)!important;box-shadow:0 2px 8px rgba(40,167,69,0.2)!important;}
#fj-download-txt{background:linear-gradient(135deg,#17a2b8,#138496)!important;box-shadow:0 2px 8px rgba(23,162,184,0.2)!important;}
#fj-download-txt:hover{background:linear-gradient(135deg,#138496,#0f6674)!important;box-shadow:0 4px 12px rgba(23,162,184,0.3)!important;}
#fj-clear{background:linear-gradient(135deg,#dc3545,#c82333)!important;box-shadow:0 2px 8px rgba(220,53,69,0.2)!important;}
#fj-clear:hover{background:linear-gradient(135deg,#c82333,#a71e2a)!important;box-shadow:0 4px 12px rgba(220,53,69,0.3)!important;}
@media (max-width:900px){
.fj-keygen-row{grid-template-columns:150px 1fr auto auto;}
.fj-keygen-custom-controls{gap:var(--spacing-sm);}
}
@media (max-width:720px){
.fj-keygen-wrapper{padding:var(--spacing-sm);}
.fj-keygen-actions{padding:var(--spacing-sm);gap:var(--spacing-xs);}
.fj-keygen-actions button{flex:1 1 calc(50% - var(--spacing-xs));min-width:120px;font-size:0.9rem;padding:var(--spacing-sm);}
.fj-keygen-actions input[type="text"]{width:100%;flex-basis:100%;min-width:unset;}
.fj-keygen-row{grid-template-columns:1fr;gap:var(--spacing-xs);padding:var(--spacing-sm);}
.fj-keygen-label{font-weight:700;font-size:0.9rem;}
.fj-keygen-generate{width:100%;}
.fj-keygen-copy{width:100%;}
.fj-keygen-card{padding:var(--spacing-md);}
.fj-keygen-card h2{font-size:1.1rem;}
.fj-keygen-custom-controls{grid-template-columns:1fr;gap:var(--spacing-sm);}
.fj-keygen-custom-actions{flex-direction:column;}
.fj-keygen-custom-actions button{width:100%;}
.fj-keygen-custom-actions input{width:100%;}
}
@media (max-width:480px){
.fj-keygen-actions button{font-size:0.85rem;padding:var(--spacing-xs) var(--spacing-sm);}
.fj-keygen-label{font-size:0.85rem;}
.fj-keygen-output{font-size:0.8rem;padding:var(--spacing-xs) var(--spacing-sm);}
}