.strength-bar-track {
            height: 4px;
            border-radius: 99px;
            background: rgba(255, 255, 255, 0.08);
            overflow: hidden;
        }

        .strength-bar-fill {
            height: 100%;
            border-radius: 99px;
            width: 0%;
            transition: width 0.4s ease, background 0.4s ease;
        }

        .strength-label {
            font-size: 0.72rem;
            font-weight: 600;
            letter-spacing: 0.04em;
            transition: color 0.3s ease;
        }

        /* ── Requirement list ── */
        .req-item {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 0.75rem;
            color: var(--bs-secondary-color, #9ca3af);
            transition: color 0.3s ease;
        }

        .req-item .material-symbols-outlined {
            font-size: 1rem;
            transition: color 0.3s ease;
        }

        .req-item.met {
            color: #4DE1C1;
        }

        .req-item.met .material-symbols-outlined {
            color: #4DE1C1;
        }

        /* ── Toggle eye button ── */
        .toggle-eye {
            position: absolute;
            right: 14px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            padding: 0;
            cursor: pointer;
            color: var(--bs-secondary-color, #9ca3af);
            display: flex;
            align-items: center;
            transition: color 0.2s ease;
            line-height: 1;
        }

        .toggle-eye:hover {
            color: var(--bs-body-color);
        }

        /* ── Success state ── */
        .success-card {
            animation: pop-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
        }

        @keyframes pop-in {
            from {
                opacity: 0;
                transform: scale(0.85) translateY(16px);
            }

            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        /* ── Match indicator border ── */
        .input-match-ok {
            border-color: #4DE1C1 !important;
        }

        .input-match-err {
            border-color: #f87171 !important;
        }