.password-strength-meter { margin-top: 6px; font-size: 0.85em; }

.strength-bar {
    height: 5px;
    background-color: #2a2a44;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 4px;
}

.strength-bar-fill {
    height: 100%;
    width: var(--strength-width, 0%);
    border-radius: 4px;
    transition: width 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.strength-bar-fill.s0 { background-color: #e74c3c; box-shadow: 0 0 8px rgba(231, 76, 60, 0.5); }
.strength-bar-fill.s1 { background-color: #e67e22; box-shadow: 0 0 8px rgba(230, 126, 34, 0.5); }
.strength-bar-fill.s2 { background-color: #f1c40f; box-shadow: 0 0 8px rgba(241, 196, 15, 0.5); }
.strength-bar-fill.s3 { background-color: #2ecc71; box-shadow: 0 0 8px rgba(46, 204, 113, 0.5); }
.strength-bar-fill.s4 { background-color: #27ae60; box-shadow: 0 0 12px rgba(39, 174, 96, 0.7); animation: pwStrengthPulse 2s ease-in-out infinite; }

.strength-text {
    font-weight: 600;
    font-size: 0.9em;
    transition: color 0.3s ease;
    display: inline-block;
}

.strength-text.s0 { color: #e74c3c; }
.strength-text.s1 { color: #e67e22; }
.strength-text.s2 { color: #f1c40f; }
.strength-text.s3 { color: #2ecc71; }
.strength-text.s4 { color: #27ae60; }

.strength-feedback {
    color: #8a8aa0;
    font-size: 0.85em;
    margin-top: 4px;
    word-break: break-word;
    line-height: 1.4;
}

@keyframes pwStrengthPulse {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.35); }
}

@media (prefers-reduced-motion: reduce) {
    .strength-bar-fill.s4 { animation: none !important; }
}